1! 2! CalculiX - A 3-dimensional finite element program 3! Copyright (C) 1998-2021 Guido Dhondt 4! 5! This program is free software; you can redistribute it and/or 6! modify it under the terms of the GNU General Public License as 7! published by the Free Software Foundation(version 2); 8! 9! 10! This program is distributed in the hope that it will be useful, 11! but WITHOUT ANY WARRANTY; without even the implied warranty of 12! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13! GNU General Public License for more details. 14! 15! You should have received a copy of the GNU General Public License 16! along with this program; if not, write to the Free Software 17! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18! 19 subroutine resultsnoddir(nk,v,nactdof,b,ipompc,nodempc,coefmpc, 20 & nmpc,mi) 21! 22! copying the dof-values into (idir,node) format 23! (for sensitivity results; SPC's correspond to zero) 24! 25 implicit none 26! 27 integer mi(*),nactdof(0:mi(2),*),ipompc(*),nodempc(3,*),nk,i,j, 28 & nmpc,ist,ndir,node,index 29! 30 real*8 v(0:mi(2),*),b(*),coefmpc(*),bnac,fixed_disp 31! 32! 33! 34! copying the dof-values into (idir,node) format 35! 36 do i=1,nk 37 do j=1,mi(2) 38 if(nactdof(j,i).gt.0) then 39 bnac=b(nactdof(j,i)) 40 else 41 cycle 42 endif 43 v(j,i)=bnac 44 enddo 45 enddo 46! 47! treating the MPC's 48! 49 do i=1,nmpc 50 ist=ipompc(i) 51 node=nodempc(1,ist) 52 ndir=nodempc(2,ist) 53 index=nodempc(3,ist) 54 fixed_disp=0.d0 55 if(index.ne.0) then 56 do 57 fixed_disp=fixed_disp-coefmpc(index)* 58 & v(nodempc(2,index),nodempc(1,index)) 59 index=nodempc(3,index) 60 if(index.eq.0) exit 61 enddo 62 endif 63 fixed_disp=fixed_disp/coefmpc(ist) 64 v(ndir,node)=fixed_disp 65 enddo 66! 67 return 68 end 69