vermat
C VERMAT SOURCE PV 20/09/26 21:20:11 10724 C*********************************************************************** C NOM : VERMAT C DESCRIPTION : C Ce sous-programme vérifie l'objet matrice morse assemblée C du segment MATRIK (segments C MINC duaux et primaux identiques, nb d'inconnues...) C en vue de la résolution itérative. C C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : - C*********************************************************************** C ENTREES : MATRIK, IMPR C ENTREES/SORTIES : - C SORTIES : IRET C CODE RETOUR (IRET) : 0 si ok C <0 si problème C MATRIK : pointeur sur segment MATRIK de l'include SMMATRIK C contenant la matrice morse à vérifier C IMPR : niveau d'impression (0..3) C*********************************************************************** C VERSION : v1, 01/04/98, version initiale C HISTORIQUE : v1, 01/04/98, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMMATRIK POINTEUR KMORS.PMORS POINTEUR KISA.IZA CHARACTER*4 NOMINC LOGICAL OK C*** IRET=0 OK=.TRUE. C On récupère les segments utiles IF (IMPR.GT.5) THEN WRITE(IOIMP,*) 'vermat.eso : Checking MATRIK',MATRIK ENDIF SEGACT MATRIK*MOD C Vérification des dimensions KISA =KIDMAT(5) WRITE(IOIMP,*) 'Le segment ne contient pas de matrice morse' WRITE(IOIMP,*) 'KISA =',KISA IRET=-1 ELSE IF(IMPR.GT.5) THEN WRITE(IOIMP,*) 'Vérification des dimensions...' ENDIF SEGACT KMORS SEGDES KMORS IF (KNTTT.EQ.0) KNTTT=NTT IF (KNTTP.EQ.0) KNTTP=NTT IF (KNTTD.EQ.0) KNTTD=NTT IF (KNTTT.NE.NTT.OR.KNTTP.NE.NTT.OR.KNTTD.NE.NTT) THEN WRITE(IOIMP,*) 'Dimensions non concordantes.' IRET=-2 OK=.FALSE. ENDIF IF(IMPR.GT.5.OR.(.NOT.OK)) THEN WRITE(IOIMP,*) 'KNTTT=',KNTTT WRITE(IOIMP,*) 'KNTTP=',KNTTP WRITE(IOIMP,*) 'KNTTD=',KNTTD WRITE(IOIMP,*) 'NTT =',NTT WRITE(IOIMP,*) 'NJA =',NJA WRITE(IOIMP,*) 'Vérification des supports géométriques...' ENDIF ISPG=0 OK=.TRUE. IF (KISPGP.NE.0) ISPG=KISPGP IF (KISPGD.NE.0) ISPG=KISPGD IF (KISPGT.NE.0) ISPG=KISPGT IF (ISPG.EQ.0) THEN WRITE(IOIMP,*) 'Pas de supports géométriques ?' IRET=-3 OK=.FALSE. ENDIF IF (KISPGP.EQ.0) KISPGP=ISPG IF (KISPGD.EQ.0) KISPGD=ISPG IF (KISPGT.EQ.0) KISPGT=ISPG IF (KISPGP.NE.ISPG.OR.KISPGD.NE.ISPG.OR.KISPGT.NE.ISPG) THEN WRITE(IOIMP,*) 'SPGs non concordants.' IRET=-4 OK=.FALSE. ENDIF IF(IMPR.GT.5.OR.(.NOT.OK)) THEN WRITE(IOIMP,*) 'KISPGT=',KISPGT WRITE(IOIMP,*) 'KISPGP=',KISPGP WRITE(IOIMP,*) 'KISPGD=',KISPGD WRITE(IOIMP,*) 'Vérification des segments MINC...' ENDIF IMINC=0 OK=.TRUE. IF (KMINCP.NE.0) IMINC=KMINCP IF (KMINCD.NE.0) IMINC=KMINCD IF (KMINC .NE.0) IMINC=KMINC IF (IMINC.EQ.0) THEN WRITE(IOIMP,*) 'Pas de supports géométriques ?' IRET=-5 OK=.FALSE. ENDIF IF (KMINCP.EQ.0) KMINCP=IMINC IF (KMINCD.EQ.0) KMINCD=IMINC IF (KMINC .EQ.0) KMINC =IMINC IF (KMINCP.NE.IMINC.OR.KMINCD.NE.IMINC.OR.KMINC.NE.IMINC) THEN WRITE(IOIMP,*) 'Segments MINC non concordants.' IRET=-6 OK=.FALSE. ENDIF IF(IMPR.GT.5.OR.(.NOT.OK)) THEN WRITE(IOIMP,*) 'KMINC =',KMINC WRITE(IOIMP,*) 'KMINCP=',KMINCP WRITE(IOIMP,*) 'KMINCD=',KMINCD ENDIF ENDIF SEGDES MATRIK IF (IRET.NE.0) GOTO 9999 * * Normal termination * RETURN * * Format handling * * * Error handling * 9999 CONTINUE WRITE(IOIMP,*) 'An error was detected in vermat.eso' RETURN * * End of VERMAT * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales