35 SUBROUTINE fxbypid(IPARG , IXS , IXQ , IXC ,
36 . IXT , IXP , IXR , IXTG , FXBIPM ,
37 . FXBNOD, ONOF , ITAG , ONFELT, ELBUF_STR )
45#include "implicit_f.inc"
57 INTEGER IPARG(NPARG,*),IXS(NIXS,*), IXQ(NIXQ,*),IXC(NIXC,*),
58 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IXTG(NIXTG,*),
59 . fxbipm(*),fxbnod(*),onof,itag(*),onfelt
60 TYPE(elbuf_struct_),
TARGET ,
DIMENSION(NGROUP) :: ELBUF_STR
64 INTEGER NSN,NG,MLW,ITY,NEL,NFT,IAD,I,II,NALL,IGOF,ISHFT,IWIOUT
66 .
DIMENSION(:),
POINTER :: offg
71 IF (ispmd == 0)
WRITE(iout,*)
' BEGINNING FXBYPID'
76 ELSEIF (onof == 1)
THEN
82 IF(onfelt == 0.OR.onfelt == 1)
THEN
105 IF (ity == 1 .AND. mlw /= 0)
THEN
106 offg => elbuf_str(ng)%GBUF%OFF
109 nall = itag(ixs(2,ii)) * itag(ixs(3,ii)) *
110 + itag(ixs(4,ii)) * itag(ixs(5,ii)) *
111 + itag(ixs(6,ii)) * itag(ixs(7,ii)) *
112 + itag(ixs(8,ii)) * itag(ixs(9,ii))
115 offg(i)= abs(offg(i))
116 WRITE(iout,*)
' BRICK ACTIVATION:',ixs(11,ii)
117 ELSEIF(onfelt == 0)
THEN
118 offg(i) = -abs(offg(i))
119 WRITE(iout,*)
' BRICK DEACTIVATION:',ixs(11,ii)
128 IF (offg(i) > zero) igof=0
134 ELSEIF(ity == 3 .and. mlw /= 0)
THEN
135 offg => elbuf_str(ng)%GBUF%OFF
138 nall = itag(ixc(2,ii)) * itag(ixc(3,ii)) *
139 + itag(ixc(4,ii)) * itag(ixc(5,ii))
141 IF (onfelt == 1)
THEN
142 offg(i) = abs(offg(i))
143 WRITE(iout,*)
' SHELL ACTIVATION:',ixc(7,ii)
144 ELSEIF (onfelt == 0)
THEN
145 offg(i) = -abs(offg(i))
146 WRITE(iout,*)
' SHELL DEACTIVATION:',ixc(7,ii)
155 IF (offg(i) > zero) igof=0
162 offg => elbuf_str(ng)%GBUF%OFF
165 nall = itag(ixt(2,ii)) * itag(ixt(3,ii))
169 WRITE(iout,*)
' TRUSS ACTIVATION:',ixt(5,ii)
170 ELSEIF(onfelt == 0)
THEN
172 WRITE(iout,*)
' TRUSS DEACTIVATION:',ixt(5,ii)
181 IF (offg(i) /= zero) igof=0
188 offg => elbuf_str(ng)%GBUF%OFF
191 nall = itag(ixp(2,ii)) * itag(ixp(3,ii))
194 offg(i)= abs(offg(i))
195 WRITE(iout,*)
' BEAM ACTIVATION:',ixp(6,ii)
196 ELSEIF(onfelt == 0)
THEN
197 offg(i)= -abs(offg(i))
198 WRITE(iout,*)
' BEAM DEACTIVATION:',ixp(6,ii)
207 IF(offg(i)>zero) igof=0
213 ELSEIF(ity == 6.AND.mlw /= 3)
THEN
214 offg => elbuf_str(ng)%GBUF%OFF
217 nall = itag(ixr(2,ii)) * itag(ixr(3,ii))
221 WRITE(iout,*)
' SPRING ACTIVATION:',ixr(nixr,ii)
222 ELSEIF(onfelt == 0)
THEN
224 WRITE(iout,*)
' SPRING DEACTIVATION:',ixr(nixr,ii)
233 IF(offg(i) /= zero) igof=0
239 ELSEIF(ity == 7 .and. mlw /= 0)
THEN
240 offg => elbuf_str(ng)%GBUF%OFF
243 nall = itag(ixtg(2,ii)) * itag(ixtg(3,ii)) *
246 IF (onfelt == 1)
THEN
247 offg(i) = abs(offg(i))
248 WRITE(iout,*)
' SH_3N ACTIVATION:',ixtg(6,ii)
249 ELSEIF (onfelt == 0)
THEN
250 offg(i) = -abs(offg(i))
251 WRITE(iout,*)
' SH_3N DEACTIVATION:',ixtg(6,ii)
260 IF (offg(i) > zero) igof=0
270 IF (ispmd /= 0)
CALL spmd_chkw(iwiout,iout)
280 IF (ispmd == 0)
WRITE(iout,*)
' END FXBYPID'
subroutine fxbypid(iparg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, fxbipm, fxbnod, onof, itag, onfelt, elbuf_str)