LMDZ to DYNAMICO start files

From Planets
Revision as of 15:26, 19 December 2024 by Aurelien.falco (talk | contribs) (startarchive2icosa)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 ).

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/