wiki:LMDZoGuOR

Version 12 (modified by jgipsl, 13 years ago) (diff)

--

Configuration LMDZOR_v4 =

a configuration under developpement
/J Ghattas


This configuration is a modified copy of LMDZ4OR_v3. Modifications are :

  • the grille 280x280x39 is added. This grid contains a zoom over Africa
  • the CREATE experience does not have a PARAM directory. In CREATE/COMP/lmdz.card the parameter PARAM_DIR points to ../LMDZOR/PARAM.

In the CREATE experience, 2 files exist in double versions : config_card and lmdz.card. Before run a manual copy or link must be done :

ln -s config.card_Interannuel config.card; cd COMP; ln -s lmdz.card_Interannuel lmdz.card

or

ln -s config.card_Climat config.card; cd COMP; ln -s lmdz.card_Climat lmdz.card
  • bug correction for CREATE run with leap calendar (gregorian), in config.card : CalendarType=leap => in run.def : calend=gregorian
  • scripts for interpolating files for nudging are stored in CREATE/SCRIPT. The script get_era.x is the master that will launch the other 2 (era2gcm.x and add_step.x).

In the LMDZOR experience, a climat or a AMIP(interannual) experience can be run. Before run a manual copy or link must be done :

cd LMDZOR/COMP; ln -s lmdz.card_Climat lmdz.card; ln -s orchidee.card_Climat orchidee.card

or

cd LMDZOR/COMP; ln -s lmdz.card_AMIP lmdz.card; ln -s orchidee.card_AMIP orchidee.card

Parametres in config.card such as JobName, CalendarType, DateBegin, DateEnd must be considered and eventally modified according to desired experience.

VARGAS IBM power 6 at IDRIS

The executable create_etat0_limit or ce0l compiled in parallel mode does not finalize correctly at vargas. The files are created but the job exits with error message ERROR: 0032-184 MPI was not finalized in routine unknown, task 0. The files are saved to archive but as the job exits abnormaly it is not possible to loop over several years.

Différentes expériences

Différences actuelle entre LMDZOR et AMIP :

Fichier LMDZOR AMIP Commentaires
COMP/lmdz.card ELC-${RESOL_ATM_3D} ELI-${RESOL_ATM_3D} CREATE (nom du job create_etat0_limit)
clim_start.nc ${year}_start.nc fichier climat / inter annuelle
clim_startphy.nc ${year}_startphy.nc fichier climat / inter annuelle
clim_limit.nc ${year}_limit.nc fichier climat / inter annuelle
aerosols_11YearsClim_1860.nc aerosols_11YearsClim_1855.nc aerosols.nat.nc
aerosols_11YearsClim_1995.nc aerosols1980.nc
aerosols_11YearsClim_${year}.nc aerosols${year}.nc, 1:12: (smoothfile : à partir de la 1ère toutes les 12 périodes (mois) [min]:[modulo:][max] )
climoz_LMDZ_1995.nc climoz_LMDZ_${year}.nc, climoz_LMDZ.nc, 1:12: climoz_LMDZ.nc
CO2_1765_2005.txt
CH4_1765_2005.txt
N2O_1765_2005.txt
CFC11_1765_2005.txt
CFC12_1765_2005.txt
guide.def a mettre aussi dans LMDZOR!||
COMP/lmdz.driver IPCC_CO2= ... ; LMDZ_sed physiq.def co2_ppm ${IPCC_CO2} update physiq.def with values from file .txt :
solaire, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt
COMP/orchidee.card PFTmap_IPCC_2000.nc ${BC_SRF_PFTmap} = PFTmap_1850to2005_AR5_LUHa.rc2.nc new function in driver will choose PFTmap
or ORCHIDEE_PFTmap_2006to2100_AR5_RCP8.5_MESSAGE.nc
COMP/orchidee.driver srf_period_start new function for choice of PFTmap before and after 2004
cas test : modif for certain years VEGET_REINIT
cas test : modif for certain years VEGET_YEAR
PARAM/orchidee.def 0Y 1Y VEGET_UPDATE
n y LAND_COVER_CHANGE = n
PARAM/physiq.def_L39 0.008 0.0 pmagic
1366.0896 1365.6537 solaire RQ: le valeur dans AMIP sera ecraser
actuel annuel aer_type

Commentaires :

  • orchidee.driver pourrait être le même car srf_period_start prend effet en utilisant le variable ${BC_SRF_PFTmap}, qui se fait dans orchidee.card. On pourrait donc avoir : orchidee.card_Climat et orchidee.card_Interannuel
  • Les différentes valeurs dans les .def pourrait être mis dans lmdz.card et orchidee.card pour ensuite être modifié avec sed
  • guide.def pourrait etre mis dans les 2 expériences

