{"id":16880622,"url":"https://github.com/chennes/med","last_synced_at":"2026-04-11T22:15:02.489Z","repository":{"id":189735267,"uuid":"681199540","full_name":"chennes/med","owner":"chennes","description":"Mirror of MED File source","archived":false,"fork":false,"pushed_at":"2024-06-08T02:03:56.000Z","size":65485,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T00:41:14.355Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chennes.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-21T13:41:39.000Z","updated_at":"2024-06-08T02:01:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"babf5cd5-8d74-4ebc-a14f-0f925e2896b1","html_url":"https://github.com/chennes/med","commit_stats":null,"previous_names":["chennes/med"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/chennes/med","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chennes%2Fmed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chennes%2Fmed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chennes%2Fmed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chennes%2Fmed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chennes","download_url":"https://codeload.github.com/chennes/med/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chennes%2Fmed/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259610491,"owners_count":22884272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T15:59:33.069Z","updated_at":"2026-04-11T22:14:57.461Z","avatar_url":"https://github.com/chennes.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n------------------\nTABLE DES MATIERES\n------------------\n\n1. \tObtenir la derniere version\n\n2.   \tInstaller la bibliotheque MED\n2.1 \tPlates-formes supportees\n2.2 \tLogiciels necessaires a l'installation\n2.3\tLancement de l'installation sous UNIX\n\n3.      Utilisation des tests et des makefiles associes\n\n4.      Utilitaires\n\n5.\tDocumentation\n\n6.\tJoindre les correspondants MED\n\n----------------------------------------------------------------------\n\n1. \tObtenir la derniere version\n\nLa version la plus recente de la bibliotheque MED se trouve\nsur le serveur  : https://www.salome-platform.org/downloads/current-version\n\n2. \tInstaller la bibliotheque MED 5\n\nPour compiler et installer la librairie MED ainsi que sa\nbatterie de programmes tests et ses utilitaires, \nverifiez tout d'abord que vous disposez \nd'un environnement adéquat puis appliquez les instructions suivantes.\n\n2.1\tPlates-formes supportees et testées\n\nPCs LINUX 32/64\nWINDOWS10\n\n2.2\tLogiciels necessaires a l'installation de MED 5\n\na. hdf5-1.12.z (http://www.hdfgroup.org/HDF5).\n   a1. Variable d'environement HDF5HOME positionnée à l'emplacement d'HDF5\n       ou utilisation de l'option --with-hdf5=\u003chdf5 path\u003e à l'étape de configuration.\n       Si aucune option n'est utilisée, MED cherche hdf dans /usr.\n\nb. libz\n   b1. Si vous compilez en dynamique la bibliothèque hdf5 doit pouvoir être trouvée soit\n       dans le système (/usr/lib) soit par la variable LD_LIBRARY_PATH.\n\nc. compilateur C, C++ et eventuellement F77 et/ou F90\n\nd. eventuellement SWIG-4.1.1 si vous configurez med-fichier avec hdf5// ou with-med_int=long.\n\n2.3\tLancement de l'installation sous UNIX\n\nDans le repertoire des sources :\n./configure --prefix=\u003crepertoire cible\u003e \nmake\nmake check \nmake installcheck\nmake install ou make install-strip\n\nRemarques :\n\n- Une interface python est disponible depuis la version 3.0.7.\n  Elle peut être desactivée par l'option --disable-python.\n  Elle ne peut être activée en mode static --disable-shared.\n  La bibliothèque medfichier embarque les interfaces .cc et .py générées par swig \n  pour les options med_int=int et med_int=long.\n  L'outil swig n'est donc pas requis à moins de compiler med avec une version // d'hdf.\n  Il faut alors regénérer les interfaces swig en précisant l'option --with-swig. \n  Une fois construite en version //, si vous utiliser la même arborescence pour construire une version \n  de medfichier avec une version séquentielle d'HDF il faut de nouveau activer l'option --with-swig pour\n  regénérer les interfaces swig sans MPI (à l'identique des versions initialement embarquées).\n  La version de swig utilisé par med-3.3 est actuellement 2.0.9.\n  Si vous utilisez un compilateur tel que gcc-6.4 il faut utiliser une version 3 de swig.\n  \n- la bibliothèque MED utilise le C++ depuis sa version 2.3.2.\n\n- Il est possible de compiler uniquement la bibliotheque MED en\n  version statique ou dynamique en utilisant respectivement les options \n  du configure --disable-shared  ou --disable-static.\n\n  Dans le cas d'une compilation statique, il est necessaire de préciser\n  le(s) nom(s) et le(s) chemin(s) d'accès à la bibliothèque C++ pour l'édition des liens \n  des tests fortran (soit au moment du configure soit à la commande make ) :\n\n  \tex : make FTLDFLAGS=\"-L/usr/lib/gcc-lib/i486-linux/3.3.5/\" FTLIBS=\"-lstdc++\"\n\n  Pourquoi cette exception à la génération des tests fortran en mode statique ? :\n\n  L'utilisation du linker C++ automatiserait l'apport de la bibliothèque C++\n  dont le nom n'est pas standardisé. Malheureusement, certains conpilateurs fortran\n  ne proposent pas une bibliothèque comme libfrtbegin.a du g77 (contenant le main)\n  mais ajoutent le main à l'édition des liens par un fichier spécifique main.o.\n  La conséquence est que les autotools ne peuvent détecter cette situation et à \n  l'édition des liens C++ aucun main n'est défini. A cause de ces spécificités,\n  nous avons choisi de laisser une édition des liens via le fortran. \n  Lors d'une utilisation de bibliothèques dynamiques sur des plateformes qui \n  supportent les dépendances entre bibliothèques il n'est pas necessaire\n  de définir le FTLDFLAGS car une dépendance à la bibliothèque C++ est inscrite\n  dans la bibliothèque med.\n\n- Pour compiler les tests en Fortran90 vous devez utiliser l'option \n\n  --with-f90=\u003cnom du compilateur F90\u003e  ou \n  positionner la variable d'environement F90 et indiquer --with-f90  : \n\n  Configurez par la commande : ./configure --prefix=\u003crepertoire cible\u003e F77=pgf90 --with-f90=pgf90\n\n  Il est necessaire d'utiliser le compilateur F90 également pour compiler l'interface fortran\n  de la biliothèque (variable F77).\n\n- Pour compiler la bibliotheque en mode debug utilisez : \n\n\t./configure --prefix=\u003crepertoire cible\u003e CFLAGS=-g FFLAGS=-g [FCFLAGS=-g]\n\n- Pour enlever les symboles de debugging dans le repertoire d'installation faire \n\n  make install-strip au lieu de make install\n\n- Vous pouvez indiquez vos propres options de compilation : \n  ./configure MAKE=\u003cmon make\u003e CC=\u003cmon compilo C\u003e CFLAGS=\u003cmes options C\u003e \\\n              F77=\u003cmon compilo f77\u003e FFLAGS=\u003cmes options f77\u003e  \\\n              FCFLAGS=\u003cmes options f90\u003e  \\\n              CXX=\u003cmon compilo cplusplus\u003e CXXFLAGS=\u003cmes options cplusplus\u003e \\\n              --prefix=\u003crepertoire cible\u003e\n\n- Pour spécifier où se trouve HDF5 sans utiliser la variable \n  d'environnement HDF5HOME utilisez : --with-hdf5=\u003cpath\u003e \n\n- Pour désactiver l'affichage de messages d'erreur sur la sortie erreur utilisez l'option\n  --enable-msgerr=false ou --disable-msgerr.\n\n  Si elle est bien utilisée, la bibliothèque ne devrait pas afficher d'erreur.\n\n- MED se base sur la taille des entiers F77 pour définir la taille du med_int. Les\n  options de compilation concernant la taille des entiers fortran sont testées à l'étape\n  de configuration par l'execution d'un test. \n  Si la détection ne fonctionne pas, ou si vous utilisez un cross-compiler vous pouvez\n  spécifier le type C du med_int par l'option --with-med_int=\u003cmon type \"C\", int, long ...\u003e.\n  La taille de l'entier Fortran doit correspondre au type \"C\".\n  \n\n3.      Utilisation des tests et des makefiles associes : \n\n- Sous Linux avec compilateur Fortran PGI et GNU C/C++.\n\n\t./configure F77=\"pgf90\" --with-f90=\"pgf90\" --with-med_int=int\n\n Dans cette configuration :\n\n  - Le test de la taille du med_int échoue car des symboles définis dans des bibliothèques F77 PGI\n    ne sont pas fournis à l'édition des liens du test. \n    Ce test possède un programe principal en C et une routine F77.\n    Le problème est que si l'on ajoute le contenu de $(FTLIBS) à l'édition des liens, le test fontionne\n    avec PGI mais plus sous G77/GCC pour cause d'une définition multiple du main ( par le test c et par la\n    bilbiothèque libfrtbegin ).\n\n- Sous Linux avec compilateur gfortran avec entiers fortran 64bits\n\n\t./configure --prefix=/local/med-3.0.0_64.bin --with-f90=gfortran F77=gfortran FFLAGS=\"-fdefault-integer-8\" FCFLAGS=\"-fdefault-integer-8\"\n\n  Ne pas oublier de positionner FCFLAGS pour que les bonnes options soient utilisées pour le Fortran 90.\n\n- En version Parallèle\n\nA l'étape du configure MED repère si l'hdf utilisé à été configuré avec une version parallèle d'HDF5 (statique ou dynamique). \nSi 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).\nIl est possible de surcharger ces variables.\n\n- En version dynamique (exemple avec lam MPI) :\n\nexport LAMMPIF77=gfortran\n../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\n\nDans cette exemple les compilateurs CC, CXX, F77 seront positionnés par défaut à mpicc, mpiCC et mpif77.\nPuisque l'on active les tests fortran 90, il est necessaire de positionner également FC à mpif77 si vous ne possédez pas de wrapper mpif90.\nLe 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).\n\nEx:\n../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\n\n- En version statique (sans les tests f90) : \n\nexport LAMMPIF77=gfortran\n../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++\"\n\n\n- En version statique (autres commandes utiles) :\n\n./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 \\\nFTLDFLAGS=\"-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\"\npas de wrapper \tmpif90\n\n- Dans des répertoires distincts \n\nL'exemple suivant permet d'installer les executables, bibilothèques, modules python, tests et documentation dans des répertoires spécifés par l'utilisateur :\n\n../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\n\nNotez l'option --enable-installtest qui demande explicitement d'installer les tests.\n\n\n- Sous Solaris :\n\n\t/* Pour utiliser Workshop 6.0*/\n\texport LD_LIBRARY_PATH=/logiciels/public/zlib-1.1.4/lib:\\\n/home/med/hdf5-1.6.4.SUN4SOL2/lib:/logiciels/workshop-6.0/SUNWspro/lib\n\texport PATH=/logiciels/workshop-6.0/SUNWspro/bin/:$PATH\n\texport F90=f90\n\n\t./configure CC=\"cc\" CFLAGS=\"-O\" F77=\"f90 -silent\" FFLAGS=\"-O2\"  \\\nCXX=\"CC\" --prefix=/tmp/med-3.0.0.sun --with-hdf5=/home/med/hdf5-1.6.4.SUN4SOL2/  \\\n--with-f90 --disable-shared  LDFLAGS=\"-L/logiciels/public/zlib-1.1.4/lib/\" \\\nFTLDFLAGS=\"-L/logiciels/workshop-6.0/SUNWspro/WS6/lib/\" \\\nFTLIBS=\"-lcx -lCrun -lCstd\"\n\t\n  Notez l'apparition du -silent qui permet au configure de detecter correctement\n  la capacité de ce compilateur à générer une bibliothèque dynamique.\n  Sans ce flag f77 écrit sur la stderr le nom de la routine en cours de compilation\n  ce qui est détecté comme une erreur au configure.\n\n\n- Sous OSF/1 :\n\n\tPar défaut le configure utilisé positionne la taille des entiers à 64bits,\n\tpour désactiver cette fonctionnalité utiliser --disable-int64. Prendre garde à \n\tpositionner les FFLAGS fortran de façon adéquate (-integer_size 64).\n\nF77=f90 \nFFLAGS=\"-fast -r8 -integer_size 64 -arch host -tune host\"\nCC=cc\nCFLAGS=\"-g0 -verbose -std  -O4  -arch host -tune host -ansi_args -fp_reorder -readonly_strings -inline speed\"\nHDF5HOME=/home05/med/hdf5-1.6.4\nF90=f90\n\n./configure --prefix=/home05/med/med-3.0.0 --with-f90\n\n\n- sous BULL Novascale 4040 Linux 64 :\n\n./configure --prefix=/home02/salome/ERIC/med-3.0.0_64.bin --with-f90=ifort FFLAGS=\"-i8\" FCFLAGS=\"-i8\"\n\n- Sous BlueGene Q\n\nexport ZLIB_PREFIX=/home/projets-bgq/systel/LIBRARY/zlib-1.2.7/arch/zumbrota\nexport HDF5_PREFIX=/home/projets-bgq/systel/LIBRARY/hdf5-1.8.8/arch/zumbrota\nexport PATH=$PATH:$HDF5_PREFIX/bin/tools/\nexport MED_SRC=$HOME/med-3.0.7\n\n$MED_SRC/./configure --prefix=$MED_PREFIX --disable-shared --disable-python \\\nCC=/bgsys/drivers/ppcfloor/comm/xl/bin/mpicc \\\nF77=/bgsys/drivers/ppcfloor/comm/xl/bin/mpif77 \\\nFC=/bgsys/drivers/ppcfloor/comm/xl/bin/mpif90 \\\nCXX=/bgsys/drivers/ppcfloor/comm/xl/bin/mpic++ \\\nCXXFLAGS=\"-qlanglvl=redefmac\" \\\n--with-hdf5=$HDF5_PREFIX --with-med-int=int \\\nLDFLAGS=\"-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 \" \\\n--build=ppc64 --host=powerpc\n\nRemarque 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. \n\n- Sous BlueGene P \n\nMED_SRC=$HOME/med-3.0.5\nMED_PREFIX=/gpfs/home/med/med-3.0.5.bin/arch/bgp\nHDF5_PREFIX=/gpfs/home/saturne/opt/hdf5-1.8.6/arch/bgp\nZLIB_PREFIX=/gpfs/home/saturne/opt/zlib-1.2/arch/bgp\n\n\n$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\n\n\n4.\tUtilitaires\n\nTrois utilitaires sont compilés et installés dans \u003crepertoire cible\u003e/bin.\nCe sont :\n- mdump* (xmdump*) : outil de dump d'un fichier MED qlq soit le format à partir DE V2.2.\n- mdump4           : outil de dump d'un fichier MED à partir du format 4.1\n                     (plus performant pour les champs avec deux nombreuses étapes de calcul).\n- medimport        : traducteur de fichier à partir des versions V2.x vers la version courante.\n- mdeconforme      : vérificateur de conformité de fichier avec la bibliothèque utilisée.\n\n5.\tDocumentation\n\nToute la documentation est presente dans le répertoire d'installation\n\u003crepertoire cible\u003e/share/doc/. Il s'agit d'une documentation au format HTML.\n\n\n6. \tJoindre les correspondants MED\n\nPar e-mail :\neric.fayolle@edf.fr\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchennes%2Fmed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchennes%2Fmed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchennes%2Fmed/lists"}