wiki:FAQ_LMDZINCA

Version 28 (modified by acosce, 13 years ago) (diff)

--

Foire Aux Questions

Dernière mise à  jour : 27/05/2009
Rappel : Beaucoup de questions sont traitées dans la documentation en ligne de Modipsl



Documentation sur la machine vectorielle du CCRT (Mercure)

Cette documentation est en accès restreint ICI (avec une authentification à l'aide de votre login et de votre mot de passe CCRT)



Comment prolonger une simulation ?

Cette question est traitée ICI



Comment relancer une simulation plantée ?

Cette question est traitée ICI



Comment utiliser l'exécutable d'une ancienne simulation ?

A la fin de chaque période de simulation l'exécutable correspondant est enregistré dans le répertoire $DMFDIR/IGCM_OUT/LMDZINCA/../Nom_Simul/Exe/. Il vous est donc possible par la suite de le ré-utiliser pour une autre simulation. Pour cela il vous suffit de copier cet exécutable dans le répertoire modipsl/bin/ en l'appelant gcm.e



Comment utiliser les vents à 10m calculés par le gcm pour une simulation avec des aérosols ?

Par défaut le modèle LMDZINCA s'attend à lire des fichiers netcdf contenant les valeurs des vents à 10m. Cependant vous pouvez choisir d'utiliser ceux calculés par le gcm. Pour cela vous devez :

  • modifier la variable climatological (il faut la mettre à .TRUE.) dans le fichier INCA3/src/INCA_SRC/aerosol_meteo_calc.F90
  • recompiler le modèle



Comment utiliser le mode guidé du modèle ?

Cette question est traitée ICI



Comment changer de schéma de convection ?

Il faut vous reportez à la documentation LMDZ ICI
ATTENTION : par défaut le schéma de convection est celui de Kerry Emmanuel. Si vous voulez utiliser celui de Tiedtke (qui n'est pas maintenu par le LMD) il faut modifier le calcul des éclairs dans la routine mknoprod

Pour Tiedke : 
     flash(:) = 4.67 * calibration * flash(:)
Pour Kerry Emmanuel : 
      flash(:) = 2. * calibration * flash(:)  



Comment lire le fichier Script_output ?

Cette question est traitée ICI Les messages d'erreurs potentiels sont décryptés ICI



Où sont stockés les fichiers pré-processés par le compilateur ?

Si votre simulation n'a pas bien fonctionnée certainement que le fichier x_error vous indique un nom de routine et un numéro de ligne où le plantage c'est produit. Ces numéros de lignes ne correspondent pas aux lignes dans les sources du code, mais dans les sources pré-processées par le compilateur. Ces routines sont stockées :

  • Pour LMDZ : LDMZ4/tmp_src/i.nom_fichier.f (ou .f90)
  • Pour INCA : INCA3/config/tmp/i.nom_fichier.f (ou .f90)



Quelles sont les différentes versions du modèle ?

La liste des différentes configurations utilisant le modèle INCA est ICI



Quelles sont les performances (mémoire et cputime) du code LMDZINCA pour les difféentes configurations ?

Vous trouverez les informations ICI



Comment utiliser le couplage online/offline des aérosols ?

Cette question est traitée ICI. Elle est valable à la fois pour la configuration LMDZINCA_v3 et pour la configuration IPSL_ESM_v2.



Où sont stockés les fichiers de conditions aux limites avec les SST/années ?

Ces fichiers limit.nc sont stockés sur mercure à l'adresse suivante : /dmnfs/cont003/p24data/LIMIT_LMDZ4_96x72



Quelles sont les options de compilations des modèles LMDZ et INCA

  • Pour LMDZ
    makelmdz_fcm [options] -m arch exec
    [-h]                       : manuel abrégé
    [-d [[IMx]JMx]LM]          : IM, JM, LM sont les dims en x, y, z (def: $dim)
    [-p PHYS]                  : compilation avec la physique libf/phyPHYS, (def: lmd)
    [-prod / -dev / -debug]    : compilation en mode production (default) / developpement / debug .
    [-c false/MPI1/MPI2]       : couplé océan : MPI1/MPI2/false (def: false)
    [-v false/true]            : avec ou sans végétation (def: false)
    [-chimie INCA/false]       : avec ou sans model de chimie INCA (def: false)
    [-parallel none/mpi/omp/mpi_omp] : parallelisation (default: none) : mpi, openmp ou mixte mpi_openmp
    [-g GRI]                   : conf. grille dans dyn3d/GRI_xy.h  (def: reg inclue un zoom)
    [-io IO]                   : choix d'une librairie I/O, experts (def: ioipsl)
    [-include INCLUDES]        : variables supplementaires pour include
    [-cpp CPP_KEY]             : cle cpp supplementaires
    [-adjnt]                   : adjoint, a remettre en route ...
    [-filtre NOMFILTRE]        : prend le filtre dans libf/NOMFILTRE (def: filtrez)
    [-link LINKS]              : liens optionels avec d'autres librairies
    [-fcm_path path]           : chemin pour fcm (def: le chemin est suppose deja exister dans le PATH)
     -arch nom_arch            : nom de l'architecture cible
     exec                      : exécutable généré
    
  • Pour INCA
    makeinca_fcm [options] -arch arch 
    [-h]                                         : manuel abrege
    [-chimie NMHC/NMHC_AER/CH4/CH4_AER/GES/AER]  : configuration choisie (def: AER) 
    [-parallel none/mpi/mpi_omp]                 : parallelisation (def: none) 
    [-io IO]                                     : choix d'une librairie I/O, experts (def: ioipsl)
    [-resol IMxJM]                               : IM, JM sont les dims en x et y (def: 96x72) 
    [-prod / -dev / -debug]                      : compilation en mode production (default) / developpement / debug .
     -arch arch                                  : nom de l'architecture cible (def: MERCURE) 
    

Ces options peuvent être changées dans le fichier modipsl/config/LMDZINCA_v3/Makefile. Par exemple (pour une compilation en mpi_omp et en mode de développement) :

	(cd ../../modeles/INCA3; ./makeinca_fcm -chimie AER -parallel mpi_omp -dev -arch $(FCM_ARCH); cp SIMULATIONS/AER/inca.dat ../../bin/inca.dat ; )
	(cd ../../modeles/LMDZ4;  ./makelmdz_fcm -d 96x72x19 -v false -chimie INCA -parallel mpi_omp -dev -arch $(FCM_ARCH) -g reg gcm ; cp bin/gcm_96x72x19_phylmd_para_inca.e ../../bin/gcm.e ; )



A qui demander les mots de passes pour extraire les modèles Orchidee ou Nemo ?

  • Orchidee : adressez-vous à M. Mancip
  • Nemo : adressez-vous à A. Caubel



Comment soumettre un job sur un compte genci ?

  • sur mercure vous rajoutez en entête de votre job la commande PBS suivante
    #PBS -A gen---
    

Avec gen--- le numéro de votre projet genci. }}}

