Download testja.eso

Back to the list

   1 : C TESTJA    SOURCE    GOUNAND   05/12/21    21:37:15     5281           
   2 :       SUBROUTINE TESTJA()
   3 :       IMPLICIT REAL*8 (A-H,O-Z)
   4 :       IMPLICIT INTEGER (I-N)
   5 : C***********************************************************************
   6 : C NOM         : TESTJA
   7 : C PROJET      : Noyau linéaire NLIN
   8 : C DESCRIPTION : On vérifie le calcul de la matrice jacobienne et de son
   9 : C               déterminant sur quelques exemples...
  10 : C
  11 : C LANGAGE     : ESOPE
  12 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  13 : C               mél : gounand@semt2.smts.cea.fr
  14 : C***********************************************************************
  15 : C APPELES          : 
  16 : C APPELES (E/S)    : 
  17 : C APPELES (BLAS)   :
  18 : C APPELES (CALCUL) :
  19 : C APPELE PAR       : PILOT
  20 : C***********************************************************************
  21 : C SYNTAXE GIBIANE    :
  22 : C ENTREES            :
  23 : C ENTREES/SORTIES    :
  24 : C SORTIES            :
  25 : C***********************************************************************
  26 : C VERSION    : v1, 12/08/99, version initiale
  27 : C HISTORIQUE : v1, 12/08/99, création
  28 : C HISTORIQUE :
  29 : C HISTORIQUE :
  30 : C***********************************************************************
  31 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  32 : C en cas de modification de ce sous-programme afin de faciliter
  33 : C la maintenance !
  34 : C***********************************************************************
  35 : -INC CCOPTIO
  36 : -INC CCREEL
  37 : CBEGININCLUDE SELREF
  38 :       SEGMENT ELREF
  39 :       CHARACTER*(LNNOM)  NOMLRF
  40 :       CHARACTER*(LNFORM) FORME 
  41 :       CHARACTER*(LNTYPL) TYPEL 
  42 :       CHARACTER*(LNESP)  ESPACE
  43 :       INTEGER DEGRE
  44 :       REAL*8 XCONOD(NDIMEL,NBNOD)
  45 :       INTEGER NPQUAF(NBDDL)
  46 :       INTEGER NUMCMP(NBDDL)
  47 :       INTEGER QUENOD(NBDDL)
  48 :       INTEGER ORDDER(NDIMEL,NBDDL)
  49 :       POINTEUR MBPOLY.POLYNS
  50 :       ENDSEGMENT
  51 :       SEGMENT ELREFS
  52 :       POINTEUR LISEL(0).ELREF
  53 :       ENDSEGMENT
  54 : CENDINCLUDE SELREF
  55 :       POINTEUR MYLRFS.ELREFS
  56 :       POINTEUR MYLRF.ELREF
  57 : CBEGININCLUDE SPOGAU
  58 :       SEGMENT POGAU
  59 :       CHARACTER*(LNNPG)  NOMPG
  60 :       CHARACTER*(LNTPG)  TYPMPG
  61 :       CHARACTER*(LNFPG)  FORLPG
  62 :       INTEGER NORDPG
  63 :       REAL*8 XCOPG(NDLPG,NBPG)
  64 :       REAL*8 XPOPG(NBPG)
  65 :       ENDSEGMENT
  66 :       SEGMENT POGAUS
  67 :       POINTEUR LISPG(0).POGAU
  68 :       ENDSEGMENT
  69 : CENDINCLUDE SPOGAU
  70 :       POINTEUR MYPGS.POGAUS
  71 :       POINTEUR MYPG.POGAU
  72 : *
  73 :       INTEGER IMPR,IRET
  74 : *
  75 : * Executable statements
  76 : *
  77 :       IMPR=0
  78 :       WRITE(IOIMP,*) 'Entrée dans testja'
  79 : *
  80 : * Initialisation du segment contenant les informations sur les
  81 : * éléments de référence.
  82 : *
  82 :       CALL INLRFS(MYLRFS,IMPR,IRET)
  83 :       IF (IRET.NE.0) GOTO 9999
  84 : *
  85 : * Initialisation du segment contenant les informations sur les
  86 : * méthodes d'intégration (type Gauss).
  87 : *
  87 :       CALL INPGS(MYPGS,IMPR,IRET)
  88 :       IF (IRET.NE.0) GOTO 9999
  89 : *
  90 : * On teste sur un élément quadrilatéral à quatre noeuds (D&T p.54-55)
  91 : * avec sept points de Gauss, dans le cas rectangulaire, et dans le cas
  92 : * où l'élément est illicite (les côtés opposés se croisent).
  93 : * Dimension des espaces de référence et réels : 2, 2
  94 : *
  94 :       CALL TESJA1(MYLRFS,MYPGS,
  95 :      $     IMPR,IRET)
  96 :       IF (IRET.NE.0) GOTO 9999
  97 : *
  98 : * On teste sur un segment à deux noeuds (D&T p.96)
  99 : * avec cinq points de Gauss (sens direct et indirect pour le segment). 
 100 : * Dimension des espaces de référence et réels : 1, 1
 101 : *
 101 :       CALL TESJA2(MYLRFS,MYPGS,
 102 :      $     IMPR,IRET)
 103 :       IF (IRET.NE.0) GOTO 9999
 104 : *
 105 : * On teste sur un triangle à trois noeuds (D&T p.108)
 106 : * avec sept points de Gauss (sens direct et indirect pour le triangle). 
 107 : * Dimension des espaces de référence et réels : 2, 2
 108 : *
 108 :       CALL TESJA3(MYLRFS,MYPGS,
 109 :      $     IMPR,IRET)
 110 :       IF (IRET.NE.0) GOTO 9999
 111 : *
 112 : * On teste sur un tétraèdre à quatre noeuds (D&T p.131)
 113 : * avec cinq points de Gauss (sens direct et indirect pour le tétraèdre). 
 114 : * Dimension des espaces de référence et réels : 3, 3
 115 : *
 115 :       CALL TESJA4(MYLRFS,MYPGS,
 116 :      $     IMPR,IRET)
 117 :       IF (IRET.NE.0) GOTO 9999
 118 : *
 119 : * On teste sur un segment à deux noeuds en 3D (D&T p.215 pour le 2D)
 120 : * avec cinq points de Gauss (sens direct et indirect pour le segment). 
 121 : * Dimension des espaces de référence et réels : 1, 3
 122 : *
 122 :       CALL TESJA5(MYLRFS,MYPGS,
 123 :      $     IMPR,IRET)
 124 :       IF (IRET.NE.0) GOTO 9999
 125 : *
 126 : * Normal termination
 127 : *
 128 :       IRET=0
 128 :       CALL ECRLOG(.TRUE.)
 129 :       RETURN
 130 : *
 131 : * Format handling
 132 : *
 133 : *
 134 : * Error handling
 135 : *
 136 :  9999 CONTINUE
 137 :       IRET=1
 138 :       WRITE(IOIMP,*) 'An error was detected in subroutine testja'
 138 :       CALL ECRLOG(.FALSE.)
 139 :       RETURN
 140 : *
 141 : * End of subroutine testja
 142 : *
 143 :       END
 144 : 
 145 :  

© Cast3M 2003 - All rights reserved.
Disclaimer