Difference between revisions of "LMDZ to DYNAMICO start files"

From Planets
Jump to: navigation, search
(startarchive2icosa)
 
Line 1: Line 1:
 
This page explains how to convert a start.nc startfi.nc to a [[The DYNAMICO dynamical core|Dynamico]]
 
This page explains how to convert a start.nc startfi.nc to a [[The DYNAMICO dynamical core|Dynamico]]
 
There is a wiki page specific for Dynamico just in case: https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/The_DYNAMICO_dynamical_core ).
 
There is a wiki page specific for Dynamico just in case: https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/The_DYNAMICO_dynamical_core ).
 +
 +
== Overview ==
 +
The general idea here is to present how to convert some "longitude-latitude grid" initial condition files (obtained using the LMDZ.COMMON dynamical core) into corresponding icosahedral (to use with DYNAMICO) initial condition files. In practice this requires the following main steps:
 +
# Take a lon-lat start.nc and starfi.nc pair of files and generate a start_archive.nc file
 +
# Generate a pair of restart.nc and restartfi.nc files with DYNAMICO at the desired resolution, starting from idealized initial condition (fixed temperature, or temperature profile, and not physics start file)
 +
# Use a dedicated utility to reinterpolate the contents of start_archive.nc onto the restart files from previous step
  
 
== Compilation ==
 
== Compilation ==
Line 108: Line 114:
 
</pre>
 
</pre>
  
[[Category:DYNAMICO]]
+
 
 +
[[Category:Generic-DYNAMICO]]
 +
[[Category:Mars-DYNAMICO]]
 
[[Category:Pluto-DYNAMICO]]
 
[[Category:Pluto-DYNAMICO]]
 +
[[Category:Venus-DYNAMICO]]

Latest revision as of 14:43, 14 April 2025

This page explains how to convert a start.nc startfi.nc to a Dynamico There is a wiki page specific for Dynamico just in case: https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/The_DYNAMICO_dynamical_core ).

Overview

The general idea here is to present how to convert some "longitude-latitude grid" initial condition files (obtained using the LMDZ.COMMON dynamical core) into corresponding icosahedral (to use with DYNAMICO) initial condition files. In practice this requires the following main steps:

  1. Take a lon-lat start.nc and starfi.nc pair of files and generate a start_archive.nc file
  2. Generate a pair of restart.nc and restartfi.nc files with DYNAMICO at the desired resolution, starting from idealized initial condition (fixed temperature, or temperature profile, and not physics start file)
  3. Use a dedicated utility to reinterpolate the contents of start_archive.nc onto the restart files from previous step

Compilation

  • Compile start_archive.e using the following command. Replace architecture, dimensions and <your_physics> by your package (mars/pluto/...)
makelmdz_fcm -arch <architecture> -d <dimensions (lonxlatxalt)>  -p <your_physics> start2archive 
  • Compile the files in LMDZ.<YOUR_PHYSICS>/util/startarchive2icosa (where YOUR_PHYSICS is MARS/PLUTO/...) with the compile script, which will create start_archive2icosa and rearrange_startphy.

Preliminary steps

To convert your lmdz files to dynamico files, you will need to go through the #startarchive2icosa script, which requires the following files:

  • start_archive_nc4.nc
  • startphy_icosa_ref.nc
  • start_icosa_ref.nc
  • surface_nc4.nc

To get these files, follow the following procedure:

1. Get start.nc and startfi.nc from your simulation via newstart or the PCM and create an archive file using start2archive, and convert it to netcdf4:

start2archive.e
nccopy -k 4 start_archive.nc start_archive_nc4.nc

2. Create an initial conditions files for dynamico by running a dynamico simulation without an initial physics file (startphy_file=false).

  • a) In run_icosa.def change the following variables (adapt to your case) :

# short run
run_length=1500
# isothermal could a bad initial state, you can try  etat0=temperature_profile, which reads a 'profile.in' file.
etat=isothermal
etat_isothermal_temp=200
# use LMDZ physics
physics = phys_external
# do not use startfi.nc
startphy_file=false
  • b) run icosa_lmdz.exe (fingers crossed it run smoothly) and copy its output files.
icosa_lmdz.exe 
cp restartfi.nc startphy_icosa_ref.nc
cp restart.nc start_icosa_ref.nc

3) Create a surface_nc4.nc based on your topography (could be a symbolic link).

It may fail if the format is netCDF 3. You can convert the file with nc3tonc4 or nccopy -k 4.

startarchive2icosa

This script will convert the LMDZ start files to the DYNAMCIO grid.

1) Gather:

  • start_archive_nc4.nc
  • startphy_icosa_ref.nc
  • start_icosa_ref.nc
  • surface_nc4.nc
  • xml files for DYNAMICO (in deftank/ hopefully)

2) Then get executable files (*.e) from path/to/LMDZ.<YOUR_PHYSICS>/util/startarchive2icosa/*

ln -s path/to/LMDZ.<YOUR_PHYSICS>/util/startarchive2icosa/
cp -r startarchive2icosa/*.e startarchive2icosa/run* startarchive2icosa/*.xml startarchive2icosa/job* startarchive2icosa/*sh .
mv run_icosa.def.no_startfi run.def

3) run start_archive2icosa as a job (requires a lot of memory). Make sure that iodef.xml is the one from the startarchive2icosa folder.

sbatch job_start_archive_2icosa

The script creates start_icosa_prefinalize.nc and startfi_prefinalize.nc.

4) You will need to run a final script:

./icosa_finalize.bash

There could be an issue with the location of the LMDZ root folder. Please change the icosa_finalize.bash file accordingly or set the LMDZ variable in your environment. The script creates a folder icosa_starts/ with the dynamico startfi.nc and start.nc.

5. NOT NEEDED? update the tracer name in startfi for each tracer for example: ncrename -v ccn_number_surf,ccn_number startfi.nc.

Run Dynamico simulation

Create another folder, with the xml and def files from deftank/dynamico.

In run.def, be sure to have :

etat0=start_file 
etat0_start_file_colocated=true

Make sure the run.def also lists llm equal to your start.nc lev count. If you encounter an error about n_glo not being equal to your model n_glo, change llm to match lev.

Copy in your folder the startfi.nc and start.nc from the icosa_starts/ folder generated by #start_archive2icosa and icosa_finalize.bash scripts.

mv icosa_starts/start*nc your_dynamico_folder/