Je ne comprends pas : je modifie le code et la compilation se passe bien pourtant ça n'apparait pas à l'exécution

Vérifier dans votre job que la variable MODIPSL est bien positionnée sur le répertoire avec lequel vous travaillez. Cette erreur se produit si vous copiez votre répertoire de travail et que vous ne recréez pas le job avec l'outil ins_job de util/ Dans ce cas là cette variable reste positionnée sur son ancienne valeur et donc la simulation n'utilise pas le bon exécutable.

Que faut-il modifier pour avoir des sorties horaires dans inca_avgr ?

Il suffit de modifier la variable ecritchim dans outfld_init.f90

ecritchim = 1. /86400  ! sorties journalières
ecritchim = 24./86400  ! sorties horaires



Comment forcer la recompilation des modèles LMDZ et INCA ?

Pour forcer LMDZ à recompiler totalement il faut modifier le fichier LMDZ4/build_gcm

fcm build
devient 
fcm build -f

Pour forcer INCA à recompiler totalement il faut modifier le fichier INCA3/makeinca_fcm

fcm build 
devient
fcm build -f

Attention : il faut bien penser à enlever ces modifications après la compilation, sinon les modèles seront de nouveau recompilés entièrement la prochaine fois.



Qu'est-ce que l'option adjust et comment l'utiliser ?

Pour optimiser la parallélisation du code il faut ajuster les domaines de parallélisation en fonction des calculs réalisés sur chacun. Par exemple il y a plus de points de calcul à l'équateur qu'aux pôles et une division de la carte par le nombre de processeurs ne tiendrait pas compte des répartitions des points. Le paramètre adjust dans run.def permet d'activer l'ajustement des domaines.
Cependant cette option est intrusive et modifie les résultats du modèle. Elle n'est pas compatible avec la parallélisation OpenMP ni avec l'utilisation de fichiers climatiques de forçages. C'est pour cela qu'il faut l'utiliser sur une pré-simulation puis récupérer le fichier d'ajustement créé par celle-ci pour sa simulation.
1- pour la pré-simulation

