ini_parent variables: restart files not copied #941
|
On aleph I am trying to run a branch-off simulation from hi1950d with AWI-CM 3. I am using esm_master version 6.19.3 I specified in the run script /proj/awiiccp5/test.yaml: awicm3: In addition, I tried to specify the ini_* variables in oifs: section but without success. The restart files are not copied into the new work directory /scratch/awiiccp5/test/run_19900101-19901231/work . It also didn't help to put as ini_parent_dir /scratch/awiiccp5/hi1950d/restart/oifs/19901231/ , i.e. put the whole path in which the OpenIFS restart files are located. |
Replies: 5 comments 8 replies
|
Hi @tsemmler05,
There is at least one problem more with your runscript. The way you specify fesom:
ini_restart_dir: "/scratch/awiiccp5/hi1950d/restart/fesom/"
oifs:
ini_restart_dir: "/scratch/awiiccp5/hi1950d/restart/oifs/"Alternatively, you can define a general ini_restart_dir and invoke that in the model lines. general:
ini_restart_dir: "/scratch/awiiccp5/hi1950d/restart/"
fesom:
ini_restart_dir: "${general.ini_restart_dir}/fesom/"
oifs:
ini_restart_dir: "${general.ini_restart_dir}/oifs/"For more details please refer to this chapter in the workshop: https://github.com/esm-tools/workshops/blob/main/202207_AWI_ESM-Tools/docs/pdf/7.4_restarting_a_simulation.pdf Note that I substituted in all those variables And this is the typical way of restarting or branching off a simulation. However, let's notice in your runscript the following (I am assuming your runscript is very similar to the one for the parent simulation): choose_general.run_number:
1:
#lasttime: '86340'
restart_in_sources:
par_oce_restart: /scratch/awiiccp5/hi1950d/run_19900101-19901231/work/fesom.1990.oce.restart/*.nc
par_ice_restart: /scratch/awiiccp5/hi1950d/run_19900101-19901231/work/fesom.1990.ice.restart/*.nc
"*":
remove_restart_in_files: [par_oce_restart, par_ice_restart]
remove_restart_out_files: [par_oce_restart, par_ice_restart]
add_ignore_sources:
par_oce_restart: fesom.*.oce.restart/*
par_ice_restart: fesom.*.ice.restart/*If this was the same for your parent simulation, with the lines below fesom:
ini_parent_dir: "/scratch/awiiccp5/hi1950d/run_19900101-19901231/work/"
choose_general.run_number:
1:
placeholder: variable
"*":
remove_restart_in_files: [par_oce_restart, par_ice_restart]
remove_restart_out_files: [par_oce_restart, par_ice_restart]
add_ignore_sources:
par_oce_restart: fesom.*.oce.restart/*
par_ice_restart: fesom.*.ice.restart/*Another point, you probably want to use the old SummaryThis is one of the many ways you can fix your runscript: awicm3:
postprocessing: false
model_dir: /proj/awiiccp5/awicm3-frontiers-xios/
- ini_parent_exp_id: "hi1950d" # This three are not needed
- ini_parent_date: "1990-12-31"
- ini_parent_dir: "/scratch/awiiccp5/hi1950d/"
fesom:
#setup_dir: "/proj/awiiccp5/awicm3-frontiers-xios/fesom-2.0/"
- ini_parent_exp_id: "hi1950d"
+ ini_restart_exp_id: "hi1950d"
- ini_parent_date: "1990-12-31"
+ ini_restart_date: "1990-12-31"
- ini_parent_dir: "/scratch/awiiccp5/hi1950d/run_19900101-19901231/work/"
+ ini_restart_dir: "/scratch/awiiccp5/hi1950d/run_19900101-19901231/work/"
resolution: "DART"
mesh_dir: /proj/awi/input/fesom2/dart/
lresume: true # don't forget to check!
restart_rate: 1
restart_unit: "y"
restart_first: 1
choose_general.run_number:
1:
#lasttime: '86340'
restart_in_sources:
par_oce_restart: /scratch/awiiccp5/hi1950d/run_19900101-19901231/work/fesom.1990.oce.restart/*.nc
par_ice_restart: /scratch/awiiccp5/hi1950d/run_19900101-19901231/work/fesom.1990.ice.restart/*.nc
"*":
remove_restart_in_files: [par_oce_restart, par_ice_restart]
remove_restart_out_files: [par_oce_restart, par_ice_restart]
add_ignore_sources:
par_oce_restart: fesom.*.oce.restart/*
par_ice_restart: fesom.*.ice.restart/*
namelist_changes:
namelist.config:
machine:
n_levels: 2
n_part: [10, 72]
restart_log:
raw_restart_length: 1
raw_restart_length_unit: "y"
namelist_dir: /proj/awiiccp5/esm_tools/namelists/fesom2/2.0/awicm3/DART_niko_kpp/
add_file_movements:
outdata:
all_directions: move
time_step: 240
nproc: 4800
oifs:
- ini_parent_exp_id: "hi1950d"
+ ini_restart_exp_id: "hi1950d"
- ini_parent_date: "1990-12-31"
+ ini_restart_date: "1990-12-31"
- ini_parent_dir: "/scratch/awiiccp5/hi1950d/restart/oifs/19901231/"
+ ini_restart_dir: "/scratch/awiiccp5/hi1950d/restart/oifs/"
resolution: "TCO319"
levels: "L138"
prepifs_expid: a0iw
input_expid: awi3
wam: true
- lresume: false
+ lresume: true
+ prev_run_config_file: "/scratch/awiiccp5/hi1950d/config/hi1950d_finished_config.yaml_19900101-19901231"
time_step: 900
nproc: 1040
omp_num_threads: 2
namelist_changes:
fort.4:
naerad:
NCMIPFIXYR: 0
SSPNAME: "SSP5-8.5"
namcumf:
RPRCON: 1.0E-3
ENTRORG: 1.25E-3
namgwwms:
GGAUSSB: -0.45
oasis3mct:
lresume: true # Set to false to generate the rst files for first leg
+ ini_restart_exp_id: "hi1950d"
+ ini_restart_date: "1990-12-31"
+ ini_restart_dir: "/scratch/awiiccp5/hi1950d/run_19900101-19901231/work/"
time_step: 3600As non of this is a bug, I'm moving it to Discussions. |
|
The only problem of this solution is: the wave files were not copied over and I had to manually copy them to the work directory (BLS*, LAW*). What was a bit annoying: I had to also write a little script to rename them so that the year in the filename would be correct. For the next time: would there be an easier way doing this? In principle the esm_tools should copy and rename the wave files automatically? |
|
Oh no, this workaround didn't even work - the wave model still crashed. Very annoying! Am I missing some files? Maybe you could take a look at the script: and into the directory |
|
I've been following this a little bit. I make a note here that I will condense the lessons learned here into a little how to section of the AWI-CM3 documentation. |
|
Thanks, @mandresm, the solution worked! And good idea @JanStreffing to add this to AWI-CM3 documentation. |
Hi Tido,
Appologies for the problems you are having, my mistake. I have managed to create a branchoff work folder that contains all the necessary files. The only thing I needed to change was:
oifs: ini_restart_exp_id: "hi1950d" - ini_restart_date: "2014-12-31" + ini_restart_date: "${prev_date}"Why? OpenIFS restart logic it's very convoluted: if you remember, we need to trick OpenIFS into thinking that is always running in the second leg to get to run long simulations. For that the
configs/components/oifs/oifs.yamlhas quite some intricate calendar logic for renaming the BLS, LAW and srf restarts. For that logic one needs theini_restart_dateto include up to the seconds of the …