Download sh2fnf.eso

Back to the list

   1 : C SH2FNF    SOURCE    CHAT      07/10/29    21:28:29     5940           
   2 :       SUBROUTINE SH2FNF(MYLRF,JXCOPG,
   3 :      $     FNPG,DFNPG,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 :       IMPLICIT INTEGER (I-N)
   7 : C***********************************************************************
   8 : C NOM         : SH2FNF
   9 : C DESCRIPTION : Conversion shape.eso -> kfnref.eso
  10 : C
  11 : C
  12 : C
  13 : C LANGAGE     : ESOPE
  14 : C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  15 : C               mél : gounand@semt2.smts.cea.fr
  16 : C***********************************************************************
  17 : C APPELES          : 
  18 : C APPELES (E/S)    : 
  19 : C APPELES (BLAS)   :
  20 : C APPELES (CALCUL) :
  21 : C APPELE PAR       :
  22 : C***********************************************************************
  23 : C SYNTAXE GIBIANE    :
  24 : C ENTREES            :
  25 : C ENTREES/SORTIES    :
  26 : C SORTIES            :
  27 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  28 : C***********************************************************************
  29 : C VERSION    : v1, 25/10/2005, version initiale
  30 : C HISTORIQUE : v1, 25/10/2005, création
  31 : C HISTORIQUE :
  32 : C HISTORIQUE :
  33 : C***********************************************************************
  34 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  35 : C en cas de modification de ce sous-programme afin de faciliter
  36 : C la maintenance !
  37 : C***********************************************************************
  38 : -INC CCGEOME
  39 : -INC CCOPTIO
  40 : CBEGININCLUDE SELREF
  41 :       SEGMENT ELREF
  42 :       CHARACTER*(LNNOM)  NOMLRF
  43 :       CHARACTER*(LNFORM) FORME 
  44 :       CHARACTER*(LNTYPL) TYPEL 
  45 :       CHARACTER*(LNESP)  ESPACE
  46 :       INTEGER DEGRE
  47 :       REAL*8 XCONOD(NDIMEL,NBNOD)
  48 :       INTEGER NPQUAF(NBDDL)
  49 :       INTEGER NUMCMP(NBDDL)
  50 :       INTEGER QUENOD(NBDDL)
  51 :       INTEGER ORDDER(NDIMEL,NBDDL)
  52 :       POINTEUR MBPOLY.POLYNS
  53 :       ENDSEGMENT
  54 :       SEGMENT ELREFS
  55 :       POINTEUR LISEL(0).ELREF
  56 :       ENDSEGMENT
  57 : CENDINCLUDE SELREF
  58 :       POINTEUR MYLRF.ELREF
  59 : CBEGININCLUDE SMCHAEL
  60 :       SEGMENT MCHAEL
  61 :       POINTEUR IMACHE(N1).MELEME
  62 :       POINTEUR ICHEVA(N1).MCHEVA
  63 :       ENDSEGMENT
  64 :       SEGMENT MCHEVA
  65 :       REAL*8 VELCHE(NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM)
  66 :       ENDSEGMENT
  67 :       SEGMENT LCHEVA
  68 :       POINTEUR LISCHE(NBCHE).MCHEVA
  69 :       ENDSEGMENT
  70 : CENDINCLUDE SMCHAEL
  71 :       POINTEUR JXCOPG.MCHEVA
  72 :       POINTEUR FNPG.MCHEVA
  73 :       POINTEUR DFNPG.MCHEVA
  74 : *
  75 :       SEGMENT/SHXX/(SHPXXX(6,NBB)*D)                                            
  76 : *
  77 :       INTEGER IMPR,IRET
  78 :       EXTERNAL SHAPE
  79 : *     
  80 : * Executable statements
  81 : *
  82 :       IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans sh2fnf.eso' 
  83 : *
  84 :       SEGACT MYLRF
  85 : *
  86 : * Conversion élément nlin -> élément castem
  87 : *
  88 :       IF (MYLRF.NOMLRF.EQ.'H1D1PY5') THEN
  89 :          IELE=25
  90 :       ELSEIF (MYLRF.NOMLRF.EQ.'H1D2PY13') THEN
  91 :          IELE=26
  92 :       ELSEIF (MYLRF.NOMLRF.EQ.'H1D2PR15') THEN
  93 :          IELE=17
  94 :       ELSEIF (MYLRF.NOMLRF.EQ.'H1D2CU20') THEN
  95 :          IELE=15
  96 :       ELSE
  97 :          WRITE(IOIMP,*) 'Element ',MYLRF.NOMLRF,' inconnu'
  98 :          GOTO 9999
  99 :       ENDIF
 100 : *
 101 :       NDIML=MYLRF.ORDDER(/1)
 102 :       NDDL=MYLRF.ORDDER(/2)
 103 :       NBB=NDDL
 104 :       SEGINI,SHXX
 105 :       SEGACT JXCOPG
 106 :       IDIMPG=JXCOPG.VELCHE(/4)
 107 :       IF (IDIMPG.NE.NDIML) THEN
 108 :          WRITE(IOIMP,*) 'Erreur grave ?'
 109 :          GOTO 9999
 110 :       ENDIF
 111 :       NPG=JXCOPG.VELCHE(/5)
 112 :       NBELFV=JXCOPG.VELCHE(/6)
 113 :       NBLIG=1
 114 :       NBCOL=NDDL
 115 :       N2LIG=1
 116 :       N2COL=1
 117 :       NBPOI=NPG
 118 :       NBELM=NBELFV
 119 :       SEGINI,FNPG
 120 :       N2COL=NDIML
 121 :       SEGINI,DFNPG
 122 :       QSI=0.D0
 123 :       ETA=0.D0
 124 :       DZE=0.D0
 125 :       DO IBELFV=1,NBELFV
 126 :          DO IPG=1,NPG
 127 :             IF (NDIML.GE.1) THEN
 128 :                QSI=JXCOPG.VELCHE(1,1,1,1,IPG,IBELFV)
 129 :                IF (NDIML.GE.2) THEN
 130 :                   ETA=JXCOPG.VELCHE(1,1,1,2,IPG,IBELFV)
 131 :                   IF (NDIML.GE.3) THEN
 132 :                      DZE=JXCOPG.VELCHE(1,1,1,3,IPG,IBELFV)
 133 :                   ENDIF
 134 :                ENDIF
 135 :             ENDIF
 136 : *     
 136 :             CALL SHAPE(QSI,ETA,DZE,IELE,SHPXXX,IRET)
 137 :             IF (IRET.EQ.0) THEN
 138 : C     ERREUR LES FONCTIONS DE FORME PAS ENCORE IMPLEMENTEES
 139 :                MOTERR(1:4)=NOMS(IELE)
 139 :                CALL ERREUR(68)
 140 :                GOTO 9999
 141 :             ENDIF
 142 :             DO IDDL=1,NDDL
 143 :                FNPG.VELCHE(1,IDDL,1,1,IPG,IBELFV)=SHPXXX(1,IDDL)
 144 :                DO IDIML=1,NDIML
 145 :                   DFNPG.VELCHE(1,IDDL,1,IDIML,IPG,IBELFV)=
 146 :      $                 SHPXXX(IDIML+1,IDDL)
 147 :                ENDDO
 148 :             ENDDO
 149 :          ENDDO
 150 :       ENDDO
 151 :       SEGSUP SHXX
 152 :       SEGDES DFNPG
 153 :       SEGDES FNPG
 154 :       SEGDES JXCOPG
 155 :       SEGDES MYLRF
 156 : *
 157 : * Normal termination
 158 : *
 159 :       IRET=0
 160 :       RETURN
 161 : *
 162 : * Format handling
 163 : *
 164 : *
 165 : * Error handling
 166 : *
 167 :  9999 CONTINUE
 168 :       IRET=1
 169 :       WRITE(IOIMP,*) 'An error was detected in subroutine sh2fnf'
 170 :       RETURN
 171 : *
 172 : * End of subroutine SH2FNF
 173 : *
 174 :       END
 175 : 
 176 :  
 177 :  
 178 :  

© Cast3M 2003 - All rights reserved.
Disclaimer