* fichier :  lire_med_01.dgibi
************************************************************************
************************************************************************
 
* Presentation : Ce cas-test permet de 'LIRE' des fichiers au format MED
*                fournis par le LGLS pour validation
*                - v3.0.7
*                - v3.2.1
*
* Ameliorations a prevoir :
*                - 'LIRE' les MCHAML aux points d'intégration
*
* Creation : 11/03/2014
* Createur : C. BERTHINIER
*
* Modifications :
* CB215821 26/06/2015 : Passage à la lecture dans une TABLE pour les
*                       noms à plus de 8 caractères
* CB215821 01/02/2018 : Passage a la version 3.2.1 de MED
*                       Ajout de la lecture des CHPOINT (Statiques & Temporels)
*                       Ajout de la lecture des MCHAML  (Statiques & Temporels)
************************************************************************
 
* repertoire des fichiers "divers"
DIVERS 
= VENV 'CASTEM_DIVERS'
;* Test si 64 bits. Sortie sinon
'
SI' 
(2**31 < 0) ; '
MESS' 'MED 
32 bits 
non disponible'
; '
FIN'
; '
FINSI'
; 
*
 
************************************************************************
* PROCEDURE POUR PARCOURIR LA TABLE LUES DE MANIERE INCREMENTALE
************************************************************************
'DEBP' MEDTAB ITAB*'TABLE';
  LIST_EXCEPTION 
='
MOTS' 'TRI7' 'QUA9'
;'
COMM' 'Exception car 
MODE ne les prends pas en compte'
; 'REPE' SURDIM DIMT;
    OBJ1 
= ITAB.
('
MOT' TAB2. 
&SURDIM
);    Tit1 
='
CHAI' FIC1 ' : ' 
('
MOT' TAB2. 
&SURDIM
) ; 
*   Cas des POINTS
   'SI' ('EGA' TYP1 'POINT   ');
      Tit1 
='
CHAI' Tit1 ':POINT'
;   'FINS';
*   Cas des MAILLAGES
   'SI' ('EGA' TYP1 'MAILLAGE');
      Tit1 
='
CHAI' Tit1 ':MAILLAGE'
;   'FINS';
 
*   Cas des CHAMPS uniques
   'SI' ('EGA' TYP1 'CHPOINT');
      Tit1 
='
CHAI' Tit1 ':CHPOINT'
;   'FINS';
   'SI' ('EGA' TYP1 'MCHAML' );
      MCH  
='
CHAN' 'CONS' OBJ1 'CONS1'
;      MAILi
='
EXTR' MCH 'MAILLAGE' 
;     '
SI' 
('
NON' 
('
EXIS' LIST_EXCEPTION TYPEL '
OU'
));        MOCH 
='
MODE' MAILi 'MECANIQUE' 'CONS' 'CONS1'
;        Tit1 
='
CHAI' Tit1 ':MCHAML'
;     'FINS';
   'FINS';
 
*   Cas des Champs a plusieurs instants
   'SI' ('EGA' TYP1 'TABLE');
      DIM2 
='
DIME' OBJ1.'TEMPS' 
;      TAB_TE 
= OBJ1.
('
MOT' TAB3. 
1);      TAB_CH 
= OBJ1.
('
MOT' TAB3. 
2);     'REPE' SURJ DIM2;
        Tps = OBJ1.'TEMPS' .(IND_TE.&SURJ) ;
        OBJ2= TAB_CH       .(IND_TE.&SURJ) ;
        Tit2
='
CHAI' Tit1 ' 
- Temps
=' Tps 
;       'SI'('EGA' TYP2 'CHPOINT');
          Tit2 
='
CHAI' Tit2 ':CHPOINT'
;       'FINS';
       'SI' ('EGA' TYP2 'MCHAML');
          MCH  
='
CHAN' 'CONS' OBJ2 'CONS1'
;          MAILi
='
EXTR' MCH 'MAILLAGE' 
;         '
SI' 
('
NON' 
('
EXIS' LIST_EXCEPTION TYPEL '
OU'
));            MOCH 
='
MODE' MAILi 'MECANIQUE' 'CONS' 'CONS1'
;            Tit2 
='
CHAI' Tit2 ':MCHAML'
;         'FINS';
       'FINS';
     'FIN' SURJ;
   'FINS';
 'FIN' SURDIM;
'FINP';
 
 
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
* Version 3.0.7
***********************************************************************
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_2D_biquadratic_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_2D_quadratic.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_2D_quadratic_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader33.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_plan_3D.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_mechanic_tetra.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_mechanic_t_quad_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_mechanic_t_quad.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_pyramids.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_pyramids_quadratic.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_sphere_hexa.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_sphere_h_quad_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
*  - MAILLAGES avec plusieurs groupes par famille
***********************************************************************
FIC1 
= '
CHAI' 'v3.0.7
/Mesh_structelem.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
***********************************************************************
* Lecture de CHPOINT Statiques
*  -MAILLAGES
*  -CHPOINT
***********************************************************************
FIC1 
= '
CHAI' 'v3.0.7
/testNodeFieldOnAll.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.0.7
/testNodeFieldOnPart.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
 
 
 
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
* Version 3.2.1
***********************************************************************
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_2D_biquadratic_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_2D_quadratic.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_2D_quadratic_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_plan_3D.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_mechanic_tetra.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_mechanic_t_quad_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_mechanic_t_quad.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_pyramids.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_pyramids_quadratic.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_sphere_hexa.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_sphere_h_quad_arc.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
***********************************************************************
* Lecture de MAILLAGES Statiques avec plusieurs types d'éléments
*  - MAILLAGES avec plusieurs groupes par famille
***********************************************************************
FIC1 
= '
CHAI' 'v3.2.1
/Mesh_structelem.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
***********************************************************************
* Lecture de CHPOINT Statiques
*  -MAILLAGES
*  -CHPOINT
***********************************************************************
FIC1 
= '
CHAI' 'v3.2.1
/testNodeFieldOnAll.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/testNodeFieldOnPart.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
***********************************************************************
* Lecture de CHAMPS Temporels
*  -MAILLAGES
*  -CHPOINT
*  -MCHAML
***********************************************************************
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader10.
med' 
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader11.
med' 
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Valeurs aux points de Gauss
 
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader13.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Type d'element incompatible:POLYGON & HEXAGON
 
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader17.
med' 
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;TAB1 
= '
LIRE' 'MED' FIC2 
;MEDTAB TAB1;
 
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader25.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Valeurs aux points de Gauss
 
FIC1 
= '
CHAI' 'v3.2.1
/ForMEDReader29.
med'
;FIC2 
= '
CHAI' 
('CHAINE' DIVERS '
/MED
/' FIC1
) ;* TAB1 = 'LIRE' 'MED' FIC2 ;
* Incompatible actuellement car : Valeurs aux points de Gauss
 
FIN;