5 &(op , dm,typdim,xm,typexm, dn,typdin,xn,typexn, d,c,
6 & ikle,nelem,nelmax,ndiag,dm_err, dn_err, d_err)
112 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NDIAG
113 INTEGER,
INTENT(IN) :: IKLE(nelmax,3)
114 CHARACTER(LEN=8),
INTENT(IN) :: OP
115 DOUBLE PRECISION,
INTENT(IN) :: DN(*),D(*),XN(nelmax,*)
116 DOUBLE PRECISION,
INTENT(INOUT) :: DM(*),XM(nelmax,*)
117 CHARACTER(LEN=1),
INTENT(INOUT) :: TYPDIM,TYPEXM,TYPDIN,TYPEXN
118 DOUBLE PRECISION,
INTENT(IN) :: C
119 DOUBLE PRECISION,
OPTIONAL,
INTENT(INOUT) :: DM_ERR(*)
120 DOUBLE PRECISION,
OPTIONAL,
INTENT(IN) :: DN_ERR(*),D_ERR(*)
126 DOUBLE PRECISION Z(1)
130 IF(op(3:8).EQ.
'N ')
THEN 132 IF(typdin(1:1).EQ.
'Q')
THEN 134 CALL ov(
'X=Y ', x=dm, y=dn, dim1=ndiag)
135 ELSEIF (
modass .EQ. 3)
THEN 136 CALL ov_comp(
'X=Y ' , dm , dn , z , c , ndiag,
137 & x_err=dm_err, y_err=dn_err )
140 ELSEIF(typdin(1:1).EQ.
'I'.OR.typdin(1:1).EQ.
'0')
THEN 143 WRITE(
lu,6) typdin(1:1)
144 6
FORMAT(1x,
'OM1111 (BIEF) : TYPDIN UNKNOWN :',a1)
148 typdim(1:1)=typdin(1:1)
150 IF(typexn(1:1).EQ.
'S')
THEN 151 CALL ov(
'X=Y ', x=xm(1,1), y=xn(1,1), dim1=nelem)
152 CALL ov(
'X=Y ', x=xm(1,2), y=xn(1,2), dim1=nelem)
153 CALL ov(
'X=Y ', x=xm(1,3), y=xn(1,3), dim1=nelem)
154 ELSEIF(typexn(1:1).EQ.
'Q')
THEN 155 CALL ov(
'X=Y ', x=xm(1,1), y=xn(1,1), dim1=nelem)
156 CALL ov(
'X=Y ', x=xm(1,2), y=xn(1,2), dim1=nelem)
157 CALL ov(
'X=Y ', x=xm(1,3), y=xn(1,3), dim1=nelem)
158 CALL ov(
'X=Y ', x=xm(1,4), y=xn(1,4), dim1=nelem)
159 CALL ov(
'X=Y ', x=xm(1,5), y=xn(1,5), dim1=nelem)
160 CALL ov(
'X=Y ', x=xm(1,6), y=xn(1,6), dim1=nelem)
161 ELSEIF(typexn(1:1).NE.
'0')
THEN 162 WRITE(
lu,11) typexn(1:1)
163 11
FORMAT(1x,
'OM1111 (BIEF) : TYPEXN UNKNOWN :',a1)
167 typexm(1:1)=typexn(1:1)
171 ELSEIF(op(3:8).EQ.
'CN ')
THEN 173 CALL ov(
'X=CY ', x=dm, y=dn, c=c, dim1=ndiag)
175 IF(typexn(1:1).EQ.
'S')
THEN 176 CALL ov(
'X=CY ', x=xm(1,1), y=xn(1,1), c=c, dim1=nelem)
177 CALL ov(
'X=CY ', x=xm(1,2), y=xn(1,2), c=c, dim1=nelem)
178 CALL ov(
'X=CY ', x=xm(1,3), y=xn(1,3), c=c, dim1=nelem)
179 ELSEIF(typexn(1:1).EQ.
'Q')
THEN 180 CALL ov(
'X=CY ', x=xm(1,1), y=xn(1,1), c=c, dim1=nelem)
181 CALL ov(
'X=CY ', x=xm(1,2), y=xn(1,2), c=c, dim1=nelem)
182 CALL ov(
'X=CY ', x=xm(1,3), y=xn(1,3), c=c, dim1=nelem)
183 CALL ov(
'X=CY ', x=xm(1,4), y=xn(1,4), c=c, dim1=nelem)
184 CALL ov(
'X=CY ', x=xm(1,5), y=xn(1,5), c=c, dim1=nelem)
185 CALL ov(
'X=CY ', x=xm(1,6), y=xn(1,6), c=c, dim1=nelem)
186 ELSEIF(typexn(1:1).NE.
'0')
THEN 187 WRITE(
lu,11) typexn(1:1)
192 typdim(1:1)=typdin(1:1)
193 typexm(1:1)=typexn(1:1)
197 ELSEIF(op(3:8).EQ.
'CM ')
THEN 199 CALL ov(
'X=CX ', x=dm, c=c, dim1=ndiag)
201 IF(typexm(1:1).EQ.
'S')
THEN 202 CALL ov(
'X=CX ', x=xm(1,1), c=c, dim1=nelem)
203 CALL ov(
'X=CX ', x=xm(1,2), c=c, dim1=nelem)
204 CALL ov(
'X=CX ', x=xm(1,3), c=c, dim1=nelem)
205 ELSEIF(typexm(1:1).EQ.
'Q')
THEN 206 CALL ov(
'X=CX ', x=xm(1,1), c=c, dim1=nelem)
207 CALL ov(
'X=CX ', x=xm(1,2), c=c, dim1=nelem)
208 CALL ov(
'X=CX ', x=xm(1,3), c=c, dim1=nelem)
209 CALL ov(
'X=CX ', x=xm(1,4), c=c, dim1=nelem)
210 CALL ov(
'X=CX ', x=xm(1,5), c=c, dim1=nelem)
211 CALL ov(
'X=CX ', x=xm(1,6), c=c, dim1=nelem)
212 ELSEIF(typexm(1:1).NE.
'0')
THEN 213 WRITE(
lu,11) typexm(1:1)
220 ELSEIF(op(3:8).EQ.
'M+CN ' .OR.
221 & (op(3:8).EQ.
'M+CTN ').AND.typexn(1:1).NE.
'Q')
THEN 223 IF(typdin(1:1).EQ.
'I')
THEN 224 CALL ov(
'X=X+C ', x=dm, c=c, dim1=ndiag)
225 ELSEIF(typdin(1:1).NE.
'0')
THEN 226 CALL ov(
'X=X+CY ', x=dm, y=dn, c=c, dim1=ndiag)
229 IF(typexn(1:1).EQ.
'S')
THEN 230 CALL ov(
'X=X+CY ', x=xm(1,1), y=xn(1,1), c=c, dim1=nelem)
231 CALL ov(
'X=X+CY ', x=xm(1,2), y=xn(1,2), c=c, dim1=nelem)
232 CALL ov(
'X=X+CY ', x=xm(1,3), y=xn(1,3), c=c, dim1=nelem)
233 IF(typexm(1:1).EQ.
'Q')
THEN 234 CALL ov(
'X=X+CY ', x=xm(1,4), y=xn(1,1), c=c, dim1=nelem)
235 CALL ov(
'X=X+CY ', x=xm(1,5), y=xn(1,2), c=c, dim1=nelem)
236 CALL ov(
'X=X+CY ', x=xm(1,6), y=xn(1,3), c=c, dim1=nelem)
238 ELSEIF(typexn(1:1).EQ.
'Q')
THEN 239 IF(typexm(1:1).NE.
'Q')
THEN 240 WRITE(
lu,98) typexm(1:1),op(1:8),typexn(1:1)
241 98
FORMAT(1x,
'OM1111 (BIEF) : TYPEXM = ',a1,
' DOES NOT GO',
242 & /,1x,
'FOR THE OPERATION : ',a8,
' WITH TYPEXN = ',a1)
246 CALL ov(
'X=X+CY ', x=xm(1,1), y=xn(1,1), c=c, dim1=nelem)
247 CALL ov(
'X=X+CY ', x=xm(1,2), y=xn(1,2), c=c, dim1=nelem)
248 CALL ov(
'X=X+CY ', x=xm(1,3), y=xn(1,3), c=c, dim1=nelem)
249 CALL ov(
'X=X+CY ', x=xm(1,4), y=xn(1,4), c=c, dim1=nelem)
250 CALL ov(
'X=X+CY ', x=xm(1,5), y=xn(1,5), c=c, dim1=nelem)
251 CALL ov(
'X=X+CY ', x=xm(1,6), y=xn(1,6), c=c, dim1=nelem)
252 ELSEIF(typexn(1:1).NE.
'0')
THEN 253 WRITE(
lu,11) typexn(1:1)
260 ELSEIF(op(3:8).EQ.
'M+CTN ')
THEN 264 CALL ov(
'X=X+CY ', x=dm, y=dn, c=c, dim1=ndiag)
266 IF(typexn(1:1).EQ.
'Q')
THEN 267 IF(typexm(1:1).NE.
'Q')
THEN 268 WRITE(
lu,98) typexm(1:1),op(1:8),typexn(1:1)
272 CALL ov(
'X=X+CY ', x=xm(1,1), y=xn(1,4), c=c, dim1=nelem)
273 CALL ov(
'X=X+CY ', x=xm(1,2), y=xn(1,5), c=c, dim1=nelem)
274 CALL ov(
'X=X+CY ', x=xm(1,3), y=xn(1,6), c=c, dim1=nelem)
275 CALL ov(
'X=X+CY ', x=xm(1,4), y=xn(1,1), c=c, dim1=nelem)
276 CALL ov(
'X=X+CY ', x=xm(1,5), y=xn(1,2), c=c, dim1=nelem)
277 CALL ov(
'X=X+CY ', x=xm(1,6), y=xn(1,3), c=c, dim1=nelem)
279 WRITE(
lu,11) typexn(1:1)
286 ELSEIF(op(3:8).EQ.
'TN ')
THEN 288 CALL ov(
'X=Y ', x=dm, y=dn, dim1=ndiag)
290 IF(typexn(1:1).EQ.
'S')
THEN 291 CALL ov(
'X=Y ', x=xm(1,1), y=xn(1,1), dim1=nelem)
292 CALL ov(
'X=Y ', x=xm(1,2), y=xn(1,2), dim1=nelem)
293 CALL ov(
'X=Y ', x=xm(1,3), y=xn(1,3), dim1=nelem)
294 ELSEIF(typexn(1:1).EQ.
'Q')
THEN 295 CALL ov(
'X=Y ', x=xm(1,1), y=xn(1,4), dim1=nelem)
296 CALL ov(
'X=Y ', x=xm(1,2), y=xn(1,5), dim1=nelem)
297 CALL ov(
'X=Y ', x=xm(1,3), y=xn(1,6), dim1=nelem)
298 CALL ov(
'X=Y ', x=xm(1,4), y=xn(1,1), dim1=nelem)
299 CALL ov(
'X=Y ', x=xm(1,5), y=xn(1,2), dim1=nelem)
300 CALL ov(
'X=Y ', x=xm(1,6), y=xn(1,3), dim1=nelem)
301 ELSEIF(typexn(1:1).NE.
'0')
THEN 302 WRITE(
lu,11) typexn(1:1)
306 typdim(1:1)=typdin(1:1)
307 typexm(1:1)=typexn(1:1)
311 ELSEIF(op(3:8).EQ.
'M+N '.OR.
312 & (op(3:8).EQ.
'M+TN ').AND.typexn(1:1).NE.
'Q')
THEN 315 CALL ov(
'X=X+Y ', x=dm, y=dn, dim1=ndiag)
316 ELSEIF (
modass .EQ. 3)
THEN 317 CALL ov_comp(
'X=X+Y ' , dm , dn , z , c , ndiag,
318 & x_err=dm_err, y_err=dn_err )
321 IF(typexn(1:1).EQ.
'S')
THEN 322 CALL ov(
'X=X+Y ', x=xm(1,1), y=xn(1,1), dim1=nelem)
323 CALL ov(
'X=X+Y ', x=xm(1,2), y=xn(1,2), dim1=nelem)
324 CALL ov(
'X=X+Y ', x=xm(1,3), y=xn(1,3), dim1=nelem)
325 IF(typexm(1:1).EQ.
'Q')
THEN 326 CALL ov(
'X=X+Y ', x=xm(1,4), y=xn(1,1), dim1=nelem)
327 CALL ov(
'X=X+Y ', x=xm(1,5), y=xn(1,2), dim1=nelem)
328 CALL ov(
'X=X+Y ', x=xm(1,6), y=xn(1,3), dim1=nelem)
330 ELSEIF(typexn(1:1).EQ.
'Q')
THEN 331 IF(typexm(1:1).NE.
'Q')
THEN 332 WRITE(
lu,98) typexm(1:1),op(1:8),typexn(1:1)
336 CALL ov(
'X=X+Y ', x=xm(1,1), y=xn(1,1), dim1=nelem)
337 CALL ov(
'X=X+Y ', x=xm(1,2), y=xn(1,2), dim1=nelem)
338 CALL ov(
'X=X+Y ', x=xm(1,3), y=xn(1,3), dim1=nelem)
339 CALL ov(
'X=X+Y ', x=xm(1,4), y=xn(1,4), dim1=nelem)
340 CALL ov(
'X=X+Y ', x=xm(1,5), y=xn(1,5), dim1=nelem)
341 CALL ov(
'X=X+Y ', x=xm(1,6), y=xn(1,6), dim1=nelem)
342 ELSEIF(typexn(1:1).NE.
'0')
THEN 343 WRITE(
lu,11) typexn(1:1)
350 ELSEIF(op(3:8).EQ.
'M+TN ')
THEN 354 CALL ov(
'X=X+Y ', x=dm, y=dn, dim1=ndiag)
356 IF(typexm(1:1).EQ.
'Q')
THEN 357 CALL ov(
'X=X+Y ', x=xm(1,1), y=xn(1,4), dim1=nelem)
358 CALL ov(
'X=X+Y ', x=xm(1,2), y=xn(1,5), dim1=nelem)
359 CALL ov(
'X=X+Y ', x=xm(1,3), y=xn(1,6), dim1=nelem)
360 CALL ov(
'X=X+Y ', x=xm(1,4), y=xn(1,1), dim1=nelem)
361 CALL ov(
'X=X+Y ', x=xm(1,5), y=xn(1,2), dim1=nelem)
362 CALL ov(
'X=X+Y ', x=xm(1,6), y=xn(1,3), dim1=nelem)
363 ELSEIF(typexn(1:1).NE.
'0')
THEN 364 WRITE(
lu,11) typexn(1:1)
368 typdim(1:1)=typdin(1:1)
369 typexm(1:1)=typexn(1:1)
373 ELSEIF(op(3:8).EQ.
'MD ')
THEN 377 IF(typdim(1:1).EQ.
'Q')
THEN 378 CALL ov(
'X=XY ', x=dm, y=d, dim1=ndiag)
379 ELSEIF(typdim(1:1).EQ.
'I')
THEN 380 CALL ov(
'X=Y ', x=dm, y=d, dim1=ndiag)
382 ELSEIF(typdim(1:1).NE.
'0')
THEN 383 WRITE(
lu,13) typdim(1:1)
390 IF(typexm(1:1).EQ.
'Q')
THEN 394 xm(ielem, 1) = xm(ielem, 1) * d(ikle(ielem,2))
395 xm(ielem, 2) = xm(ielem, 2) * d(ikle(ielem,3))
396 xm(ielem, 3) = xm(ielem, 3) * d(ikle(ielem,3))
397 xm(ielem, 4) = xm(ielem, 4) * d(ikle(ielem,1))
398 xm(ielem, 5) = xm(ielem, 5) * d(ikle(ielem,1))
399 xm(ielem, 6) = xm(ielem, 6) * d(ikle(ielem,2))
403 ELSEIF(typexm(1:1).EQ.
'S')
THEN 405 171
FORMAT(1x,
'OM1111 (BIEF) : M=MD , M MUST BE NON-SYMMETRIC')
408 ELSEIF(typexm(1:1).NE.
'0')
THEN 409 WRITE(
lu,173) typexm(1:1)
410 173
FORMAT(1x,
'OM1111 (BIEF) : TYPEXM NOT AVAILABLE : ',a1)
417 ELSEIF(op(3:8).EQ.
'DM ')
THEN 421 IF(typdim(1:1).EQ.
'Q')
THEN 422 CALL ov(
'X=XY ', x=dm, y=d, dim1=ndiag)
423 ELSEIF(typdim(1:1).EQ.
'I')
THEN 424 CALL ov(
'X=Y ', x=dm, y=d, dim1=ndiag)
426 ELSEIF(typdim(1:1).NE.
'0')
THEN 427 WRITE(
lu,13) typdim(1:1)
434 IF(typexm(1:1).EQ.
'Q')
THEN 438 xm(ielem, 1) = xm(ielem, 1) * d(ikle(ielem,1))
439 xm(ielem, 2) = xm(ielem, 2) * d(ikle(ielem,1))
440 xm(ielem, 3) = xm(ielem, 3) * d(ikle(ielem,2))
441 xm(ielem, 4) = xm(ielem, 4) * d(ikle(ielem,2))
442 xm(ielem, 5) = xm(ielem, 5) * d(ikle(ielem,3))
443 xm(ielem, 6) = xm(ielem, 6) * d(ikle(ielem,3))
447 ELSEIF(typexm(1:1).EQ.
'S')
THEN 450 &
'OM1111 (BIEF) : M=MD NOT AVAILABLE IF M SYMMETRIC')
453 ELSEIF(typexm(1:1).NE.
'0')
THEN 454 WRITE(
lu,173) typexm(1:1)
461 ELSEIF(op(3:8).EQ.
'M-DN ')
THEN 465 IF(typdim(1:1).EQ.
'Q')
THEN 466 CALL ov(
'X=X-YZ ', x=dm, y=dn, z=d, dim1=ndiag)
467 ELSEIF(typdim(1:1).NE.
'0')
THEN 468 WRITE(
lu,13) typdim(1:1)
475 IF(typexm(1:1).EQ.
'Q')
THEN 476 IF(typexn(1:1).EQ.
'Q')
THEN 478 xm(ielem, 1) = xm(ielem,1) - xn(ielem, 1) * d(ikle(ielem,1))
479 xm(ielem, 2) = xm(ielem,2) - xn(ielem, 2) * d(ikle(ielem,1))
480 xm(ielem, 3) = xm(ielem,3) - xn(ielem, 3) * d(ikle(ielem,2))
481 xm(ielem, 4) = xm(ielem,4) - xn(ielem, 4) * d(ikle(ielem,2))
482 xm(ielem, 5) = xm(ielem,5) - xn(ielem, 5) * d(ikle(ielem,3))
483 xm(ielem, 6) = xm(ielem,6) - xn(ielem, 6) * d(ikle(ielem,3))
485 ELSEIF(typexn(1:1).EQ.
'S')
THEN 487 xm(ielem, 1) = xm(ielem,1) - xn(ielem, 1) * d(ikle(ielem,1))
488 xm(ielem, 2) = xm(ielem,2) - xn(ielem, 2) * d(ikle(ielem,1))
489 xm(ielem, 3) = xm(ielem,3) - xn(ielem, 3) * d(ikle(ielem,2))
490 xm(ielem, 4) = xm(ielem,4) - xn(ielem, 1) * d(ikle(ielem,2))
491 xm(ielem, 5) = xm(ielem,5) - xn(ielem, 2) * d(ikle(ielem,3))
492 xm(ielem, 6) = xm(ielem,6) - xn(ielem, 3) * d(ikle(ielem,3))
494 ELSEIF(typexn(1:1).NE.
'0')
THEN 495 WRITE(
lu,11) typexn(1:1)
500 WRITE(
lu,173) typexm(1:1)
507 ELSEIF(op(3:8).EQ.
'M-ND ')
THEN 511 IF(typdim(1:1).EQ.
'Q')
THEN 512 CALL ov(
'X=X-YZ ', x=dm, y=dn, z=d, dim1=ndiag)
513 ELSEIF(typdim(1:1).NE.
'0')
THEN 514 WRITE(
lu,13) typdim(1:1)
521 IF(typexm(1:1).EQ.
'Q')
THEN 522 IF(typexn(1:1).EQ.
'Q')
THEN 524 xm(ielem, 1) = xm(ielem,1) - xn(ielem, 1) * d(ikle(ielem,2))
525 xm(ielem, 2) = xm(ielem,2) - xn(ielem, 2) * d(ikle(ielem,3))
526 xm(ielem, 3) = xm(ielem,3) - xn(ielem, 3) * d(ikle(ielem,3))
527 xm(ielem, 4) = xm(ielem,4) - xn(ielem, 4) * d(ikle(ielem,1))
528 xm(ielem, 5) = xm(ielem,5) - xn(ielem, 5) * d(ikle(ielem,1))
529 xm(ielem, 6) = xm(ielem,6) - xn(ielem, 6) * d(ikle(ielem,2))
531 ELSEIF(typexn(1:1).EQ.
'S')
THEN 533 xm(ielem, 1) = xm(ielem,1) - xn(ielem, 1) * d(ikle(ielem,2))
534 xm(ielem, 2) = xm(ielem,2) - xn(ielem, 2) * d(ikle(ielem,3))
535 xm(ielem, 3) = xm(ielem,3) - xn(ielem, 3) * d(ikle(ielem,3))
536 xm(ielem, 4) = xm(ielem,4) - xn(ielem, 1) * d(ikle(ielem,1))
537 xm(ielem, 5) = xm(ielem,5) - xn(ielem, 2) * d(ikle(ielem,1))
538 xm(ielem, 6) = xm(ielem,6) - xn(ielem, 3) * d(ikle(ielem,2))
540 ELSEIF(typexn(1:1).NE.
'0')
THEN 541 WRITE(
lu,11) typexn(1:1)
546 WRITE(
lu,173) typexm(1:1)
553 ELSEIF(op(3:8).EQ.
'DMD ')
THEN 557 IF(typdim(1:1).EQ.
'Q')
THEN 559 CALL ov(
'X=XY ', x=dm, y=d, dim1=ndiag)
560 CALL ov(
'X=XY ', x=dm, y=d, dim1=ndiag)
562 CALL ov_comp(
'X=XY ' , dm , d , z , c , ndiag,
563 & x_err=dm_err, y_err= d_err )
564 CALL ov_comp(
'X=XY ' , dm , d , z , c , ndiag,
565 & x_err=dm_err, y_err= d_err )
567 ELSEIF(typdim(1:1).EQ.
'I')
THEN 568 CALL ov(
'X=YZ ', x=dm, y=d, z=d, dim1=ndiag)
570 ELSEIF(typdim(1:1).NE.
'0')
THEN 571 WRITE(
lu,13) typdim(1:1)
572 13
FORMAT(1x,
'OM1111 (BIEF) : TYPDIM UNKNOWN :',a1)
579 IF(typexm(1:1).EQ.
'S')
THEN 582 xm(ielem,1)=xm(ielem,1)* d(ikle(ielem,2)) * d(ikle(ielem,1))
583 xm(ielem,2)=xm(ielem,2)* d(ikle(ielem,3)) * d(ikle(ielem,1))
584 xm(ielem,3)=xm(ielem,3)* d(ikle(ielem,3)) * d(ikle(ielem,2))
587 ELSEIF(typexm(1:1).EQ.
'Q')
THEN 590 xm(ielem,1)=xm(ielem,1)* d(ikle(ielem,2)) * d(ikle(ielem,1))
591 xm(ielem,2)=xm(ielem,2)* d(ikle(ielem,3)) * d(ikle(ielem,1))
592 xm(ielem,3)=xm(ielem,3)* d(ikle(ielem,3)) * d(ikle(ielem,2))
593 xm(ielem,4)=xm(ielem,4)* d(ikle(ielem,2)) * d(ikle(ielem,1))
594 xm(ielem,5)=xm(ielem,5)* d(ikle(ielem,3)) * d(ikle(ielem,1))
595 xm(ielem,6)=xm(ielem,6)* d(ikle(ielem,3)) * d(ikle(ielem,2))
598 ELSEIF(typexm(1:1).NE.
'0')
THEN 599 WRITE(
lu,21) typexm(1:1)
600 21
FORMAT(1x,
'OM1111 (BIEF) : TYPEXM UNKNOWN :',a1)
607 ELSEIF(op(3:8).EQ.
'M+D ')
THEN 610 CALL ov(
'X=X+Y ', x=dm, y=d, dim1=ndiag)
611 ELSEIF (
modass .EQ. 3)
THEN 612 CALL ov_comp(
'X=X+Y ' , dm , d , z , 0.d0, ndiag,
613 & x_err=dm_err, y_err= d_err )
620 ELSEIF(op(3:8).EQ.
'0 ')
THEN 622 CALL ov(
'X=C ', x=dm, c=0.d0, dim1=ndiag)
624 IF(typexm(1:1).EQ.
'S')
THEN 625 CALL ov(
'X=C ', x=xm(1,1), c=0.d0, dim1=nelem)
626 CALL ov(
'X=C ', x=xm(1,2), c=0.d0, dim1=nelem)
627 CALL ov(
'X=C ', x=xm(1,3), c=0.d0, dim1=nelem)
628 ELSEIF(typexm(1:1).EQ.
'Q')
THEN 629 CALL ov(
'X=C ', x=xm(1,1), c=0.d0, dim1=nelem)
630 CALL ov(
'X=C ', x=xm(1,2), c=0.d0, dim1=nelem)
631 CALL ov(
'X=C ', x=xm(1,3), c=0.d0, dim1=nelem)
632 CALL ov(
'X=C ', x=xm(1,4), c=0.d0, dim1=nelem)
633 CALL ov(
'X=C ', x=xm(1,5), c=0.d0, dim1=nelem)
634 CALL ov(
'X=C ', x=xm(1,6), c=0.d0, dim1=nelem)
635 ELSEIF(typexm(1:1).NE.
'0')
THEN 636 WRITE(
lu,711) typexm(1:1)
637 711
FORMAT(1x,
'OM1111 (BIEF) : TYPEXM UNKNOWN :',a1)
647 ELSEIF(op(3:8).EQ.
'X(M) ')
THEN 649 IF(typexm(1:1).EQ.
'S')
THEN 650 CALL ov(
'X=Y ', x=xm(1,4), y=xm(1,1), dim1=nelem)
651 CALL ov(
'X=Y ', x=xm(1,5), y=xm(1,2), dim1=nelem)
652 CALL ov(
'X=Y ', x=xm(1,6), y=xm(1,3), dim1=nelem)
653 ELSEIF(typexm(1:1).NE.
'0')
THEN 654 WRITE(
lu,811) typexm(1:1)
655 811
FORMAT(1x,
'OM1111 (BIEF) : MATRIX ALREADY NON SYMMETRICAL: ',
664 ELSEIF(op(3:8).EQ.
'MSK(M)')
THEN 666 IF(typexm(1:1).EQ.
'S')
THEN 668 ELSEIF(typexm(1:1).EQ.
'Q')
THEN 670 ELSEIF(typexm(1:1).EQ.
'0')
THEN 681 CALL ov(
'X=XY ', x=xm(1,i), y=d, dim1=nelem)
690 41
FORMAT(1x,
'OM1111 (BIEF) : UNKNOWN OPERATION : ',a8)
subroutine ov_comp(OP, X, Y, Z, C, NPOIN, X_ERR, Y_ERR, Z_ERR)
subroutine ov(OP, X, Y, Z, C, DIM1)
subroutine om1111(OP, DM, TYPDIM, XM, TYPEXM, DN, TYPDIN, XN, TYPEXN, D, C, IKLE, NELEM, NELMAX, NDIAG, DM_ERR, DN_ERR, D_ERR)