29 character*20 labmpc(*)
30 character*132 textpart(16)
32 integer ipompc(*),nodempc(3,*),nmpc,nmpc_,mpcfree,istep,istat,
33 & n,i,j,ii,key,nterm,nk,node,ndir,mpcfreeold,ikmpc(*),ilmpc(*),
34 & id,idof,iline,ipol,inl,ipoinp(2,*),inp(3,*),ipoinpc(0:*),m
39 if(textpart(m)(1:5).eq.
'TYPE=')
then 40 type(1:13)=textpart(m)(6:18)
41 if(textpart(m)(19:19).ne.
' ')
then 42 write(*,*)
'*ERROR reading *NETWORK MPC: type' 43 write(*,*)
' of network mpc is too long' 49 &
'*WARNING reading *NETWORK MPC: parameter not recognized:' 51 & textpart(m)(1:index(textpart(m),
' ')-1)
59 &
'*ERROR reading *NETWORK MPC: *NETWORK MPC should be placed' 60 write(*,*)
' before all step definitions' 65 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
67 if((istat.lt.0).or.(key.eq.1))
return 68 read(textpart(1)(1:10),
'(i10)',iostat=istat) nterm
71 if(nmpc.gt.nmpc_)
then 72 write(*,*)
'*ERROR reading *NETWORK MPC: increase nmpc_' 76 labmpc(nmpc)(1:7)=
'NETWORK' 77 labmpc(nmpc)(8:20)=
type(1:13)
82 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
84 if((istat.lt.0).or.(key.eq.1))
then 86 &
'*ERROR reading *NETWORK MPC: mpc definition ',nmpc
87 write(*,*)
' is not complete. ' 95 read(textpart((i-1)*3+1)(1:10),
'(i10)',iostat=istat) node
96 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
98 if((node.gt.nk).or.(node.le.0))
then 99 write(*,*)
'*ERROR reading *NETWORK MPC:' 100 write(*,*)
' node ',node,
' is not defined' 104 read(textpart((i-1)*3+2)(1:10),
'(i10)',iostat=istat) ndir
105 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
108 elseif(ndir.eq.8)
then 110 elseif(ndir.eq.11)
then 113 write(*,*)
'*ERROR reading *NETWORK MPC:' 114 write(*,*)
' direction',ndir,
' is not defined' 118 read(textpart((i-1)*3+3)(1:20),
'(f20.0)',iostat=istat) x
119 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
122 nodempc(1,mpcfree)=node
123 nodempc(2,mpcfree)=ndir
130 call nident(ikmpc,idof,nmpc-1,id)
132 if(ikmpc(id).eq.idof)
then 134 & (ikmpc(id))/8+1,ikmpc(id)-8*((ikmpc(id))/8)
147 mpcfree=nodempc(3,mpcfree)
148 if(mpcfree.eq.0)
then 150 &
'*ERROR reading *NETWORK MPC: increase memmpc_' 158 nodempc(3,mpcfreeold)=0
164 100
format(/,
'*ERROR reading *NETWORK MPC: the DOF corresponding to',
165 & /,
'node ',i10,
' in direction',i1,
' is detected on',
166 & /,
'the dependent side of two different MPC''s')
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine nident(x, px, n, id)
Definition: nident.f:26