optab0
C OPTAB0 SOURCE CB215821 20/11/25 13:35:29 10792 C OPTAB0 C Cette subroutine est l''interface entre OPTABi et OPTABj C Elle peut etre appelee directement ou en parallele C C Elle extrait des SEGMENTS des OBJETS les tableaux FORTRAN puis fait C appel a OPTABj qui realise les operations en FORTRAN pur C Creation 23/02/2018 C Createur CB215821 C Historique des Corrections apportees : C - C - C - IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMCHPOI -INC SMCHAML -INC SMLREEL -INC SMLENTI -INC TMVALUE -INC CCASSIS C Debut des INSTRUCTIONS SPARAL = IPOINT NBTHR = SPARAL.NBTHRD SVALUE = SPARAL.IVALUE IOPERA = SPARAL.IOPE IARGU = SPARAL.IARG I1 = SPARAL.I1I X1 = SPARAL.X1I DO 99 IA=1,SVALUE.NPUTIL NTABEN = 1 ITYP = SVALUE.ITYPOI (IA ) ITAIL1=SVALUE.IPOI0 (IA,2) ITAIL2=SVALUE.IPOI1 (IA,2) ITAIL3=SVALUE.IPOI2 (IA,2) C Traitement direct du bon type d''OBJET de Cast3M GOTO ( 1, 2, 3, 4),ITYP PRINT *,'OPTAB0: OBJET NON COMPATIBLE',ith,IPOIN,SVALUE,ITYP SPARAL.IERROR(ith) = 5 RETURN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C MPOVAL.VPOCHA CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 1 CONTINUE MPOVA1=SVALUE.IPOI0 (IA,1) MPOVA2=SVALUE.IPOI1 (IA,1) MPOVAL=SVALUE.IPOI2 (IA,1) IF (MPOVA2 .GT. 0) THEN NTABEN = 2 & MPOVA1.VPOCHA,MPOVA2.VPOCHA,MPOVAL.VPOCHA, & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) ELSE & MPOVA1.VPOCHA,MPOVA1.VPOCHA,MPOVAL.VPOCHA, & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) ENDIF GOTO 99 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C MELVAL.VELCHE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 2 CONTINUE MELVA1=SVALUE.IPOI0 (IA,1) MELVA2=SVALUE.IPOI1 (IA,1) MELVAL=SVALUE.IPOI2 (IA,1) IF (MELVA2 .GT. 0) THEN NTABEN = 2 & MELVA1.VELCHE,MELVA2.VELCHE,MELVAL.VELCHE, & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) ELSE & MELVA1.VELCHE,MELVA1.VELCHE,MELVAL.VELCHE, & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) ENDIF GOTO 99 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C MLREEL.PROG CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 3 CONTINUE MLREE1=SVALUE.IPOI0 (IA,1) MLREE2=SVALUE.IPOI1 (IA,1) MLREEL=SVALUE.IPOI2 (IA,1) IF (MLREE2 .GT. 0) THEN NTABEN = 2 & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) ELSE & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) ENDIF GOTO 99 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C MLENTI.LECT CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 4 CONTINUE MLENT1=SVALUE.IPOI0 (IA,1) MLENT2=SVALUE.IPOI1 (IA,1) MLENTI=SVALUE.IPOI2 (IA,1) C CB215821 : Operation non prevue encore sur les LISTENTI !!! SPARAL.IERROR = 21 RETURN C IF (MLENT2 .GT. 0) THEN C NTABEN = 2 C CALL OPTABj(NBTHR ,ith,IOPERA,NTABEN, C & MLENT1.LECT,MLENT2.LECT,MLENTI.LECT, C & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) C ELSE C CALL OPTABj(NBTHR ,ith,IOPERA,NTABEN, C & MLENT1.LECT,MLENT1.LECT,MLENTI.LECT, C & ITAIL1,ITAIL2,ITAIL3,IARGU ,I1 ,X1 ,IRETOU ) C ENDIF C GOTO 99 99 CONTINUE C Enregistrement de l'erreur eventuelle SPARAL.IERROR(ith) = IRETOU RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales