wiki:AquaplaneteDynamicoJeanZay

Pour mettre en place et réaliser une simulation Aquaplanète sur Jean Zay

1. Récupération les sources des composants:

svn co --revision 3679 http://svn.lmd.jussieu.fr/LMDZ/LMDZ6/trunk LMDZ
svn co --revision 1025 http://forge.ipsl.jussieu.fr/dynamico/svn/codes/icosagcm/trunk DYNAMICO
svn co --revision 1868 http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk XIOS
svn co --revision 431 http://forge.ipsl.jussieu.fr/heat/svn/codes/dynamico_lmdz/aquaplanet/IOIPSL
svn co --revision 431 http://forge.ipsl.jussieu.fr/heat/svn/codes/dynamico_lmdz/aquaplanet/ICOSA_LMDZ
svn co --revision 431 http://forge.ipsl.jussieu.fr/heat/svn/codes/dynamico_lmdz/aquaplanet/ARCH

2. Adaptations, modifications et ajouts à faire

  • Ajouter un fichier arch-X64_JEANZAY.fcm dans IOIPSL/arch/ (par exemple celui de DYNAMICO/arch)
  • Ajouter des fichiers arch-X64_JEANZAY.env et arch-X64_JEANZAY.path dans ARCH/ (par exemple ceux de de DYNAMICO/arch)
  • Adapter les scripts "compile" et "make_icosa_lmdz" dans ICOSA_LMDZ/:
    # svn diff make_icosa_lmdz 
    Index: make_icosa_lmdz
    ===================================================================
    --- make_icosa_lmdz	(revision 431)
    +++ make_icosa_lmdz	(working copy)
    @@ -202,7 +202,8 @@
     then
     
         cd ../IOIPSL
    -    ./makeioipsl_fcm -$compil_mode -parallel -arch $arch -arch_path $arch_path -j $job $full_flag  || exit 1
    +#    ./makeioipsl_fcm -$compil_mode -parallel -arch $arch -arch_path $arch_path -j $job $full_flag  || exit 1
    +    ./makeioipsl_fcm -$compil_mode -arch $arch -arch_path $arch_path -j $job $full_flag  || exit 1
         cd -
     
         cd ../XIOS
    @@ -222,7 +223,8 @@
         then
     	lmdz_veget="orchidee2.0 -cpp ORCHIDEE_NOZ0H"
         fi
    -    ./makelmdz_fcm -p $phys $phys_opt -rrtm $rrtm -$compil_mode -mem -parallel $parallel -libphy -io xios -v $lmdz_veget -arch $arch -arch_path $arch_path -j $job $full_flag || exit 1
    +#    ./makelmdz_fcm -p $phys $phys_opt -rrtm $rrtm -$compil_mode -mem -parallel $parallel -libphy -io xios -v $lmdz_veget -arch $arch -arch_path $arch_path -j $job $full_flag || exit 1
    +     ./makelmdz_fcm -p $phys $phys_opt -rrtm $rrtm -$compil_mode -mem -parallel $parallel -libphy -io xios -v $lmdz_veget -arch $arch -j $job $full_flag || exit 1
         cd -
     
         cd ../DYNAMICO
    

Afin que le script puisse compiler les composantes en un coup, mais attention de ne pas utiliser les ARCH "générales" pour LMDZ qui ne suit pas les règles des autres composantes (pour le fichier arch.path)

svn diff compile
Index: compile
===================================================================
--- compile	(revision 431)
+++ compile	(working copy)
@@ -1 +1,2 @@
-make_icosa_lmdz -debug -parallel mpi_omp -p lmd -with_orchidee -arch X64_ADA -arch_path ../ARCH -job 8 
+#make_icosa_lmdz -debug -parallel mpi_omp -p lmd -with_orchidee -arch X64_ADA -arch_path ../ARCH -job 8 
+make_icosa_lmdz -debug -parallel mpi_omp -p lmd -arch X64_JEANZAY -arch_path ../ARCH -job 8 

Afin de compiler sans ORCHIDEE

3. Mise en place la simulation

Par exemple dans un répertoire "test_ini_aquaplanet" au même niveau que DYNAMICO, LMDZ, XIOS, etc.

  1. Récupérer exécutable et fichiers xml pour la dynamique
    mv ../ICOSA_LMDZ/bin/icosa_lmdz.exe .
    cp ../DYNAMICO/xml/* .
    

Et adapter le fichier iodef.xml (pour y ajouter les références aux fichiers LMDZ):

    <context id="LMDZ" src="./context_lmdz.xml" /> 
    <context id="LMDZ" src="./context_input_lmdz.xml"/>
  1. Récupérer les fichiers xml de LMDZ:
    cp ../LMDZ/DefLists/context_lmdz.xml .
    cp ../LMDZ/DefLists/context_input_lmdz.xml .
    cp ../LMDZ/DefLists/field_def_lmdz.xml .
    cp ../LMDZ/DefLists/field_def_cosp1.xml .
    cp ../LMDZ/DefLists/file_def_hist*xml .
    

Et corriger tous les "_auto_" qui y trainent...

  1. Faire les fichiers .def qui vont bien en précisant en particulier create_etat0_limit=y et iflag_phys = 101
  2. Ecrire le job qui va bien, par exemple:
    #!/bin/bash
    #SBATCH -A dzt@cpu              # account on which the job should run
    #SBATCH --job-name=job.mpi      #job name
    #SBATCH --partition=cpu_p1       # job partition
    #SBATCH --ntasks=20                # number of MPI processes
    #SBATCH --ntasks-per-node=20       # number of MPI processes per node
    #SBATCH --hint=nomultithread       #no hyperthreading
    #SBATCH --time=00:45:00            # Max run time
    #SBATCH --output=job.mpi_%j.out  # job stdout file
    #SBATCH --error=job.mpi_%j.out   # job stderr file (same as stdout here)
    #SBATCH --exclusive             # to have the whole node
    
    #0. General stuff
    set -ex
    ## environment
    module purge
    
    # go to job submission directory
    cd ${SLURM_SUBMIT_DIR}
    
    #1. Run GCM
    export OMP_NUM_THREADS=1
    source ../ARCH/arch-X64_JEANZAY.env
    #srun --label --multi-prog ./mpmd.conf > icosa_lmdz.out 2>&1 
    srun --label icosa_lmdz.exe > icosa_lmdz.out 2>&1
    

Last modified 4 years ago Last modified on May 18, 2020, 6:58:49 PM