]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
compile homard fortran on Windows
authorDUC ANH HOANG <dh77501n@dsp1043837>
Thu, 5 Sep 2024 12:24:06 +0000 (14:24 +0200)
committerDUC ANH HOANG <dh77501n@dsp1043837>
Thu, 5 Sep 2024 12:24:06 +0000 (14:24 +0200)
40 files changed:
src/tool/CMakeLists.txt
src/tool/Dependance_Machine_C/dmaboc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmalmc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmdate.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmflsc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dminfc.h [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmlibc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmloca.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmmacc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmport.h [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmprmc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmralc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmsepc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmsizc.c [new file with mode: 0644]
src/tool/Dependance_Machine_C/dmtemc.c [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmabor.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmalme.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmcpch.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmflsh.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmftmp.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmindf.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmjohe.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmlibe.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmloci.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmlocr.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmlocs.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmmach.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmnfcv.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmoubs.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmoufs.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmprma.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmralo.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmsepf.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmsize.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmtemp.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmunit.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmvaen.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmze10.F [new file with mode: 0644]
src/tool/Dependance_Machine_fortran/dmzero.F [new file with mode: 0644]
src/tool/FC.h

index 3899de10e26ef4a315079c7062414db9967879ae..675db2f042ca0f4ed2de23f22e00a8dd4e16030c 100644 (file)
@@ -44,9 +44,20 @@ SET(_HT_libs
   ES_MED
   Utilitaire
   Gestion_MTU
-  Dependance_Machine
+  #Dependance_Machine
  )
 
+SET (_DMC
+ Dependance_Machine_C
+ )
+
+SET (_DMF
+ Dependance_Machine_fortran
+ )
+IF (WIN32)
+  ADD_DEFINITIONS(-Dextern_stdcall)
+ENDIF (WIN32)
+
 FUNCTION(HT_BUILD_LIBRARY dir)
   FILE(GLOB _f_sources LIST_DIRECTORIES false ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/*.F)
   FILE(GLOB _c_sources LIST_DIRECTORIES false ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/*.c)
@@ -54,6 +65,18 @@ FUNCTION(HT_BUILD_LIBRARY dir)
   ADD_LIBRARY (${dir} STATIC ${_f_sources} ${_c_sources})
 ENDFUNCTION()
 
+FILE(GLOB _c_sources LIST_DIRECTORIES false ${CMAKE_CURRENT_SOURCE_DIR}/${_DMC}/*.c)
+INCLUDE_DIRECTORIES(Includes_Generaux ${CMAKE_CURRENT_SOURCE_DIR})
+ADD_LIBRARY (${_DMC} STATIC ${_c_sources})
+
+set_target_properties(${_DMC} PROPERTIES COMPILE_FLAGS "/MT" )
+
+FILE(GLOB _f_sources LIST_DIRECTORIES false ${CMAKE_CURRENT_SOURCE_DIR}/${_DMF}/*.F)
+INCLUDE_DIRECTORIES(Includes_Generaux ${CMAKE_CURRENT_SOURCE_DIR})
+ADD_LIBRARY (${_DMF} STATIC ${_f_sources})
+
+TARGET_LINK_LIBRARIES(${_DMF} ${_DMC})
+
 FOREACH(_HT_lib ${_HT_libs})
   HT_BUILD_LIBRARY(${_HT_lib})
 ENDFOREACH()
@@ -66,5 +89,5 @@ SET(_link_LIBRARIES
 
 # Main executable
 ADD_EXECUTABLE(homard homard.f)
-TARGET_LINK_LIBRARIES(homard ${_HT_libs} ${_link_LIBRARIES})
+TARGET_LINK_LIBRARIES(homard ${_HT_libs} ${_link_LIBRARIES} ${_DMC} ${_DMF} )
 INSTALL(TARGETS homard EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
diff --git a/src/tool/Dependance_Machine_C/dmaboc.c b/src/tool/Dependance_Machine_C/dmaboc.c
new file mode 100644 (file)
index 0000000..7afa466
--- /dev/null
@@ -0,0 +1,51 @@
+/* __________________________________________________________________________ *.
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <stdlib.h>
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmaboc_(INTGR *codret)
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMABOC(INTGR *codret)
+#else
+void FortranCInterface_GLOBAL(dmaboc, DMABOC)(INTGR *codret)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+  *codret = 0 ;
+  abort() ;
+
+#else
+  *codret = 1 ;
+
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmalmc.c b/src/tool/Dependance_Machine_C/dmalmc.c
new file mode 100644 (file)
index 0000000..7c04f42
--- /dev/null
@@ -0,0 +1,79 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 2014                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+// long est en général de la taille des adresses gérées par le processeur (taille des pointeurs).
+// machines 64bits => long=64bits
+// machines 32bits => long=32bits
+
+// 1) ad_mem est un pointeur (32/64 bits fonction de la machine) sur une variable fortran
+// dont la taille doit être celle des pointeurs de la machine (car cette variable stocke un pointeur C)
+// Le type long (C) est correct pour stocker les pointeurs sur machines 32/64 bits. Cependant il faut faire attention à ce que la taille de la variable fortran corresponde aux caractéristiques de la machine.
+// En effet, sur machine 32bits certains fortrans sont capables de gérer des integer*8 en 64bits ce qui ne correspondrait pas à la taille d'un long sur machine 32 bits. (cf détection configuration autoconf med)
+// 2) size est le nombre d'éléments de type INTGR (entiers 32/64 bits) que l'on veut allouer.
+// size pourrait être de type int (C) / integer*4 (F) mais en général si l'on a besoin d'entier 64bits pour stoker des grandeurs on a aussi besoin de dénombrer un grand nombre d'éléments.
+// C'est la raison pour laquelle on a le type INTGR (C) <=> INTEGER*4 ou INTEGER*8 <=> INTEGER avec option gfortran  -fdefault-integer-8 (F)
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <malloc.h>
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmalmc_( long * const ad_mem, const INTGR * const size )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMALMC( long * const ad_mem, const INTGR * const size )
+#else
+void FortranCInterface_GLOBAL(dmalmc, DMALMC)(long * const ad_mem, const INTGR * const size)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+
+   if ( *size == 0 )
+     { printf(" demande d allocation d une taille nulle\n") ; }
+
+   if ( *size >= 0 )
+   {
+#ifdef _DEBUG_HOMARD_
+     printf ("demande de %d octets\n",*size*sizeof(int));
+#endif
+
+   // p_intgr est un pointeur sur des entiers de taille sizeof(INTGR)
+   INTGR * p_intgr =  malloc( *size * sizeof(INTGR) ) ;
+   // On renvoie la valeur de notre pointeur alloué dans la variable Fortran *ad_mem
+   (*ad_mem) = (long) p_intgr;
+
+#ifdef _DEBUG_HOMARD_
+     printf ("==> ad_mem = %d\n",*ad_mem);
+#endif
+   }
+
+   else
+   {
+     printf(" demande d allocation d une taille negative\n") ;
+     *ad_mem = 0 ;
+   }
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmdate.c b/src/tool/Dependance_Machine_C/dmdate.c
new file mode 100644 (file)
index 0000000..7f691bd
--- /dev/null
@@ -0,0 +1,54 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <string.h>
+#include <time.h>
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmdate_( char *ladate, LNSTRF bidon )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMDATE( char *ladate, LNSTRF bidon )
+#else
+void FortranCInterface_GLOBAL(dmdate, DMDATE)(char *ladate, LNSTRF bidon)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+/* time renvoie le nombre de secondes écoulées depuis le 1er janvier 1970 à 0h */
+/* ctime convertit ce nombre en une chaine de 26 caractères */
+/* sous la forme 'day mon dd hh:mm:ss yyyy\n\0' */
+/*                123456789012345678901234 5 6 */
+/*          ex : 'Thu Jul 19  9:42:23 1994' */
+/* On renvoie alors les 24 premiers caractères utiles. */
+{
+
+  char *c ;
+  time_t t ;
+
+  t = time( (time_t *)0 ) ;
+  c = ctime(&t) ;
+  strncpy(ladate, c, (size_t)24 ) ;
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmflsc.c b/src/tool/Dependance_Machine_C/dmflsc.c
new file mode 100644 (file)
index 0000000..08e310b
--- /dev/null
@@ -0,0 +1,58 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <stdio.h>
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/* Ce programme vide les buffers des entrees-sorties */
+/* . avec stdout comme argument, seul le buffer de la sortie standard (print fortran) est vide. */
+/* . avec 0 comme argument, les buffers de toutes les sorties sont vides. */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmflsc_(INTGR *codret)
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMFLSC(INTGR *codret)
+#else
+void FortranCInterface_GLOBAL(dmflsc, DMFLSC)(INTGR *codret)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+/*  fflush(stdout) ;  */
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+  *codret = fflush(0) ;
+
+#else
+  _flushall() ;
+  *codret = 0 ;
+
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dminfc.h b/src/tool/Dependance_Machine_C/dminfc.h
new file mode 100644 (file)
index 0000000..5c3b13a
--- /dev/null
@@ -0,0 +1,23 @@
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/*        Commentaires sur les dépendances aux machines              */
+/*  1. Les programmes C ne sont appelés que par les programmes       */
+/*     fortran du répertoire Dependance_Machine                      */
+/*  2. Les programmes en dm...c sont appelés par dm....              */
+/*  3. Les dépendances des source_c pour les arguments :             */
+/*          _POSIX, extern_stdcall, autres                           */
+/*  4. Les autres dépendances des source_c sont :                    */
+/*     . Le programme d'abort (dmaboc)                               */
+/*       _POSIX, autres                                              */
+/*     . Le vidage des buffers (dmflsc)                              */
+/*       _POSIX, autres                                              */
+/*     . Le vidage des buffers (dmflsc)                              */
+/*       _POSIX, autres                                              */
+/*     . Les caractéristiques des machines (dmmacc)                  */
+/*       _POSIX, autres                                              */
+/*     . La précision des machines (dmprmc)                          */
+/*       _USE_64_BITS, autres                                        */
+/*     . Le caractère de séparation des répertoires (dmsepc)         */
+/*       _POSIX, autres                                              */
+/*     . Le temps système (dmtemc)                                   */
+/*       CLK_TCK,  _POSIX                                            */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
diff --git a/src/tool/Dependance_Machine_C/dmlibc.c b/src/tool/Dependance_Machine_C/dmlibc.c
new file mode 100644 (file)
index 0000000..ad713ff
--- /dev/null
@@ -0,0 +1,45 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <stdlib.h>
+#include <malloc.h>
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/*   Libération de la mémoire associée à malloc                      */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmlibc_( long **iad_mem )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMLIBC( long **iad_mem )
+#else
+void FortranCInterface_GLOBAL(dmlibc, DMLIBC)(long **iad_mem)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+  free( *iad_mem ) ;
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmloca.c b/src/tool/Dependance_Machine_C/dmloca.c
new file mode 100644 (file)
index 0000000..c3fb2a3
--- /dev/null
@@ -0,0 +1,39 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmloca_( void *a, INTGR *iad )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMLOCA( void *a, INTGR *iad )
+#else
+void FortranCInterface_GLOBAL(dmloca, DMLOCA)(void *a, INTGR *iad)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+    *iad = (long) a ;
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmmacc.c b/src/tool/Dependance_Machine_C/dmmacc.c
new file mode 100644 (file)
index 0000000..edc103a
--- /dev/null
@@ -0,0 +1,142 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <string.h>
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/* Retourne le nom de la machine, son système, etc.                  */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+#include <sys/utsname.h> /* Pour le nom de la machine d'execution */
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+#include <stdio.h>
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%%  */
+
+#ifdef _POSIX
+void dmmacc_( char *nodeno, INTGR *nodelg, char *machno, INTGR *machlg, char *systno, INTGR *systlg, char *releno, INTGR *relelg, char *versno, INTGR *verslg, LNSTRF nodebi, LNSTRF machbi, LNSTRF systbi, LNSTRF relebi, LNSTRF versbi )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMMACC( char *nodeno, LNSTRF nodebi, INTGR *nodelg, char *machno, LNSTRF machbi, INTGR *machlg, char *systno, LNSTRF systbi, INTGR *systlg, char *releno, LNSTRF relebi, INTGR *relelg, char *versno, LNSTRF versbi, INTGR *verslg )
+#else
+void FortranCInterface_GLOBAL(dmmacc, DMMACC)(char *nodeno, INTGR *nodelg, char *machno, INTGR *machlg, char *systno, INTGR *systlg, char *releno, INTGR *relelg, char *versno, INTGR *verslg)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+  int lg ;
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+
+  struct utsname myname ;
+
+  lg = fflush(0) ;
+
+  if ( uname ( &myname ) != -1 ) {
+
+        lg = (int)strlen(myname.nodename) ;
+        if ( *nodelg > lg ) *nodelg = lg ;
+        strncpy (nodeno,myname.nodename, (size_t)*nodelg ) ;
+
+        lg = (int)strlen(myname.machine) ;
+        if ( *machlg > lg ) *machlg = lg ;
+        strncpy (machno,myname.machine, (size_t)*machlg ) ;
+
+        lg = (int)strlen(myname.sysname) ;
+        if ( *systlg > lg ) *systlg = lg ;
+        strncpy (systno,myname.sysname, (size_t)*systlg ) ;
+
+        lg = (int)strlen(myname.release) ;
+        if ( *relelg > lg ) *relelg = lg ;
+        strncpy (releno,myname.release, (size_t)*relelg ) ;
+
+        lg = (int)strlen(myname.version) ;
+        if ( *verslg > lg ) *verslg = lg ;
+        strncpy (versno,myname.version, (size_t)*verslg ) ;
+
+  }
+
+  else {
+
+        if ( *nodelg > 7 ) *nodelg = 7 ;
+        strncpy (nodeno,"inconnu", (size_t)*nodelg ) ;
+        if ( *machlg > 1 ) *machlg = 1 ;
+        strncpy (machno," ", (size_t)*machlg ) ;
+        if ( *systlg > 4 ) *systlg = 4 ;
+        strncpy (systno,"Unix", (size_t)*systlg ) ;
+        if ( *relelg > 1 ) *relelg = 1 ;
+        strncpy (releno," ", (size_t)*relelg ) ;
+        if ( *verslg > 1 ) *verslg = 1 ;
+        strncpy (versno," ", (size_t)*verslg ) ;
+  }
+
+#else
+
+
+  char *nodename, *machine, *sysname, *release, *version;
+
+  nodename=getenv("COMPUTERNAME");
+  if ( nodename == NULL ) {
+      nodename="inconnu";
+  }
+  lg = (int)strlen(nodename) ;
+  if ( *nodelg > lg ) *nodelg = lg ;
+  strncpy (nodeno,nodename, (size_t)*nodelg ) ;
+
+  machine=getenv ("CPU");
+  if ( machine == NULL ) {
+      machine="inconnu";
+  }
+  lg = (int)strlen(machine) ;
+  if ( *machlg > lg ) *machlg = lg ;
+  strncpy (machno,machine, (size_t)*machlg ) ;
+
+  sysname=getenv ("OS");
+  if ( sysname == NULL ) {
+      sysname="inconnu";
+  }
+  lg = (int)strlen(sysname) ;
+  if ( *systlg > lg ) *systlg = lg ;
+  strncpy (systno,sysname, (size_t)*systlg ) ;
+
+  release="inconnu";
+  lg = (int)strlen(release) ;
+  if ( *relelg > lg ) *relelg = lg ;
+  strncpy (releno,release, (size_t)*relelg ) ;
+
+  version="inconnu";
+  lg = (int)strlen(version) ;
+  if ( *verslg > lg ) *verslg = lg ;
+  strncpy (versno,version, (size_t)*verslg ) ;
+
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmport.h b/src/tool/Dependance_Machine_C/dmport.h
new file mode 100644 (file)
index 0000000..5929847
--- /dev/null
@@ -0,0 +1,49 @@
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/*  include (langage C ou C++) pour portage des routines             */
+/*         "dependance_machine"                                      */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+
+#ifndef dmport_h
+#define dmport_h
+
+#if defined(__unix__)
+#define _POSIX
+#warning "-------- definition de _POSIX --------"
+#endif
+
+#if defined __LP64__ || defined __MINGW64__
+#define _USE_64_BITS
+#warning "-------- definition de _USE_64_BITS --------"
+#endif
+
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/* Correspondance entre les entiers fortran et les entiers C :       */
+/* Utile par exemple sur machine DEC, quand les pointeurs sont sur   */
+/* 64 bits et qu'on utilise une option du compilateur fortran qui    */
+/* force tous les entiers fortran a 64 bits                          */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+#define DOUBLE double
+
+#ifdef _USE_64_BITS
+#warning "-------- passage par ifdef _USE_64_BITS --------"
+  typedef long INTGR ;
+  #define INTEGER_NB_CHIFFRES_SIGNIFICATIFS 19
+#else
+#pragma message ( "-------- passage par else de ifdef _USE_64_BITS --------" )
+  typedef int INTGR ;
+  #define INTEGER_NB_CHIFFRES_SIGNIFICATIFS  9
+#endif
+
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/* Longueur des chaines de caractères fortran (telles que passées    */
+/* comme arguments cachés par les compilateurs fortran)              */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+#ifdef _USE_64_BITS
+    typedef long LNSTRF ;
+#else
+    typedef int LNSTRF ;
+#endif
+//
+#endif
diff --git a/src/tool/Dependance_Machine_C/dmprmc.c b/src/tool/Dependance_Machine_C/dmprmc.c
new file mode 100644 (file)
index 0000000..2aa0b9f
--- /dev/null
@@ -0,0 +1,57 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/*     Retourne la précision machine                                 */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmprmc_( DOUBLE *epsima, INTGR *nbchii )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMPRMC( DOUBLE *epsima, INTGR *nbchii )
+#else
+void FortranCInterface_GLOBAL(dmprmc, DMPRMC)(DOUBLE *epsima, INTGR *nbchii)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _USE_64_BITS
+   *epsima = 1.e-31;
+
+#else
+   *epsima = 1.e-15;
+
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+/*    printf (". INTEGER_NB_CHIFFRES_SIGNIFICATIFS   : %d\n", INTEGER_NB_CHIFFRES_SIGNIFICATIFS); */
+   *nbchii = INTEGER_NB_CHIFFRES_SIGNIFICATIFS ;
+
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmralc.c b/src/tool/Dependance_Machine_C/dmralc.c
new file mode 100644 (file)
index 0000000..777e657
--- /dev/null
@@ -0,0 +1,53 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+#include <stdlib.h>
+#include <malloc.h>
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmralc_( INTGR *iad_mem, INTGR *size )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMRALC( INTGR *iad_mem, INTGR *size )
+#else
+void FortranCInterface_GLOBAL(dmralc, DMRALC)(INTGR *iad_mem, INTGR *size)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+  void *adret ;
+
+  adret = realloc( (void *) *iad_mem, (size_t) *size ) ;
+
+  if ( adret != NULL )
+  {
+    *iad_mem = (INTGR) adret ;
+  }
+  else
+  {
+    *iad_mem = 0 ;
+  }
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmsepc.c b/src/tool/Dependance_Machine_C/dmsepc.c
new file mode 100644 (file)
index 0000000..84cf8d0
--- /dev/null
@@ -0,0 +1,53 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+
+/* but : retourne le caractère séparateur de répertoires */
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmsepc_( char *slash, LNSTRF bidon )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMSEPC( char *slash, LNSTRF bidon )
+#else
+void FortranCInterface_GLOBAL(dmsepc, DMSEPC)(char *slash, LNSTRF bidon)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+
+  slash[0] = '/' ;
+
+#else
+
+  slash[0] = '\\' ;
+
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmsizc.c b/src/tool/Dependance_Machine_C/dmsizc.c
new file mode 100644 (file)
index 0000000..35594ea
--- /dev/null
@@ -0,0 +1,56 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmsizc_( INTGR *tentie, INTGR *treel, INTGR *tchain )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMSIZC( INTGR *tentie, INTGR *treel, INTGR *tchain )
+#else
+void FortranCInterface_GLOBAL(dmsizc, DMSIZC)(INTGR *tentie, INTGR *treel, INTGR *tchain)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+/*    malloc fonctionne en octets */
+      *tentie = sizeof(INTGR) ;
+      *treel  = 8 ;
+      *tchain = 8 ;
+
+#ifdef _DEBUG_HOMARD_
+       printf ("Dans dmsizc, tailles en octets :\n");
+       printf (". Entiers   : %d\n", *tentie);
+       printf (". Reels     : %d\n", *treel);
+       printf (". Chaine    : %d\n", *tchain);
+       printf (". taille de INTGR  : %d\n", sizeof(INTGR));
+       printf (". taille de int    : %d\n", sizeof(int));
+       printf (". taille de int*   : %d\n", sizeof(int*));
+       printf (". taille de long   : %d\n", sizeof(long));
+       printf (". taille de tentie : %d\n", sizeof(*tentie));
+
+#endif
+
+}
+
diff --git a/src/tool/Dependance_Machine_C/dmtemc.c b/src/tool/Dependance_Machine_C/dmtemc.c
new file mode 100644 (file)
index 0000000..42bba2f
--- /dev/null
@@ -0,0 +1,70 @@
+/* __________________________________________________________________________ */
+/*                                                                            */
+/*                              H O M A R D                                   */
+/*                                                                            */
+/*   Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D   */
+/*                                                                            */
+/* Version originale enregistrée le 18 juin 1996 sous le numéro 96036 auprès  */
+/* des huissiers de justice Simart et Lavoir à Clamart                        */
+/* Version 11.2 enregistrée le 13 février 2015 sous le numéro 2015/014 auprès */
+/* des huissiers de justice Lavoir, Silinski & Cherqui-Abrahmi à Clamart      */
+/*                                                                            */
+/*   HOMARD est une marque déposée d'Electricite de France                    */
+/*                                                                            */
+/* Copyright EDF 1997                                                         */
+/* Copyright EDF 1998                                                         */
+/* Copyright EDF 1999                                                         */
+/* Copyright EDF 2021                                                         */
+/* __________________________________________________________________________ */
+
+#include "dminfc.h"
+#include "dmport.h"
+#include "FC.h"
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/*     Retourne les temps user et système écoulés depuis le début    */
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+
+#ifdef _POSIX
+#include <sys/times.h>
+#include <unistd.h>
+#endif
+
+#include <time.h>
+
+#ifdef CLK_TCK
+#define CLOCKS_PER_SEC_VALUE CLK_TCK
+#else
+#define CLOCKS_PER_SEC_VALUE sysconf(_SC_CLK_TCK)
+#endif
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+void dmtemc_( DOUBLE *tuser, DOUBLE *tsyst )
+#else
+#ifdef extern_stdcall
+extern void __stdcall DMTEMC( DOUBLE *tuser, DOUBLE *tsyst )
+#else
+void FortranCInterface_GLOBAL(dmtemc, DMTEMC)(DOUBLE *tuser, DOUBLE *tsyst)
+#endif
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+{
+
+/* %%%%%%%%%%%%%%%%% début de zone à préprocesser %%%%%%%%%%%%%%%%%% */
+#ifdef _POSIX
+   struct tms temps;
+   times (&temps);
+   *tuser=(DOUBLE)temps.tms_utime/(DOUBLE)CLOCKS_PER_SEC_VALUE;
+   *tsyst=(DOUBLE)temps.tms_stime/(DOUBLE)CLOCKS_PER_SEC_VALUE;
+
+#else
+   *tuser=(DOUBLE)clock()/CLOCKS_PER_SEC_VALUE;
+   *tsyst=(DOUBLE)0.;
+
+#endif
+/* %%%%%%%%%%%%%%%%%% fin de zone à préprocesser %%%%%%%%%%%%%%%%%%% */
+
+}
+
diff --git a/src/tool/Dependance_Machine_fortran/dmabor.F b/src/tool/Dependance_Machine_fortran/dmabor.F
new file mode 100644 (file)
index 0000000..b2c6bdd
--- /dev/null
@@ -0,0 +1,56 @@
+      subroutine dmabor
+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   Dependance Machine : ABORt
+c   -          -         ----
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+c 0.4. ==> variables locales
+c
+      integer codret
+c
+c====
+c 1. vidage des buffers
+c====
+c
+      call dmflsh ( codret )
+c
+c====
+c 2. appel de la fonction C equivalente
+c====
+c
+      call dmaboc ( codret )
+c
+      stop
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmalme.F b/src/tool/Dependance_Machine_fortran/dmalme.F
new file mode 100644 (file)
index 0000000..06f3fb2
--- /dev/null
@@ -0,0 +1,65 @@
+      subroutine dmalme ( adress, taille, codret )
+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   Dependance Machine : ALlocation de MEmoire
+c   -          -         --            --
+c ______________________________________________________________________
+c
+c  but : alloue une place memoire de taille donnee
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . adress .  s  .   1    . adresse de depart de la zone allouee       .
+c . taille . e   .   1    . taille voulue                              .
+c . codret .  s  .    1   . code retour : 0 si tout va bien, 1 sinon   .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer adress, taille, codret
+c
+c 0.4. ==> variables locales
+c ______________________________________________________________________
+c
+c====
+c 1. appel de la fonction C equivalente
+c====
+c
+      call dmalmc ( adress, taille )
+c
+      if ( adress.eq.0 ) then
+        codret = 1
+      else
+        codret = 0
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmcpch.F b/src/tool/Dependance_Machine_fortran/dmcpch.F
new file mode 100644 (file)
index 0000000..70fb3d8
--- /dev/null
@@ -0,0 +1,159 @@
+      subroutine dmcpch ( chain1, long1, chain2, long2 )
+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   Dependance Machine : CoPie de CHaine de caracteres
+c   -          -         - -      --
+c ______________________________________________________________________
+c
+c
+c but : copie "prudente" de la chaine 1 dans la chaine 2
+c
+c       . les eventuels caracteres non imprimables sont remplaces      .
+c       par des blancs ... sauf ceux en debut et fin de chaine,        .
+c       qui sont elimines.                                             .
+c
+c dependance machine : code ASCII
+c                      ( blanc = 32, et
+c                        non imprimable <==> code < 32 ...
+c                        ... sauf que les TAB (code 9) sont remplaces
+c                        par un blanc chacun )
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . chain1 . e   . char * . chaine "source"                            .
+c . long1  . e   .    1   . longueur utile de la chaine "source"       .
+c . chain2 .  s  . char * . chaine "cible"                             .
+c . long2  .  s  .    1   . longueur utile de la chaine "cible"        .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer       long1, long2
+      character*(*) chain1, chain2
+c
+c 0.4. ==> variables locales
+c
+      integer long, iaux, deb, fin, dern0, deb1, p0
+c
+c 0.5. ==> initialisations
+c ______________________________________________________________________
+c
+c====
+c 1.
+c====
+c
+      long = 0
+      deb = 0
+      deb1 = 0
+      dern0 = 0
+      p0 = -1
+c
+      do 1 iaux = 1, min( len(chain1), long1 )
+        if ( ichar(chain1(iaux:iaux)).gt.32 ) then
+          if ( deb.eq.0 ) then
+            deb = iaux
+          endif
+          fin = iaux
+          p0 = 0
+          if ( long.lt.len(chain2) ) then
+            if ( deb1.eq.0 ) then
+              deb1 = iaux
+            endif
+            long = long + 1
+            chain2(long:long) = chain1(iaux:iaux)
+          endif
+        else if ( ichar(chain1(iaux:iaux)).eq.32 .or.
+     >            ichar(chain1(iaux:iaux)).eq.9       ) then
+          if ( deb.eq.0 ) then
+            deb = iaux
+          endif
+          if ( long.lt.len(chain2) ) then
+            long = long + 1
+            chain2(long:long) = ' '
+          endif
+        else
+c
+c non imprimables:
+c
+          if ( deb.gt.0 .and. long.lt.len(chain2) ) then
+            long = long + 1
+            chain2(long:long) = ' '
+          endif
+          dern0 = iaux
+          if ( p0.eq.0 ) then
+            p0 = iaux
+          endif
+        endif
+    1 continue
+c
+c On complete eventuellement avec des blancs :
+c (mais qui ne seront pas comptes dans long2)
+c
+      do 10 iaux = long+1, len(chain2)
+        chain2(iaux:iaux) = ' '
+   10 continue
+c
+c Bilan :
+c
+      if ( deb1.gt.0 ) then
+c
+c Il y a au moins un caractere imprimable et non blanc, qui a pu
+c etre copie de la chaine source chain1 vers la cible chain2 :
+c (deb1 est le premier de ceux-ci dans chain1)
+c
+        if ( dern0.lt.fin ) then
+          long2 = long
+        else
+c
+c Apres le dernier caractere imprimable et non blanc de chain1 (fin),
+c on a trouve : des blancs eventuels, puis un premier caractere non
+c imprimable (p0), puis eventuellement des blancs ou non impr.
+c puis enfin un dernier caractere non impr. (dern0, >= p0),
+c puis des blancs eventuels.
+c
+c deb pointe sur le premier caractere "utile" (blanc ou imprimable)
+c de chaine1 (deb<=deb1<=fin)
+c p0-1 serait le dernier caractere "utile" de chaine1 (fin<=p0-1)
+c
+          long2 = min( max(0,len(chain2)) , p0-deb )
+c
+        endif
+c
+      else
+c
+c chaine "source" vide, ou entierement blanche(+caracteres non impr.) :
+c
+        long2 = 0
+c
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmflsh.F b/src/tool/Dependance_Machine_fortran/dmflsh.F
new file mode 100644 (file)
index 0000000..f537778
--- /dev/null
@@ -0,0 +1,55 @@
+      subroutine dmflsh ( codret )
+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   Dependance Machine : FLuSH des buffers
+c   -          -         ----
+c ______________________________________________________________________
+c
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . codret .  s  .   1    . code de retour                             .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer codret
+c
+c 0.4. ==> variables locales
+c 0.5. ==> initialisations
+c
+c===
+c 1. appel de la fonction C equivalente
+c===
+c
+      call dmflsc ( codret )
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmftmp.F b/src/tool/Dependance_Machine_fortran/dmftmp.F
new file mode 100644 (file)
index 0000000..9c7ee32
--- /dev/null
@@ -0,0 +1,138 @@
+      subroutine dmftmp ( nomdep , lnomde , nomfic , lnomfi )
+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   Dependance Machine - Fichier TeMPoraire
+c   -          -         -       - --
+c ______________________________________________________________________
+c
+c  on determine un nom de fichier dont on est sur qu'il n'existe pas.
+c  Ce fichier doit se trouver dans le meme repertoire qu'un fichier
+c  de depart pour pouvoir faire du renommage par la suite.
+c
+c  "renomme" un fichier (trouve un nouveau nom, nomfic, a partir
+c                        du nom de depart nomdep)
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . nomdep . e   .  ch    . ancien nom du fichier                      .
+c . lnomde . e   .  e     . longueur de l'ancien nom du fichier        .
+c . nomfic .  s  .  ch    . nouveau nom du fichier                     .
+c . lnomfi .  s  . e   .  . longueur du nouveau nom du fichier         .
+c . ulsort . e   .    1   . unite logique de la liste standard         .
+c . langue . e   .    1   . langue des messages                        .
+c .        .     .        . 1 : francais, 2 : anglais                  .
+c . codret .  s  .    1   . code de retour                             .
+c .        .     .        . 0 : pas de probleme                        .
+c .        .     .        . 1 : probleme                               .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      character*(*) nomdep, nomfic
+c
+      integer lnomde, lnomfi
+c
+c 0.4. ==> variables locales
+c
+      integer iaux, jaux, lnomd
+c
+      character*4 fmt
+c
+      logical old
+c
+c 0.5. ==> initialisations
+c ______________________________________________________________________
+c
+c====
+c 1. on concatene une chaine de caracteres jusqu'a trouver un fichier
+c    qui n'existe pas.
+c====
+c
+      lnomd = min( max(0,lnomde), max(0,len(nomdep)) )
+      do 1 iaux = 1, len(nomfic)
+        nomfic(iaux:iaux) = ' '
+    1 continue
+c
+      if ( lnomd.lt.len(nomfic) ) then
+        if ( lnomd.gt.0 ) then
+          nomfic(1:lnomd) = nomdep( 1 : lnomd )
+        endif
+        jaux = lnomd + 1
+      else
+        lnomfi = 0
+        goto 12
+      endif
+c
+      do 11 , iaux = 1 , 999999
+c
+        if ( iaux.le.9 ) then
+          fmt = '(I1)'
+          lnomfi = lnomd + 1
+        elseif ( iaux.le.99 ) then
+          fmt = '(I2)'
+          lnomfi = lnomd + 2
+        elseif ( iaux.le.999 ) then
+          fmt = '(I3)'
+          lnomfi = lnomd + 3
+        elseif ( iaux.le.9999 ) then
+          fmt = '(I4)'
+          lnomfi = lnomd + 4
+        elseif ( iaux.le.99999 ) then
+          fmt = '(I5)'
+          lnomfi = lnomd + 5
+        else
+          fmt = '(I6)'
+          lnomfi = lnomd + 6
+        endif
+c
+        if ( lnomfi.le.len(nomfic) ) then
+c
+          write ( nomfic(jaux:lnomfi) , fmt ) iaux
+c
+          inquire (file=nomfic(1:lnomfi),exist=old)
+c
+          if ( .not.old ) then
+            goto 12
+          endif
+c
+        else
+          lnomfi = 0
+          goto 12
+        endif
+c
+   11 continue
+c
+      lnomfi = 0
+c
+   12 continue
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmindf.F b/src/tool/Dependance_Machine_fortran/dmindf.F
new file mode 100644 (file)
index 0000000..d7238e4
--- /dev/null
@@ -0,0 +1,66 @@
+      subroutine dmindf ( iindef, rindef, sindef )
+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   Dependance Machine : valeurs INDeFinies
+c   -          -                 --- -
+c ______________________________________________________________________
+c
+c  affecte les valeurs indefinies
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . iindef .  s  .    1   . valeur indefinie entiere                   .
+c . rindef .  s  .    1   . valeur indefinie double precision reelle   .
+c . sindef .  s  .   c8   . valeur indefinie caractere                 .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer iindef
+c
+      double precision rindef
+c
+      character*8 sindef
+c
+c 0.4. ==> variables locales
+c
+c====
+c 1. On met une tres grande valeur, reconnaissble
+c====
+c
+      iindef = 17891792
+c
+      rindef = 1848.1871d12
+c
+      sindef = 'INDEFINI'
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmjohe.F b/src/tool/Dependance_Machine_fortran/dmjohe.F
new file mode 100644 (file)
index 0000000..3979da6
--- /dev/null
@@ -0,0 +1,270 @@
+      subroutine dmjohe ( numann, nummoi, numjou, numjos,
+     >                    numheu, nummin, numsec )
+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   Dependance Machine : JOur et HEure
+c   -          -         --      --
+c ______________________________________________________________________
+c
+c
+c  retourne la date et l'heure
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . numann .  s  .   1    . numero de l'annee                          .
+c . nummoi .  s  .   1    . numero du mois                             .
+c . numjou .  s  .   1    . numero du jour (1-->31)                    .
+c . numjos .  s  .   1    . numero du jour symbolique (0-->7)          .
+c .        .     .        . 0 : rien n'est fourni par la machine       .
+c .        .     .        . 1-->7 : numero du jour dans la semaine     .
+c . numheu .  s  .   1    . numero de l'heure                          .
+c . nummin .  s  .   1    . numero des minutes                         .
+c . numsec .  s  .   1    . numero des secondes                        .
+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 = 'DMJOHE' )
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer numann, nummoi, numjou, numjos
+      integer numheu, nummin, numsec
+c
+c 0.4. ==> variables locales
+c
+      integer iaux
+c
+      character*24 tampon
+      character*8 chjour, heurus
+      character*4 nomann
+      character*3 tabday (7)
+      character*3 tabmon (12)
+      character*3 nomjou, nommoi
+c
+c====
+c 1. les constantes
+c====
+c 1.1. ==> nom des jours
+c
+      tabday (1) = 'Mon'
+      tabday (2) = 'Tue'
+      tabday (3) = 'Wed'
+      tabday (4) = 'Thu'
+      tabday (5) = 'Fri'
+      tabday (6) = 'Sat'
+      tabday (7) = 'Sun'
+c
+c 1.2. ==> nom des mois
+c
+      tabmon (1) = 'Jan'
+      tabmon (2) = 'Feb'
+      tabmon (3) = 'Mar'
+      tabmon (4) = 'Apr'
+      tabmon (5) = 'May'
+      tabmon (6) = 'Jun'
+      tabmon (7) = 'Jul'
+      tabmon (8) = 'Aug'
+      tabmon (9) = 'Sep'
+      tabmon (10) = 'Oct'
+      tabmon (11) = 'Nov'
+      tabmon (12) = 'Dec'
+c
+c====
+c 2.  determination de la date et de l'heure de passage du calcul
+c====
+c
+      chjour = '07/19/94'
+      heurus = '09:42:23'
+      tampon = 'Thu Jul 19  9:42:23 1994'
+      nomann = '1994'
+c
+c sur machine UNIX ou WINDOWS de base
+c       1234567890123456789012345678
+c      'day mon dd hh:mm:ss yyyy'
+c ex : 'Thu Jul 19  9:42:23 1994'
+c====
+c
+c 2.1. ==> appel a la fonction machine
+c
+      call dmdate ( tampon )
+c
+c 2.2. ==> archivage sous forme standard
+c
+      nomann = tampon(21:24)
+      nommoi = tampon(5:7)
+      nomjou = tampon(1:3)
+      chjour(4:5) = tampon(9:10)
+c
+      heurus = tampon(12:19)
+c
+c====
+c 3. decodage commun a toutes les machines
+c====
+c
+      if ( index('0123456789',nomann(3:3)).gt.0 .and.
+     >     index('0123456789',nomann(4:4)).gt.0       ) then
+c
+        read ( nomann(3:4) , fmt='(i2)' ) numann
+c
+        if (nomann(1:2).eq.'19') then
+          numann = numann + 1900
+        else
+          numann = numann + 2000
+        endif
+      else
+        numann = 1970
+      endif
+c
+      if ( chjour(4:4).eq.' ' ) then
+        chjour(4:4) = '0'
+      endif
+      if ( index('0123',chjour(4:4)).gt.0 .and.
+     >     index('0123456789',chjour(5:5)).gt.0       ) then
+c
+        read ( chjour(4:5) , fmt='(i2)' ) numjou
+c
+        if ( numjou.le.0 .or. numjou.gt.31 ) then
+          numjou = 1
+        endif
+      else if ( chjour(5:5).eq.' ' .and.
+     >      index('123456789',chjour(4:4)).gt.0       ) then
+c
+        read ( chjour(4:4) , fmt='(i1)' ) numjou
+c
+      else
+        numjou = 1
+      endif
+c
+c apres la date, on s'occupe maintenant de l'heure :
+c
+      if ( heurus(1:1).eq.' ' ) then
+        heurus(1:1) = '0'
+      endif
+      if ( index('012',heurus(1:1)).gt.0        .and.
+     >     index('0123456789',heurus(2:2)).gt.0       ) then
+c
+        read ( heurus(1:2),fmt='(i2)' ) numheu
+c
+        if (numheu.gt.23) then
+          numheu = 0
+        endif
+c
+      else if ( heurus(2:2).eq.' '        .and.
+     >     index('0123456789',heurus(1:1)).gt.0       ) then
+c
+        read ( heurus(1:1),fmt='(i1)' ) numheu
+c
+      else
+c
+        numheu = 0
+c
+      endif
+c
+      if ( index(' 012345',heurus(4:4)).gt.0 .and.
+     >     index('0123456789',heurus(5:5)).gt.0       ) then
+c
+        read ( heurus(4:5),fmt='(i2)' ) nummin
+c
+        if (nummin.gt.59) then
+          nummin = 0
+        endif
+c
+      else if ( heurus(5:5).eq.' ' .and.
+     >     index('0123456789',heurus(4:4)).gt.0       ) then
+c
+        read ( heurus(4:4),fmt='(i1)' ) nummin
+c
+      else
+c
+        nummin = 0
+c
+      endif
+c
+      if ( index(' 012345',heurus(7:7)).gt.0 .and.
+     >     index('0123456789',heurus(8:8)).gt.0       ) then
+c
+        read ( heurus(7:8),fmt='(i2)' ) numsec
+c
+        if (numsec.gt.59) then
+          numsec = 0
+        endif
+c
+      else if ( heurus(8:8).eq.' ' .and.
+     >     index('0123456789',heurus(7:7)).gt.0       ) then
+c
+        read ( heurus(7:7),fmt='(i1)' ) numsec
+c
+      else
+c
+        numsec = 0
+c
+      endif
+c
+c====
+c 4. decodages specifiques
+c    . nummoi = numero du mois
+c    . numjos = numero du jour dans la semaine
+c====
+c
+      nummoi = 0
+      do 41 , iaux = 1 , 12
+        if ( nommoi .eq. tabmon(iaux) ) then
+          nummoi = iaux
+        endif
+   41 continue
+c
+      numjos = 0
+      do 42 , iaux = 1 , 7
+        if ( nomjou .eq. tabday(iaux) ) then
+          numjos = iaux
+        endif
+   42 continue
+c
+      if (numjou.gt.28 .and. nummoi.gt.1) then
+        if (nummoi.eq.2 .and. mod(numann,4).ne.0) then
+          nummoi = 0
+        else if (nummoi.eq.2 .and. mod(numann,4).eq.0) then
+          if (numjou.gt.29) then
+            nummoi = 0
+          endif
+        else if (nummoi.eq.4 .or. nummoi.eq.6) then
+          if (numjou.gt.30) then
+            nummoi = 0
+          endif
+        else if (nummoi.eq.9 .or. nummoi.eq.11) then
+          if (numjou.gt.30) then
+            nummoi = 0
+          endif
+        endif
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmlibe.F b/src/tool/Dependance_Machine_fortran/dmlibe.F
new file mode 100644 (file)
index 0000000..f381c4d
--- /dev/null
@@ -0,0 +1,60 @@
+      subroutine dmlibe ( iad, err )
+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   Dependance Machine : LIBEration de place memoire
+c   -          -         ----
+c ______________________________________________________________________
+c
+c
+c  but : libere une place memoire demarrant a iad
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . iad    . e   .   1    . adresse de depart de la zone allouee       .
+c . err    .  s  .   1    . code d'erreur                              .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer iad,err
+c
+c 0.4. ==> variables locales
+c ______________________________________________________________________
+c
+c====
+c 1. appel de la fonction C equivalente
+c====
+c
+      call dmlibc ( iad )
+      err = 0
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmloci.F b/src/tool/Dependance_Machine_fortran/dmloci.F
new file mode 100644 (file)
index 0000000..c9b45fd
--- /dev/null
@@ -0,0 +1,63 @@
+      subroutine dmloci (var,iad)
+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   Dependance Machine : LOCalisation en memoire - entIer
+c   -          -         ---                          -
+c ______________________________________________________________________
+c
+c    Ce programme retourne l'adresse en machine ou est la variable var.
+c    Il utilise la fonction machine loc qui est une extension par
+c    rapport au fortran 77 ansi.
+c    Si cette extension n'est pas disponible, on reactivera la
+c    fonction C dmloca qui joue sur la facon de passer les arguments :
+c    par adresse / par valeur.
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . iad    .  s  .   1    . adresse de depart de la zone allouee       .
+c . var    . e   .   1    .                                            .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer var, iad
+c
+c 0.4. ==> variables locales
+c ______________________________________________________________________
+c
+c====
+c 1. appel du programme ad-hoc
+c====
+c
+      iad = loc(var)
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmlocr.F b/src/tool/Dependance_Machine_fortran/dmlocr.F
new file mode 100644 (file)
index 0000000..fa3882a
--- /dev/null
@@ -0,0 +1,64 @@
+      subroutine dmlocr (var,iad)
+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   Dependance Machine : LOCalisation en memoire - Reel
+c   -          -         ---                       -
+c ______________________________________________________________________
+c
+c    Ce programme retourne l'adresse en machine ou est la variable var.
+c    Il utilise la fonction machine loc qui est une extension par
+c    rapport au fortran 77 ansi.
+c    Si cette extension n'est pas disponible, on reactivera la
+c    fonction C dmloca qui joue sur la facon de passer les arguments :
+c    par adresse / par valeur.
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . iad    .  s  .   1    . adresse de depart de la zone allouee       .
+c . var    . e   .   1    .                                            .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      double precision var
+      integer iad
+c
+c 0.4. ==> variables locales
+c ______________________________________________________________________
+c
+c====
+c 1. appel du programme ad-hoc
+c====
+c
+      iad = loc(var)
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmlocs.F b/src/tool/Dependance_Machine_fortran/dmlocs.F
new file mode 100644 (file)
index 0000000..ccb870a
--- /dev/null
@@ -0,0 +1,64 @@
+      subroutine dmlocs (var,iad)
+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   Dependance Machine : LOCalisation en memoire - String
+c   -          -         ---                       -
+c ______________________________________________________________________
+c
+c    Ce programme retourne l'adresse en machine ou est la variable var.
+c    Il utilise la fonction machine loc qui est une extension par
+c    rapport au fortran 77 ansi.
+c    Si cette extension n'est pas disponible, on reactivera la
+c    fonction C dmloca qui joue sur la facon de passer les arguments :
+c    par adresse / par valeur.
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . iad    .  s  .   1    . adresse de depart de la zone allouee       .
+c . var    . e   .   1    .                                            .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      character*8 var
+      integer iad
+c
+c 0.4. ==> variables locales
+c ______________________________________________________________________
+c
+c====
+c 1. appel du programme ad-hoc
+c====
+c
+      iad = loc(var)
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmmach.F b/src/tool/Dependance_Machine_fortran/dmmach.F
new file mode 100644 (file)
index 0000000..7ae51bb
--- /dev/null
@@ -0,0 +1,204 @@
+      subroutine dmmach ( nomare, nomais, typmac,
+     >                    noarch, systre, systve,
+     >                    lgcar )
+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   Dependance Machine : caracteristiques de la MACHine
+c   -          -                                ----
+c ______________________________________________________________________
+c
+c  retourne le type de machine sur laquelle a lieu le calcul
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . nomare .  s  . char*  . nom reseau de la machine                   .
+c . nomais .  s  . char*  . nom de la machine isolee                   .
+c . typmac .  s  . char*  . type de la machine                         .
+c . noarch .  s  . char*  . nom de l'architecture systeme              .
+c . systre .  s  . char*  . release du systeme                         .
+c . systve .  s  . char*  . version du systeme                         .
+c . lgcar  .  s  .   6    . longueurs de chacune des chaines de caract..
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+      integer nbcar
+      parameter ( nbcar = 6 )
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      character*(*) nomare
+      character*(*) nomais
+      character*(*) typmac
+      character*(*) noarch
+      character*(*) systre
+      character*(*) systve
+c
+      integer lgcar(nbcar)
+c
+c 0.4. ==> variables locales
+#ifdef _DEBUG_HOMARD_
+      integer enstul, sostul
+#endif
+c
+      integer iaux, jaux
+      integer luname(nbcar)
+      integer lgcloc(nbcar)
+      character*255 uname(nbcar)
+c
+c 0.5. ==> initialisations
+c
+c===
+c 1. nom et numero de la machine
+c===
+c
+c 1.1. ==> on suppose que l'on ignore tout
+c
+      lgcloc(1) = len(nomare)
+      lgcloc(2) = len(nomais)
+      lgcloc(3) = len(typmac)
+      lgcloc(4) = len(noarch)
+      lgcloc(5) = len(systre)
+      lgcloc(6) = len(systve)
+c
+      nomare = ' '
+      nomais = ' '
+      typmac = ' '
+      noarch = ' '
+      systre = ' '
+      systve = ' '
+c
+      do 11 , iaux = 1 , nbcar
+        lgcar(iaux) = 1
+   11 continue
+c
+c 1.2. ==> preparation de l'appel a dmmacc : on met la chaine a blanc
+c jaux est la taille (nombre de caracteres) de chaque element
+c du tableau uname. 256 semblerait etre une bonne valeur,
+c preconisee sous unix, ...
+c mais ftnchek rale au dela de 255 (portabilite).
+c
+      jaux = len (uname(1))
+c
+      do 121 , iaux = 1, jaux
+        uname(1)(iaux:iaux) = ' '
+  121 continue
+      luname(1) = jaux
+c
+      do 122 , iaux = 2, nbcar
+        uname(iaux) = uname(1)
+        luname(iaux) = luname(1)
+  122 continue
+c
+c 1.3. ==> appel de la fonction C equivalente
+c      argument 1 = nomare
+c      argument 2 = typmac
+c      argument 3 = noarch
+c      argument 4 = systre
+c      argument 5 = systve
+c
+      call dmmacc ( uname(1), luname(1), uname(2), luname(2),
+     >              uname(3), luname(3), uname(4), luname(4),
+     >              uname(5), luname(5) )
+c
+c====
+c 2. transfert dans les bonnes variables
+c====
+c 2.1. ==> nettoyage eventuel (caracteres non impr.)
+c
+      do 21 , iaux = 1, nbcar
+        call dmcpch ( uname(iaux), luname(iaux),
+     >                uname(iaux), luname(iaux) )
+   21 continue
+c
+c 2.2. ==> transfert
+c 2.2.1. ==> argument 1 = nomare
+c
+      if ( luname(1).gt.0 ) then
+        iaux = min(luname(1),lgcloc(1))
+        nomare(1:iaux) = uname(1)(1:iaux)
+        lgcar(1) = iaux
+      endif
+      if ( luname(1).gt.0 ) then
+        do 22 , iaux = 1 , lgcar(1)
+          if ( nomare(iaux:iaux).eq.'.' ) then
+            lgcar(2) = iaux-1
+            goto 221
+          endif
+          nomais(iaux:iaux) = nomare(iaux:iaux)
+   22   continue
+        lgcar(2) = lgcar(1)
+  221   continue
+      endif
+c
+c 2.2.2. ==> argument 2 = typmac
+c
+      if ( luname(2).gt.0 ) then
+        iaux = min(luname(2),lgcloc(2))
+        typmac(1:iaux) = uname(2)(1:iaux)
+        lgcar(3) = iaux
+      endif
+c
+c 2.2.3. ==> argument 2 = noarch
+c
+      if ( luname(3).gt.0 ) then
+        iaux = min(luname(3),lgcloc(3))
+        noarch(1:iaux) = uname(3)(1:iaux)
+        lgcar(4) = iaux
+      endif
+c
+c 2.2.4. ==> argument 4 = systre
+c
+      if ( luname(4).gt.0 ) then
+        iaux = min(luname(4),lgcloc(4))
+        systre(1:iaux) = uname(4)(1:iaux)
+        lgcar(5) = iaux
+      endif
+c
+c 2.2.5. ==> argument 5 = systve
+c
+      if ( luname(5).gt.0 ) then
+        iaux = min(luname(5),lgcloc(5))
+        systve(1:iaux) = uname(5)(1:iaux)
+        lgcar(6) = iaux
+      endif
+c
+#ifdef _DEBUG_HOMARD_
+      call dmunit ( enstul, sostul )
+      write(sostul,*) 'Dans dmmach :'
+      write(sostul,*) 'nom reseau   = ', nomare
+      write(sostul,*) 'nom isole    = ', nomais
+      write(sostul,*) 'typmac       = ', typmac
+      write(sostul,*) 'architecture = ', noarch
+      write(sostul,*) 'release      = ', systre
+      write(sostul,*) 'version      = ', systve
+#endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmnfcv.F b/src/tool/Dependance_Machine_fortran/dmnfcv.F
new file mode 100644 (file)
index 0000000..848751a
--- /dev/null
@@ -0,0 +1,89 @@
+      subroutine dmnfcv ( nfichi, lfichi )
+c
+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   Dependance Machine : Nom de Fichier ConVerti
+c   -          -         -      -       -  -
+c ______________________________________________________________________
+c
+c REMARQUE : en fait on ne fait RIEN
+c            il faudrait traiter le probleme en C pour Windows
+c
+c but : convertit un nom de fichier UNIX en un nom de fichier
+c       acceptable par le systeme d'exploitation utilise.
+c       autrement dit, sous WINDOWS, change les / en \ , et            .
+c       ailleurs (sous UNIX, en particulier), ne fait RIEN             .
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . nfichi . es  . char * . nom de fichier                             .
+c . lfichi . e   .    1   . longueur de ce nom                         .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer       lfichi
+      character*(*) nfichi
+c
+c 0.4. ==> variables locales
+c
+      integer iaux
+c
+      character*1 slash
+c
+      character*1 slashu
+      parameter ( slashu = '/' )
+c
+c 0.5. ==> initialisations
+c ______________________________________________________________________
+c
+c====
+c 1. Recherche du caractere de separation pour la machine courante
+c====
+c
+      call dmsepf ( slash )
+c
+c====
+c 2. Substitution le cas echeant
+c====
+c
+      if ( slash.ne.slashu ) then
+c
+        do 21 , iaux = 1 , lfichi
+          if ( nfichi(iaux:iaux).eq.slashu ) then
+            nfichi(iaux:iaux) = slash
+          endif
+   21   continue
+c
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmoubs.F b/src/tool/Dependance_Machine_fortran/dmoubs.F
new file mode 100644 (file)
index 0000000..08fd50c
--- /dev/null
@@ -0,0 +1,80 @@
+      subroutine dmoubs ( nuroul , nomfic, lnomfi,
+     >                    ulmess, codret )
+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   Dependance Machine - OUverture en Binaire Sequentiel
+c   -          -         --           -       -
+c ______________________________________________________________________
+c
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . nuroul . e   .    1   . numero de l'unite logique attribuee        .
+c . nomfic . e   . ch<200 . nom du fichier a ouvrir                    .
+c . lnomfi . e   .    1   . longueur du nom du fichier a ouvrir        .
+c . ulmess . e   .    1   . numero d'unite logique des messages        .
+c . codret .  s  .    1   . code de retour : 0 si c'est bon            .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer nuroul, lnomfi, codret, ulmess
+c
+      character*(*) nomfic
+c
+c 0.4. ==> variables locales
+c
+c 0.5. ==> initialisations
+c
+c===
+c 1. pas de differences entre les machines
+c===
+c
+      open ( unit=nuroul, err=10, file=nomfic(1:lnomfi),
+     >       access='SEQUENTIAL', form='UNFORMATTED',
+     >       status='UNKNOWN', iostat=codret )
+c
+      goto 11
+c
+   10 continue
+      if ( codret.eq.0 ) then
+         codret = -1
+      endif
+c
+   11 continue
+c
+      if ( codret.ne.0 ) then
+         write(ulmess,*) 'Ouverture du fichier :'
+         write(ulmess,*) nomfic(1:lnomfi)
+         write(ulmess,*) 'Code retour dans dmoubs : ',codret
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmoufs.F b/src/tool/Dependance_Machine_fortran/dmoufs.F
new file mode 100644 (file)
index 0000000..4a05dec
--- /dev/null
@@ -0,0 +1,80 @@
+      subroutine dmoufs ( nuroul , nomfic, lnomfi,
+     >                    ulmess, codret )
+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   Dependance Machine - OUverture en Formate Sequentiel
+c   -          -         --           -       -
+c ______________________________________________________________________
+c
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . nuroul . e   .    1   . numero de l'unite logique attribuee        .
+c . nomfic . e   . ch<200 . nom du fichier a ouvrir                    .
+c . lnomfi . e   .    1   . longueur du nom du fichier a ouvrir        .
+c . ulmess . e   .    1   . numero d'unite logique des messages        .
+c . codret .  s  .    1   . code de retour : 0 si c'est bon            .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer nuroul, lnomfi, codret, ulmess
+c
+      character*(*) nomfic
+c
+c 0.4. ==> variables locales
+c
+c 0.5. ==> initialisations
+c
+c===
+c 1. pas de differences entre les machines
+c===
+c
+      open ( unit=nuroul, err=10, file=nomfic(1:lnomfi),
+     >       access='SEQUENTIAL', form='FORMATTED',
+     >       status='UNKNOWN', iostat=codret )
+c
+      goto 11
+c
+   10 continue
+      if ( codret.eq.0 ) then
+         codret = -1
+      endif
+c
+   11 continue
+c
+      if ( codret.ne.0 ) then
+         write(ulmess,*) 'Ouverture du fichier :'
+         write(ulmess,*) nomfic(1:lnomfi)
+         write(ulmess,*) 'Code retour dans dmoufs : ',codret
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmprma.F b/src/tool/Dependance_Machine_fortran/dmprma.F
new file mode 100644 (file)
index 0000000..884f499
--- /dev/null
@@ -0,0 +1,72 @@
+      subroutine dmprma ( epsima, dmxent, nbchii )
+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   Dependance Machine : PRecision MAchine
+c   -          -         --        --
+c ______________________________________________________________________
+c
+c  retourne la precision machine
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . epsima .  s  .  dp    . la precision de la machine                 .
+c . dmxent .  s  .  dp    . plus grand entier, exprime en double       .
+c . nbchii .  s  .  i     . nombre de chiffres significatifs des entier.
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer nbchii
+c
+      double precision epsima, dmxent
+c
+c 0.4. ==> variables locales
+c
+c 0.5. ==> initialisations
+c
+c====
+c 1. appel de la fonction generique
+c====
+c
+      call dmprmc ( epsima, nbchii )
+cgn      print *,epsima
+cgn      print *,nbchii
+c
+c====
+c 2. plus grand entier, exprime en double
+c====
+c
+      dmxent = 10.d0**nbchii
+cgn      print *,dmxent
+cgn      print *,int(dmxent)
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmralo.F b/src/tool/Dependance_Machine_fortran/dmralo.F
new file mode 100644 (file)
index 0000000..6b40cb0
--- /dev/null
@@ -0,0 +1,81 @@
+      subroutine dmralo ( adress, taille, codret )
+c
+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   Dependance Machine : ReALlOcation
+c   -          -         - -- -
+c ______________________________________________________________________
+c
+c  but : re-alloue une place memoire demarrant a adress,
+c        a la nouvelle taille
+c  Attention : l'adresse de depart peut etre MODIFIEE, meme si la
+c              nouvelle taille est plus petite que l'ancienne.
+c              Le contenu, lui, est conserve.
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . adress . es  .   1    . adresse de depart de la zone allouee       .
+c . taille . e   .   1    . nouvelle taille de la zone allouee         .
+c . codret .  s  .   1    . code d'erreur ( 0 : tout va bien )         .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer adress, taille, codret
+c
+c 0.4. ==> variables locales
+c ______________________________________________________________________
+c
+c Precautions generales d'emploi:
+c         - la taille finale doit etre strictement positive
+c           (sinon, ce serait une desallocation complete: cf. dmlibe)
+c         - l'adresse de depart doit correspondre (en entree) a une
+c           adresse de depart d'une zone allouee (cf. dmalme) ou
+c           re-allouee...
+c
+      if ( taille.gt.0 ) then
+c
+        call dmralc ( adress, taille )
+c
+        if ( adress.eq.0 ) then
+          codret = 1
+        else
+          codret = 0
+        endif
+c
+      else
+c
+        codret = -1
+c
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmsepf.F b/src/tool/Dependance_Machine_fortran/dmsepf.F
new file mode 100644 (file)
index 0000000..0ec2dfb
--- /dev/null
@@ -0,0 +1,55 @@
+      subroutine dmsepf ( slash )
+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   Dependance Machine : SEParateur Fichiers
+c   -          -         ---        -
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . slash  .  s  . char*  . separateur des noms de fichiers            .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      character*(*) slash
+c
+c 0.4. ==> variables locales
+c
+c 0.5. ==> initialisations
+c
+c===
+c 1. appel de la fonction C equivalente
+c===
+c
+      call dmsepc ( slash )
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmsize.F b/src/tool/Dependance_Machine_fortran/dmsize.F
new file mode 100644 (file)
index 0000000..335c476
--- /dev/null
@@ -0,0 +1,72 @@
+      subroutine dmsize ( tentie , treel, tchain )
+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   Dependance Machine : SIZE des variables selon leurs types
+c   -          -         ----
+c ______________________________________________________________________
+c
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . tentie .  s  .   1    . tailles des entiers en octets              .
+c . treel  .  s  .   1    . tailles des reels en octets                .
+c . tchain .  s  .   1    . tailles des chaines en octets              .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+#ifdef _DEBUG_HOMARD_
+      character*6 nompro
+      parameter ( nompro = 'DMSIZE' )
+#endif
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer tentie , treel, tchain
+c
+c 0.4. ==> variables locales
+c 0.5. ==> initialisations
+c
+c===
+c 1. appel de la fonction C equivalente
+c===
+c
+#ifdef _DEBUG_HOMARD_
+      write (*,*) 'Appel de DMSIZC par ', nompro
+#endif
+      call dmsizc ( tentie , treel, tchain )
+c
+#ifdef _DEBUG_HOMARD_
+      write (*,*) 'Dans ', nompro,', apres dmsizc, tailles en octets :'
+      write (*,*) ' Entier   : ', tentie
+      write (*,*) ' Reel     : ', treel
+      write (*,*) ' Chaine   : ', tchain
+#endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmtemp.F b/src/tool/Dependance_Machine_fortran/dmtemp.F
new file mode 100644 (file)
index 0000000..3226baf
--- /dev/null
@@ -0,0 +1,94 @@
+      subroutine dmtemp ( tuser, tsyst )
+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   Dependance Machine : TEMPs de calcul
+c   -          -         ----
+c ______________________________________________________________________
+c
+c
+c  retourne les temps user et systeme ecoules depuis le dernier appel
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . tuser  .  s  .   1    . temps user depuis le dernier appel         .
+c . tsyst  .  s  .   1    . temps systeme ....................         .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      double precision tuser, tsyst
+c
+c 0.4. ==> variables locales
+c
+      logical prem
+c
+      double precision tuser0, tsyst0
+      double precision tuser1, tsyst1
+c
+c 0.5. ==> initialisations
+c
+      data prem / .true. /
+c
+c===
+c 1. appel de la fonction C equivalente
+c===
+c
+      call dmtemc ( tuser, tsyst )
+c
+c 1.1 ==> Archivage du depart
+c
+      if ( prem ) then
+c
+        tuser0 = tuser
+        tsyst0 = tsyst
+c
+        tuser = 0.d0
+        tsyst = 0.0d0
+c
+        prem = .false.
+c
+      else
+c
+c 1.2. ==> Difference
+c
+        tuser1 = tuser
+        tsyst1 = tsyst
+c
+        tuser = tuser - tuser0
+        tsyst = tsyst - tsyst0
+c
+        tuser0 = tuser1
+        tsyst0 = tsyst1
+c
+      endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmunit.F b/src/tool/Dependance_Machine_fortran/dmunit.F
new file mode 100644 (file)
index 0000000..41caeb2
--- /dev/null
@@ -0,0 +1,60 @@
+      subroutine dmunit ( enstul, sostul )
+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   Dependance Machine : UNITes logiques d'entree et de sortie standard
+c   -          -         ----
+c ______________________________________________________________________
+c
+c but : retourne les numeros d'entree et de sortie standard sur
+c       la machine concernee
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . enstul .  s  .    1   . entree standard : numero de l'unite logique.
+c . sostul .  s  .    1   . sortie standard : numero de l'unite logique.
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer enstul, sostul
+c
+c 0.4. ==> variables locales
+c
+c====
+c 1. affectation
+c====
+c
+      enstul = 5
+c
+      sostul = 6
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmvaen.F b/src/tool/Dependance_Machine_fortran/dmvaen.F
new file mode 100644 (file)
index 0000000..62d3047
--- /dev/null
@@ -0,0 +1,182 @@
+      subroutine dmvaen ( nomvar, lgnova, nomuti, lgnout,
+     >                    ulsort, langue, codret )
+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   Dependance Machine - decodage d'une VAriable d'ENvironnement
+c   -          -                        --         --
+c ______________________________________________________________________
+c
+c
+c but : decode les variables d'environnement
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . nomvar . e   . char*  . nom de la variable a decoder               .
+c . lgnova . e   .   i    . longueur reelle de nomvar                  .
+c . nomuti .  s  . char*  . nom utilisable pour cette variable         .
+c . lgnout .  s  .   i    . longueur reelle de nomuti                  .
+c . ulsort . e   .    1   . unite logique de la liste standard         .
+c . langue . e   .    1   . langue des messages                        .
+c .        .     .        . 1 : francais, 2 : anglais                  .
+c . codret .  s  .    1   . code de retour                             .
+c .        .     .        . 0 : pas de probleme                        .
+c .        .     .        . 1 : impossible de decoder la variable      .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+      character*6 nompro
+      parameter ( nompro = 'DMVAEN' )
+c
+#include "nblang.h"
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      character*(*) nomvar, nomuti
+c
+      integer lgnova, lgnout
+      integer ulsort, langue, codret
+c
+c 0.4. ==> variables locales
+c
+      integer iaux, lgmax
+c
+      integer nbmess
+      parameter ( nbmess = 10 )
+      character*80 texte(nblang,nbmess)
+c
+c 0.5. ==> initialisations
+c
+      parameter ( lgmax = 200 )
+c ______________________________________________________________________
+c
+c====
+c 1.  messages
+c====
+c
+#include "impr01.h"
+c
+#ifdef _DEBUG_HOMARD_
+      write (ulsort,texte(langue,1)) 'Entree', nompro
+      call dmflsh (iaux)
+#endif
+c
+      texte(1,4) = '(''Variable d''''environnement :'')'
+      texte(1,5) = '(''Impossible de la decoder.'')'
+      texte(1,6) = '(''Valeur interpretee :'')'
+c
+      texte(2,4) = '(''Environment variable :'')'
+      texte(2,5) = '(''It cannot be uncoded.'')'
+      texte(2,6) = '(''It is equal to :'')'
+c
+c====
+c 2. appel a la fonction machine
+c====
+c
+      lgnout = 0
+c
+      do 2 iaux = 1 , len(nomuti)
+        nomuti(iaux:iaux) = ' '
+    2 continue
+c
+c 2.1. ==> attention a la taille maximale ...
+c
+      if ( lgnova.le.0 .or. lgnova.gt.len(nomvar) ) then
+c
+        codret = 1
+c
+      else
+c
+c 2.2. ==> appel a la fonction standard ailleurs et
+c          comptage du nombre de lettres effectives
+c
+c NB: sous WINDOWS + Visual Fortran 6.0, l'appel a getenv impose
+c     le rajout de la bibliotheque Dfport.lib
+c     pour que l'edition des liens se passe bien.
+c
+        call getenv ( nomvar(1:lgnova) , nomuti )
+c
+        do 221 , iaux = 1 , min(lgmax,len(nomuti))
+          if ( nomuti(iaux:iaux).eq.' ' ) then
+            codret = 0
+            goto 222
+          endif
+          lgnout = lgnout + 1
+  221   continue
+c
+        codret = 1
+c
+  222   continue
+c
+c nettoyage eventuel:
+c
+        call dmcpch( nomuti, lgnout, nomuti, lgnout )
+c
+      endif
+c
+c====
+c 3. la fin
+c====
+c
+#ifdef _DEBUG_HOMARD_
+      iaux = -1
+#else
+      iaux = 0
+#endif
+c
+      if ( codret.ne.iaux ) then
+        write (ulsort,texte(langue,1)) 'Sortie', nompro
+        write (ulsort,texte(langue,2)) codret
+        write (ulsort,texte(langue,4))
+        if (min(lgnova,len(nomvar)).ge.1) then
+          write (ulsort,*) nomvar( 1 : min(lgnova,len(nomvar)) )
+        else
+          write (ulsort,*)
+        endif
+        if ( codret.eq.1 ) then
+          write (ulsort,texte(langue,5))
+        else
+          if ( iaux.eq.-1 ) then
+            write (ulsort,texte(langue,6))
+            if (lgnout.ge.1) then
+              write (ulsort,*) nomuti(1:lgnout)
+            else
+              write (ulsort,*)
+            endif
+          endif
+        endif
+      endif
+c
+#ifdef _DEBUG_HOMARD_
+      write (ulsort,texte(langue,1)) 'Sortie', nompro
+      call dmflsh (iaux)
+#endif
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmze10.F b/src/tool/Dependance_Machine_fortran/dmze10.F
new file mode 100644 (file)
index 0000000..8321b71
--- /dev/null
@@ -0,0 +1,77 @@
+      subroutine dmze10 ( vinfpo, zero, pd10vi, pd10ze )
+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   Dependance Machine : ZEros en puissance de 10
+c   -          -         --                    --
+c ______________________________________________________________________
+c
+c
+c  retourne la plus petite et la plus grande valeur possible
+c  et leurs puissances de 10 associees : x = 0.abc*10**n
+c  exemple : avec x = 1.e9,  on a x = 0.1*10**10, donc n = 10
+c            avec x = 1.e-40, on a x = 0.1*10**-39, donc n = -39
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . vinfpo .  s  .  dp    . plus grande valeur positive possible       .
+c . zero   .  s  .  dp    . le zero de la machine                      .
+c . pd10vi .  s  .   i    . la puissance de 10 associee a vinfpo       .
+c . pd10ze .  s  .   i    . la puissance de 10 associee a zero         .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      double precision vinfpo, zero
+      integer pd10vi, pd10ze
+c
+c 0.4. ==> variables locales
+c
+c 0.5. ==> initialisations
+c
+c====
+c 1. les valeurs extremes
+c===
+c
+c 1.1. ==> le maximum
+c
+      vinfpo = 1.d29
+      pd10vi = 30
+c
+c 1.2. ==> le minimum : l'inverse du maximum
+c
+      zero = 1.d0 / vinfpo
+c
+c 1.3. ==> les puissances de 10 associees
+c
+      pd10ze = 2 - pd10vi
+c
+      end
diff --git a/src/tool/Dependance_Machine_fortran/dmzero.F b/src/tool/Dependance_Machine_fortran/dmzero.F
new file mode 100644 (file)
index 0000000..3674323
--- /dev/null
@@ -0,0 +1,61 @@
+      subroutine dmzero ( vinfpo, zero )
+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   Dependance Machine : ZEROs machine
+c   -          -         ----
+c ______________________________________________________________________
+c
+c  retourne la plus petite et la plus grande valeur possible
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . vinfpo .  s  .  dp    . plus grande valeur positive possible       .
+c . zero   .  s  .  dp    . le zero de la machine                      .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      double precision vinfpo, zero
+c
+c 0.4. ==> variables locales
+c
+      integer pd10vi, pd10ze
+c
+c 0.5. ==> initialisations
+c
+c====
+c 1. appel de la fonction generique
+c====
+c
+      call dmze10 ( vinfpo, zero, pd10vi, pd10ze )
+c
+      end
index 58a10956f460f49fc357f02387a3083b7b1d391c..ab90adde4c22aba923bf2b3e1dc84c0fd1848ac7 100644 (file)
@@ -1,3 +1,4 @@
 /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
 /* Clone de l'include FC necessaire a cmake pour gerer l'interface Fortran/C */
 /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+#define FortranCInterface_GLOBAL(name, NAME) name##_