37
38
39
40 USE elbufdef_mod
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "mvsiz_p.inc"
49#include "com04_c.inc"
50
51
52
53 INTEGER , INTENT(IN) :: JHBE,ILAY,MLWI,KCVT,IOR_TSH,
54 . NPTR,NPTS,ICSTR,NEL
55 INTEGER ,DIMENSION(NIXS,NUMELS), INTENT(IN) :: IXS
57 my_real ,
DIMENSION(3,MVSIZ),
INTENT(OUT) :: evar
58 my_real ,
DIMENSION(3,NUMNOD),
INTENT(IN) :: x
59 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_TAB
60
61
62
64 . dir(mvsiz,2),dirb(mvsiz,2)
65 INTEGER I,I1,II,J,IR,,IT,IL,JJ(4)
66
67 TYPE(G_BUFEL_) ,POINTER :: GBUF
68 TYPE(L_BUFEL_) ,POINTER :: LBUF
69
70 evar(1:3,1:nel) = zero
71 it = 1
72 ir = 0
73 is = 0
74 DO i=1,4
75 jj(i) = nel*(i-1)
76 ENDDO
77 gbuf => elbuf_tab%GBUF
78 IF (jhbe==15) THEN
79 ir = 1
80 is = 1
81 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
82 IF (mlwi == 12 .OR. mlwi == 14) THEN
83 DO i=1,nel
84 evar(1:2,i) = lbuf%EPE(jj(1:2) + i)
85 evar(3,i) = half*lbuf%EPE(jj(4) + i)
86 ENDDO
87 ELSEIF (mlwi /= 49 ) THEN
88 DO i=1,nel
89 evar(1:2,i) = lbuf%STRA(jj(1:2) + i)
90 evar(3,i) = half*lbuf%STRA(jj(4) + i)
91 ENDDO
92 END IF
93
94 ELSE
95 IF (mlwi == 12 .OR. mlwi == 14) THEN
96 DO ir=1,nptr
97 DO is=1,npts
98 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
99 DO i=1,nel
100 evar(1:2,i) = evar(1:2,i)+lbuf%EPE(jj(1:2) + i)
101 evar(3,i) = evar(3,i)+half*lbuf%EPE(jj(4) + i)
102 ENDDO
103 END DO
104 END DO
105 ELSEIF (mlwi /= 49 ) THEN
106 DO ir=1,nptr
107 DO is=1,npts
108 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
109 DO i=1,nel
110 evar(1:2,i) = evar(1:2,i)+lbuf%STRA(jj(1:2) + i)
111 evar(3,i) = evar(3,i)+ half*lbuf%STRA(jj(4) + i)
112 ENDDO
113 ENDDO
114 END DO
115 END IF
116 END IF
117 evar(1:3,1:nel) = f_exp*evar(1:3,1:nel)
118
119 IF (kcvt==2) THEN
120 IF(ior_tsh==1)THEN
121 DO i=1,nel
122 dir(i,1:2)= gbuf%GAMA(jj(1:2) + i)
123 ENDDO
124 ELSEIF(ior_tsh==2)THEN
125 IF(jhbe==14)THEN
126 ir = 1
127 is = 1
128 END IF
129 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
130 DO i=1,nel
131 dir(i,1:2)= lbuf%GAMA(jj(1:2) + i)
132 ENDDO
133 END IF
134 CALL tsh_dir2(x,ixs,dir,dirb,icstr,nel)
136 END IF
137
138 RETURN
subroutine tsh_dir2(x, ixs, dir, dirb, icstr, nel)
subroutine roto_sig2d(jft, jlt, sig, dir)