subroutine forcdt(u,v,a,dp,du,time,dtime,ndag,node, 1x4,xord,ncrv,iacflg,inc,ipass) c c CONTACT: ap@marc.de c c* * * * * * c c input of time dependent loading functions and boundary c conditions. c c u array of total displacements c v array of total velocities c a array of total accellerations c dp array of incremental point loads c du array of incremental displacements c time time c dtime time increment c ndag number of degrees of freedom per node c node node number c xord orriginal coordinates c ncrv number of coordinates c iacflg acceleration flag - set to 1 if accelerations given c inc increment number c ipass pass number for thermo-mechanically coupled c c* * * * * * implicit real*8 (a-h,o-z) dp dimension u(ndeg),v(ndeg),a(ndeg),dp(ndeg),du(ndeg) dimension xord(ncrd) c include '../common/space' include '../common/dimen' include '../common/strvar' c if (ipass.eq.2) return c n1 = node c c... ints(inpbs+i-1) = node number of BC i in BC-list c... ints(infixs+i-1) = is the d.o.f. (1 for heat transfer) c... ints(ionbcs+i-1) = status: 1=on; 0=off c c... search for this node in the BC-list. do 100, i1=1,numbcs if (ints(inpbs+i1-1).eq.n1) then c c... idof = degree of freedom of this BC. idof = ints(infixs+i1-1) c c... iact=1: BC is active; iact=0: BC is not active. iact = ints(ionbcs+i1-1) c c... decide if this BC remains active or not c... the statement below switches off the BC permanently. dist = -5d0 ypos = xord(2) + u(2) if (ypos.le.dist) ints(inpbs+i1-1) = 0 c c write(0,'(3i6,e15.5)') n1,idof,iact,t(idof) endif 100 continue c return end