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