Download rlence.eso

Back to the list

   1 : C RLENCE    SOURCE    CHAT      05/01/13    03:01:10     5004           
   2 :       SUBROUTINE RLENCE(MELCEN,MELTFA,MELFAC,MFACEL,MELEME)
   3 : C     
   4 : C************************************************************************
   5 : C     
   6 : C PROJET            :  CASTEM 2000
   7 : C     
   8 : C NOM               :  RLENCE
   9 : C     
  10 : C DESCRIPTION       :  Cette subroutine est appellée par la subroutine
  11 : C                      GRADGE (calcul des coefficient pour le gradient
  12 : C                      d'un CHPOINT 'CENTRE')
  13 : C     
  14 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  15 : C     
  16 : C AUTEUR            :  A. Beccantini, SFME/LTMF
  17 : C     
  18 : C************************************************************************
  19 : C     
  20 : C     
  21 : C APPELES (Outils)  : 
  22 : C     
  23 : C APPELES (Calcul)  :
  24 : C     
  25 : C     
  26 : C************************************************************************
  27 : C     
  28 : C INPUT    :     ICEN   : 'CENTRE' points
  29 : C
  30 : C                IELTFA : Element-faces
  31 : C
  32 : C                IFAC   : 'FACE' points
  33 : C
  34 : C                IFACEL : Left center - face center -right center
  35 : C
  36 : C     
  37 : C OUTPUT   :     MELEME  : stencil to compute gradient
  38 : C     
  39 : C************************************************************************
  40 : C     
  41 : C HISTORIQUE (Anomalies et modifications éventuelles)
  42 : C     
  43 : C HISTORIQUE : 04.07.2003
  44 : C     
  45 : C************************************************************************
  46 : C     
  47 : C     
  48 : C     
  49 : C**** Variables de COOPTIO
  50 : C     
  51 :       IMPLICIT INTEGER(I-N)
  52 :       INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  53 :      &     ,IOTER,   IOLEC,  IOIMP,   IOCAR,  IOACQ
  54 :      &     ,IOPER,   IOSGB,  IOGRA,   IOSAU,  IORES
  55 :      &     ,IECHO,   IIMPI,  IOSPI
  56 :      &     ,IDIM
  57 :      &     ,MCOORD      
  58 :      &     ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  59 :      &     ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  60 :      &     ,NORINC,NORVAL,NORIND,NORVAD
  61 :      &     ,NUCROU, IPSAUV, IFICLE, IPREFI
  62 :      &     ,IREFOR, ISAFOR
  63 : C
  64 : C     
  65 :       INTEGER NBSOUS, NSOU, JG, NBNN, NBELEM, NBREF
  66 :      &     ,NGVOI,NLVOI,NCENG,NCEND, NCEN
  67 :      &     ,ISOUS, ICEN, IELEM, IVOI
  68 : C
  69 : -INC CCOPTIO
  70 : -INC SMLENTI
  71 : -INC SMELEME
  72 :       POINTEUR MELCEN.MELEME,MELTFA.MELEME,MELFAC.MELEME,MFACEL.MELEME
  73 :       POINTEUR MLELTF.MLENTI, MLEFAC.MLENTI
  74 : 
  75 : C
  76 :       SEGACT MELCEN
  77 :       SEGACT MELTFA
  78 :       SEGACT MFACEL
  79 : C
  79 :       CALL KRIPAD(MELFAC,MLEFAC)
  80 : C     SEGINI MLEFAC
  81 :       SEGACT MELFAC
  82 : C
  83 : C     MELEME has the same structure than 'ELTFA'
  84 : C     Each element of MELEME has one point more than each element of
  85 : C     'ELTFA'
  86 : C
  87 :       NBSOUS=MELTFA.LISOUS(/1)
  88 :       NSOU=MAX(NBSOUS,1)
  89 :       JG=NSOU
  90 :       SEGINI MLENTI
  91 :       SEGINI MLELTF
  92 : C
  93 : C**** MLENTI contains the pointers of the elementary meshes
  94 : C     of ELTFA
  95 : C
  96 :       IF (NSOU.EQ.1)THEN
  97 :          MLENTI.LECT(1)=MELTFA
  98 :       ELSE
  99 :          DO ISOUS=1,NSOU,1
 100 :             IPT1=MELTFA.LISOUS(ISOUS)
 101 :             MLENTI.LECT(ISOUS)=IPT1
 102 :          ENDDO
 103 :       ENDIF
 104 : C
 105 :       ICEN=0
 106 :       DO ISOUS=1,NSOU,1
 107 :          IPT1=MLENTI.LECT(ISOUS)
 108 :          SEGACT IPT1
 109 :          NBNN=IPT1.NUM(/1)+1
 110 :          NBELEM=IPT1.NUM(/2)
 111 :          NBREF=0
 112 :          NBSOUS=0
 113 :          SEGINI IPT2
 114 :          MLELTF.LECT(ISOUS)=IPT2
 115 : C        POLY elts
 116 :          IPT2.ITYPEL=32
 117 :          DO IELEM=1,NBELEM,1
 118 :             ICEN=ICEN+1
 119 :             NCEN=MELCEN.NUM(1,ICEN)
 120 :             IPT2.NUM(NBNN,IELEM)=NCEN
 121 :             DO IVOI=1,NBNN-1,1
 122 :                NGVOI=IPT1.NUM(IVOI,IELEM)
 123 :                NLVOI=MLEFAC.LECT(NGVOI)
 124 :                NCENG=MFACEL.NUM(1,NLVOI)
 125 :                NCEND=MFACEL.NUM(3,NLVOI)
 126 :                IF(NCENG .EQ. NCEND)THEN
 127 : C
 128 : C**************** We are on the BC
 129 : C
 130 :                   IF(NCEND .NE. NCEN)THEN
 131 :                      WRITE(IOIMP,*) 'subroutine rlence.eso. 1'
 131 :                      CALL ERREUR(5)
 132 :                      GOTO 9999
 133 :                   ENDIF
 134 :                   IPT2.NUM(IVOI,IELEM)=NGVOI
 135 :                ELSEIF(NCENG .EQ. NCEN)THEN
 136 :                   IPT2.NUM(IVOI,IELEM)=NCEND
 137 :                ELSEIF(NCEND .EQ. NCEN)THEN
 138 :                   IPT2.NUM(IVOI,IELEM)=NCENG
 139 :                ELSE
 140 :                   WRITE(IOIMP,*) 'subroutine rlence.eso. 2'
 140 :                   CALL ERREUR(5)
 141 :                   GOTO 9999
 142 :                ENDIF
 143 :             ENDDO
 144 :          ENDDO
 145 :          SEGDES IPT1
 146 :          SEGDES IPT2
 147 :       ENDDO
 148 : C
 149 :       SEGDES MELCEN
 150 :       SEGDES MELTFA
 151 :       SEGDES MELFAC
 152 :       SEGDES MFACEL
 153 :       SEGSUP MLENTI
 154 :       SEGSUP MLEFAC
 155 : C
 156 :       IF(NSOU .EQ. 1)THEN
 157 :          MELEME=MLELTF.LECT(1)
 158 :       ELSE
 159 :          NBNN=0
 160 :          NBELEM=0
 161 :          NBSOUS=NSOU
 162 :          NBREF=0
 163 :          SEGINI MELEME
 164 :          DO ISOUS=1,NSOU,1
 165 :             MELEME.LISOUS(ISOUS)=MLELTF.LECT(ISOUS)
 166 :          ENDDO
 167 :          SEGDES MELEME
 168 :       ENDIF
 169 : C
 170 :       SEGSUP MLELTF
 171 : C
 172 :  9999 RETURN
 173 :       END
 174 :  
 175 :  

© Cast3M 2003 - All rights reserved.
Disclaimer