5 &(op , dm,typdim,xm,typexm, dn,typdin,xn,typexn,
6 & sizdn,szmdn,sizxn,netage, nelmax3d)
90 INTEGER,
INTENT(IN) :: NETAGE,SIZDN,SZMDN,SIZXN
91 INTEGER,
INTENT(IN) :: NELMAX3D
92 CHARACTER(LEN=8),
INTENT(IN) :: OP
93 DOUBLE PRECISION,
INTENT(IN) :: DN(*),XN(nelmax3d/(3*netage),*)
94 DOUBLE PRECISION,
INTENT(INOUT) :: DM(szmdn,*)
95 DOUBLE PRECISION,
INTENT(INOUT)::XM(nelmax3d/(3*netage),3,netage,*)
96 CHARACTER(LEN=1),
INTENT(INOUT) :: TYPDIM,TYPEXM,TYPDIN,TYPEXN
104 IF(op(1:8).EQ.
'M=M+NF ')
THEN 106 IF(typdim.EQ.
'Q'.AND.typdin.EQ.
'Q')
THEN 107 CALL ov(
'X=X+Y ', x=dm, y=dn, dim1=sizdn)
109 WRITE(
lu,199) typdim(1:1),op(1:8),typdin(1:1)
110 199
FORMAT(1x,
'OM5111 (BIEF) : TYPDIM = ',a1,
' NOT IMPLEMENTED',
111 & /,1x,
'FOR THE OPERATION : ',a8,
' WITH TYPDIN = ',a1)
116 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 125 xm(k,1,1,01) = xm(k,1,1,01) + xn(k,1)
126 xm(k,1,1,02) = xm(k,1,1,02) + xn(k,2)
127 xm(k,1,1,04) = xm(k,1,1,04) + xn(k,3)
128 xm(k,1,1,07) = xm(k,1,1,07) + xn(k,4)
129 xm(k,1,1,08) = xm(k,1,1,08) + xn(k,5)
130 xm(k,1,1,10) = xm(k,1,1,10) + xn(k,6)
133 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 138 xm(k,1,1,01) = xm(k,1,1,01) + xn(k,1)
139 xm(k,1,1,02) = xm(k,1,1,02) + xn(k,2)
140 xm(k,1,1,04) = xm(k,1,1,04) + xn(k,3)
141 xm(k,1,1,07) = xm(k,1,1,07) + xn(k,1)
142 xm(k,1,1,08) = xm(k,1,1,08) + xn(k,2)
143 xm(k,1,1,10) = xm(k,1,1,10) + xn(k,3)
146 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 151 xm(k,1,1,01) = xm(k,1,1,01) + xn(k,1)
152 xm(k,1,1,02) = xm(k,1,1,02) + xn(k,2)
153 xm(k,1,1,04) = xm(k,1,1,04) + xn(k,3)
157 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
158 99
FORMAT(1x,
'OM5111 (BIEF) : TYPEXM = ',a1,
' DOES NOT GO',
159 & /,1x,
'FOR THE OPERATION : ',a8,
' WITH TYPEXN = ',a1)
166 ELSEIF(op(1:8).EQ.
'M=M+TNF ')
THEN 168 CALL ov(
'X=X+Y ', x=dm, y=dn, dim1=sizdn)
170 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 175 xm(k,1,1,01) = xm(k,1,1,01) + xn(k,4)
176 xm(k,1,1,02) = xm(k,1,1,02) + xn(k,5)
177 xm(k,1,1,04) = xm(k,1,1,04) + xn(k,6)
178 xm(k,1,1,07) = xm(k,1,1,07) + xn(k,1)
179 xm(k,1,1,08) = xm(k,1,1,08) + xn(k,2)
180 xm(k,1,1,10) = xm(k,1,1,10) + xn(k,3)
183 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 188 xm(k,1,1,01) = xm(k,1,1,01) + xn(k,1)
189 xm(k,1,1,02) = xm(k,1,1,02) + xn(k,2)
190 xm(k,1,1,04) = xm(k,1,1,04) + xn(k,3)
191 xm(k,1,1,07) = xm(k,1,1,07) + xn(k,1)
192 xm(k,1,1,08) = xm(k,1,1,08) + xn(k,2)
193 xm(k,1,1,10) = xm(k,1,1,10) + xn(k,3)
196 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 201 xm(k,1,1,01) = xm(k,1,1,01) + xn(k,1)
202 xm(k,1,1,02) = xm(k,1,1,02) + xn(k,2)
203 xm(k,1,1,04) = xm(k,1,1,04) + xn(k,3)
207 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
214 ELSEIF(op(1:8).EQ.
'M=M+NS ')
THEN 216 CALL ov(
'X=X+Y ', x=dm(1,netage+1), y=dn, dim1=sizdn)
218 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 227 xm(k,2,netage,02) = xm(k,2,netage,02) + xn(k,1)
228 xm(k,2,netage,01) = xm(k,2,netage,01) + xn(k,2)
229 xm(k,2,netage,10) = xm(k,2,netage,10) + xn(k,3)
230 xm(k,2,netage,08) = xm(k,2,netage,08) + xn(k,4)
231 xm(k,2,netage,07) = xm(k,2,netage,07) + xn(k,5)
232 xm(k,2,netage,04) = xm(k,2,netage,04) + xn(k,6)
235 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 240 xm(k,2,netage,02) = xm(k,2,netage,02) + xn(k,1)
241 xm(k,2,netage,01) = xm(k,2,netage,01) + xn(k,2)
242 xm(k,2,netage,10) = xm(k,2,netage,10) + xn(k,3)
243 xm(k,2,netage,08) = xm(k,2,netage,08) + xn(k,1)
244 xm(k,2,netage,07) = xm(k,2,netage,07) + xn(k,2)
245 xm(k,2,netage,04) = xm(k,2,netage,04) + xn(k,3)
248 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 253 xm(k,2,netage,02) = xm(k,2,netage,02) + xn(k,1)
254 xm(k,2,netage,01) = xm(k,2,netage,01) + xn(k,2)
255 xm(k,2,netage,04) = xm(k,2,netage,04) + xn(k,3)
259 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
266 ELSEIF(op(1:8).EQ.
'M=M+TNS ')
THEN 268 CALL ov(
'X=X+Y ', x=dm(1,netage+1), y=dn, dim1=sizdn)
270 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 275 xm(k,2,netage,02) = xm(k,2,netage,02) + xn(k,4)
276 xm(k,2,netage,01) = xm(k,2,netage,01) + xn(k,5)
277 xm(k,2,netage,10) = xm(k,2,netage,10) + xn(k,6)
278 xm(k,2,netage,08) = xm(k,2,netage,08) + xn(k,1)
279 xm(k,2,netage,07) = xm(k,2,netage,07) + xn(k,2)
280 xm(k,2,netage,04) = xm(k,2,netage,04) + xn(k,3)
283 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 288 xm(k,2,netage,02) = xm(k,2,netage,02) + xn(k,1)
289 xm(k,2,netage,01) = xm(k,2,netage,01) + xn(k,2)
290 xm(k,2,netage,10) = xm(k,2,netage,10) + xn(k,3)
291 xm(k,2,netage,08) = xm(k,2,netage,08) + xn(k,1)
292 xm(k,2,netage,07) = xm(k,2,netage,07) + xn(k,2)
293 xm(k,2,netage,04) = xm(k,2,netage,04) + xn(k,3)
296 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 301 xm(k,2,netage,02) = xm(k,2,netage,02) + xn(k,1)
302 xm(k,2,netage,01) = xm(k,2,netage,01) + xn(k,2)
303 xm(k,2,netage,04) = xm(k,2,netage,04) + xn(k,3)
307 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
317 71
FORMAT(1x,
'OM5111 (BIEF) : UNKNOWN OPERATION : ',a8)
subroutine ov(OP, X, Y, Z, C, DIM1)
subroutine om5111(OP, DM, TYPDIM, XM, TYPEXM, DN, TYPDIN, XN, TYPEXN, SIZDN, SZMDN, SIZXN, NETAGE, NELMAX3D)