From 5669e53a15d10d4c4890bb7fb397abae4155033e Mon Sep 17 00:00:00 2001 From: Ahmad Nawab Date: Fri, 1 Sep 2023 13:37:19 +0000 Subject: [PATCH 1/6] Added configs for O640 and O1280 grids --- tests/etopo1_oper_an_fc_O1280.yml | 53 +++++++++++++++++++++++++++++++ tests/etopo1_oper_an_fc_O640.yml | 53 +++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 tests/etopo1_oper_an_fc_O1280.yml create mode 100644 tests/etopo1_oper_an_fc_O640.yml diff --git a/tests/etopo1_oper_an_fc_O1280.yml b/tests/etopo1_oper_an_fc_O1280.yml new file mode 100644 index 000000000..d434f8c62 --- /dev/null +++ b/tests/etopo1_oper_an_fc_O1280.yml @@ -0,0 +1,53 @@ +grid: O1280 +directions: 36 +frequencies: 29 +bathymetry: ETOPO1 + +advection: + timestep: 225 +physics: + timestep: 450 + +analysis.begin: 2022-12-31 12:00:00 +analysis.end: 2023-01-01 00:00:00 +forecast.begin: 2023-01-01 00:00:00 +forecast.end: 2023-01-01 06:00:00 + +begin: ${analysis.begin} +end: ${forecast.end} + +nproma: 24 + +forcings: + file: data/forcings/oper_an_12h_fc_2023010100_36h_O1280.grib + + at: + - begin: ${analysis.begin} + end: ${analysis.end} + timestep: 06:00 + - begin: ${forecast.begin} + end: ${forecast.end} + timestep: 01:00 + +output: + fields: + name: + - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + format: grib # (default : grib) or binary + at: + - timestep: 01:00 + + restart: + format: binary # (default : binary) or grib + at: + - time: ${end} + + +validation: + diff --git a/tests/etopo1_oper_an_fc_O640.yml b/tests/etopo1_oper_an_fc_O640.yml new file mode 100644 index 000000000..6c70ae707 --- /dev/null +++ b/tests/etopo1_oper_an_fc_O640.yml @@ -0,0 +1,53 @@ +grid: O640 +directions: 36 +frequencies: 29 +bathymetry: ETOPO1 + +advection: + timestep: 450 +physics: + timestep: 450 + +analysis.begin: 2022-12-31 12:00:00 +analysis.end: 2023-01-01 00:00:00 +forecast.begin: 2023-01-01 00:00:00 +forecast.end: 2023-01-01 06:00:00 + +begin: ${analysis.begin} +end: ${forecast.end} + +nproma: 24 + +forcings: + file: data/forcings/oper_an_12h_fc_2023010100_36h_O640.grib + + at: + - begin: ${analysis.begin} + end: ${analysis.end} + timestep: 06:00 + - begin: ${forecast.begin} + end: ${forecast.end} + timestep: 01:00 + +output: + fields: + name: + - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + format: grib # (default : grib) or binary + at: + - timestep: 01:00 + + restart: + format: binary # (default : binary) or grib + at: + - time: ${end} + + +validation: + From 0b22ea6f25e89a27199d7894dfbada86ec41d5ba Mon Sep 17 00:00:00 2001 From: Ahmad Nawab Date: Fri, 13 Oct 2023 06:58:01 +0000 Subject: [PATCH 2/6] Fix timestep assignment in runner script --- share/ecwam/scripts/ecwam_run_model.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/share/ecwam/scripts/ecwam_run_model.sh b/share/ecwam/scripts/ecwam_run_model.sh index 3b79981a4..37ac73afd 100755 --- a/share/ecwam/scripts/ecwam_run_model.sh +++ b/share/ecwam/scripts/ecwam_run_model.sh @@ -78,8 +78,8 @@ done nproma=$(read_config nproma --default=24) -idelpro=$(read_config physics.timestep --format=seconds --default=900) -idelt=$(read_config advection.timestep --format=seconds --default=900) +phys_tstp=$(read_config physics.timestep --format=seconds --default=900) +adv_tstp=$(read_config advection.timestep --format=seconds --default=900) if [[ $(read_config forcings.sea_ice --default=True) == "True" ]] ; then licerun=T @@ -187,10 +187,10 @@ cat > wam_namelist << EOF CBPLTDT = "${begofrn}", CEPLTDT = "${endofrn}", CDATEF = "${begoffo}", - DELPRO_LF = ${idelpro}, + DELPRO_LF = ${adv_tstp}, IFRELFMAX = 0, - IDELPRO = ${idelpro}, - IDELT = ${idelt}, + IDELPRO = ${phys_tstp}, + IDELT = ${phys_tstp}, IDELINT = ${ppfreq}, IREST = 1, LFDBIOOUT = F, From 322281f4f95d8830f75a615008118521f71ba11f Mon Sep 17 00:00:00 2001 From: Ahmad Nawab Date: Sat, 14 Oct 2023 12:58:35 +0000 Subject: [PATCH 3/6] Add ifrelfmax option to runner script --- share/ecwam/scripts/ecwam_run_model.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/ecwam/scripts/ecwam_run_model.sh b/share/ecwam/scripts/ecwam_run_model.sh index 37ac73afd..eee6620e6 100755 --- a/share/ecwam/scripts/ecwam_run_model.sh +++ b/share/ecwam/scripts/ecwam_run_model.sh @@ -80,6 +80,7 @@ nproma=$(read_config nproma --default=24) phys_tstp=$(read_config physics.timestep --format=seconds --default=900) adv_tstp=$(read_config advection.timestep --format=seconds --default=900) +ifrelfmax=$(read_config ifrelfmax --default=0) if [[ $(read_config forcings.sea_ice --default=True) == "True" ]] ; then licerun=T @@ -188,7 +189,7 @@ cat > wam_namelist << EOF CEPLTDT = "${endofrn}", CDATEF = "${begoffo}", DELPRO_LF = ${adv_tstp}, - IFRELFMAX = 0, + IFRELFMAX = ${ifrelfmax}, IDELPRO = ${phys_tstp}, IDELT = ${phys_tstp}, IDELINT = ${ppfreq}, From 23f0273fe1a572a45b8e604da29451dc5d889ddf Mon Sep 17 00:00:00 2001 From: Ahmad Nawab Date: Sat, 14 Oct 2023 12:59:03 +0000 Subject: [PATCH 4/6] Add validation norms for O640 and O1280 configs --- tests/etopo1_oper_an_fc_O1280.yml | 34 +++++++++++++++++++++++++++++++ tests/etopo1_oper_an_fc_O640.yml | 32 +++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/tests/etopo1_oper_an_fc_O1280.yml b/tests/etopo1_oper_an_fc_O1280.yml index d434f8c62..9d00c819d 100644 --- a/tests/etopo1_oper_an_fc_O1280.yml +++ b/tests/etopo1_oper_an_fc_O1280.yml @@ -8,6 +8,8 @@ advection: physics: timestep: 450 +ifrelfmax: 5 + analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 forecast.begin: 2023-01-01 00:00:00 @@ -51,3 +53,35 @@ output: validation: + double_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 0.1285755868651114E+01 + relative_tolerance: 1.e-14 + hashes: [0x3FF49274BEE7F21B] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 0.1447608698613651E+01 + relative_tolerance: 1.e-14 + hashes: [0x3FF72967BD1F3649] + + # 6h into forcast + - name: swh + time: 2023-01-01 06:00:00 + average: 0.1524919757209909E+01 + relative_tolerance: 1.e-14 + hashes: [0x3FF866124263DA64] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 0.1720962714224267E-01 + relative_tolerance: 1.e-14 + hashes: [0x3F919F6687025752] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 0.7692948689575956E+01 + relative_tolerance: 1.e-14 + hashes: [0x401EC594575E239F] diff --git a/tests/etopo1_oper_an_fc_O640.yml b/tests/etopo1_oper_an_fc_O640.yml index 6c70ae707..8d4338e02 100644 --- a/tests/etopo1_oper_an_fc_O640.yml +++ b/tests/etopo1_oper_an_fc_O640.yml @@ -51,3 +51,35 @@ output: validation: + double_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 0.1285046301316225E+01 + relative_tolerance: 1.e-14 + hashes: [0x3FF48F8CB5DFFBB2] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 0.1450281539835982E+01 + relative_tolerance: 1.e-14 + hashes: [0x3FF7345A6A7968B6] + + # 6h into forcast + - name: swh + time: 2023-01-01 06:00:00 + average: 0.1528345198537696E+01 + relative_tolerance: 1.e-14 + hashes: [0x3FF8741A184B7D10] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 0.1726014660228352E-01 + relative_tolerance: 1.e-14 + hashes: [0x3F91ACA4D4B9510C] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 0.7616349300514687E+01 + relative_tolerance: 1.e-14 + hashes: [0x401E772445627E03] From 8eef4c8b101db0598b34ddfb31b034af5a053c3e Mon Sep 17 00:00:00 2001 From: Ahmad Nawab Date: Fri, 10 Nov 2023 07:10:04 +0000 Subject: [PATCH 5/6] Runner script can now parse split advection timesteps --- share/ecwam/scripts/ecwam_run_model.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/share/ecwam/scripts/ecwam_run_model.sh b/share/ecwam/scripts/ecwam_run_model.sh index eee6620e6..213a85ed8 100755 --- a/share/ecwam/scripts/ecwam_run_model.sh +++ b/share/ecwam/scripts/ecwam_run_model.sh @@ -78,9 +78,21 @@ done nproma=$(read_config nproma --default=24) +# read timesteps phys_tstp=$(read_config physics.timestep --format=seconds --default=900) -adv_tstp=$(read_config advection.timestep --format=seconds --default=900) -ifrelfmax=$(read_config ifrelfmax --default=0) +adv_base_tstp=$(read_config advection.timestep --format=seconds --default=900) +adv_fast_tstp=$(read_config advection.fast_waves.timestep --format=seconds --default=$adv_base_tstp) +ifrelfmax=$(read_config advection.fast_waves.max_frequency --default=0) + +# verify timesteps +if [ $(( $adv_base_tstp%$adv_fast_tstp )) -ne 0 ] ; then + echo "ERROR: Base advection timestep should be a multiple of fast-wave advection timestep" + exit 4 +fi +if [ $(( $phys_tstp%$adv_base_tstp )) -ne 0 ] ; then + echo "ERROR: Physics timestep should be a multiple of base advection timestep" + exit 4 +fi if [[ $(read_config forcings.sea_ice --default=True) == "True" ]] ; then licerun=T @@ -188,9 +200,9 @@ cat > wam_namelist << EOF CBPLTDT = "${begofrn}", CEPLTDT = "${endofrn}", CDATEF = "${begoffo}", - DELPRO_LF = ${adv_tstp}, + DELPRO_LF = ${adv_fast_tstp}, IFRELFMAX = ${ifrelfmax}, - IDELPRO = ${phys_tstp}, + IDELPRO = ${adv_base_tstp}, IDELT = ${phys_tstp}, IDELINT = ${ppfreq}, IREST = 1, From 5332ae67b355108f945f16e861308ba461a0841e Mon Sep 17 00:00:00 2001 From: Ahmad Nawab Date: Fri, 10 Nov 2023 07:11:26 +0000 Subject: [PATCH 6/6] Added split time step to O1280 config and updated validation norms --- tests/etopo1_oper_an_fc_O1280.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/etopo1_oper_an_fc_O1280.yml b/tests/etopo1_oper_an_fc_O1280.yml index 9d00c819d..99bf8c2bc 100644 --- a/tests/etopo1_oper_an_fc_O1280.yml +++ b/tests/etopo1_oper_an_fc_O1280.yml @@ -4,11 +4,12 @@ frequencies: 29 bathymetry: ETOPO1 advection: - timestep: 225 -physics: timestep: 450 - -ifrelfmax: 5 + fast_waves: + timestep: 225 + max_frequency: 5 +physics: + timestep: 900 analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -65,23 +66,22 @@ validation: # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1447608698613651E+01 - relative_tolerance: 1.e-14 - hashes: [0x3FF72967BD1F3649] + average: 0.1456589300993350E+01 + hashes: [0x3FF74E30953784E0] # 6h into forcast - name: swh time: 2023-01-01 06:00:00 - average: 0.1524919757209909E+01 + average: 0.1532376268424686E+01 relative_tolerance: 1.e-14 - hashes: [0x3FF866124263DA64] + hashes: [0x3FF8849CFA60CF05] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1720962714224267E-01 + minimum: 0.1720965670282631E-01 relative_tolerance: 1.e-14 - hashes: [0x3F919F6687025752] + hashes: [0x3F919F6882DB29B0] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.7692948689575956E+01 + maximum: 0.7669986535925322E+01 relative_tolerance: 1.e-14 - hashes: [0x401EC594575E239F] + hashes: [0x401EAE10F3523D04]