Création des fichiers d`états initiaux et méthodes pour - LMDz-INCA

Transcription

Création des fichiers d`états initiaux et méthodes pour - LMDz-INCA
Création des fichiers d'états initiaux et méthodes pour
regriller sur une grille régulière ou zoomée les fichiers
d'input pour LMDZORINCA
ATTENTION : après avoir regrillé ou recréé des fichiers,
vérifiez bien les paramètres suivants :
- nom des dimensions
- taille des dimensions
- nom des variables
- taille des variables
- orientation des axes de longitude / latitude / niveaux verticaux
Création des fichiers d'états initiaux pour LMDZORINCA
Il s'agit des fichiers start.nc, startphy.nc et limit.nc utilisés par le modèle LMDZ. Le code utilisé est
ce0l dans LMDZ5. Pour éviter les confusions entre LMDZ4 et LMDZ5 nous avons renommés ce
dernier CREATE_E0 dans le répertoire modipsl/modeles/.
Pour la compilation, pour une configuration de INCA donnée, il faut dé-commenter correspondante
dans AA_make (ou dans le Makefile si il existe déjà). Par exemple pour la configuration
AERxLMD9695, il faut dé-commenter la ligne en rouge :
aer_lmdz9695:
(cd ../../modeles/INCA3; ./makeinca_fcm -chimie AER -parallel mpi -resol
96x95 -arch $(FCM_ARCH); cp SIMULATIONS/AER/inca.dat ../../bin/inca.dat ; )
(cd ../../modeles/CREATE_E0; ./makelmdz_fcm -chimie INCA -d 96x95x19
-parallel
mpi
-arch
$(FCM_ARCH)
ce0l
;
cp
bin/ce0l_96x95x19_phylmd_para_inca.e ../../bin/create_etat0_limit.e ; )
(cd ../../modeles/LMDZ4; ./makelmdz_fcm -cpp ORCHIDEE_NOOPENMP -d 96x95x19
-chimie
INCA
-v
true
-parallel
mpi
-arch
$(FCM_ARCH)
gcm
;
cp
bin/gcm_96x95x19_phylmd_para_orch_inca.e ../../bin/gcm.e ; )
Pour l'exécution vous devez utiliser les cards fournies dans le répertoire
modipsl/config/LMDZORINCA/CREATE/.
Les fichiers ainsi créés sont stockés sur le $DMFDIR dans le répertoire
IGCM_OUT/LMDZORINCA/nom_create/ATM/Output/Restart/ et ATM/Output/Boundary/.
Attention : le fichier start.nc ainsi créé contiendra bien tous les traceurs demandés par la
configuration INCA choisie, mais ils auront tous une valeur nulle.
Regrillage sur une grille régulière des fichiers d'input pour
LMDZORINCA
Lorsque l'on veut changer de résolution il faut recréer ou regriller les différents fichiers d'entrée
nécessaire à INCA.
Modification dans INCA
Pour une nouvelle résolution vous devez d'abord modifier le fichier INCA3/INP/inca_xxx.inp en
renseignant les nouvelles dimensions dans le paragraphe :
Spatial Dimensions
Longitude points = 64442
Latitude points = 1
Vertical points = 19
GCM long
= 360
GCM lat
= 180
Endent
( = (lat-1)*lon + 2)
Le fichier .inp doit être renommé avec le nom de la résolution (par exemple
inca_AER_360180.inp).
Il faut ensuite modifier le fichier INCA3/makeinca_fcm pour ajouter la nouvelle résolution si elle
n'existe pas déjà :
if [[ "${resol}" == '360x180' ]]
then
file_inp="inca_${chimie}_360180.inp"
fi
Fichiers d'états initiaux
Pour les fichiers start.nc, startphy.nc et limit.nc vous pouvez suivre la méthode proposée ci-dessus.
En pensant bien à changer la résolution demandée. Par exemple pour une nouvelle résolution
360x180 :
AERxLMD360180 : libioipsl liborchidee aer_lmdz360180
echo "AERxLMD360180" >.resol
aer_lmdz360180:
(cd ../../modeles/INCA3; ./makeinca_fcm -chimie AER -parallel mpi -resol
360x180 -arch $(FCM_ARCH); cp SIMULATIONS/AER/inca.dat ../../bin/inca.dat ; )
(cd ../../modeles/CREATE_E0; ./makelmdz_fcm -chimie INCA -d 360x180x19
-parallel mpi -arch $(FCM_ARCH) ce0l ; cp bin/ce0l_360x180x19_phylmd_para_inca.e
../../bin/create_etat0_limit.e ; )
(cd
../../modeles/LMDZ4;
./makelmdz_fcm
-cpp
ORCHIDEE_NOOPENMP
-d
360x180x19 -chimie INCA -v true -parallel mpi -arch $(FCM_ARCH) gcm;cp
bin/gcm_360x180x19_phylmd_para_orch_inca.e ../../bin/gcm.e ; )
En plus des fichiers start.nc, startphy.nc et limit.nc un fichier grilles_gcm.nc est créé et stocké dans
le répertoire ATM/Output/Grid/. Cette grille sera utilisée pour le regrillage des fichiers.
Fichiers sflx.nc et aircraft.nc
Il est préférable de recréer les fichiers sflx.nc et aircraft.nc plutôt que de les regriller. Pour cela il
faut utiliser INCAsflx. La grille grilles_gcm.nc peut être utilisée par INCAsflx en modifiant le code
de get_grid_lmdz.f ainsi
lonu=lonu-360
lonv=lonv-360
Fichiers so4.nc, npp.nc et landuse.nc
Les fichiers npp.nc et landuse.nc peuvent être recréés à l'aide du modèle ORCHIDEE, ou regrillés
avec le programme REGRID_forcage (récupérable sur svn avec la commande « svn co
http://forge.ipsl.jussieu.fr/inca/svn/trunk/SCRIPT/REGRID_forcage »).
Dans main.f il faut indiquer les path de la nouvelle et de l'ancienne grille
! ... Read the final grid
print*," lit grille finale de LMDz ..."
CALL get_grid_lmdz ('GRILLES/lmdz_grid96x95.nc')
print*," grille finale de LMDz lue!"
print*," lit grille initale de LMDz ..."
CALL get_grid ('GRILLES/96x72x19.nc')
print*," grille initiale de LMDz lue!"
Il faut également indiquer les path des fichiers à regriller :
CALL get_field('FILES/so4.nc')
print*, " so4 lu!"
CALL get_field_landuse('FILES/landuse.nc')
PRINT *, "landuse lu!"
CALL get_field_npp('FILES/npp.nc')
PRINT *, "npp lu !"
Note : A cause de la mémoire que demande une telle opération il vaut mieux regriller les fichiers un
par un en commentant et décommentant les lignes suivantes dans main.f:
!
!
!
PRINT *, 'Prepare netCDF output dyn file ...'
CALL dyngrid_ncfile("so4_dyn_new.nc")
CALL dyngrid_ncfile_landuse("landuse_dyn_new.nc")
CALL dyngrid_ncfile_npp("npp_dyn_new.nc")
!
!
!
PRINT *, 'Prepare netCDF output phy file ...'
CALL phygrid_ncfile("so4_phy_new.nc")
CALL phygrid_ncfile_landuse("landuse_phy_new.nc")
CALL phygrid_ncfile_npp("npp_phy_new.nc")
Si vous utilisez la grille créée par ce0l dans LMDZ vous devez décommenter les lignes suivantes
dans get_grid_lmdz.f
!
!
lonv=(lonv-360)
lonu=(lonu-360)
Pour compiler il faut utiliser la commande « make » sur asterix. L'exécutable est regrid.
Fichier oxydant.nc
Le mieux et de recréer ce fichier à partir d'une simulation NMHC. Cependant on peut également le
regriller en utilisant le programme écrit par Raffaella Vuolo memo_regrid_oxydants.txt qui est dans
le répertoire REGRID_forcage.
Note : ce mémo est écrit pour la machine cesium. Et il faut peut être le modifier car la grille utilisée
n'a pas les mêmes longitudes et latitudes que celle fournit par LMDZ. (lon=lon-360 et lat=lat-360)
Fichiers de vents
Les programmes permettant de regriller les fichiers de vents sont disponibles sur svn. Il faut utiliser
la commande « svn co http://forge.ipsl.jussieu.fr/inca/svn/trunk/SCRIPT/REGRID_winds ». Ces
programmes sont écrits pour la machine mercure du ccrt. Il faut les adaptés pour les autres
machines.
Fichiers u.nc et v.nc
Il faut utiliser le script get_era.x qui fait appel à era2gcm.x. Par défaut on regrillera les vents à partir
des fichiers ECMWF en 320x160 stockés sur le dmnfs du compte p24data
(/dmnfs/cont003/p24data/ECMWF320x160/AN${an}/).
Il faut renseigner au début du fichier les différents éléments relatif à la nouvelle grille ainsi que la
période pour laquelle on veut les fichiers de vents :
set
set
set
set
set
REPGRILLE=$DMFDIR/DATA_ECMWF/REGRID
LON=96
LAT=72
GRILLE=${REPGRILLE}/grilles_gcm_${LON}x${LAT}.nc
TARGET=$DMFDIR/DATA_ECMWF
et
set
set
set
set
an=2006
anfin=2009
imois=1
imoisfin=12
Fichiers u10m.nc et v10m.nc (pour les versions aérosols)
Il faut utiliser le script regrid_year_wind10m.csh. Par défaut il regrille les vents disponibles sur le
compte p24data (/dmnfs/cont003/p24data/ECMWF320x160/AN${ANNEE}/).
Il faut renseigner au début du script la période sur laquelle on souhaite faire le regrillage, ainsi que
le path du fichier de grille.
set LISTANNEE = ( 2010 )
foreach ANNEE ($LISTANNEE)
set iim=144
set jjm=142
mkdir -p $SCRATCHDIR/prepare_ecmwf${iim}x${jjm}
mkdir -p $SCRATCHDIR/prepare_ecmwf${iim}x${jjm}/run${ANNEE}
cp
grilles_gcm_${iim}x${jjm}.nc
$SCRATCHDIR/prepare_ecmwf${iim}x${jjm}/run$
{ANNEE}/.
cd $SCRATCHDIR/prepare_ecmwf${iim}x${jjm}/run${ANNEE}
Fichiers rhv.nc,wth.nc,cly.nc
Les programmes utilisés pour regriller ces fichiers sont dans le répertoire de Yves Balkanski :
/home/users/balkany/Emissions/Source_LSCE/Chggrid/ (asterix). Voir le readme dans ce répertoire.
Regrillage sur une grille zoomée des fichiers d'input pour
LMDZORINCA
Définition du zoom dans LMDZ et création des fichiers de définition des
états initiaux
Le zoom de LMDZ est défini dans le fichier PARAM/gcm.def. Il faut donc modifier ce fichier avant
la création des états initiaux pour avoir les fichiers start.nc, startphy.nc, limit.nc et
grilles_gcm_lmdz.nc tenant compte du zoom.
Exemple des lignes modifiées dans gcm.def, pour zoom sur l'Asie:
## longitude en degres du centre du zoom
clon=92.
## latitude en degres du centre du zoom
clat=26.
## facteur de grossissement du zoom,selon longitude
grossismx=3.8
## facteur de grossissement du zoom ,selon latitude
grossismy=2.5
## Fonction f(y) hyperbolique si = .true. , sinon sinusoidale
fxyhypb=y
## extension en longitude de la zone du zoom ( fraction de la zone totale)
dzoomx=80.0
## extension en latitude de la zone du zoom ( fraction de la zone totale)
dzoomy=58.0
##raideur du zoom en X
taux=10.
##raideur du zoom en Y
tauy=10.
## Fonction f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.
ysinus=y
Regrillage des fichiers npp.nc et landuse.nc
Tous les fichiers peuvent être regrillés avec les mêmes méthodes que pour une grille régulière, sauf
les fichiers npp.nc et landuse.nc. Pour ces fichiers il faut d'abord suivre la méthode permettant de
regriller sur la grille régulière et obtenir les fichiers sur la grille dynamique, puis utiliser les
commandes
proposées
dans
le
mémo
(écrit
par
Raffaella
Vuolo)
REGRID_forcage/memo_regrid_zoom.txt.
Attention : il y a peut être quelques modifications à faire par rapport à la grille calculée par ce0l.
Note : Les nouveaux fichiers sont sur la grille dynamique du modèle. Pour les passer sur la grille
physique vous devez utiliser le programme dyn2phy dans REGRID_forcage/DYN2PHY/. Ce
programme se compile sur asterix avec la commande make.
Remarques sur le modèle zoomé
Problèmes que l'on peut rencontrer :
– Pressions négatives au sol/températures négatives (instabilité) -> Guider les vents et
diminuer le pas de temps (augmenter day_step et iphysiq du même facteur).
– Pour les hautes résolutions, il faut désactiver le RIVER_ROUTING dans orchidee.def