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