Lancer la simulation avec dans COMP/lmdz.card : 
LMDZ_NbPeriod_adjust=3

A la fin de la simulation un fichier BandsResol est créé dans IGCM_OUT/NomConfig/NomChimie/ATM/Debug/
2- pour la simulation

Lancer la simulation avec dans COMP/lmdz.card : 
LMDZ_NbPeriod_adjust=0
MDZ_Bands_file_name=path_du_fichier_BandsResol_de_la_pré_simulation   

Remarque : Si vous n'ajoutez pas de calculs et que vous ne changez pas de résolution et de nombre de processeurs utilisés, vous pouvez utiliser un ancien fichier BandsResol et n'êtes pas obligé de faire une pré-simulation pour chaque simulation.



Passage sur titane

  • Titane partage le HOME, le CSCRATCHDIR et le DMFDIR avec les autres machines de calcul du ccrt, par contre le WORKDIR et le SCRATCHDIR lui sont propres.
  • Vous devez mettre à jour votre environnement en différenciant les machines dans vos fichiers .bashrc ou .cshrc ou .login

.login et .cshrc

switch (`hostname`)
case mercure0*:
(...)
	true
	breaksw
case platine*:
(...)
	true
	breaksw
default:
	true
	breaksw
endsw

.bashrc

case $HOSTNAME in

mercure0[123])
  (...);;

titane*) 
  (...) ;; 
esac

Dans tous les cas il faut pointer vers la librairie "~p86ipsl/atlas_env_titane_csh (ou_ksh)" et ajouter les modules suivants

        module unload intel/10.1.022 mkl/10.1.1.019 ; module load intel/11.1.056 ; module load netcdf/3.6.3
  • C'est une machine scalaire massivement parallèle : 4 procs Mercure ~ 32 procs Titane voir la page des performances de INCA sur les machines du CCRT
  • les commandes de gestions de runs sont
    ccc_msub Job     >> soumet le script Job
    ccc_mstat -u login    >> donne la liste des Jobs soumis appartenant à login
    ccc_mdel id_Job        >> détruit le Job n°id_Job
    
  • il n'y a pas de queue scalaire sur titane, la machine de post-traitement est cesium (il faut faire la connection à la main au moins une fois avant de lancer son premier job)
    depuis titane : 
    ssh -X cesium
    

Cela implique que les jobs de rebuild, de création de TS et SE se font sur cesium.

  • Pour plus de renseignements vous référer à la page du CCRT : https://www-ccrt.ccc.cea.fr (authentification à l'aide de votre login et de votre mot de passe CCRT)

Changement dans les sources pour passer sur titane ou platine

Pour les anciennes versions de INCA il y a deux modifications à faire pour que le code compile sur titane ou sur platine

Dans chem_time.f90 
remplacer
minutes=mod(sec/60,60) 
par 
minutes=mod(int(sec/60),60)
Dans obs_pos_mod.f90 
remplacer 
xat(1)= float(itau) 
par
xat(1)=itau

ATTENTION : si vous voulez porter une ancienne version de LMDZINCA ou LMDZORINCA sur titane ou platine, il est fortement recommandé de récupérer le modipsl le plus récent et d'y incorporer vos sources. Il faut surtout bien conserver les nouveaux fichiers LMDZ4/arch/* et INCA3/arch/* ainsi que les fichiers makeinca_fcm et makelmdz_fcm.

Comment choisir son nombre de processeurs sur titane ?

La méthode de parallélisation de LMDZ impose la règle suivante : il faut au moins 3 bandes de latitude par processeurs
Si vous avez choisi un trop grand nombre de processeurs la simulation s'arrête avec le message suivant :

 Arret : le nombre de bande de lattitude par process est trop faible (<2).
  ---> diminuez le nombre de CPU ou augmentez la taille en lattitude

Comment déconnecter Orchidee dans LMDZORINCA

Il faut indiquer VEGET=n dans physiq.def
il faut commenter les lignes suivantes dans config.card

#SRF= (orchidee, ORCHIDEE_1_9_5)

#SRF= ("", "")

Ainsi que le paragraphe de restart SRF dans config.card.