Download kdom2a.eso

Back to the list

   1 : C KDOM2A    SOURCE    CHAT      05/01/13    00:53:50     5004           
   2 :       SUBROUTINE KDOM2A(MTAB,MELEMQ)
   3 : C
   4 : C************************************************************************
   5 : C
   6 : C PROJET            :  CASTEM 2000
   7 : C
   8 : C NOM               :  KDOM2A
   9 : C                      
   9 : C DESCRIPTION       :  Subroutine called by KDOM1
  10 : C                      Axial-symmetric case
  11 : C     
  12 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  13 : C      
  14 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/LTMF                        
  15 : C
  16 : C************************************************************************
  17 : C
  18 : C E/S               : MTAB   : domaine table
  19 : C                     MELEMQ : QUAF mesh
  20 : C
  21 : C************************************************************************
  22 : C
  23 : C Created the 24/02/04
  24 : C
  25 : C
  26 : C**** Variables de COOPTIO
  27 : C
  28 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  29 : C     &     ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  30 : C     &     ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  31 : C     &     ,IECHO,   IIMPI,  IOSPI
  32 : C     &     ,IDIM,    IFICLE, IPREFI     
  33 : C     &     ,MCOORD
  34 : C     &     ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  35 : C     &     ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  36 : C     &     ,NORINC,NORVAL,NORIND,NORVAD
  37 : C     &     ,NUCROU, IPSAUV, IREFOR, ISAFOR
  38 : C
  39 :       IMPLICIT INTEGER(I-N)
  40 :       INTEGER MTAB, MELEMQ, NBSOUS, ISOUS
  41 :       LOGICAL LOSEG3, LOTRI7, LOQUA9
  42 : C
  43 : -INC CCOPTIO
  44 : -INC SMELEME
  45 : C
  46 : C Elements allowed are SEG3, TRI7, QUA9
  47 : C ITYPEL                3      7    11
  48 : C They can be referred just once
  49 : C We define LISTSO s.t.
  50 : C
  51 :       LOSEG3=.FALSE.
  52 :       LOTRI7=.FALSE.
  53 :       LOQUA9=.FALSE.
  54 : C
  55 :       MELEME=MELEMQ
  56 :       SEGACT MELEME
  57 :       NBSOUS=MELEME.LISOUS(/1)
  58 :       IF(NBSOUS .EQ. 0) NBSOUS=1
  59 :       DO ISOUS=1,NBSOUS,1
  60 :          IF(NBSOUS .NE. 1)THEN
  61 :             IPT1=MELEME.LISOUS(ISOUS)
  62 :             SEGACT IPT1
  63 :          ELSE
  64 :             IPT1=MELEME
  65 :          ENDIF
  66 : C
  67 :          IF(IPT1.ITYPEL .EQ. 3)THEN
  68 :             IF(NBSOUS .NE. 1)THEN
  69 : C              SEG3 with TRI7 or QUA9 -> Error
  70 : C              2 SEG3 in the same mesh -> Error
  71 : C              Note that in that case IPT1=MELEMQ
  72 :                WRITE(IOIMP,*) 'Subroutine kdom2a'
  73 :                WRITE(IOIMP,*) 'Mesh type not recognized'
  73 :                CALL ERREUR(5)
  74 :             ENDIF
  75 :             LOSEG3=.TRUE.
  76 : C
  77 : C********** SEG3
  78 : C
  79 : C           We compute
  80 : C           MTAB . 'XXVOLUM'
  81 : C           MTAB . 'CENTRE'
  82 : C           and we change the positions of the central points in MELEMQ
  83 : C                     
  83 :             CALL KDOM3A(MTAB,IPT1)
  84 :             IF(IERR.NE.0)GOTO 9999
  85 : C
  86 :          ELSEIF(IPT1.ITYPEL .EQ. 7)THEN
  87 : C
  88 : C********** TRI7
  89 : C
  90 :             IF(LOTRI7)THEN
  91 : C              Elt already referred
  92 :                WRITE(IOIMP,*) 'Subroutine kdom2a'
  93 :                WRITE(IOIMP,*) 'Mesh type not recognized'
  93 :                CALL ERREUR(5)
  94 :                GOTO 9999
  95 :             ENDIF
  96 :             LOTRI7=.TRUE.
  97 : C         
  98 :          ELSEIF(IPT1.ITYPEL .EQ. 11)THEN
  99 : C
 100 : C********** QUA9
 101 : C
 102 :             IF(LOQUA9)THEN
 103 : C              Elt already referred
 104 :                WRITE(IOIMP,*) 'Subroutine kdom2a'
 105 :                WRITE(IOIMP,*) 'Mesh type not recognized'
 105 :                CALL ERREUR(5)
 106 :                GOTO 9999
 107 :             ENDIF
 108 :             LOQUA9=.TRUE.
 109 :          ELSE
 110 : C              Elt already referred
 111 :                WRITE(IOIMP,*) 'Subroutine kdom2a'
 112 :                WRITE(IOIMP,*) 'Mesh type not recognized'
 112 :                CALL ERREUR(5)
 113 :                GOTO 9999
 114 :          ENDIF
 115 :          SEGDES IPT1
 116 :       ENDDO
 117 : C
 118 :       IF(NBSOUS .NE. 1) SEGDES MELEME
 119 : C
 120 : C**** 2 cases:
 121 : C     SEG3 -> Everything is done
 122 : C     TRI7/QUA9 -> We have checked that the meshes 
 123 : C                  is not bizarre
 124 : C                  Everything is to do
 125 : C
 126 :       IF(.NOT. LOSEG3)THEN
 126 :          CALL KDOM4A(MTAB,MELEMQ)
 127 :          IF(IERR .NE. 0)GOTO 9999
 128 :       ENDIF
 129 : C
 130 :  9999 RETURN
 131 : C     
 132 :       END
 133 :  
 134 :  
 135 :  

© Cast3M 2003 - All rights reserved.
Disclaimer