= 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):
{{{
}}}
2. 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...
3. Faire les fichiers .def qui vont bien en précisant en particulier create_etat0_limit=y et iflag_phys = 101
4. 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
}}}