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/netage,*)
94 DOUBLE PRECISION,
INTENT(INOUT) :: DM(szmdn,*)
95 DOUBLE PRECISION,
INTENT(INOUT) :: XM(nelmax3d/netage,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,
'OM4111 (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 121 xm(k,1, 1) = xm(k,1, 1) + xn(k,1)
122 xm(k,1, 2) = xm(k,1, 2) + xn(k,2)
123 xm(k,1, 6) = xm(k,1, 6) + xn(k,3)
124 xm(k,1,16) = xm(k,1,16) + xn(k,4)
125 xm(k,1,17) = xm(k,1,17) + xn(k,5)
126 xm(k,1,21) = xm(k,1,21) + xn(k,6)
129 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 134 xm(k,1, 1) = xm(k,1, 1) + xn(k,1)
135 xm(k,1, 2) = xm(k,1, 2) + xn(k,2)
136 xm(k,1, 6) = xm(k,1, 6) + xn(k,3)
137 xm(k,1,16) = xm(k,1,16) + xn(k,1)
138 xm(k,1,17) = xm(k,1,17) + xn(k,2)
139 xm(k,1,21) = xm(k,1,21) + xn(k,3)
142 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 147 xm(k,1, 1) = xm(k,1, 1) + xn(k,1)
148 xm(k,1, 2) = xm(k,1, 2) + xn(k,2)
149 xm(k,1, 6) = xm(k,1, 6) + xn(k,3)
153 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
154 99
FORMAT(1x,
'OM4111 (BIEF) : TYPEXM = ',a1,
' DOES NOT GO',
155 & /,1x,
'FOR THE OPERATION : ',a8,
' WITH TYPEXN = ',a1)
162 ELSEIF(op(1:8).EQ.
'M=M+TNF ')
THEN 164 CALL ov(
'X=X+Y ', x=dm, y=dn, dim1=sizdn)
166 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 171 xm(k,1, 1) = xm(k,1, 1) + xn(k,4)
172 xm(k,1, 2) = xm(k,1, 2) + xn(k,5)
173 xm(k,1, 6) = xm(k,1, 6) + xn(k,6)
174 xm(k,1,16) = xm(k,1,16) + xn(k,1)
175 xm(k,1,17) = xm(k,1,17) + xn(k,2)
176 xm(k,1,21) = xm(k,1,21) + xn(k,3)
179 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 184 xm(k,1, 1) = xm(k,1, 1) + xn(k,1)
185 xm(k,1, 2) = xm(k,1, 2) + xn(k,2)
186 xm(k,1, 6) = xm(k,1, 6) + xn(k,3)
187 xm(k,1,16) = xm(k,1,16) + xn(k,1)
188 xm(k,1,17) = xm(k,1,17) + xn(k,2)
189 xm(k,1,21) = xm(k,1,21) + xn(k,3)
192 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 197 xm(k,1, 1) = xm(k,1, 1) + xn(k,1)
198 xm(k,1, 2) = xm(k,1, 2) + xn(k,2)
199 xm(k,1, 6) = xm(k,1, 6) + xn(k,3)
203 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
210 ELSEIF(op(1:8).EQ.
'M=M+NS ')
THEN 212 CALL ov(
'X=X+Y ', x=dm(1,netage+1), y=dn, dim1=sizdn)
214 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 219 xm(k,netage,13) = xm(k,netage,13) + xn(k,1)
220 xm(k,netage,14) = xm(k,netage,14) + xn(k,2)
221 xm(k,netage,15) = xm(k,netage,15) + xn(k,3)
222 xm(k,netage,28) = xm(k,netage,28) + xn(k,4)
223 xm(k,netage,29) = xm(k,netage,29) + xn(k,5)
224 xm(k,netage,30) = xm(k,netage,30) + xn(k,6)
227 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 232 xm(k,netage,13) = xm(k,netage,13) + xn(k,1)
233 xm(k,netage,14) = xm(k,netage,14) + xn(k,2)
234 xm(k,netage,15) = xm(k,netage,15) + xn(k,3)
235 xm(k,netage,28) = xm(k,netage,28) + xn(k,1)
236 xm(k,netage,29) = xm(k,netage,29) + xn(k,2)
237 xm(k,netage,30) = xm(k,netage,30) + xn(k,3)
240 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 245 xm(k,netage,13) = xm(k,netage,13) + xn(k,1)
246 xm(k,netage,14) = xm(k,netage,14) + xn(k,2)
247 xm(k,netage,15) = xm(k,netage,15) + xn(k,3)
251 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
258 ELSEIF(op(1:8).EQ.
'M=M+TNS ')
THEN 260 CALL ov(
'X=X+Y ', x=dm(1,netage+1), y=dn, dim1=sizdn)
262 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 267 xm(k,netage,13) = xm(k,netage,13) + xn(k,4)
268 xm(k,netage,14) = xm(k,netage,14) + xn(k,5)
269 xm(k,netage,15) = xm(k,netage,15) + xn(k,6)
270 xm(k,netage,28) = xm(k,netage,28) + xn(k,1)
271 xm(k,netage,29) = xm(k,netage,29) + xn(k,2)
272 xm(k,netage,30) = xm(k,netage,30) + xn(k,3)
275 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 280 xm(k,netage,13) = xm(k,netage,13) + xn(k,1)
281 xm(k,netage,14) = xm(k,netage,14) + xn(k,2)
282 xm(k,netage,15) = xm(k,netage,15) + xn(k,3)
283 xm(k,netage,28) = xm(k,netage,28) + xn(k,1)
284 xm(k,netage,29) = xm(k,netage,29) + xn(k,2)
285 xm(k,netage,30) = xm(k,netage,30) + xn(k,3)
288 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 293 xm(k,netage,13) = xm(k,netage,13) + xn(k,1)
294 xm(k,netage,14) = xm(k,netage,14) + xn(k,2)
295 xm(k,netage,15) = xm(k,netage,15) + xn(k,3)
299 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
309 71
FORMAT(1x,
'OM4111 (BIEF) : UNKNOWN OPERATION : ',a8)
subroutine ov(OP, X, Y, Z, C, DIM1)
subroutine om4111(OP, DM, TYPDIM, XM, TYPEXM, DN, TYPDIN, XN, TYPEXN, SIZDN, SZMDN, SIZXN, NETAGE, NELMAX3D)