Interpolation des fichiers de guidage avec patch dans libIGCM

L'interpolation se fait dans le job CREATE au même temps que l'exécution de create_etat0_limit pour la création des fichiers limit.nc. Il faut utiliser le version inter annuele de lmdz.card et config.card pour pouvoir interpoler sur une série d'années qui se choisi dans config.card.

Il faut d'abord s'assurer que la version de libIGCM contient le fichier : libIGCM/libIGCM_post/IGCM_Patch_nudge_interpolation.ksh. S'il n'existe pas, l'extraire et le mettre a cette emplacement :

svn export http://forge.ipsl.jussieu.fr/libigcm/svn/tags/libIGCM_v1_10/libIGCM_post/IGCM_Patch_20101208_nudge_interp.ksh

Pour activer le patch il faut modifier le lmdz.card_Interannuel dans le job CREATE. Ajouter dans lmdz.card les fichiers a interpoler dans [BoundaryFiles]/List et dans [OutputFiles]/List et il faut ajouter le paragraphe [Post_Interp] a la fin. Voici un exemple comment ajouter u (dans le même lmdz.card on peut ajouter v et ta avec la même syntaxe ) :

[BoundaryFiles]
List=   (${R_INIT}/ATM/${config_UserChoices_TagName}/AMIP/amipbc_sst_360x180_${year}.nc, amipbc_sst_1x1.nc), \
	(${R_INIT}/ATM/${config_UserChoices_TagName}/AMIP/amipbc_sic_360x180_${year}.nc, amipbc_sic_1x1.nc), \
	(${R_INIT}/ATM/${config_UserChoices_TagName}/Ozone/HYBRIDE/v2.clim/tro3_${year}.new.nc, climoz.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}01.aphei.GLOBAL_075.nc, u_1_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}02.aphei.GLOBAL_075.nc, u_2_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}03.aphei.GLOBAL_075.nc, u_3_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}04.aphei.GLOBAL_075.nc, u_4_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}05.aphei.GLOBAL_075.nc, u_5_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}06.aphei.GLOBAL_075.nc, u_6_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}07.aphei.GLOBAL_075.nc, u_7_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}08.aphei.GLOBAL_075.nc, u_8_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}09.aphei.GLOBAL_075.nc, u_9_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}10.aphei.GLOBAL_075.nc, u_10_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}11.aphei.GLOBAL_075.nc, u_11_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year}/u.${year}12.aphei.GLOBAL_075.nc, u_12_${year}.nc), \
        (/u/rech/psl/rpsl376/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_PL/${year_p1}/u.${year_p1}01.aphei.GLOBAL_075.nc, u_13_${year}.nc)

...

[OutputFiles]
List=	( limit.nc,       ${R_OUT_ATM_O}/Boundary/${config_UserChoices_JobName}_${year}_limit.nc,       NONE), \
	( climoz_LMDZ.nc, ${R_OUT_ATM_O}/Boundary/${config_UserChoices_JobName}_${year}_climoz_LMDZ.nc, NONE), \
	( start.nc,       ${R_OUT_ATM_O}/Restart/${config_UserChoices_JobName}_${year}_start.nc,        NONE), \
	( startphy.nc,    ${R_OUT_ATM_O}/Restart/${config_UserChoices_JobName}_${year}_startphy.nc,     NONE), \
        ( u_1_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}01_u.nc,       Post_Interp), \
        ( u_2_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}02_u.nc,       NONE), \
        ( u_3_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}03_u.nc,       NONE), \
        ( u_4_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}04_u.nc,       NONE), \
        ( u_5_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}05_u.nc,       NONE), \
        ( u_6_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}06_u.nc,       NONE), \
        ( u_7_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}07_u.nc,       NONE), \
        ( u_8_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}08_u.nc,       NONE), \
        ( u_9_${year}.nc,  ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}09_u.nc,       NONE), \
        ( u_10_${year}.nc, ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}10_u.nc,       NONE), \
        ( u_11_${year}.nc, ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}11_u.nc,       NONE), \
        ( u_12_${year}.nc, ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}12_u.nc,       NONE), \
        ( u_13_${year}.nc, ${R_OUT_ATM_O}/Nudgefiles/${config_UserChoices_JobName}_${year}13_u.nc,       NONE)



# This patch is applied to the first file but it will work on all files u01.nc - u13.nc
[Post_Interp]
Patches = (Patch_20101208_nudge_interp)
GatherWithInternal = ()
TimeSeriesVars2D = ()
ChunckJob2D = NONE
TimeSeriesVars3D = ()
ChunckJob3D = NONE
Seasonal=OFF

Pour activer la fonctionalité des patches, il faut aussi mettre dans config.card :

RebuildFrequency=1Y