kdom2a
C KDOM2A SOURCE CHAT 05/01/13 00:53:50 5004 C C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : KDOM2A C C DESCRIPTION : Subroutine called by KDOM1 C Axial-symmetric case C C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI) C C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/LTMF C C************************************************************************ C C E/S : MTAB : domaine table C MELEMQ : QUAF mesh C C************************************************************************ C C Created the 24/02/04 C C C**** Variables de COOPTIO C C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES C & ,IECHO, IIMPI, IOSPI C & ,IDIM, IFICLE, IPREFI C & ,MCOORD C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU C & ,NORINC,NORVAL,NORIND,NORVAD C & ,NUCROU, IPSAUV, IREFOR, ISAFOR C IMPLICIT INTEGER(I-N) INTEGER MTAB, MELEMQ, NBSOUS, ISOUS LOGICAL LOSEG3, LOTRI7, LOQUA9 C -INC PPARAM -INC CCOPTIO -INC SMELEME C C Elements allowed are SEG3, TRI7, QUA9 C ITYPEL 3 7 11 C They can be referred just once C We define LISTSO s.t. C LOSEG3=.FALSE. LOTRI7=.FALSE. LOQUA9=.FALSE. C MELEME=MELEMQ SEGACT MELEME NBSOUS=MELEME.LISOUS(/1) IF(NBSOUS .EQ. 0) NBSOUS=1 DO ISOUS=1,NBSOUS,1 IF(NBSOUS .NE. 1)THEN IPT1=MELEME.LISOUS(ISOUS) SEGACT IPT1 ELSE IPT1=MELEME ENDIF C IF(IPT1.ITYPEL .EQ. 3)THEN IF(NBSOUS .NE. 1)THEN C SEG3 with TRI7 or QUA9 -> Error C 2 SEG3 in the same mesh -> Error C Note that in that case IPT1=MELEMQ WRITE(IOIMP,*) 'Subroutine kdom2a' WRITE(IOIMP,*) 'Mesh type not recognized' ENDIF LOSEG3=.TRUE. C C********** SEG3 C C We compute C MTAB . 'XXVOLUM' C MTAB . 'CENTRE' C and we change the positions of the central points in MELEMQ C IF(IERR.NE.0)GOTO 9999 C ELSEIF(IPT1.ITYPEL .EQ. 7)THEN C C********** TRI7 C IF(LOTRI7)THEN C Elt already referred WRITE(IOIMP,*) 'Subroutine kdom2a' WRITE(IOIMP,*) 'Mesh type not recognized' GOTO 9999 ENDIF LOTRI7=.TRUE. C ELSEIF(IPT1.ITYPEL .EQ. 11)THEN C C********** QUA9 C IF(LOQUA9)THEN C Elt already referred WRITE(IOIMP,*) 'Subroutine kdom2a' WRITE(IOIMP,*) 'Mesh type not recognized' GOTO 9999 ENDIF LOQUA9=.TRUE. ELSE C Elt already referred WRITE(IOIMP,*) 'Subroutine kdom2a' WRITE(IOIMP,*) 'Mesh type not recognized' GOTO 9999 ENDIF SEGDES IPT1 ENDDO C IF(NBSOUS .NE. 1) SEGDES MELEME C C**** 2 cases: C SEG3 -> Everything is done C TRI7/QUA9 -> We have checked that the meshes C is not bizarre C Everything is to do C IF(.NOT. LOSEG3)THEN IF(IERR .NE. 0)GOTO 9999 ENDIF C 9999 RETURN C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales