• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

config/H10-Dec-2018-30,25424,681

doc/H03-May-2022-34,29831,483

include/H03-May-2022-9,2016,610

python/H03-May-2022-824,654722,101

src/H03-May-2022-95,23358,943

tests/H03-May-2022-135,240101,083

tools/H03-May-2022-23,28217,095

AUTHORSH A D10-Jul-201789 43

CMakeLists.txt.inH A D28-Nov-20187.6 KiB215179

COPYINGH A D10-Jul-201734.3 KiB675553

COPYING.LESSERH A D10-Jul-20177.5 KiB166128

ChangeLogH A D10-Dec-201823 KiB429312

INSTALLH A D10-Jul-20177.6 KiB183143

Makefile.amH A D05-Nov-2018381 115

Makefile.inH A D10-Dec-201829.5 KiB934838

READMEH A D04-Oct-201712.9 KiB292198

aclocal.m4H A D10-Dec-201851 KiB1,4181,288

bootstrapH A D09-Apr-2018481 166

configureH A D03-May-20221.2 MiB37,27331,045

configure.acH A D10-Dec-201814.5 KiB459385

README

1
2------------------
3TABLE DES MATIERES
4------------------
5
61. 	Obtenir la derniere version
7
82.   	Installer la bibliotheque MED 3.2
92.1 	Plates-formes supportees
102.2 	Logiciels necessaires a l'installation
112.3	Lancement de l'installation sous UNIX
12
133.      Utilisation des tests et des makefiles associes
14
154.      Utilitaires
16
175.	Documentation
18
196.	Joindre les correspondants MED
20
21----------------------------------------------------------------------
22
231. 	Obtenir la derniere version
24
25La version la plus recente de la bibliotheque MED se trouve
26sur le serveur intranet EDF R&D : http://med.der.edf.fr.
27
28
292. 	Installer la bibliotheque MED 3.2
30
31Pour compiler et installer la librairie MED3.2 ainsi que sa
32batterie de programmes tests et ses utilitaires,
33verifiez tout d'abord que vous disposez
34d'un environnement adéquat puis appliquez les instructions suivantes.
35
362.1	Plates-formes supportees et testées
37
38PCs LINUX 32/64
39SUN-SOLARIS                    -> 3.0.x
40BLUEGENE                       -> 3.0.x
41
422.2	Logiciels necessaires a l'installation
43
44a. HDF 5-1.8.14 (http://www.hdfgroup.org/HDF5).
45a1. Variable d'environement HDF5HOME positionnée à l'emplacement d'HDF5
46    ou utilisation de l'option --with-hdf5=<hdf5 path> à l'étape de configuration.
47    Si aucune option n'est utilisée, MED cherche hdf dans /usr.
48
49b. libz
50b1. Si vous compilez en dynamique la bibliothèque hdf5 doit pouvoir être trouvée soit
51    dans le système (/usr/lib) soit par la variable LD_LIBRARY_PATH.
52
53c. compilateur C, F77 ou F90, C++
54
552.3	Lancement de l'installation sous UNIX
56
57Dans le repertoire des sources :
58./configure --prefix=<repertoire cible>
59make
60make check
61make installcheck
62make install ou make install-strip
63
64Remarques :
65
66- Une interface python est disponible depuis la version 3.0.7.
67  Elle peut être desactivée par l'option --disable-python.
68  Elle ne peut être activée en mode static --disable-shared.
69  La bibliothèque medfichier embarque les interfaces .cc et .py générées par swig
70  pour les options med_int=int et med_int=long.
71  L'outil swig n'est donc pas requis à moins de compiler med avec une version // d'hdf.
72  Il faut alors regénérer les interfaces swig en précisant l'option --with-swig.
73  Une fois construite en version //, si vous utiliser la même arborescence pour construire une version
74  de medfichier avec une version séquentielle d'HDF il faut de nouveau activer l'option --with-swig pour
75  regénérer les interfaces swig sans MPI (à l'identique des versions initialement embarquées).
76  La version de swig utilisé par med-3.3 est actuellement 2.0.9.
77  Si vous utilisez un compilateur tel que gcc-6.4 il faut utiliser une version 3 de swig.
78
79- la bibliothèque MED utilise le C++ depuis sa version 2.3.2.
80
81- Il est possible de compiler uniquement la bibliotheque MED en
82  version statique ou dynamique en utilisant respectivement les options
83  du configure --disable-shared  ou --disable-static.
84
85  Dans le cas d'une compilation statique, il est necessaire de préciser
86  le(s) nom(s) et le(s) chemin(s) d'accès à la bibliothèque C++ pour l'édition des liens
87  des tests fortran (soit au moment du configure soit à la commande make ) :
88
89  	ex : make FTLDFLAGS="-L/usr/lib/gcc-lib/i486-linux/3.3.5/" FTLIBS="-lstdc++"
90
91  Pourquoi cette exception à la génération des tests fortran en mode statique ? :
92
93  L'utilisation du linker C++ automatiserait l'apport de la bibliothèque C++
94  dont le nom n'est pas standardisé. Malheureusement, certains conpilateurs fortran
95  ne proposent pas une bibliothèque comme libfrtbegin.a du g77 (contenant le main)
96  mais ajoutent le main à l'édition des liens par un fichier spécifique main.o.
97  La conséquence est que les autotools ne peuvent détecter cette situation et à
98  l'édition des liens C++ aucun main n'est défini. A cause de ces spécificités,
99  nous avons choisi de laisser une édition des liens via le fortran.
100  Lors d'une utilisation de bibliothèques dynamiques sur des plateformes qui
101  supportent les dépendances entre bibliothèques il n'est pas necessaire
102  de définir le FTLDFLAGS car une dépendance à la bibliothèque C++ est inscrite
103  dans la bibliothèque med.
104
105- Pour compiler les tests en Fortran90 vous devez utiliser l'option
106
107  --with-f90=<nom du compilateur F90>  ou
108  positionner la variable d'environement F90 et indiquer --with-f90  :
109
110  Configurez par la commande : ./configure --prefix=<repertoire cible> F77=pgf90 --with-f90=pgf90
111
112  Il est necessaire d'utiliser le compilateur F90 également pour compiler l'interface fortran
113  de la biliothèque (variable F77).
114
115- Pour compiler la bibliotheque en mode debug utilisez :
116
117	./configure --prefix=<repertoire cible> CFLAGS=-g FFLAGS=-g [FCFLAGS=-g]
118
119- Pour enlever les symboles de debugging dans le repertoire d'installation faire
120
121  make install-strip au lieu de make install
122
123- Vous pouvez indiquez vos propres options de compilation :
124  ./configure MAKE=<mon make> CC=<mon compilo C> CFLAGS=<mes options C> \
125  F77=<mon compilo f77> FFLAGS=<mes options f77>  \
126  FCFLAGS=<mes options f90>  \
127  CXX=<mon compilo cplusplus> CXXFLAGS=<mes options cplusplus> \
128  --prefix=<repertoire cible>
129
130- Pour spécifier où se trouve HDF5 sans utiliser la variable
131  d'environnement HDF5HOME utilisez : --with-hdf5=<path>
132
133- Pour désactiver l'affichage de messages d'erreur sur la sortie erreur utilisez l'option
134  --enable-msgerr=false ou --disable-msgerr.
135
136  Si elle est bien utilisée, la bibliothèque ne devrait pas afficher d'erreur.
137
138- MED se base sur la taille des entiers F77 pour définir la taille du med_int. Les
139  options de compilation concernant la taille des entiers fortran sont testées à l'étape
140  de configuration par l'execution d'un test.
141  Si la détection ne fonctionne pas, ou si vous utilisez un cross-compiler vous pouvez
142  spécifier le type C du med_int par l'option --with-med_int=<mon type "C", int, long ...>.
143  La taille de l'entier Fortran doit correspondre au type "C".
144
145
146Exemples de configure :
147
148- Sous Solaris :
149
150	/* Pour utiliser Workshop 6.0*/
151	export LD_LIBRARY_PATH=/logiciels/public/zlib-1.1.4/lib:\
152/home/med/hdf5-1.6.4.SUN4SOL2/lib:/logiciels/workshop-6.0/SUNWspro/lib
153	export PATH=/logiciels/workshop-6.0/SUNWspro/bin/:$PATH
154	export F90=f90
155
156	./configure CC="cc" CFLAGS="-O" F77="f90 -silent" FFLAGS="-O2"  \
157CXX="CC" --prefix=/tmp/med-3.0.0.sun --with-hdf5=/home/med/hdf5-1.6.4.SUN4SOL2/  \
158--with-f90 --disable-shared  LDFLAGS="-L/logiciels/public/zlib-1.1.4/lib/" \
159FTLDFLAGS="-L/logiciels/workshop-6.0/SUNWspro/WS6/lib/" \
160FTLIBS="-lcx -lCrun -lCstd"
161
162  Notez l'apparition du -silent qui permet au configure de detecter correctement
163  la capacité de ce compilateur à générer une bibliothèque dynamique.
164  Sans ce flag f77 écrit sur la stderr le nom de la routine en cours de compilation
165  ce qui est détecté comme une erreur au configure.
166
167
168- Sous OSF/1 :
169
170	Par défaut le configure utilisé positionne la taille des entiers à 64bits,
171	pour désactiver cette fonctionnalité utiliser --disable-int64. Prendre garde à
172	positionner les FFLAGS fortran de façon adéquate (-integer_size 64).
173
174F77=f90
175FFLAGS="-fast -r8 -integer_size 64 -arch host -tune host"
176CC=cc
177CFLAGS="-g0 -verbose -std  -O4  -arch host -tune host -ansi_args -fp_reorder -readonly_strings -inline speed"
178HDF5HOME=/home05/med/hdf5-1.6.4
179F90=f90
180
181./configure --prefix=/home05/med/med-3.0.0 --with-f90
182
183- Sous Linux avec compilateur Fortran PGI et GNU C/C++.
184
185	./configure F77="pgf90" --with-f90="pgf90" --with-med_int=int
186
187 Dans cette configuration :
188
189  - Le test de la taille du med_int échoue car des symboles définis dans des bibliothèques F77 PGI
190    ne sont pas fournis à l'édition des liens du test.
191    Ce test possède un programe principal en C et une routine F77.
192    Le problème est que si l'on ajoute le contenu de $(FTLIBS) à l'édition des liens, le test fontionne
193    avec PGI mais plus sous G77/GCC pour cause d'une définition multiple du main ( par le test c et par la
194    bilbiothèque libfrtbegin ).
195
196- Sous Linux avec compilateur gfortran avec entiers fortran 64bits
197
198	./configure --prefix=/local/med-3.0.0_64.bin --with-f90=gfortran F77=gfortran FFLAGS="-fdefault-integer-8" FCFLAGS="-fdefault-integer-8"
199
200  Ne pas oublier de positionner FCFLAGS pour que les bonnes options soient utilisées pour le Fortran 90.
201
202- sous BULL Novascale 4040 Linux 64 :
203
204./configure --prefix=/home02/salome/ERIC/med-3.0.0_64.bin --with-f90=ifort FFLAGS="-i8" FCFLAGS="-i8"
205
206- Sous BlueGene Q (new)
207
208export ZLIB_PREFIX=/home/projets-bgq/systel/LIBRARY/zlib-1.2.7/arch/zumbrota
209export HDF5_PREFIX=/home/projets-bgq/systel/LIBRARY/hdf5-1.8.8/arch/zumbrota
210export PATH=$PATH:$HDF5_PREFIX/bin/tools/
211export MED_SRC=$HOME/med-3.0.7
212
213
214$MED_SRC/./configure --prefix=$MED_PREFIX --disable-shared --disable-python \
215CC=/bgsys/drivers/ppcfloor/comm/xl/bin/mpicc \
216F77=/bgsys/drivers/ppcfloor/comm/xl/bin/mpif77 \
217FC=/bgsys/drivers/ppcfloor/comm/xl/bin/mpif90 \
218CXX=/bgsys/drivers/ppcfloor/comm/xl/bin/mpic++ \
219CXXFLAGS="-qlanglvl=redefmac" \
220--with-hdf5=$HDF5_PREFIX --with-med-int=int \
221LDFLAGS="-L$ZLIB_PREFIX/lib" FTLIBS="-L/bgsys/linux/RHEL6.3_V1R2M0-36/opt/ibmcmp/vacpp/bg/12.1/lib64/ -libmc++ -L/bgsys/linux/RHEL6.3_V1R2M0-36/usr/lib/gcc/ppc64-redhat-linux/4.4.4/lib64 " \
222--build=ppc64 --host=powerpc
223
224Remarque importante : Il peut être necessaire de modifier la variable prefer_static_libs à yes dans la fonction func_mode_link du fichier libtool généré au ./configure.
225
226- Sous BlueGene P
227
228MED_SRC=$HOME/med-3.0.5
229MED_PREFIX=/gpfs/home/med/med-3.0.5.bin/arch/bgp
230HDF5_PREFIX=/gpfs/home/saturne/opt/hdf5-1.8.6/arch/bgp
231ZLIB_PREFIX=/gpfs/home/saturne/opt/zlib-1.2/arch/bgp
232
233
234$MED_SRC/./configure --prefix=$MED_PREFIX --disable-shared CC=mpixlc F77=mpixlf77  FC=mpixlf90 CXX=mpixlcxx CXXFLAGS="-DMPICH_SKIP_MPICXX -DMPICH_IGNORE_CXX_SEEK" --with-hdf5=$HDF5_PREFIX --with-med-int=int --disable-shared LDFLAGS="-L$ZLIB_PREFIX/lib" FTLIBS="/opt/ibmcmp/vacpp/bg/9.0/bglib/libibmc++.a /bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/powerpc-bgp-linux/lib/libstdc++.a" --build=ppc64 --host=ppc
235
236- En version Parallèle
237
238A l'étape du configure MED repère si l'hdf utilisé à été configuré avec une version parallèle d'HDF5 (statique ou dynamique).
239Si une version parallèle d'HDF5 est utilisée, les compilateurs CC, CXX, F77 seront positionnés par défaut à mpicc (ou commande équivalente), mpiCC (ou commande équivalente) et mpif77 (ou commande équivalente).
240Il est possible de surcharger ces variables.
241
242- En version dynamique (exemple avec lam MPI) :
243
244export LAMMPIF77=gfortran
245../Dev_V3.0b_fayolle/configure --with-hdf5=/local/hdf5-1.8.4p1_par.bin  FC=mpif77 --with-f90=mpif77 FTLIBS=-llammpi++ --prefix=/local/med-3.0.0.bin
246
247Dans cette exemple les compilateurs CC, CXX, F77 seront positionnés par défaut à mpicc, mpiCC et mpif77.
248Puisque l'on active les tests fortran 90, il est necessaire de positionner également FC à mpif77 si vous ne possédez pas de wrapper mpif90.
249Le positionnement FTLIBS=--lampi++ est necessaire pour l'édition des liens des tests fortran qui seront fait en F77 ou FC (cf explication précédente sur la compilation statique).
250Ex:
251../Dev_V3.0b_fayolle/configure --with-hdf5=/local/hdf5-1.8.4p1_par.bin FC=mpif77 FCFLAGS="-fdefault-integer-8" --with-f90=mpif77 FFLAGS="-fdefault-integer-8" FTLIBS="-llammpi++" --prefix=/local/med-3.0.0a2.bin
252
253- En version statique (sans les tests f90) :
254
255export LAMMPIF77=gfortran
256../Dev_V3.0b_fayolle/configure --prefix=/local/med-3.0.0.bin --with-hdf5=/local/hdf5-1.8.4p1_par.bin/  --disable-shared FTLDFLAGS=-L/usr/lib/gcc/x86_64-linux-gnu/4.1.2/  FTLIBS="-lstdc++ -llammpi++"
257
258
259- En version statique (autres commandes utiles) :
260
261./configure --disable-shared --prefix=/local/med-3.0.0.bin --with-hdf5=/local/hdf5-1.8.2_par.bin/ CC=mpicc LDFLAGS="-lm -lz" CXX=mpiCC \
262FTLDFLAGS="-L/usr/lib/gcc/x86_64-linux-gnu/4.1.2/ -L/usr/lib/lam/lib" FTLIBS="-lstdc++ -llammpio -llammpi++ -llamf77mpi -lmpi -llam -lutil -ldl"
263pas de wrapper 	mpif90
264
265- Dans des répertoires distincts
266
267L'exemple suivant permet d'installer les executables, bibilothèques, modules python, tests et documentation dans des répertoires spécifés par l'utilisateur :
268
269../Dev_V3.0b_fayolle/configure --prefix=/tmp/MED1_unused_here --exec-prefix=/tmp/MED1_exec_prefix_for_python --with-f90  --with-hdf5=/local/hdf5-1.8.14.bin  --with-swig=/local/swig-2.0.9 --bindir=/tmp/MED1/bin --libdir=/tmp/MED1/lib --includedir=/tmp/MED1/include  --docdir=/tmp/MED1/doc --disable-static --enable-installtest
270
271Notez l'option --enable-installtest qui demande explicitement d'installer les tests.
272
2733.	Utilitaires
274
275Trois utilitaires sont compiles et installes dans <repertoire cible>/bin.
276Ce sont :
277- mdump (xmdump) : outil de dump d'un fichier MED aux formats V2.3 à V3.2.
278- medimport : traducteur de fichier à partir des versions V2.x vers V3.2.
279- mdeconforme : vérificateur de conformité de fichier.
280
2814.	Documentation
282
283Toute la documentation est presente dans le répertoire d'installation
284<repertoire cible>/share/doc/. Il s'agit d'une documentation au format HTML.
285
286
2875. 	Joindre les correspondants MED
288
289Par e-mail :
290eric.fayolle@edf.fr
291
292