ecimat
C ECIMAT SOURCE PV 20/09/26 21:16:32 10724 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : ECIMAT C DESCRIPTION : Impression d'un segment de type IMATRI. C Ce segment contient des groupes de C matrices élémentaires non assemblées. C cf. include SMMATRIK 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 : IMATRI, NIVIMP C ENTREES/SORTIES : - C SORTIES : - C CODE RETOUR (IRET) : - C IMATRI : segment de type IMATRI (include SMMATRIK) C NIVIMP : niveau d'impression. Suivant sa valeur, on obtient : C Convention (probablement non totalement respectée) : C ---------- 0 : presque rien (numéro de pointeur) C 1 : affichage du chapeau IMATRI C 2 : affichage des données concernant les objets C pointés par IMATRI (s'il y en a) C 3 : affichage du contenu des objets vectoriels C 4 : affichage du contenu des objets matriciels C On ne change pas l'état (actif ou inactif) du segment IMATRI. C*********************************************************************** C VERSION : v1, 01/04/98, version initiale C HISTORIQUE : v1, 01/04/98, création C HISTORIQUE : 29/10/98, modif. l'état du segment reste inchangé C en sortie 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*********************************************************************** -INC PPARAM -INC CCOPTIO -INC SMMATRIK * Variable d'état du segment IMATRK INTEGER IMAETA * * Executable statements * IF (IMATRI.EQ.0) THEN WRITE(IOIMP,*) 'Nil pointer transmitted to ecimat' GOTO 9999 ENDIF CALL OOOETA(IMATRI,IMAETA,IMOD) IF (IMAETA.NE.1) SEGACT IMATRI WRITE(IOIMP,2001) 'Segment IMATRI de pointeur ',IMATRI * NBME=LIZAFM(/2) NBSOUS=LIZAFM(/1) WRITE(IOIMP,2003) 'NBME =',NBME,'(nb groupe mat. élém.)' WRITE(IOIMP,2003) 'NBSOUS=',NBSOUS,'(nb sous-obj.)' WRITE(IOIMP,2004) 'KSPGP=',KSPGP,'KSPGD=',KSPGD WRITE(IOIMP,1999) 'Liste inconnues primales et duales' WRITE(IOIMP,2999) 'LISDUA(NBME)=',(LISDUA(N),N=1,NBME) WRITE(IOIMP,1999) 'Matrices élémentaires non assemblées' WRITE(IOIMP,1999) 'Tableau LIZAFM(NBSOUS,NBME)' DO 4 J=1,NBME DO 5 K=1,NBSOUS IZAFM=LIZAFM(K,J) WRITE(IOIMP,2007) 'LIZAFM(',K,',',J,')=',IZAFM, $ 'pointeur IZAFM' IF ((NIVIMP.GT.2).AND.(IZAFM.NE.0)) THEN * Affichage des IZAFM SEGACT IZAFM NP=AM(/2) MP=AM(/3) WRITE(IOIMP,2009) 'NP =',NP,'MP =',MP, $ '(nb points)' WRITE(IOIMP,2010) 'Matrice pour l''élément',L DO 7 N=1,NP * Affichage des AM WRITE(IOIMP,2011) (AM(L,N,M),M=1,MP) 7 CONTINUE 6 CONTINUE SEGDES IZAFM ENDIF WRITE(IOIMP,1998) 'End segment IZAFM' WRITE(IOIMP,1998) '---' 5 CONTINUE 4 CONTINUE IF (IMAETA.NE.1) SEGDES IMATRI * * Normal termination * RETURN * * Format handling * 1998 FORMAT (2X,A) 1999 FORMAT (A) 2001 FORMAT (A,1X,I6) 2004 FORMAT (2X,A,I6,4X,A,I6) 2008 FORMAT (4X,A,I6,1X,A) 2009 FORMAT (4X,A,I6,2X,A,I6,1X,A) 2010 FORMAT (6X,A,1X,I6) 2011 FORMAT (4(1X,1PE18.10)) 2999 FORMAT (2X,A,100(1X,A8)) * * Error handling * 9999 CONTINUE WRITE(IOIMP,*) 'An error was detected in subroutine ecimat' RETURN * * End of subroutine ECIMAT * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales