Salome HOME
Homard executable
[modules/homard.git] / src / tool / Creation_Maillage / cmchfe.F
diff --git a/src/tool/Creation_Maillage/cmchfe.F b/src/tool/Creation_Maillage/cmchfe.F
new file mode 100644 (file)
index 0000000..d4e0090
--- /dev/null
@@ -0,0 +1,127 @@
+      subroutine cmchfe ( indtet, indptp,
+     >                    tritet, cotrte, famtet,
+     >                    hettet, filtet, pertet,
+     >                    trifad, cotrvo, triint, trigpy,
+     >                    nufami )
+c ______________________________________________________________________
+c
+c                             H O M A R D
+c
+c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
+c
+c Version originale enregistree le 18 juin 1996 sous le numero 96036
+c aupres des huissiers de justice Simart et Lavoir a Clamart
+c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
+c aupres des huissiers de justice
+c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
+c
+c    HOMARD est une marque deposee d'Electricite de France
+c
+c Copyright EDF 1996
+c Copyright EDF 1998
+c Copyright EDF 2002
+c Copyright EDF 2020
+c ______________________________________________________________________
+c
+c    Creation du Maillage - Conformite - decoupage des Hexaedres
+c    -           -          -                          -
+c                         - par 1 Face - utilitaire E
+c                                 -                 -
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . indtet . es  .   1    . indice du dernier tetraedre cree           .
+c . indptp . e   .   1    . indice du dernier pere enregistre          .
+c . tritet . es  .nouvtf*4. numeros des 4 triangles des tetraedres     .
+c . cotrte . es  .nouvtf*4. code des 4 triangles des tetraedres        .
+c . famtet . es  . nouvte . famille des tetraedres                     .
+c . hettet . es  . nouvte . historique de l'etat des tetraedres        .
+c . filtet . es  . nouvte . premier fils des tetraedres                .
+c . pertet . es  . nouvte . pere des tetraedres                        .
+c .        .     .        . si pertet(i) > 0 : numero du tetraedre     .
+c .        .     .        . si pertet(i) < 0 : -numero dans pthepe     .
+c . trifad . e   . (4,0:2). triangles sur les faces coupees en 3       .
+c . cotrvo . e   . (4,0:2). code de ces triangles dans les pyramides   .
+c . triint . e   .  (4,2) . triangles internes a l'hexaedre            .
+c . trigpy . e   .   4    . triangle de la grande pyramide             .
+c . nufami . e   . 1      . famille a attribuer au tetraedre           .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+cgn      character*6 nompro
+cgn      parameter ( nompro = 'CMCHFE' )
+c
+c 0.2. ==> communs
+c
+#include "nouvnb.h"
+c
+c 0.3. ==> arguments
+c
+      integer indtet, indptp
+      integer tritet(nouvtf,4), cotrte(nouvtf,4), famtet(nouvte)
+      integer hettet(nouvte), filtet(nouvte), pertet(nouvte)
+      integer trifad(4,0:2), cotrvo(4,0:2)
+      integer triint(4,2)
+      integer trigpy(4)
+      integer nufami
+c
+c 0.4. ==> variables locales
+c
+      integer iaux
+c
+c 0.5. ==> initialisations
+c ______________________________________________________________________
+c
+#ifdef _DEBUG_HOMARD_
+      call dmflsh (iaux)
+#endif
+c
+c====
+c 2. les 4 tetraedres internes au decoupage selon une face d'hexaedre
+c    le tetraedre p est entre les pyramides p et p+1
+c====
+c
+      iaux = -indptp
+c
+      indtet = indtet + 1
+      call cmctet ( tritet, cotrte, famtet,
+     >              hettet, filtet, pertet,
+     >              trifad(1,0), trigpy(1), triint(1,2), triint(1,1),
+     >              cotrvo(1,0),         5,           1,           4,
+     >              iaux, nufami, indtet )
+c
+      indtet = indtet + 1
+      call cmctet ( tritet, cotrte, famtet,
+     >              hettet, filtet, pertet,
+     >              trifad(2,0), trigpy(2), triint(2,2), triint(2,1),
+     >              cotrvo(2,0),         5,           1,           4,
+     >              iaux, nufami, indtet )
+c
+      indtet = indtet + 1
+      call cmctet ( tritet, cotrte, famtet,
+     >              hettet, filtet, pertet,
+     >              trifad(3,0), trigpy(3), triint(3,2), triint(3,1),
+     >              cotrvo(3,0),         5,           1,           4,
+     >              iaux, nufami, indtet )
+c
+      indtet = indtet + 1
+      call cmctet ( tritet, cotrte, famtet,
+     >              hettet, filtet, pertet,
+     >              trifad(4,0), trigpy(4), triint(4,2), triint(4,1),
+     >              cotrvo(4,0),         5,           1,           4,
+     >              iaux, nufami, indtet )
+c
+#ifdef _DEBUG_HOMARD_
+      call dmflsh (iaux)
+#endif
+c
+      end