From 389c05e68be58ce8ef893242ce730a8b97d2af4f Mon Sep 17 00:00:00 2001 From: Ali Date: Tue, 23 Oct 2018 15:41:32 +0000 Subject: [PATCH] master: reintegrating ww3_uprstr_PublicRelease Valb issues #50255, #39742 and #39741, which * Adding remove print* in ww3_uprstr * Adding regression tests ww3_ta1 and documentation Former-commit-id: d4f892a17c3b1a86ce5b4ed5472f7dfa01cddd12 --- .gitignore | 4 + manual/run/ww3_uprstr.tex | 96 +-- manual/threeparttable.sty | 381 +++++++++++ model/bin/comp.theia | 4 +- model/ftn/ww3_uprstr.ftn | 612 ++++++++++-------- model/inp/ww3_uprstr.inp | 92 +-- regtests/bin/matrix.base | 13 + regtests/bin/matrix_datarmor | 1 + regtests/bin/matrix_zeus_HLT | 3 + regtests/bin/run_test | 84 +++ regtests/ww3_ta1/info | 38 ++ regtests/ww3_ta1/input_UPD0F_O/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD0F_O/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD0F_O/points.list | 1 + regtests/ww3_ta1/input_UPD0F_O/switch | 1 + regtests/ww3_ta1/input_UPD0F_O/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD0F_O/switch_T | 1 + regtests/ww3_ta1/input_UPD0F_O/ww3_grid.inp | 36 ++ regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.inp | 41 ++ regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.nml | 84 +++ .../ww3_ta1/input_UPD0F_O/ww3_ounp_spec.inp | 117 ++++ .../ww3_ta1/input_UPD0F_O/ww3_ounp_spec.nml | 134 ++++ .../ww3_ta1/input_UPD0F_O/ww3_outp_spec.inp | 10 + .../ww3_ta1/input_UPD0F_O/ww3_outp_tab50.inp | 11 + regtests/ww3_ta1/input_UPD0F_O/ww3_shel.inp | 36 ++ regtests/ww3_ta1/input_UPD0F_O/ww3_shel.nml | 232 +++++++ regtests/ww3_ta1/input_UPD0F_O/ww3_strt.inp | 7 + regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD0F_U/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD0F_U/points.list | 1 + regtests/ww3_ta1/input_UPD0F_U/switch | 1 + regtests/ww3_ta1/input_UPD0F_U/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD0F_U/switch_T | 1 + regtests/ww3_ta1/input_UPD0F_U/ww3_grid.inp | 36 ++ regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.inp | 41 ++ regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.nml | 84 +++ .../ww3_ta1/input_UPD0F_U/ww3_ounp_spec.inp | 117 ++++ .../ww3_ta1/input_UPD0F_U/ww3_ounp_spec.nml | 134 ++++ .../ww3_ta1/input_UPD0F_U/ww3_outp_spec.inp | 10 + .../ww3_ta1/input_UPD0F_U/ww3_outp_tab50.inp | 11 + regtests/ww3_ta1/input_UPD0F_U/ww3_shel.inp | 36 ++ regtests/ww3_ta1/input_UPD0F_U/ww3_shel.nml | 232 +++++++ regtests/ww3_ta1/input_UPD0F_U/ww3_strt.inp | 7 + regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD2_O/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD2_O/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD2_O/points.list | 1 + regtests/ww3_ta1/input_UPD2_O/switch | 1 + regtests/ww3_ta1/input_UPD2_O/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD2_O/switch_T | 1 + regtests/ww3_ta1/input_UPD2_O/ww3_grid.inp | 36 ++ regtests/ww3_ta1/input_UPD2_O/ww3_ounf.inp | 41 ++ regtests/ww3_ta1/input_UPD2_O/ww3_ounf.nml | 84 +++ .../ww3_ta1/input_UPD2_O/ww3_ounp_spec.inp | 117 ++++ .../ww3_ta1/input_UPD2_O/ww3_ounp_spec.nml | 134 ++++ .../ww3_ta1/input_UPD2_O/ww3_outp_spec.inp | 10 + .../ww3_ta1/input_UPD2_O/ww3_outp_tab50.inp | 11 + regtests/ww3_ta1/input_UPD2_O/ww3_shel.inp | 36 ++ regtests/ww3_ta1/input_UPD2_O/ww3_shel.nml | 232 +++++++ regtests/ww3_ta1/input_UPD2_O/ww3_strt.inp | 7 + regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD2_U/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD2_U/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD2_U/points.list | 1 + regtests/ww3_ta1/input_UPD2_U/switch | 1 + regtests/ww3_ta1/input_UPD2_U/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD2_U/switch_T | 1 + regtests/ww3_ta1/input_UPD2_U/ww3_grid.inp | 36 ++ regtests/ww3_ta1/input_UPD2_U/ww3_ounf.inp | 41 ++ regtests/ww3_ta1/input_UPD2_U/ww3_ounf.nml | 84 +++ .../ww3_ta1/input_UPD2_U/ww3_ounp_spec.inp | 117 ++++ .../ww3_ta1/input_UPD2_U/ww3_ounp_spec.nml | 134 ++++ .../ww3_ta1/input_UPD2_U/ww3_outp_spec.inp | 10 + .../ww3_ta1/input_UPD2_U/ww3_outp_tab50.inp | 11 + regtests/ww3_ta1/input_UPD2_U/ww3_shel.inp | 36 ++ regtests/ww3_ta1/input_UPD2_U/ww3_shel.nml | 232 +++++++ regtests/ww3_ta1/input_UPD2_U/ww3_strt.inp | 7 + regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD2_U_cap/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD2_U_cap/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD2_U_cap/points.list | 1 + regtests/ww3_ta1/input_UPD2_U_cap/switch | 1 + regtests/ww3_ta1/input_UPD2_U_cap/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD2_U_cap/switch_T | 1 + .../ww3_ta1/input_UPD2_U_cap/ww3_grid.inp | 36 ++ .../ww3_ta1/input_UPD2_U_cap/ww3_ounf.inp | 41 ++ .../ww3_ta1/input_UPD2_U_cap/ww3_ounf.nml | 84 +++ .../input_UPD2_U_cap/ww3_ounp_spec.inp | 117 ++++ .../input_UPD2_U_cap/ww3_ounp_spec.nml | 134 ++++ .../input_UPD2_U_cap/ww3_outp_spec.inp | 10 + .../input_UPD2_U_cap/ww3_outp_tab50.inp | 11 + .../ww3_ta1/input_UPD2_U_cap/ww3_shel.inp | 36 ++ .../ww3_ta1/input_UPD2_U_cap/ww3_shel.nml | 232 +++++++ .../ww3_ta1/input_UPD2_U_cap/ww3_strt.inp | 7 + .../ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD3_O/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD3_O/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD3_O/points.list | 1 + regtests/ww3_ta1/input_UPD3_O/switch | 1 + regtests/ww3_ta1/input_UPD3_O/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD3_O/switch_T | 1 + regtests/ww3_ta1/input_UPD3_O/ww3_grid.inp | 36 ++ regtests/ww3_ta1/input_UPD3_O/ww3_ounf.inp | 41 ++ regtests/ww3_ta1/input_UPD3_O/ww3_ounf.nml | 84 +++ .../ww3_ta1/input_UPD3_O/ww3_ounp_spec.inp | 117 ++++ .../ww3_ta1/input_UPD3_O/ww3_ounp_spec.nml | 134 ++++ .../ww3_ta1/input_UPD3_O/ww3_outp_spec.inp | 10 + .../ww3_ta1/input_UPD3_O/ww3_outp_tab50.inp | 11 + regtests/ww3_ta1/input_UPD3_O/ww3_shel.inp | 36 ++ regtests/ww3_ta1/input_UPD3_O/ww3_shel.nml | 232 +++++++ regtests/ww3_ta1/input_UPD3_O/ww3_strt.inp | 7 + regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD3_U/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD3_U/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD3_U/points.list | 1 + regtests/ww3_ta1/input_UPD3_U/switch | 1 + regtests/ww3_ta1/input_UPD3_U/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD3_U/switch_T | 1 + regtests/ww3_ta1/input_UPD3_U/ww3_grid.inp | 36 ++ regtests/ww3_ta1/input_UPD3_U/ww3_ounf.inp | 41 ++ regtests/ww3_ta1/input_UPD3_U/ww3_ounf.nml | 84 +++ .../ww3_ta1/input_UPD3_U/ww3_ounp_spec.inp | 117 ++++ .../ww3_ta1/input_UPD3_U/ww3_ounp_spec.nml | 134 ++++ .../ww3_ta1/input_UPD3_U/ww3_outp_spec.inp | 10 + .../ww3_ta1/input_UPD3_U/ww3_outp_tab50.inp | 11 + regtests/ww3_ta1/input_UPD3_U/ww3_shel.inp | 36 ++ regtests/ww3_ta1/input_UPD3_U/ww3_shel.nml | 232 +++++++ regtests/ww3_ta1/input_UPD3_U/ww3_strt.inp | 7 + regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp | 57 ++ regtests/ww3_ta1/input_UPD3_U_cap/anl.grbtxt | 11 + regtests/ww3_ta1/input_UPD3_U_cap/gx_outp.inp | 8 + regtests/ww3_ta1/input_UPD3_U_cap/points.list | 1 + regtests/ww3_ta1/input_UPD3_U_cap/switch | 1 + regtests/ww3_ta1/input_UPD3_U_cap/switch_ST4 | 1 + regtests/ww3_ta1/input_UPD3_U_cap/switch_T | 1 + .../ww3_ta1/input_UPD3_U_cap/ww3_grid.inp | 36 ++ .../ww3_ta1/input_UPD3_U_cap/ww3_ounf.inp | 41 ++ .../ww3_ta1/input_UPD3_U_cap/ww3_ounf.nml | 84 +++ .../input_UPD3_U_cap/ww3_ounp_spec.inp | 117 ++++ .../input_UPD3_U_cap/ww3_ounp_spec.nml | 134 ++++ .../input_UPD3_U_cap/ww3_outp_spec.inp | 10 + .../input_UPD3_U_cap/ww3_outp_tab50.inp | 11 + .../ww3_ta1/input_UPD3_U_cap/ww3_shel.inp | 36 ++ .../ww3_ta1/input_UPD3_U_cap/ww3_shel.nml | 232 +++++++ .../ww3_ta1/input_UPD3_U_cap/ww3_strt.inp | 7 + .../ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp | 57 ++ regtests/ww3_ts1/input/switch | 2 +- 147 files changed, 7279 insertions(+), 344 deletions(-) create mode 100644 manual/threeparttable.sty create mode 100644 regtests/ww3_ta1/info create mode 100644 regtests/ww3_ta1/input_UPD0F_O/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD0F_O/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/points.list create mode 100644 regtests/ww3_ta1/input_UPD0F_O/switch create mode 100644 regtests/ww3_ta1/input_UPD0F_O/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD0F_O/switch_T create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/points.list create mode 100644 regtests/ww3_ta1/input_UPD0F_U/switch create mode 100644 regtests/ww3_ta1/input_UPD0F_U/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD0F_U/switch_T create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD2_O/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/points.list create mode 100644 regtests/ww3_ta1/input_UPD2_O/switch create mode 100644 regtests/ww3_ta1/input_UPD2_O/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD2_O/switch_T create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD2_U/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/points.list create mode 100644 regtests/ww3_ta1/input_UPD2_U/switch create mode 100644 regtests/ww3_ta1/input_UPD2_U/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD2_U/switch_T create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/points.list create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/switch create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/switch_T create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD3_O/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/points.list create mode 100644 regtests/ww3_ta1/input_UPD3_O/switch create mode 100644 regtests/ww3_ta1/input_UPD3_O/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD3_O/switch_T create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD3_U/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/points.list create mode 100644 regtests/ww3_ta1/input_UPD3_U/switch create mode 100644 regtests/ww3_ta1/input_UPD3_U/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD3_U/switch_T create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/anl.grbtxt create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/gx_outp.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/points.list create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/switch create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/switch_ST4 create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/switch_T create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_grid.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_spec.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_tab50.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_strt.inp create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp diff --git a/.gitignore b/.gitignore index 151ab290f..9cf795291 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,7 @@ model/bin/w3prnt model/bin/w3split model/wwatch3.env model/bin/wwatch3.env +*.swp +*/*.swp +*/*/*.swp +*/*/*/*.swp diff --git a/manual/run/ww3_uprstr.tex b/manual/run/ww3_uprstr.tex index fc34ab51b..eed66f12a 100644 --- a/manual/run/ww3_uprstr.tex +++ b/manual/run/ww3_uprstr.tex @@ -6,9 +6,9 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} \proddeff{Input}{ww3\_uprstr.inp}{Input file for restart file post-processor.}{10} \proddefa{mod\_def.ww3}{Model definition file.}{20} -\proddefa{restart.ww3}{Restart File}{-} -\proddefa{XXXX.grbtxt}{SWH Analysis file in grbtxt format.}{10} -\proddeff{Output}{restart001.ww3}{Updated restart file.}{-} +\proddefa{restart.ww3}{Restart File}{ } +\proddefa{XXXX.grbtxt}{SWH Analysis file in grbtxt format.}{123} +\proddeff{Output}{restart001.ww3}{Updated restart file.}{ } \inpfile{ww3_uprstr.tex} @@ -18,23 +18,23 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} The majority of the observations for the sea surface wave field is observations of the diagnostic variable: Significant Wave Height (SWH). -Therefore, the wave data assimilation (WDA) often happens in the SWH -space and subsequently this information has to be transfered to the +Therefore, the wave data assimilation (WDA) often takes space in the SWH +space and subsequently this information has to be transfered to the prognostic space, wave spectrum (WS) to be imposed as boundary and/or initial condition (BIC). -\subparagraph{Purpose of the \textbf{ww3\_uprstr} } Redistribution of -the energy from the analysis of the SWH field to the field of WS as -they have been saved at the restart file. +\subparagraph{Purpose of the \textbf{ww3\_uprstr} \newline } Redistribution of +the energy from the analysis of the SWH field to the field of WS saved +in the restart file. \subparagraph{Core algorithm \newline } -The \textbf{ww3\_uprstr} sets the SWH of the background spectrum equal to +The \textbf{ww3\_uprstr} sets the SWH of the background spectra equal to the SWH of the analysis and modifies the shape of the spectrum according to the user's prescibed spectrum shape. The \textbf{ww3\_uprstr} has been implemented as an extension of the restart reader and it requires as inputs: the restart file, the SWH of the analysis, and the \textbf{ww3\_uprstr.inp} (see above) with the user's defined options; additional files may be -required. +required in order to reduce the calculations on the fly. \paragraph{How to Use the ww3\_uprstr \newline} To use the \textbf{ww3\_uprstr}, the users have to follow the same logic @@ -43,17 +43,20 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} \begin{enumerate} \item \textbf{Download the source code} \newline The \textbf{ww3\_uprstr} source code is included to the official WAVEWATCH III - release, starting with the version 6.03. + release, starting with the version x.xx. \item \textbf{Compile the code} \newline The \textbf{ww3\_uprstr} is compiled the same way as all the auxiliary programs of WAVEWATCH III, see the appropriate section of the manual. For debugging outputs, use the \textbf{T} flag at the switch file. + \item \textbf{Test the executable} \newline + The regression test \textbf{ww3\_ta1} can be used for testing the different + options of \textbf{ww3\_uprstr}. \item \textbf{Run the ww3\_uprstr} \newline Description of steps to run the \textbf{ww3\_uprstr}: \begin {description} \item{Required Input files: \newline} \begin{itemize} - \item \textbf{Restart file.} This file has been created by WW3 during the warmup run + \item \textbf{Restart file.} This file has been created by WW3 during the hindcast run of the model or during the previous cycle. Expected filename: \textbf{restart.ww3}. \item \textbf{mod\_def.ww3} @@ -77,8 +80,8 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} \newline \item To run the executable: \newline \textgreater \$EXE/ww3\_uprstr \newline - If all the inputs are correctly prepared, a new restart file, - (\textbf{restart001.ww3}), will be created. The \textbf{ww3\_uprstr} + If all the inputs are correctly prepared, a new restart file + (\textbf{restart001.ww3}) will be created. The \textbf{ww3\_uprstr} exports the updated spectra in the same format as the restart.ww3. To be applied as BIC for the initialization of the next prediction cycle, it has to be renamed: \newline @@ -95,6 +98,10 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} the \textbf{ww3\_uprstr}; there is not backwards compatibility. \item The starting time of the assimilation defined at \textbf{ww3\_uprstr.inp} has to be the same with the time at the restart file. + \item By using the \textbf{T}, the \textbf{ww3\_uprstr.inp} exports the fields of + SWH from the background restart file, the analysis and of the updated restart file. + In addition, the spectra from the restart files before and after and the update are + exported as text files. \end{itemize} } } @@ -120,43 +127,55 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} The following UPD options are available: \begin{enumerate} - \item UPD0C:: Option 0C All the spectra are updated with a constant - fac=(SWH\_Bckg-SWH\_Anl)/SWH\_Anl. - \item UPD0F:: Option 0F All the spectra are updated with a constant - fac=SWH\_Anl/SWH\_Bckg. - \item UPD1 :: Option 1 The fac(x,y,frq,theta), is weighted according to - the \% of energy at each spectral bin; fac the same as UPDOF. - \item UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at - each grid point according to SWH\_Bckg and SWH\_Anl + \item UPD0C:: \textbf{ELIMINATED from version x.xx} Option 0C All the spectra are + updated with a constant: \newline + \(fac=(SWH\_Bckg-SWH\_Anl)/SWH\_Anl \). + \item UPD0F:: Option 0F All the spectra are updated with a constant: \newline + \(fac=SWH\_Anl/SWH\_Bckg \). + \item UPD1 :: \textbf{ELIMINATED from version x.xx} Option 1 The fac(x,y,frq,theta), + is weighted according to the \% of energy at each spectral bin; fac the same as UPDOF. + \item UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point + according to SWH\_Bckg and SWH\_Anl \item UPD3 :: Option 3 The update factor is a surface with the shape of - the background spectrum. + the background spectrum. \item UPD4 :: [NOT INCLUDED in the current version, just keeping the spot] - Option 4 The generalization of the UPD3. The update factor is the sum of surfaces - which are applied on the background spectrum + Option 4 The generalization of the UPD3. The update factor is the sum of surfaces + which are applied on the background spectrum. The algorithm requires the mapping + of each partition on the individual spectra; the map is used to determine the weighting + surfaces. \end{enumerate} Any additional method for the redistribution of the energy to the WS could be added -by adding a new entry at the namelist of the \textbf{ww3\_uprstr.inp}. +by extending the input file and adding the source code to the \textbf{ww3\_uprstr.ftn}. \subparagraph{Example \newline} In this section, an example of the simplest WDA application is discussed. The figure ~\ref{fig:waveDAflowchart} shows how the \textbf{ww3\_uprstr} is used in the framework of a simple wave analysis system. \newline -A WW3 run (from the previous cycle or from the warm up of the model) provides the +A WW3 run (from the previous cycle or from the hindcast) provides the background field of SWH and the corresponding restart file at the appropriate time. The format of the background SWH field has to be compatible with the WDA module inputs. +\begin{figure} \begin{center} +\includegraphics[width=0.9\textwidth]{./run/waveDA.eps} +\caption{Flowchart of simplified wave data assimilation system, +showing the role of the {ww3\_uprstr}, the required input files, +and the resulted output of the updated restart file.} +\label{fig:waveDAflowchart} \botline +\end{center} +\end{figure} + The WDA module uses the background field and the available observations -for the time of analysis, produces the analysis (\textbf{XXXX.grbtxt}) and exports -the field of SWH in grbtxt format. +for the time of analysis, produces the analysis and exports +the field of SWH in grbtxt format (\textbf{XXXX.grbtxt}) . -The analysis file, the mod\_def.ww3, the restart.ww3 file and the ww3\_uprstr.inp -are the input files for the \textbf{ww3\_uprstr}. If all the options and input -files are correctly prepared, it takes approxmately one minute to update a grid -of 260000 grid nodes and generate the output on a single processor. +The analysis file, the \textbf{mod\_def.ww3}, the \textbf{restart.ww3} file and +the \textbf{ww3\_uprstr.inp} are the input files for the \textbf{ww3\_uprstr}. +If all the options and input files are correctly prepared, it takes approxmately +one minute to update a grid of 260000 grid nodes and generate the output on a single processor. The updated restart file has to be renamed, at the expected file name, in the case of this -example restart.ww3. \newline +example to \textbf{restart.ww3}. \newline \fbox{ \parbox{\textwidth}{ @@ -168,15 +187,6 @@ \subsubsection{The Restart File Processor} \label{sec:ww3uprstr} } } -\begin{figure} \begin{center} -\includegraphics[width=0.9\textwidth]{./run/waveDA.eps} -\caption{Flowchart of simplified wave data assimilation system, -showing the role of the {ww3\_uprstr}, the required input files, -and the resulted output of the updated restart file.} -\label{fig:waveDAflowchart} \botline -\end{center} -\end{figure} - %\paragraph{How to Update the ww3\_uprstr \newline} %Add data readers, mainly for machine independent binary data and wgrib2. diff --git a/manual/threeparttable.sty b/manual/threeparttable.sty new file mode 100644 index 000000000..bc9f5943d --- /dev/null +++ b/manual/threeparttable.sty @@ -0,0 +1,381 @@ +% threeparttable.sty (or 3parttable) (or 3parttab on DOS) +% by Donald Arseneau Updated on June 13, 2003. +% Three part tables: title, tabular environment, notes +% +% This file may be distributed, modified, and used in other works with just +% one restriction: modified versions must clearly indicate the modification +% (a name change, or a displayed message, or ?). +% +% This package facilitates tables with titles (captions) and notes. The +% title and notes are given a width equal to the body of the table (a +% tabular environment). By itself, a threeparttable does not float, but +% you can put it in a {table} or a {table*} or some other environment. +% (This causes extra typing, but gives more flexibility.) +% +% Inside a threeparttable there should be a caption, followed by a tabular +% environment (tabular, tabular* or tabularx), possibly followed by a series +% of itemized "tablenotes". The caption can also go after the tabular. +% +% \begin{table} +% \begin{threeparttable}[b] +% \caption{...} +% \begin{tabular}...% or {tabular*} +% ...42\tnote{1}&.... +% ... +% \end{tabular} +% \begin{tablenotes} +% \item [1] the first note +% ... +% \end{tablenotes} +% \end{threeparttable} +% \end{table} +% +% The {threeparttable} environment takes an optional vertical-placement +% parameter, [t], [b], or [c]; the default is [t]. +% +% At present, there is nothing automatic about the notes; you must specify the +% identifier in the body of the table ("\tnote{a}") and in the notes below +% ("\item[a]..."). I chose this method because automatic numbering with +% \footnote would be very hard to use, particularly because many tables make +% repeated reference to a single note. If someone has a convenient, elegant, +% automatic system, I'll listen! \tnote commands can be given in the caption +% too, and they will *NOT* appear in the list of tables. +% +% There are several commands which should be redefined for customizing the +% behavior of threeparttable, especially the table notes. Some options +% are provided for common variations of the table notes. +% +% Options: +% [para] Notes come one-after-another without line breaks +% [flushleft] No hanging indentation on notes +% [online] \item tag is printed normal size, not superscript +% [normal] restores default formatting +% +% These options can be given to the \usepackage command or to each individual +% {tablenotes} environment. The [normal] option is intended to reverse the +% whole-document options for a particular table; e.g. +% +% \usepackage[para]{threeparttable} +% ... much document ... +% \begin{tablenotes}[normal,flushleft] +% +% These few options are unlikely to give you a desired specified format, +% so you should expect to redefine one or more of the configuration +% commands. Note that mixing options with redefinitions is unlikely +% to work smoothly. Please submit your redefinitions to be used as +% options in future versions! +% +% Configuration commands: +% \TPTminimum: command telling minimum caption width. Default "4em"; +% change with \def or \renewcommnd. +% \TPTrlap: A command with one argument, to make notes go out of +% the column, into the column separation (for right-aligning) +% \TPTtagStyle: Command with one argument to set appearance of the tag +% (number) in \tnote{tag}. It defaults to nil. It could be \textit. +% \tnote: Yes, you can redefine the \tnote command. +% \TPTnoteLabel: Command with one argument to format the item label in +% the tablenotes list (\makelabel); default uses \tnote. +% \TPTnoteSettings: A command to issue all the list-environment setup +% commands for the tablenotes. +% \tablenotes or \TPTdoTablenotes: Yes, you can redefine the whole +% tablenotes environment. (\tablenotes processes optional +% parameters, then invokes \TPTdoTablenotes; the [para] option +% replaces \TPTdoTablenotes.) +% +% For figures, there is an equivalent "measuredfigure" environment. It +% is fairly fragile though, and should be used only for a single graphic +% above a single caption. +% +% Note that the \caption formatting is *not* adjusted by threeparttable. +% You should use one of the caption-control packages to get captions +% that work well as table titles. In truth, threeparttable sets +% \abovecaptionskip to zero for captions above the table, but more +% complete changes are called for. + +\ProvidesPackage{threeparttable}[2003/06/13 \space v 3.0] + +\edef\TPTminimum % make a scratch macro for restoring catcodes + {\catcode\string `\string @=\the\catcode\string`\@ + \catcode\string `\string :=\the\catcode\string`\: + \catcode\string `\string *=\the\catcode\string`\*} +\catcode`\@=11 +\catcode`\:=12 +\catcode`\*=11 + +\@ifundefined{@tempboxb}{\@nameuse{newbox}\@tempboxb}{} + +\newenvironment{threeparttable}[1][t]{% + \relax \ifvmode \noindent \fi + \TPT@common{threeparttable}{#1}% + \@ifundefined{@captype}{\def\@captype{table}}{}% + \let\TPT@LA@label\label + \let\TPT@LA@caption\@caption \let\@caption\TPT@caption + \let\TPT@begintabhook\TPT@begintabbox + \let\TPT@tabarghook\TPT@tabargset + \TPT@hookin{tabular}% + \TPT@hookarg{tabular*}% + \TPT@hookarg{tabularx}% + \let\TPToverlap\relax}% +{\TPT@close} + + +\newenvironment{measuredfigure}[1][t]{% + \relax \ifvmode \noindent \fi + \TPT@common{measuredfigure}{#1}% + \let\TPT@figfix\TPT@close % Provide closure if no caption + \@ifundefined{@captype}{\def\@captype{figure}}{}% + \let\TPT@LA@caption\@caption \let\@caption\TPT@gr@caption + \setbox\@tempboxb\hbox\bgroup + \aftergroup\TPT@measurement + \color@begingroup\spacefactor994\ignorespaces} +{\TPT@close \TPT@figfix} + +\def\TPT@close{\ifhmode \unskip \fi \color@endgroup \egroup} +\def\TPT@figfix{} + +% Caption for figures: +\def\TPT@gr@caption#1[#2]#3{\relax + \ifnum\spacefactor=994\relax % Caption listed first; hold on to it + \abovecaptionskip\z@skip + \let\TPT@hsize\@empty % double sure + \else % Have something to measure, and caption below + \TPT@close % close hbox. Measurement happens here automatically + \fi + \TPT@caption{#1}[{#2}]{#3}% +} + +% "begin" code common for tables and figures +\def\TPT@common#1#2{% + \ifx\TPT@LA@caption\relax\else + \PackageError{threeparttable}% + {Illegal nested #1 environments}% + {Maybe you have a missing \string\end{#1}?^^J% + This cannot work, so type \string"x\string" and fix the problem now.}% + \fi + \let\TPT@docapt\@undefined + \if b#2\relax\vbox\bgroup\else + \if c#2\relax$\vcenter\bgroup\aftergroup$\else + \vtop\bgroup \fi\fi + \parindent\z@ + \color@begingroup + \def\TPT@sethsize{\TPT@hsize\par}% + \topsep\z@ + \@enumdepth\z@ + \global\let\TPT@hsize\@empty +} + +% "hookin" hooks into tabular to set the alignment in a box +% and measure the box. +% For tabular* and tabularx, we can simply use the supplied "width" +% argument (using \TPT@hookarg), but for ordinary tabular environments +% we need to measure the typeset tabular body, using hooks in both the +% begin and the end code (using \TPT@hookin). The hook-in is defined +% generically so it is easy to add new supported environments. +% +% I will add \TPT@begintabhook and \TPT@endtabhook to \tabular and +% \endtabular. These will do the measurement at the outer level, +% but will be no-ops inside. + +\def\TPT@unhook{% + \let\TPT@begintabhook\bgroup + \let\TPT@tabarghook\@gobble +} + +\let\TPT@endtabhook\egroup + +% This is simple -- Hook into tabular types that are given explicit width +\def\TPT@hookarg#1{% #1 = width + \expandafter\let\csname TPTsav@#1\expandafter\endcsname\csname #1\endcsname + \expandafter\edef\csname #1\endcsname##1{\noexpand\TPT@tabarghook{##1}% + \expandafter\noexpand\csname TPTsav@#1\endcsname{\hsize}}% +} + +\def\TPT@tabargset#1{% Alias \TPT@tabarghook + \TPT@unhook + \setlength\hsize{#1}% + \xdef\TPT@hsize{\hsize\the\hsize \parindent 1em \noexpand\@parboxrestore}% + \TPT@hsize + \ifx\TPT@docapt\@undefined\else \TPT@docapt \vskip.2\baselineskip \fi + \par \aftergroup\TPT@sethsize +} + +% Harder -- Hook into tabular/endtabular to measure the width +\def\TPT@hookin#1{% + \expandafter\let\csname TPTsav@#1\expandafter\endcsname\csname #1\endcsname + \expandafter\let\csname TPTsav@end#1\expandafter\endcsname\csname end#1\endcsname + \expandafter\edef\csname #1\endcsname{\noexpand\TPT@begintabhook + \expandafter\noexpand\csname TPTsav@#1\endcsname}% + \expandafter\edef\csname end#1\endcsname{% + \expandafter\noexpand\csname TPTsav@end#1\endcsname \TPT@endtabhook}% +} + +\def\TPT@begintabbox{% alias \TPT@begintabhook + \begingroup + \TPT@unhook + \setbox\@tempboxb\hbox\bgroup \aftergroup\TPT@endtabbox + \let\TPToverlap\TPTrlap % Just \rlap now, but could be smarter +} + +\def\TPT@endtabbox{% Inserted after ending \@tempboxb + \TPT@measurement + \endgroup + \TPT@hsize \aftergroup\TPT@sethsize + \@ignoretrue +} + +\def\TPT@measurement{% + \ifdim\wd\@tempboxb<\TPTminimum + \hsize \TPTminimum + \else + \hsize\wd\@tempboxb + \fi + \xdef\TPT@hsize{\hsize\the\hsize \noexpand\@parboxrestore}\TPT@hsize + \ifx\TPT@docapt\@undefined\else + \TPT@docapt \vskip.2\baselineskip + \fi \par \box\@tempboxb + \ifvmode \prevdepth\z@ \fi +} + +\gdef\TPT@hsize{} +\def\TPT@sethsize{}% Used with \aftergroup, so do this to cover for when a + % \TPT@sethsize escapes from threeparttable. + +% Collecting caption for tables: +\def\TPT@caption#1[#2]#3{\gdef\TPT@docapt + {\par\global\let\TPT@docapt\@undefined \TPT@LA@caption{#1}[{#2}]% + {\strut\ignorespaces#3\ifhmode\unskip\@finalstrut\strutbox\fi}}% + \ifx\TPT@hsize\@empty \let\label\TPT@gatherlabel \abovecaptionskip\z@skip + \else \TPT@docapt \fi \ignorespaces} + +\let\TPT@LA@caption\relax + +% Must also collect any \label that appears after a collected \caption +\def\TPT@gatherlabel#1{% + \ifx\TPT@docapt\@undefined \TPT@LA@label{#1}\else + \g@addto@macro\TPT@docapt{\label{#1}}\fi +} + +\def\tablenotes{\TPT@defaults + \@ifnextchar[\TPT@setuptnotes\TPTdoTablenotes} % ] +\let\endtablenotes\endlist +\def\TPT@setuptnotes [#1]{% process formatting options + \@for\@tempa:=#1\do{\@nameuse{TPT@opt@\romannumeral-`a\@tempa}}% + \TPTdoTablenotes +} + +\def\TPTdoTablenotes{% + \par \prevdepth\z@ \TPT@hsize + \list{}{\topsep\z@skip \partopsep\z@skip + \itemsep\z@ \parsep\z@ \itemindent\z@ + \TPTnoteSettings + \let\makelabel\TPTnoteLabel +}} + + + +% \TPToverlap is a hook, to be used in \tnote, for making the note tag +% hang over the right-edge of the column. It takes different meanings +% at different places, and it should disappear, like this, outside of +% a threeparttable environment. +% +\def\TPToverlap#1{} % notes in caption will disappear in list of tables! + +% \TPTrlap is the meaning of \TPToverlap within the tabular environment. +% I could do some fancy definition so that it only acts at the right-edge +% of a column, but it is left simple for compatibility and sanity. +\let\TPTrlap\rlap + +\def\tnote#1{\protect\TPToverlap{\textsuperscript{\TPTtagStyle{#1}}}}% + +\def\TPTtagStyle#1{#1} + +\def\TPTnoteSettings{% + \setlength\leftmargin{1.5em}% + \setlength\labelwidth{.5em}% + \setlength\labelsep{.2em}% + \rightskip\tabcolsep \leftskip\tabcolsep +} +\def\TPTnoteLabel#1{\tnote{#1}\hfil} + +% Package and tablenotes options + +\def\TPT@opt@normal{\gdef\TPT@defaults{}} +\TPT@opt@normal +\DeclareOption{normal}{} + +\def\TPT@opt@online{% + \def\TPTnoteSettings{\leftmargin1.5em \labelwidth1em \labelsep.5em\relax}% + \def\TPTnoteLabel##1{\TPTtagStyle{##1}\hfil}% +} +\DeclareOption{online}{\g@addto@macro\TPT@defaults{\TPT@opt@online}} + +\def\TPT@opt@flushleft{% + \def\TPTnoteSettings{\labelsep.2em \leftmargin\z@ \labelwidth\z@}% + \def\TPTnoteLabel##1{\hspace\labelsep\tnote{##1}\hfil}% + \rightskip\z@skip \leftskip\z@skip +} +\DeclareOption{flushleft}{\g@addto@macro\TPT@defaults{\TPT@opt@flushleft}} + +\def\TPT@opt@para{\let\TPTdoTablenotes\TPT@doparanotes} +\def\TPT@doparanotes{\par + \prevdepth\z@ \TPT@hsize + \TPTnoteSettings + \parindent\z@ \pretolerance 8 + \linepenalty 200 + \renewcommand\item[1][]{\relax\ifhmode \begingroup + \unskip + \advance\hsize 10em % \hsize is scratch register, based on real hsize + \penalty -45 \hskip\z@\@plus\hsize \penalty-19 + \hskip .15\hsize \penalty 9999 \hskip-.15\hsize + \hskip .01\hsize\@plus-\hsize\@minus.01\hsize + \hskip 1em\@plus .3em + \endgroup\fi + \tnote{##1}\,\ignorespaces}% + \let\TPToverlap\relax + \def\endtablenotes{\par}% +} +\DeclareOption{para}{\g@addto@macro\TPT@defaults{\TPT@opt@para}} + +\ProcessOptions + + +\TPTminimum % restore catcode of @, : and * to starting value + +\def\TPTminimum{4em} + +\endinput + +Example: + +Here is some paragraph before the table. Note that this table does not +float because it is not in a {table} or {table*} environment. + +\begin{center} +\begin{threeparttable} +\caption{The Skewing Angles ($\beta$) for $\fam0 Mu(H)+X_2$ and + $\fam0 Mu(H)+HX$~\tnote{a}} +\begin{tabular}{rlcc} +\hline +& & $\fam0 H(Mu)+F_2$ & $\fam0 H(Mu)+Cl_2$ \\ +\hline +&$\beta$(H) & $80.9^\circ\tnote{b}$ & $83.2^\circ$ \\ +&$\beta$(Mu) & $86.7^\circ$ & $87.7^\circ$ \\ +\hline +\end{tabular} +\begin{tablenotes} +\item[a] for the abstraction reaction, $\fam0 Mu+HX \rightarrow MuH+X$. +\item[b] 1 degree${} = \pi/180$ radians. +\end{tablenotes} +\end{threeparttable} + +\end{center} + +Notes: + +May 15, 2001: changed hook-in to use \setbox in a wrapper macro (or +explicit width of tabular*). I don't remember why I used \everyhbox +and \lastbox before. Something may break now. At least it works with +tabularx. + +June 13, 2003: Re-wrote a lot, particularly the hook mechanism. Use macros +and package/environment options for formatting control. Add measuredfigure. diff --git a/model/bin/comp.theia b/model/bin/comp.theia index e52c5518d..c8f3c6246 100755 --- a/model/bin/comp.theia +++ b/model/bin/comp.theia @@ -205,7 +205,7 @@ # 3.d Remove unwanted files - - - - - - - - - - - - - - - - - - - - - - - - - # include here unwanted files generated by the compiler - rm -f $name.out - rm -f $name.err +# rm -f $name.out +# rm -f $name.err # end of comp --------------------------------------------------------------- # diff --git a/model/ftn/ww3_uprstr.ftn b/model/ftn/ww3_uprstr.ftn index c9a70e8c8..980a47db9 100644 --- a/model/ftn/ww3_uprstr.ftn +++ b/model/ftn/ww3_uprstr.ftn @@ -15,6 +15,12 @@ !/ 04-Sep-2017 : Simplified the code, take out a significant part of the !/ flexibility (The code is still available at SVN/UpRest) !/ 15-Sep-2017 : Version 0.65 ( version 6.03 ) +!/ 01-Oct-2018 : Fixes to preserve spectral energy correctly +!/ (Andy Saulter) ( version 6.06 ) +!/ 17-Oct-2018 : Version 0.95 ( version 6.06 ) +!/ Simplified the code, remove some user unfriendly +!/ options, add reg test ta1, add logical checks, +!/ unified the operator, add/update the documentation. !/ !/ Copyright 2010 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -71,11 +77,13 @@ ! The Hs correction is redistributed to each frequency and direction. ! ! 1. The W3UPRSTR imports: i. the restart.ww3, -! ii. one of or both: correction or/and analysis file and +! ii. the analysis file and ! iii. the input file: ww3_uprstr.inp, details at 2.2.2.i. ! ! 2. The W3UPRSTR updates the restart file according to the option at -! ww3_uprstr UPD[N] +! ww3_uprstr UPD[N] +! Note: With the version 6.06 some options have been removed, but the naming +! is consistent with the original version. ! ! 3. W3UPRSTR exports the updated spectrum in the same format as the ! restart.ww3. The name of the output file is: restart001.ww3 and it has to @@ -106,48 +114,54 @@ ! ! i. ww3_uprstr.inp ! It includes some limited information for running the program: -! -------------------------------------------------------------------- $ +! +!$ -------------------------------------------------------------------- $ !$ WAVEWATCH III Update Restart input file $ !$ -------------------------------------------------------------------- $ !$ !$ Time of Assimilation ----------------------------------------------- $ !$ - Starting time in yyyymmdd hhmmss format. !$ -!$ This is the assimilation starting time and has to be the same with +!$ This is the assimilation starting time and has to be the same with !$ the time at the restart.ww3. -! -! 20170801 060000 $20050828 090000 !$ -!$ Choose algorithm to update restart file +! 19680607 120000 +!$ +!$ Choose algorithm to update restart file !$ UPDN for the Nth approach !$ The UPDN*, with N<2 the same correction factor is applied at all the grid points -!$ UPD0C:: Option 0C All the spectra are updated with a constant -!$ fac=(HsBckg-HsAnl)/HsAnl. -!$ Expected input: PRCNTG, as defined at fac -!$ UPDOF:: Option 0F All the spectra are updated with a constant +!$ UPD0C:: ELIMINATED +!$ UPDOF:: Option 0F All the spectra are updated with a constant !$ fac=HsAnl/HsBckg. !$ Expected input: PRCNTG, as defined at fac -!$ UPD1 :: Option 1 The fac(x,y,frq,theta), is weighted according to -!$ the % of energy at each spectral bin. -!$ Expected input: PRCNTG, as defined at UPD0F +!$ UPD1 :: ELIMINATED !$ UPDN, with N>1 each gridpoint has its own update factor. !$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point !$ according to HsBckg and HsAnl !$ Expected input the Analysis field, grbtxt format -!$ UPD3 :: Option 3 The update factor is a surface with the shape of -!$ the background spectrum. +!$ UPD3 :: Option 3 The update factor is a surface with the shape of +!$ the background spectrum. !$ Expected input the Analysis field, grbtxt format !$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] !$ Option 4 The generalization of the UPD3. The update factor -!$ is the sum of surfaces which are applied on the background -!$ spectrum -!$ Expected input: the Analysis field, grbtxt format and the -!$ functions(frq,theta) of the update to be applied. +!$ is the sum of surfaces which are applied on the background +!$ spectrum. +!$ The algorithm requires the mapping of each partition on the +!$ individual spectra; the map is used to determine the weighting +!$ surfaces. +!$ Expected input: the Analysis field, grbtxt format and the +!$ functions(frq,theta) of the update to be applied. ! UPD3 !$ -!$ PRCNTG is input for option 1 and it is the percentage of correction -!$applied to all the gridpoints (e.g. 1.) -! 1.0 +!$ PRCNTG is input for option 1 and it is the percentage of correction +!$applied to all the gridpoints (e.g. 1.) +!$ +! 0.475 +!$ +!$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +!$ maximun correction applied to all the gridpoints (e.g. 0.5) +!$ +! 0.6 !$ !$ Name of the file with the SWH analysis from the DA system $ !$ suffix .grbtxt for text out of grib2 file. $ @@ -160,7 +174,7 @@ ! ! ii. Data files anl.XXX ! -! USE THE grbtxt FORMAT, See E. +! USE THE grbtxt FORMAT, See Format E. ! ! Format E. ! Text file created by wgrib2. This format is tested more extensively @@ -183,17 +197,19 @@ ! iii. restart.ww3 ! The restart file as came out of the background run, the name has to be ! restart.ww3, but the name of the output depends on the mod_def.ww3, the -! ww3_uprstr follows it's content (be careful with ovewriting). +! ww3_uprstr follows its content (be careful with ovewriting). ! -! 3. Parameters : +! 3. Example +! Use the regression tests ww3_ta1 +! +! 4. Parameters : ! ! Local parameters. ! ---------------------------------------------------------------- ! -! ! ---------------------------------------------------------------- ! -! 4. Subroutines used : +! 5. Subroutines used : ! ! Name Type Module Description ! ---------------------------------------------------------------- @@ -217,20 +233,20 @@ ! SWH_RSRT_1p ! WRITEMATRIX ! -! 5. Called by : +! 6. Called by : ! ! None, stand-alone program. ! -! 6. Error messages : +! 7. Error messages : ! -! 7. Remarks: +! 8. Remarks: ! ! 7.1 Use the grbtxt format for correction and analysis files. ! ! 7.2 There are some variables not used but declared, it's for future ! development. ! -! 8. Structure : +! 9. Structure : ! ! ---------------------------------------------------- ! 1. Set up data structures. @@ -242,13 +258,18 @@ ! 6. Export the updated restart file ( W3IORS ) ! ---------------------------------------------------- ! -! 9. Switches : +! 10. Switches : ! ! !/SHRD Switch for shared / distributed memory architecture. ! !/T ! !/S Enable subroutine tracing. ! -! 10. Source code : +! 11. Known Bugs +! +! 1. Fix the format for the output (NSDO) of non strings, e.g. for +! TIME. +! +! 12. Source code : ! !/ USE W3GDATMD, ONLY: W3NMOD, W3SETG @@ -260,8 +281,8 @@ USE W3IOGRMD, ONLY: W3IOGR USE W3DISPMD, ONLY: WAVNU1 !/ - USE W3GDATMD, ONLY: GNAME, NX, NY, MAPSTA, SIG, NK, NTH, NSEA & - , NSEAL, MAPSF, DMIN, ZB, DSIP, DTH + USE W3GDATMD, ONLY: GNAME, NX, NY, MAPSTA, SIG, NK, NTH, NSEA, & + NSEAL, MAPSF, DMIN, ZB, DSIP, DTH USE W3WDATMD, ONLY: VA, TIME USE W3ADATMD, ONLY: NSEALM USE W3ODATMD, ONLY: IAPROC, NAPERR, NAPLOG, NDS, NAPOUT @@ -274,20 +295,23 @@ !/ INTEGER :: NDSI, NDSM, NDSTRC, NTRACE, IERR, I, J CHARACTER :: COMSTR*1 - !/ +!/ ! REAL, ALLOCATABLE :: BETAW(:) ! LOGICAL, ALLOCATABLE :: MASK(:) LOGICAL :: anl_exists INTEGER :: IMOD, INTYPE, NDSEN, IX, IY, IK, ITH - REAL, ALLOCATABLE :: UPDPRCNT(:,:),VATMP(:), HSIG(:,:),A(:), HS_ANAL(:,:),gues(:,:),HS_DIF(:,:),SWHANL(:,:) & - ,SWHBCKG(:,:), SWHUPRSTR(:,:),VATMP_NORM(:) - REAL :: PRCNTG + REAL, ALLOCATABLE :: UPDPRCNT(:,:),VATMP(:), HSIG(:,:), & + A(:), HS_ANAL(:,:), gues(:,:), & + HS_DIF(:,:),SWHANL(:,:), SWHBCKG(:,:), & + SWHUPRSTR(:,:),VATMP_NORM(:) + REAL :: PRCNTG, PRCNTG_CAP INTEGER :: ROWS, COLS, ISEA CHARACTER(128) :: FLNMCOR, FLNMANL CHARACTER(16) :: UPDPROC ! for howv - REAL :: SWHTMP,SWHBCKG_1, SWHANL_1, REL_ERROR, DEPTH, WN, CG, ETOT, E1I, SWH_ANL1,SWHTMP1,SUMVATMP - REAL :: SUMVA,NITER, K + REAL :: SWHTMP,SWHBCKG_1, SWHANL_1, & + DEPTH, WN, CG, ETOT, E1I + REAL :: K CHARACTER(8), PARAMETER :: MYNAME='W3UPRSTR' !/ @@ -325,6 +349,7 @@ !/ WRITE (NDSO,900) !/ +!/ ------------------------------------------------------------------- / ! 2. Read the ww3_uprstr.inp !/ J = LEN_TRIM(FNMPRE) @@ -340,103 +365,84 @@ READ (NDSI,*,END=2001,ERR=2002) UPDPROC CALL NEXTLN ( COMSTR , NDSI , NDSEN ) READ (NDSI,*,END=2001,ERR=2002) PRCNTG + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + READ (NDSI,*,END=2001,ERR=2002) PRCNTG_CAP !/F CALL NEXTLN ( COMSTR , NDSI , NDSEN ) !/F READ (NDSI,*,END=2001,ERR=2002) FLNMCOR CALL NEXTLN ( COMSTR , NDSI , NDSEN ) READ (NDSI,*,END=2001,ERR=2002) FLNMANL - - PRINT*, ' TIME: ',TIME,'FLNMCOR: ',trim(FLNMCOR) & - , ' FLNMANL: ', trim(FLNMANL), 'UPDPROC: ', trim(UPDPROC) & - , ' PRCNTG: ', PRCNTG +! +!/T WRITE (NDSO,*)' TIME: ',TIME +!/T WRITE (NDSO,1004)' FLNMANL: ', trim(FLNMANL), & +!/T ' UPDPROC: ', trim(UPDPROC) +!/T WRITE (NDSO,*)' PRCNTG: ', PRCNTG !/ +!/ ------------------------------------------------------------------- / ! 3. Read model definition file. !/ CALL W3IOGR ( 'READ', NDSM ) NSEAL = NSEA WRITE (NDSO,920) GNAME !/ +!/ ------------------------------------------------------------------- / ! 4. Read restart file !/ CALL W3IORS ( 'READ', NDS(6), SIG(NK), INTYPE, IMOD )! IF ( IAPROC .EQ. NAPLOG ) THEN IF (INTYPE.EQ.0.OR.INTYPE.EQ.1.OR.INTYPE.EQ.4) THEN - WRITE (NDSO,1004) 'Terminating ww3_uprstr: The restart file is not & - read' + WRITE (NDSO,1004) 'Terminating ww3_uprstr: The restart ' // & + 'file is not read' CALL EXTCDE ( 1 ) ELSE WRITE (NDSO,1004) 'Updating Restart File' END IF END IF -!/T WRITE (NDST,*), MYNAME,' : Exporting VA as imported to VA01.txt' -!/T CALL writeMatrix('VA01.txt', REAL(VA)) +! +!/T WRITE (NDST,*), MYNAME,' : Exporting VA as imported to VA01.txt' +!/T CALL writeMatrix('VA01.txt', REAL(VA)) !/ -! 5. Actions according to the selected option +!/ ------------------------------------------------------------------- / +! 5. Update restart spectra array according to the selected option ! select case (UPDPROC) +! +! UPD0F case ('UPD0F') - WRITE (NDSO,902) 'UPD0F' -!/ - DO ISEA=1, NSEA, 1 - VA(:,ISEA)= (PRCNTG)*VA(:,ISEA) - END DO - case ('UPD0C') - WRITE (NDSO,902) 'UPD0C' + write (NDSO,902) 'UPD0F' +!/T ALLOCATE( VATMP (SIZE(VA ,1) )) +!/T ALLOCATE( SWHANL (SIZE(MAPSTA,1), SIZE(MAPSTA,2))) +!/T ALLOCATE( SWHBCKG(SIZE(MAPSTA,1), SIZE(MAPSTA,2))) !/ DO ISEA=1, NSEA, 1 - VA(:,ISEA)= (1+PRCNTG)*VA(:,ISEA) +!/T IX = MAPSF(ISEA,1) +!/T IY = MAPSF(ISEA,2) +!/T VATMP = VA(:,ISEA) +!/T CALL SWH_RSRT_1p (VATMP, ISEA, SWHBCKG_1) +!/T SWHBCKG(IY,IX)=SWHBCKG_1 + CALL UPDATE_VA(PRCNTG, VA(:,ISEA)) +!/T VATMP = VA(:,ISEA) +!/T CALL SWH_RSRT_1p (VATMP, ISEA, SWHANL_1) +!/T SWHANL(IY,IX)=SWHANL_1 +!/T WRITE (NDSO,*)'ISEA = ', ISEA,' PRCNTG = ',PRCNTG, & +!/T ' SWHBCKG = ',SWHBCKG(IY,IX), & +!/T ' SWHANL= ', SWHANL(IY,IX) END DO - - case ('UPD1') - WRITE (NDSO,902) 'UPD1' -!/ - ALLOCATE (VATMP(SIZE(VA,1))) - ALLOCATE (A (SIZE(VA,1))) - - DO ISEA=1, NSEA, 1 - IX = MAPSF(ISEA,1) - IY = MAPSF(ISEA,2) - VATMP = VA(:,ISEA) - CALL SWH_RSRT_1p (VATMP, ISEA, SWHBCKG_1) -!/ - SWHANL_1=(1.+ PRCNTG)*SWHBCKG_1 - IF (SWHANL_1<0.)THEN - SWHANL_1=0.0 - WRITE (NDSO,*)'Warning: The Analysis is lower than 0!' - END IF - NITER = 0 - REL_ERROR=PRCNTG -!/ - DO WHILE ( ABS(REL_ERROR) >= 0.01 & - .AND. NITER < 100 & - .AND. SWHANL_1> 0.0 ) - SUMVATMP=SUM(VATMP) - IF (SUMVATMP>=0.0001 ) THEN - A=REL_ERROR*VATMP/SUMVATMP - ELSE - A=0. - END IF - VATMP=VATMP+VATMP*A - WHERE (VATMP<0.) VATMP=0.0 - CALL SWH_RSRT_1p (VATMP, ISEA, SWHTMP) - REL_ERROR=(SWHANL_1-SWHTMP)/SWHANL_1 -!/ - NITER = NITER + 1 - - END DO - VA(:,ISEA)=VATMP - END DO -!/ - DEALLOCATE (VATMP,A) +! +!/T CALL writeMatrix('SWHBCKG_UPD0F.txt', REAL(SWHBCKG)) +!/T CALL writeMatrix('SWHANL_UPD0F.txt' , REAL(SWHANL )) +!/T CALL writeMatrix('SWHRSTR_UPD0F.txt', REAL(SWHANL )) +!/T DEALLOCATE ( VATMP, SWHBCKG, SWHANL ) +! +!/ ------------------------------------------------------------------- / case ('UPD2') - WRITE (NDSO,902) 'UPD2' -!/ + write (NDSO,902) 'UPD2' ! Additional Input: Analysis Field INQUIRE(FILE=FLNMANL, EXIST=anl_exists) IF (anl_exists) then ALLOCATE( SWHANL(SIZE(MAPSTA,1), SIZE(MAPSTA,2)) ) -!/ WRITE (NDSO,*) 'shape(SWHANL)', shape(SWHANL) +!/T WRITE (NDSO,*) 'shape(SWHANL)', shape(SWHANL) CALL READ_GRBTXT(SWHANL,FLNMANL) -!/T CALL writeMatrix('swhanl.txt',SWHANL) +!/T CALL writeMatrix('SWHANL_IN.txt',SWHANL) ELSE WRITE (NDSO,*) trim(FLNMANL), ' does not exist, stopping...' STOP @@ -457,20 +463,38 @@ IF ( SWHBCKG(IY,IX) > 0.01 .AND. SWHANL(IY,IX) > 0.01 ) THEN !/ PRCNTG=(SWHANL(IY,IX)/SWHBCKG_1) -!/T WRITE (NDSO,*) 'ISEA =', ISEA,' IX =',IX,' IY =', IY, ' PRCNTG =',PRCNTG & -!/T ,' SWHBCKG= ',SWHBCKG(IY,IX),' SWHANL= ', SWHANL(IY,IX) - VATMP=PRCNTG*VATMP - VA(:,ISEA)=VATMP - CALL SWH_RSRT_1p (VATMP, ISEA, SWHTMP) - SWHUPRSTR(IY,IX)=SWHTMP - PRINT*,'ISEA=',ISEA,'BCKG=', SWHBCKG(IY,IX),'ANL=', SWHANL(IY,IX),'RSTR=',SWHUPRSTR(IY,IX) +!/T WRITE (NDSO,*) 'ISEA = ', ISEA,' IX = ',IX,' IY = ', IY, & +!/T ' PRCNTG = ',PRCNTG,' SWHBCKG = ',SWHBCKG(IY,IX), & +!/T ' SWHANL = ', SWHANL(IY,IX) + + CALL CHECK_PRCNTG (PRCNTG,PRCNTG_CAP) + CALL UPDATE_VA(PRCNTG, VA(:,ISEA)) + CALL SWH_RSRT_1p (VA(:,ISEA), ISEA, SWHUPRSTR(IY,IX)) + +!/T WRITE (NDSO,*)'ISEA = ',ISEA,' PRCNTG = ',PRCNTG, & +!/T 'SWH_BCKG = ', SWHBCKG(IY,IX), 'SWH_ANL = ', & +!/T SWHANL(IY,IX),'SWH_RSTR = ',SWHUPRSTR(IY,IX) +! +!/T WRITE (NDSO,*) ' =========== UPD2 Output ===========' +!/T WRITE (NDSO,*)'ISEA = ',ISEA, & +!/T 'SWH_BCKG = ', SWHBCKG(IY,IX), & +!/T 'SWH_ANL = ', SWHANL(IY,IX), & +!/T 'SWH_RSTR = ',SWHUPRSTR(IY,IX) +!/ END IF END DO -!/T CALL writeMatrix('swhbckg.txt',SWHBCKG) -!/T CALL writeMatrix('swhuprstr.txt',SWHUPRSTR) -!/ +! +!/T CALL writeMatrix('SWHBCKG_UPD2.txt', REAL(SWHBCKG )) +!/T CALL writeMatrix('SWHANL_UPD2.txt' , REAL(SWHANL )) +!/T CALL writeMatrix('SWHRSTR_UPD2.txt', REAL(SWHUPRSTR)) +!/T DEALLOCATE( SWHANL,VATMP,SWHBCKG,SWHUPRSTR ) +! +!/ ------------------------------------------------------------------- / +! UPD3 +! As per UPD2, but the update factor is a surface with the shape of the +! background spectrum case ('UPD3') WRITE (NDSO,902) 'UPD3' ! Additional Input: Analysis Field @@ -479,7 +503,7 @@ ALLOCATE( SWHANL(SIZE(MAPSTA,1), SIZE(MAPSTA,2)) ) !/ WRITE (NDSO,*) 'shape(SWHANL)', shape(SWHANL) CALL READ_GRBTXT(SWHANL,FLNMANL) -!/T CALL writeMatrix('swhanl.txt',SWHANL) +!/T CALL writeMatrix('SWHANL_IN.txt',SWHANL) ELSE WRITE (NDSO,*) trim(FLNMANL), ' does not exist, stopping...' STOP @@ -502,83 +526,70 @@ SWHBCKG(IY,IX)=SWHBCKG_1 !/ IF ( SWHBCKG(IY,IX) > 0.01 .AND. SWHANL(IY,IX) > 0.01 ) THEN + !Step 1. PRCNTG=(SWHANL(IY,IX)/SWHBCKG_1) - NITER = 0 -!/T WRITE (NDSO,*)'ISEA =', ISEA, 'NITER=',NITER,' PRCNTG =',PRCNTG,' SWHBCKG= ',SWHBCKG(IY,IX)& -!/T ,' SWHANL= ', SWHANL(IY,IX) - DO WHILE ( ABS(1-PRCNTG) > 0.01 .AND. NITER < 50 ) - VATMP_NORM=VATMP/SUM(VATMP) -!/T WRITE (NDSO,*)'ISEA =', ISEA,' IX =',IX,' IY =', IY, 'NITER=',NITER & -!/T ,' PRCNTG =',PRCNTG,' SWHBCKG= ',SWHBCKG(IY,IX) & -!/T ,' SWHANL= ', SWHANL(IY,IX) +!/T WRITE (NDSO,*) ' =========== Step 1. ===========' +!/T WRITE (NDSO,*) ' ISEA = ', ISEA,' IX = ',IX,' IY = ', IY, & +!/T ' PRCNTG = ',PRCNTG,' SWHBCKG = ',SWHBCKG(IY,IX), & +!/T ' SWHANL = ', SWHANL(IY,IX) + + CALL CHECK_PRCNTG (PRCNTG,PRCNTG_CAP) + VATMP_NORM=VATMP/SUM(VATMP) + +!/T WRITE (NDSO,*)' ISEA =', ISEA,' IX = ',IX,' IY = ', IY, & +!/T ' PRCNTG = ',PRCNTG, & +!/T ' SWHBCKG = ',SWHBCKG(IY,IX), ' SWHANL = ', SWHANL(IY,IX) !/T - IF (PRCNTG > 1.) THEN - A=PRCNTG + PRCNTG*VATMP_NORM - ELSE - A=PRCNTG - PRCNTG*VATMP_NORM - END IF -!/ - VATMP=A*VATMP -!/ - CALL SWH_RSRT_1p (VATMP, ISEA, SWHBCKG_1) - PRCNTG=(SWHANL(IY,IX)/SWHBCKG_1) - NITER=NITER+1 -!/T PRINT*,'NITER=', NITER, 'PRCNTG= ',PRCNTG, SWHANL(IY,IX), SWHBCKG_1 - END DO + IF (PRCNTG > 1.) THEN + A=PRCNTG**2*(1 + VATMP_NORM) + ELSE + A=PRCNTG**2*(1 - VATMP_NORM) + END IF +!/ + VATMP=A*VATMP +!/ + CALL SWH_RSRT_1p (VATMP, ISEA, SWHTMP) + SWHUPRSTR(IY,IX)=SWHTMP + PRCNTG=(SWHANL(IY,IX)/SWHTMP) +!/ +!/T WRITE (NDSO,*) ' =========== Step 2. ===========' +!/T WRITE (NDSO,*)'ISEA = ', ISEA, ' PRCNTG = ',PRCNTG, & +!/T ' SWHANL= ', SWHANL(IY,IX), & +!/T ' SWHUPRSTR(IY,IX) = ', SWHUPRSTR(IY,IX) +!/ + CALL CHECK_PRCNTG (PRCNTG,PRCNTG_CAP) + CALL UPDATE_VA(PRCNTG, VATMP) + VA(:,ISEA)=VATMP CALL SWH_RSRT_1p (VATMP, ISEA, SWHTMP) -!/T WRITE (NDSO,*)'ISEA =', ISEA, 'NITER=',NITER,' PRCNTG =',PRCNTG,' SWHUPRSTR(IY,IX)=', SWHTMP& -!/T ,' SWHANL= ', SWHANL(IY,IX) - SWHUPRSTR(IY,IX)=SWHTMP + +!/T WRITE (NDSO,*) ' =========== UPD3 Output ===========' +!/T WRITE (NDSO,*)'ISEA = ',ISEA,'SWH_BCKG = ', SWHBCKG(IY,IX), & +!/T 'SWH_ANL = ', SWHANL(IY,IX), & +!/T 'SWH_RSTR = ',SWHUPRSTR(IY,IX) +!/ END IF END DO -!/T CALL writeMatrix('swhbckg.txt',SWHBCKG) -!/T CALL writeMatrix('swhuprstr.txt',SWHUPRSTR) -!/ - DEALLOCATE( SWHANL,VATMP,SWHBCKG,SWHUPRSTR,VATMP_NORM,A ) - case ('UPD4') - WRITE (NDSO,902) 'UPD4' -!/F Additional Input: Analysis Field -!/F INQUIRE(FILE=FLNMANL, EXIST=anl_exists) -!/F IF (anl_exists) then -!/F ALLOCATE( SWHANL(SIZE(MAPSTA,1), SIZE(MAPSTA,2)) ) -!/F!/ WRITE (NDSO,*) 'shape(SWHANL)', shape(SWHANL) -!/F CALL READ_GRBTXT(SWHANL,FLNMANL) -!/F!/T CALL writeMatrix('swhanl.txt',SWHANL) -!/F ELSE -!/F WRITE (NDSO,*) trim(FLNMANL), ' does not exist, stopping...' -!/F STOP -!/F END IF -!/F!/ -!/F! Calculation -!/F ALLOCATE ( VATMP(SIZE(VA,1))) -!/F ALLOCATE ( SWHBCKG (SIZE(MAPSTA,1), SIZE(MAPSTA,2)) ) -!/F ALLOCATE ( SWHUPRSTR (SIZE(MAPSTA,1), SIZE(MAPSTA,2)) ) -!/F ALLOCATE ( VATMP_NORM(SIZE(VA,1))) -!/F ALLOCATE ( A (SIZE(VA,1))) -!/F!/ -!/F DO ISEA=1, NSEA, 1 -!/F IX = MAPSF(ISEA,1) -!/F IY = MAPSF(ISEA,2) -!/F!/ -!/F VATMP = VA(:,ISEA) -!/F!/ -!/F CALL DO_SOME_Magic() -!/F SWHBCKG(IY,IX)=SWHBCKG_1 -!/F END DO -!/F/T CALL writeMatrix('swhbckg.txt',SWHBCKG) -!/F/T CALL writeMatrix('swhuprstr.txt',SWHUPRSTR) -!/F/ +! +!/T CALL writeMatrix('SWHBCKG_UPD3.txt', REAL(SWHBCKG)) +!/T CALL writeMatrix('SWHANL_UPD3.txt' , REAL(SWHANL )) +!/T CALL writeMatrix('SWHRSTR_UPD3.txt', REAL(SWHUPRSTR)) +!/T DEALLOCATE( SWHANL,VATMP,SWHBCKG,SWHUPRSTR,VATMP_NORM,A ) -! end select ! +!/ ------------------------------------------------------------------- / ! 6. Write updated restart file WRITE (NDSO,903) INTYPE = 3 CALL W3IORS ( 'HOT', NDS(6), SIG(NK), INTYPE, 1 ) +! +!/ ------------------------------------------------------------------- / +!/T WRITE (NDST,*), MYNAME,' : Exporting VA at the end of the re-analysis' +!/T CALL writeMatrix('VA02.txt', REAL(VA)) + !/ ! Escape locations read errors 08k: ! @@ -613,7 +624,7 @@ ! 2222 CONTINUE -!! Fo1mats +!! Formats 900 FORMAT (/15X,' *** WAVEWATCH III ww3_uprsrt Initializing *** '/ & 15X,'==============================================='/) 901 FORMAT ( ' Comment character is ''',A,''''/) @@ -651,59 +662,69 @@ !/ CONTAINS !/ -! - SUBROUTINE READ_GRBTXT(UPDPRCNT,FLNMCOR) - REAL, DIMENSION(:,:), INTENT(OUT) :: UPDPRCNT - CHARACTER(*), INTENT(IN) :: FLNMCOR -! Local Variables - INTEGER :: I, J, IERR - INTEGER :: K, L, M, N - REAL :: A - INTEGER, PARAMETER :: IP_FID = 123 - CHARACTER(25), PARAMETER::myname='read_grbtxt' +!/ ------------------------------------------------------------------- / !/ -!/T WRITE (NDSO,*) trim(myname), ' starts' + SUBROUTINE UPDATE_VA (PRCNTG, VATMP) +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | Stelios Flampouris | +!/ | FORTRAN 90 | +!/ | Created : 16-Oct-2018 | +!/ +-----------------------------------+ !/ - J = LEN_TRIM(FNMPRE) - OPEN (IP_FID,FILE=FNMPRE(:J)//TRIM(FLNMCOR),STATUS='OLD' & - ,ACTION='read',IOSTAT=IERR) +!/ 16-Oct-2018 : Original Code ( version 6.06 ) !/ - READ( IP_FID, 110),M,N - - IF (( SIZE(UPDPRCNT,1) /= N) .OR. ( SIZE(UPDPRCNT,2) /= M )) THEN - WRITE (NDSO,*)trim(myname),': These are not the grid dimensions: M=',M,' N=',N - STOP - END IF - UPDPRCNT=0 +!/ Copyright 2010 National Weather Service (NWS), +!/ National Oceanic and Atmospheric Administration. All rights +!/ reserved. WAVEWATCH III is a trademark of the NWS. +!/ No unauthorized use without permission. !/ - DO L=1,N - DO K=1,M - A=0. - READ(IP_FID,*)A - UPDPRCNT(N+1-L,K)=A - END DO - END DO - - CLOSE(IP_FID) -!/T WRITE (NDSO,*) trim(myname), ' ends' - -110 format (2(I4) ) - - END SUBROUTINE READ_GRBTXT +! 1. Purpose : +! Apply correction to the spectrum +! +! 2. Method : +! The factor is (swh_anal/swh_bkg)**2 as applying to wave energy +! 3. Parameters : +! +! Local parameters. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! ---------------------------------------------------------------- +! Internal Subroutines: +! +! 5. Called by : +! +! 6. Error messages : +! +! 7. Remarks : +! +! 8. Structure : +! +! 9. Switches : +! +! !/T +! +! 10. Source code : + REAL, INTENT(IN) :: PRCNTG + REAL, DIMENSION(:), INTENT(INOUT) :: VATMP + VATMP = (PRCNTG**2)*VATMP + END SUBROUTINE UPDATE_VA +!/ +!/ --------------------------------------------------------------------- !/ - SUBROUTINE WORKER (VATMP, ISEA1p, SWH_ANL, REL_ERROR ) -!/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | Stelios Flampouris | !/ | FORTRAN 90 | -!/ | Last update : 15-Mar-2017 | +!/ | Created : 16-Oct-2018 | !/ +-----------------------------------+ !/ -!/ 15-Mar-2017 : Original Code ( version 6.04 ) +!/ 16-Oct-2018 : Original Code ( version 6.06 ) !/ !/ Copyright 2010 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -711,9 +732,9 @@ !/ No unauthorized use without permission. !/ ! 1. Purpose : -! The main subroutine updating the vertart file +! Last sanity check before the update of the spectrum ! 2. Method : -! +! The percentage of change is compared against a user defined cap. ! 3. Parameters : ! ! Local parameters. @@ -737,44 +758,117 @@ ! !/T ! ! 10. Source code : + + SUBROUTINE CHECK_PRCNTG (PRCNTG,PRCNTG_CAP) ! + REAL, INTENT(INOUT) :: PRCNTG + REAL, INTENT(IN ) :: PRCNTG_CAP +! local + CHARACTER(12), PARAMETER :: MYNAME='CHECK_PRCNTG' +!/T +!/T WRITE (NDSO,*) trim(MYNAME)," The original correction is ",PRCNTG +!/T WRITE (NDSO,*) trim(MYNAME)," The cap is ",PRCNTG_CAP + IF ( PRCNTG > 1. ) THEN +!/T WRITE (NDSO,*) trim(MYNAME)," PRCNTG > 1." + PRCNTG = MIN(PRCNTG, 1. + PRCNTG_CAP) + ELSE IF ( PRCNTG < 1. ) THEN +!/T WRITE (NDSO,*) trim(MYNAME)," PRCNTG < 1." + PRCNTG = MAX(PRCNTG, 1. - PRCNTG_CAP) +!/T + END IF +!/T WRITE (NDSO,*) trim(MYNAME)," The updated correction is ",PRCNTG !/ - - REAL, DIMENSION(:), INTENT(INOUT) :: VATMP - INTEGER, INTENT(IN) :: ISEA1p - REAL, INTENT(IN) :: SWH_ANL - REAL, INTENT(OUT) :: REL_ERROR + END SUBROUTINE CHECK_PRCNTG +!/ +!/ ------------------------------------------------------------------- / +!/ + SUBROUTINE READ_GRBTXT(UPDPRCNT,FLNMCOR) +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | Stelios Flampouris | +!/ | FORTRAN 90 | +!/ | Created : 15-Mar-2017 | +!/ | Last Update : 16-Oct-2018 | +!/ +-----------------------------------+ +!/ +!/ 15-Mar-2017 : Original Code ( version 6.04 ) +!/ 16-Oct-2018 : Generalization of the reader ( version 6.06 ) +!/ +!/ Copyright 2010 National Weather Service (NWS), +!/ National Oceanic and Atmospheric Administration. All rights +!/ reserved. WAVEWATCH III is a trademark of the NWS. +!/ No unauthorized use without permission. +!/ +! 1. Purpose : +! Read gribtxt files +! 2. Method : +! +! 3. Parameters : +! +! Local parameters. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : ! - REAL :: SUMVA - REAL, DIMENSION(SIZE(VATMP,1)) :: A +! ---------------------------------------------------------------- +! Internal Subroutines: +! +! 5. Called by : +! +! 6. Error messages : +! +! 7. Remarks : +! +! 8. Structure : +! +! 9. Switches : +! +! !/T +! +! 10. Source code : - CALL SWH_RSRT_1p (VATMP, ISEA1p, SWHTMP) -! REL_ERROR = (SWH_ANL - SWHTMP)/SWH_ANL - -! SUMVA = SUM(VATMP) -!/T IF (isnan(SUMVA)) then -!/T print*, 'WORKER SEA1p = ', ISEA1p -!/T print*, 'WORKER REL_ERROR = ',REL_ERROR -!/T print*, 'WORKER SUMVA = ',SUMVA -!/T END IF -! A = REL_ERROR*( VATMP/SUMVA ) - - VATMP = SWH_ANL * VATMP -! WHERE (VATMP<0.) VATMP=0.0 - CALL SWH_RSRT_1p (VATMP, ISEA1p, SWHTMP) - REL_ERROR = (SWH_ANL - SWHTMP)/SWH_ANL - -!/T IF (isnan(REL_ERROR)) then -!/T print*, 'SWH_ANL=', SWH_ANL, 'SWHTMP=', SWHTMP -!/T print*, (SWH_ANL - SWHTMP)/SWH_ANL -!/T print*, SWH_ANL - SWHTMP -!/T END IF - IF (ABS(REL_ERROR)<0.001)REL_ERROR=0.0 + REAL, DIMENSION(:,:), INTENT(OUT) :: UPDPRCNT + CHARACTER(*), INTENT(IN) :: FLNMCOR +! Local Variables + INTEGER :: I, J, IERR + INTEGER :: K, L, M, N + REAL :: A + INTEGER, PARAMETER :: IP_FID = 123 + CHARACTER(25), PARAMETER::myname='read_grbtxt' +!/ +!/T WRITE (NDSO,*) trim(myname), ' starts' +!/ + J = LEN_TRIM(FNMPRE) + OPEN (IP_FID,FILE=FNMPRE(:J)//TRIM(FLNMCOR),STATUS='OLD' & + ,ACTION='read',IOSTAT=IERR) +!/ + READ( IP_FID, *) M,N - END SUBROUTINE WORKER + IF (( SIZE(UPDPRCNT,1) /= N) .OR. ( SIZE(UPDPRCNT,2) /= M )) THEN + WRITE (NDSO,*) trim(myname),': These are not the grid ' // & + 'dimensions: M=',M,' N=',N + STOP + END IF + UPDPRCNT=0 +!/ + DO L=1,N + DO K=1,M + A=0. + READ(IP_FID,*)A + UPDPRCNT(N+1-L,K)=A + END DO + END DO + CLOSE(IP_FID) +!/T WRITE (NDSO,*) trim(myname), ' ends' -!!/ +110 format (2(I4) ) + + END SUBROUTINE READ_GRBTXT +!/ +!/ +!/ ------------------------------------------------------------------- / +!/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | Stelios Flampouris | @@ -825,7 +919,8 @@ REAL, DIMENSION(:), INTENT(IN) :: VA1p CHARACTER(25),PARAMETER :: myname='SWH_RSRT_1p' !/ -!/T WRITE (NDSO,*) trim(myname), ' starts' +!/FT WRITE (NDSO,*)' ' +!/FT WRITE (NDSO,*) trim(myname), ' starts' HSIG1p = 0. DEPTH = MAX ( DMIN , -ZB(ISEA1p) ) ETOT = 0. @@ -841,8 +936,12 @@ HSIG1p = 4. * SQRT ( ETOT * DTH ) !/ -!/T WRITE (NDSO,*) trim(myname), ' ends' +!/FT WRITE (NDSO,*) ' ', trim(myname), ' ends' +!/FT WRITE (NDSO,*)' ' + END SUBROUTINE SWH_RSRT_1p +!/ +!/ ------------------------------------------------------------------- / !/ SUBROUTINE WRITEMATRIX(FILENAME, RDA_A) !/ +-----------------------------------+ @@ -860,7 +959,7 @@ !/ No unauthorized use without permission. !/ ! 1. Purpose : -! Writes a 2D array to text file, column by column +! Writes a 2D array to text file, column by column ! 2. Method : ! ! 3. Parameters : @@ -896,7 +995,8 @@ INTEGER IB_I, IB_J, IL_IOS INTEGER, PARAMETER :: IP_FID = 123 ! - OPEN( UNIT = IP_FID, FILE = FILENAME, STATUS = 'REPLACE', FORM = 'FORMATTED', IOSTAT = IL_IOS) + OPEN( UNIT = IP_FID, FILE = FILENAME, STATUS = 'REPLACE', & + FORM = 'FORMATTED', IOSTAT = IL_IOS) IF (IL_IOS /= 0) PRINT*,'In writeMatrix : Error creating file'//FILENAME DO IB_J = 1, SIZE(RDA_A,2) DO IB_I = 1, SIZE(RDA_A,1) @@ -907,5 +1007,7 @@ END DO CLOSE(IP_FID) END SUBROUTINE WRITEMATRIX +!/ +!/ ------------------------------------------------------------------- / !/ END PROGRAM W3UPRSTR diff --git a/model/inp/ww3_uprstr.inp b/model/inp/ww3_uprstr.inp index 94d5dc66d..34addc5fb 100644 --- a/model/inp/ww3_uprstr.inp +++ b/model/inp/ww3_uprstr.inp @@ -1,52 +1,58 @@ $ -------------------------------------------------------------------- $ $ WAVEWATCH III Update Restart input file $ $ -------------------------------------------------------------------- $ -$ +$ $ $ Time of Assimilation ----------------------------------------------- $ -$ - Starting time in yyyymmdd hhmmss format. -$ -$ This is the assimilation starting time and has to be the same with -$ the time at the restart.ww3. -$ - 20170801 060000 $20050828 090000 -$ -$ Choose algorithm to update restart file -$ UPDN for the Nth approach -$ The UPDN*, with N<2 the same correction factor is applied at all the grid points -$ UPD0C:: Option 0C All the spectra are updated with a constant -$ fac=(HsBckg-HsAnl)/HsAnl. -$ Expected input: PRCNTG, as defined at fac -$ UPDOF:: Option 0F All the spectra are updated with a constant -$ fac=HsAnl/HsBckg. -$ Expected input: PRCNTG, as defined at fac -$ UPD1 :: Option 1 The fac(x,y,frq,theta), is weighted according to -$ the % of energy at each spectral bin. -$ Expected input: PRCNTG, as defined at UPD0F -$ UPDN, with N>1 each gridpoint has its own update factor. -$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point -$ according to HsBckg and HsAnl -$ Expected input the Analysis field, grbtxt format -$ UPD3 :: Option 3 The update factor is a surface with the shape of -$ the background spectrum. -$ Expected input the Analysis field, grbtxt format -$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] -$ Option 4 The generalization of the UPD3. The update factor -$ is the sum of surfaces which are applied on the background -$ spectrum -$ Expected input: the Analysis field, grbtxt format and the -$ functions(frq,theta) of the update to be applied. +$ - Starting time in yyyymmdd hhmmss format. $ +$ $ +$ This is the assimilation starting time and has to be the same with $ +$ the time at the restart.ww3. $ +$ $ + 19680607 120000 $ +$ $ +$ Choose algorithm to update restart file $ +$ UPDN for the Nth approach $ +$ The UPDN*, with N<2 the same correction factor is applied at all $ +$ the grid points $ +$ UPD0C:: ELIMINATED $ +$ UPDOF:: Option 0F All the spectra are updated with a constant $ +$ fac=HsAnl/HsBckg. $ +$ Expected input: PRCNTG, as defined at fac $ +$ UPD1 :: ELIMINATED $ +$ UPDN, with N>1 each gridpoint has its own update factor. $ +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each $ +$ grid point according to HsBckg and HsAnl $ +$ Expected input the Analysis field, grbtxt format $ +$ UPD3 :: Option 3 The update factor is a surface with the shape $ +$ of the background spectrum. $ +$ Expected input: the Analysis field, grbtxt format and cap $ +$ for the last gross check. $ +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] $ +$ Option 4 The generalization of the UPD3. The update $ +$ factor is the sum of surfaces which are applied on the $ +$ background spectrum. $ +$ The algorithm requires the mapping of each partition on the $ +$ individual spectra; the map is used to determine the $ +$ weighting surfaces. $ +$ Expected input: the Analysis field, grbtxt format and the $ +$ functions(frq,theta) of the update to be applied. $ UPD3 -$ -$ PRCNTG is input for option 1 and it is the percentage of correction -$applied to all the gridpoints (e.g. 1.) -$ - 1.0 -$ +$ $ +$ PRCNTG is input for option 1 and it is the percentage of correction $ +$ applied to all the gridpoints (e.g. 1.) $ +$ $ + 0.6754 +$ $ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap $ +$ on the maximun correction applied to all the gridpoints (e.g. 0.5) $ +$ $ + 10. +$ $ $ Name of the file with the SWH analysis from the DA system $ $ suffix .grbtxt for text out of grib2 file. $ -$ - anl.grbtxt -$ +$ $ + anl.grbtxt +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ diff --git a/regtests/bin/matrix.base b/regtests/bin/matrix.base index cea00543e..d796558f5 100755 --- a/regtests/bin/matrix.base +++ b/regtests/bin/matrix.base @@ -82,6 +82,7 @@ echo " echo ' Multi 06 (curv. + reg. grds) : $multi06'" >> matrix.head echo " echo ' Multi 07 (unstr. + reg. grds) : $multi07'" >> matrix.head echo " echo ' Multi 08 (with ice) : $multi08'" >> matrix.head + echo " echo ' Assim Update of the restart file : $assim'" >> matrix.head echo " echo ' '" >> matrix.head if [ -n "$filter" ] then @@ -156,6 +157,18 @@ echo "$rtst -s PR1 -w work_PR1_g -m grdset_g $ww3 mww3_test_04" >> matrix.body fi + if [ "$assim" = 'y' ] + then + echo ' ' >> matrix.body + echo "$rtst -s T -w work_UPD0F_O -i input_UPD0F_O $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD0F_U -i input_UPD0F_U $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD2_O -i input_UPD2_O $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD2_U -i input_UPD2_U $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD2_U_cap -i input_UPD2_U_cap $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD3_O -i input_UPD3_O $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD3_U -i input_UPD3_U $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s T -w work_UPD3_U_cap -i input_UPD3_U_cap $ww3 ww3_ta1" >> matrix.body + fi fi if [ "$dist" = 'y' ] diff --git a/regtests/bin/matrix_datarmor b/regtests/bin/matrix_datarmor index 527f47314..1b465caaa 100755 --- a/regtests/bin/matrix_datarmor +++ b/regtests/bin/matrix_datarmor @@ -120,6 +120,7 @@ export mudice='y' # Mud/Ice and wave interaction tests export infgrv='y' # Second harmonic generation tests export uost='y' # ww3_ts4 Unresolved Obstacles Source Term (UOST) + export assim='y' # Restart spectra update export multi01='y' # mww3_test_01 (wetting and drying) export multi02='y' # mww3_test_02 (basic two-way nesting test)) export multi03='y' # mww3_test_03 (three high and three low res grids). diff --git a/regtests/bin/matrix_zeus_HLT b/regtests/bin/matrix_zeus_HLT index cd4e43af1..0949b201f 100755 --- a/regtests/bin/matrix_zeus_HLT +++ b/regtests/bin/matrix_zeus_HLT @@ -98,6 +98,8 @@ export mudice='y' # Mud/Ice and wave interaction tests export infgrv='y' # Second harmonic generation tests export uost='y' # ww3_ts4 Unresolved Obstacles Source Term (UOST) + export assim='y' # Restart spectra update + export multi01='y' # mww3_test_01 (wetting and drying) export multi02='y' # mww3_test_02 (basic two-way nesting test)) export multi03='y' # mww3_test_03 (three high and three low res grids). @@ -106,6 +108,7 @@ export multi06='y' # mww3_test_06 (curvilinear grid tests) export multi07='y' # mww3_test_07 (unstructured grid tests) export multi08='y' # mww3_test_08 (wind and ice tests) + # export filter='PR3 ST2 UQ' # The filter does a set of consecutinve greps on the # command lines generated by filter.base with the above diff --git a/regtests/bin/run_test b/regtests/bin/run_test index d0468d650..f629de06e 100755 --- a/regtests/bin/run_test +++ b/regtests/bin/run_test @@ -43,6 +43,8 @@ myname="`basename $0`" #name of script optstr="a:c:C:defg:Ghi:m:n:No:Op:q:r:s:t:Sw:" #option string for getopt function usage () { + +exit cat 2>&1 << EOF Usage: $myname [options] source_dir test_name @@ -1892,6 +1894,88 @@ then exit fi +# 3.k Update Restart File ------------------------------------------ # + +prog=ww3_uprstr +if [ $exec_p = $prog -o $exec_p = "none" ] +then + +# Check for input file + +# select inp/nml files +#if [ $nml_input ] && [ ! -z "`ls ${path_i}/${prog}.nml 2>/dev/null`" ] +#then +# ifile="`ls ${path_i}/${prog}.nml 2>/dev/null`" +#else + ifile="`ls $path_i/$prog.inp 2>/dev/null`" +#fi + +if [ $? = 0 ] +then + + echo ' ' + echo '+-------------------------+' + echo '| Update Restart File |' + echo '+-------------------------+' + echo ' ' + + \cp -f $file_c $path_b/switch + + if $path_b/w3_make $prog + then : + else + errmsg "Error occured during WW3 $prog build" + exit 1 + fi + + # link conf file + if [ $nml_input ] && [ ! -z "`echo ${ifile} | grep -o nml`" ] + then + \rm -f $prog.nml + \ln -s $ifile $prog.nml + ofile="$path_w/`basename $ifile .nml`.out" + else + \rm -f $prog.inp + \ln -s $ifile $prog.inp + ofile="$path_w/`basename $ifile .inp`.out" + fi + + echo " Processing $ifile" + echo " Screen output copied to $ofile" + +# Additional Files + \rm -f anl.grbtxt + \ln -s "$path_i/anl.grbtxt" anl.grbtxt + + mv -f restart001.ww3 restart.ww3 + + if [ $pmpi ] + then + if [ $nproc ] + then + runcmd="$runcmd -np $nproc" + fi + fi + if $runcmd $path_e/$prog | tee $ofile + then + \rm -f $prog.inp + \rm -f $prog.nml + else + errmsg "Error occured during $path_e/$prog execution" + exit 1 + fi + +fi + +fi + +if [ $exit_p = $prog ] +then + exit +fi + + + # 3.k End ------------------------------------------------------------------- # if [ "$stub" ] diff --git a/regtests/ww3_ta1/info b/regtests/ww3_ta1/info new file mode 100644 index 000000000..fe5a5b283 --- /dev/null +++ b/regtests/ww3_ta1/info @@ -0,0 +1,38 @@ +############################################################################# +# # +# ww3_ta1 Test script for WW-III ww3_uprstrt, update the restart file of # +# homogeneous conditions (1-point model) # +# # +# Model should be compiled with the switches : # +# # +# !/FLn !/LNn !/STn !/NLn !/BTn !/DBn !/TRn !/BSn !/XXn # +# Select source term, growth needed, other opt. # +# !/PR0 No propagation. # +# !/WNX1 !/WNT1 !/CRX1 !/CRT1 Wind and current interpolation. # +# !/O1 !/O2 !/O3 !/O4 !/O5 !/O6 !/O7 Sdt out output options. # +# # +# # +# - No other optional switches should be used. # +# - Test case input options: # +# * ww3_uprstr_UPD # +# * anl.grbtxt # +# # +# * switch options : # +# + switch_T # +# + switch # +# # +# Example run_test commands: # +# (some details will vary by local system and configuration) # +# ./bin/run_test -i input_UPD3_U_cap -s T ../model/ ww3_ta1 # +# # +# # +# # +# Stylianos Flampouris, Oct 2018 # +# Last Mod : # +# # +# Copyright 2009-2018 National Weather Service (NWS), # +# National Oceanic and Atmospheric Administration. All rights # +# reserved. WAVEWATCH III is a trademark of the NWS. # +# No unauthorized use without permission. # +# # +############################################################################# diff --git a/regtests/ww3_ta1/input_UPD0F_O/anl.grbtxt b/regtests/ww3_ta1/input_UPD0F_O/anl.grbtxt new file mode 100644 index 000000000..62fc50b39 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +4.23333 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD0F_O/gx_outp.inp b/regtests/ww3_ta1/input_UPD0F_O/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD0F_O/points.list b/regtests/ww3_ta1/input_UPD0F_O/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD0F_O/switch b/regtests/ww3_ta1/input_UPD0F_O/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD0F_O/switch_ST4 b/regtests/ww3_ta1/input_UPD0F_O/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD0F_O/switch_T b/regtests/ww3_ta1/input_UPD0F_O/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_grid.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_shel.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_shel.nml b/regtests/ww3_ta1/input_UPD0F_O/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_strt.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp new file mode 100644 index 000000000..a348eb153 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD0F +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 0.6 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD0F_U/gx_outp.inp b/regtests/ww3_ta1/input_UPD0F_U/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD0F_U/points.list b/regtests/ww3_ta1/input_UPD0F_U/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD0F_U/switch b/regtests/ww3_ta1/input_UPD0F_U/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD0F_U/switch_ST4 b/regtests/ww3_ta1/input_UPD0F_U/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD0F_U/switch_T b/regtests/ww3_ta1/input_UPD0F_U/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_grid.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_shel.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_shel.nml b/regtests/ww3_ta1/input_UPD0F_U/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_strt.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp new file mode 100644 index 000000000..c16e94d74 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD0F +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 4.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 0.6 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD2_O/anl.grbtxt b/regtests/ww3_ta1/input_UPD2_O/anl.grbtxt new file mode 100644 index 000000000..173e2d19f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +1.123456789 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD2_O/gx_outp.inp b/regtests/ww3_ta1/input_UPD2_O/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD2_O/points.list b/regtests/ww3_ta1/input_UPD2_O/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD2_O/switch b/regtests/ww3_ta1/input_UPD2_O/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_O/switch_ST4 b/regtests/ww3_ta1/input_UPD2_O/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_O/switch_T b/regtests/ww3_ta1/input_UPD2_O/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_grid.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD2_O/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_shel.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_shel.nml b/regtests/ww3_ta1/input_UPD2_O/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_strt.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp new file mode 100644 index 000000000..904aa5052 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD2 +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 3 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD2_U/anl.grbtxt b/regtests/ww3_ta1/input_UPD2_U/anl.grbtxt new file mode 100644 index 000000000..60d41deda --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +5.123456789 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD2_U/gx_outp.inp b/regtests/ww3_ta1/input_UPD2_U/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD2_U/points.list b/regtests/ww3_ta1/input_UPD2_U/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD2_U/switch b/regtests/ww3_ta1/input_UPD2_U/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_U/switch_ST4 b/regtests/ww3_ta1/input_UPD2_U/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_U/switch_T b/regtests/ww3_ta1/input_UPD2_U/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_grid.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD2_U/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_shel.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_shel.nml b/regtests/ww3_ta1/input_UPD2_U/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_strt.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp new file mode 100644 index 000000000..5150e74bf --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD2 +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 10 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/anl.grbtxt b/regtests/ww3_ta1/input_UPD2_U_cap/anl.grbtxt new file mode 100644 index 000000000..60d41deda --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +5.123456789 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/gx_outp.inp b/regtests/ww3_ta1/input_UPD2_U_cap/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/points.list b/regtests/ww3_ta1/input_UPD2_U_cap/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/switch b/regtests/ww3_ta1/input_UPD2_U_cap/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/switch_ST4 b/regtests/ww3_ta1/input_UPD2_U_cap/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/switch_T b/regtests/ww3_ta1/input_UPD2_U_cap/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_grid.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.nml b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_strt.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp new file mode 100644 index 000000000..6975b3943 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD2 +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 0.333 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD3_O/anl.grbtxt b/regtests/ww3_ta1/input_UPD3_O/anl.grbtxt new file mode 100644 index 000000000..173e2d19f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +1.123456789 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD3_O/gx_outp.inp b/regtests/ww3_ta1/input_UPD3_O/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD3_O/points.list b/regtests/ww3_ta1/input_UPD3_O/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD3_O/switch b/regtests/ww3_ta1/input_UPD3_O/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_O/switch_ST4 b/regtests/ww3_ta1/input_UPD3_O/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_O/switch_T b/regtests/ww3_ta1/input_UPD3_O/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_grid.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD3_O/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_shel.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_shel.nml b/regtests/ww3_ta1/input_UPD3_O/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_strt.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp new file mode 100644 index 000000000..03930f941 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD3 +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 3 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD3_U/anl.grbtxt b/regtests/ww3_ta1/input_UPD3_U/anl.grbtxt new file mode 100644 index 000000000..60d41deda --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +5.123456789 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD3_U/gx_outp.inp b/regtests/ww3_ta1/input_UPD3_U/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD3_U/points.list b/regtests/ww3_ta1/input_UPD3_U/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD3_U/switch b/regtests/ww3_ta1/input_UPD3_U/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_U/switch_ST4 b/regtests/ww3_ta1/input_UPD3_U/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_U/switch_T b/regtests/ww3_ta1/input_UPD3_U/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_grid.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD3_U/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_shel.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_shel.nml b/regtests/ww3_ta1/input_UPD3_U/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_strt.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp new file mode 100644 index 000000000..9b403ab97 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD3 +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 10 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/anl.grbtxt b/regtests/ww3_ta1/input_UPD3_U_cap/anl.grbtxt new file mode 100644 index 000000000..60d41deda --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/anl.grbtxt @@ -0,0 +1,11 @@ +3 3 +0.000318825 +0.000318825 +0.000318825 +0.000318825 +5.123456789 +0.000318825 +0.000318825 +0.000318825 +0.000318825 + diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/gx_outp.inp b/regtests/ww3_ta1/input_UPD3_U_cap/gx_outp.inp new file mode 100644 index 000000000..324609e35 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/gx_outp.inp @@ -0,0 +1,8 @@ +$ WAVEWATCH III Point output post-processing (GrADS) +$ -------------------------------------------------- + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + T T T T T T diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/points.list b/regtests/ww3_ta1/input_UPD3_U_cap/points.list new file mode 100644 index 000000000..5ad8fde50 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/points.list @@ -0,0 +1 @@ +0.0 0.0 'The_point' diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/switch b/regtests/ww3_ta1/input_UPD3_U_cap/switch new file mode 100644 index 000000000..f6fec72bb --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/switch @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/switch_ST4 b/regtests/ww3_ta1/input_UPD3_U_cap/switch_ST4 new file mode 100644 index 000000000..d37fb545f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/switch_ST4 @@ -0,0 +1 @@ +F90 NOGRB SHRD PR0 FLX0 LN1 ST4 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/switch_T b/regtests/ww3_ta1/input_UPD3_U_cap/switch_T new file mode 100644 index 000000000..c1bd685e7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/switch_T @@ -0,0 +1 @@ +F90 T NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_grid.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_grid.inp new file mode 100644 index 000000000..b751549d1 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_grid.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III Grid preprocessor input file +$ ------------------------------------------ + 'HOMOGENEOUS SOURCE TERM TEST ' +$ + 1.10 0.0485 36 24 0. +$ 1.07 0.042 40 36 0. +$ + F F F F F T +$ 900. 900. 900. 5. + 900. 900. 900. 15. +$ 900. 900. 900. 60. +$ +$ &MISC XP = 0.025 / +$ &FLX3 CDMAX = 2.5E-3, CTYPE = 1 / +$ &SLN1 RFPM = 1.0 RFHF = 0.33 / + &MISC XP = 0.075 / +END OF NAMELISTS +$ + 'RECT' T 'NONE' + 3 3 + 1. 1. 1.E-2 + -1. -1. 1.E-2 +$ + -5. 5.75 10 -2500. 3 1 '(....)' 'UNIT' 'input' +$ + 1 1 1 + 1 1 1 + 1 1 1 +$ + 10 1 1 '(....)' 'PART' 'input' +$ + 0 0 F + 0 0 F + 0 0 +$ + 0. 0. 0. 0. 0 diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.inp new file mode 100644 index 000000000..6af079872 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.inp @@ -0,0 +1,41 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ Time, time increment and number of outputs +$ + 19680101 120000 10 8000 +$ +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ +$--------------------------------------------------------------------- $ +$ NetCDF version [3,4] and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ Output type 0 1 2 [0,1,2,3,4,5] (swell partition) +$ variables T [T] or not [F] in the same file +$ + 3 4 + 0 1 2 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date +$ IX, IY range +$ + ww3. + 6 + 2 2 2 2 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time idicator with S3 +$ characters, +$ and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.nml b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.nml new file mode 100644 index 000000000..312e5a39d --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounf.nml @@ -0,0 +1,84 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounf.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via FIELD_NML namelist +! +! * the full list of field names FIELD%LIST is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * namelist must be terminated with / +! * definitions & defaults: +! FIELD%TIMESTART = '19000101 000000' ! Stop date for the output field +! FIELD%TIMESTRIDE = '0' ! Time stride for the output field +! FIELD%TIMESTOP = '29001231 000000' ! Stop date for the output field +! FIELD%TIMECOUNT = '1000000000' ! Number of time steps +! FIELD%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! FIELD%LIST = 'unset' ! List of output fields +! FIELD%PARTITION = '0 1 2 3' ! List of wave partitions ['0 1 2 3 4 5'] +! FIELD%SAMEFILE = T ! All the variables in the same file [T|F] +! FIELD%TYPE = 3 ! [2 = SHORT, 3 = it depends , 4 = REAL] +! -------------------------------------------------------------------- ! +&FIELD_NML + FIELD%TIMESTART = '19680101 120000' + FIELD%TIMESTRIDE = '10' + FIELD%TIMECOUNT = '8000' + FIELD%LIST = 'DPT WND ICE HS MSS MSD FAW WCC WCF WCH WCM FOC TAW CHA FWS' + FIELD%PARTITION = '0 1 2' + FIELD%TYPE = 4 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! FILE%IX0 = 1 ! First X-axis or node index +! FILE%IXN = 1000000000 ! Last X-axis or node index +! FILE%IY0 = 1 ! First Y-axis index +! FILE%IYN = 1000000000 ! Last Y-axis index +! -------------------------------------------------------------------- ! +&FILE_NML + FILE%IX0 = 2 + FILE%IXN = 2 + FILE%IY0 = 2 + FILE%IYN = 2 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via SMC_NML namelist +! +! * For SMC grids, IX0, IXN, IY0 and IYN from FILE_NML are not used. +! Two types of output are available: +! * TYPE=1: Flat 1D "seapoint" array of grid cells. +! * TYPE=2: Re-gridded regular grid with cell sizes being an integer +! * multiple of the smallest SMC grid cells size. +! +! * Note that the first/last longitudes and latitudes will be adjusted +! to snap to the underlying SMC grid edges. CELFAC is only used for +! type 2 output and defines the output cell sizes as an integer +! multiple of the smallest SMC Grid cell size. CELFAC should be a +! power of 2, e.g: 1,2,4,8,16, etc... +! +! * namelist must be terminated with / +! * definitions & defaults: +! SMC%TYPE = 1 ! SMC Grid type (1 or 2) +! SMC%SXO = -999.9 ! First longitude +! SMC%EXO = -999.9 ! Last longitude +! SMC%SYO = -999.9 ! First latitude +! SMC%EYO = -999.9 ! Last latitude +! SMC%CELFAC = 1 ! Cell size factor (SMCTYPE=2 only) +! SMC%NOVAL = UNDEF ! Fill value for wet cells with no data +! -------------------------------------------------------------------- ! +&SMC_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.inp new file mode 100644 index 000000000..5f2ba7528 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.inp @@ -0,0 +1,117 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III NETCDF Point output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 19680101 000000 3600. 1000 +$ +$ Points requested --------------------------------------------------- $ +$ +$ Define points index for which output is to be generated. +$ If no one defined, all points are selected +$ One index number per line, negative number identifies end of list. +$ 1 +$ 2 +$ mandatory end of list + -1 +$ +$--------------------------------------------------------------------- $ +$ file prefix +$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ netCDF version [3,4] +$ points in same file [T] or not [F] +$ and max number of points to be processed in one pass +$ output type ITYPE [0,1,2,3] +$ flag for global attributes WW3 [0] or variable version [1-2-3-4] +$ flag for dimensions order time,station [T] or station,time [F] +$ + ww3. + 4 + 3 + T 100 + 1 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 0, inventory of file. +$ No additional input, the above time range is ignored. +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 1, netCDF Spectra. +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D spectra +$ 3 : Transfer file. +$ 4 : Spectral partitioning. +$ - Scaling factors for 1-D and 2-D spectra Negative factor +$ disables, output, factor = 0. gives normalized spectrum. +$ + 3 1 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, number of frequencies, directions and points. +$ grid name in quotes (for unformatted file C*21,3I,C*30). +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), lat, lon, d, U10 and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) | points | times +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 2, netCDF Tables of (mean) parameter +$ - Sub-type OTYPE : 1 : Depth, current, wind +$ 2 : Mean wave pars. +$ 3 : Nondimensional pars. (U*) +$ 4 : Nondimensional pars. (U10) +$ 5 : 'Validation table' +$ 6 : WMO standard output +$ 4 +$ +$ -------------------------------------------------------------------- $ +$ ITYPE = 3, netCDF Source terms +$ - Sub-type OTYPE : 1 : Print plots. +$ 2 : Table of 1-D S(f). +$ 3 : Table of 1-D inverse time scales +$ (1/T = S/F). +$ 4 : Transfer file +$ - Scaling factors for 1-D and 2-D source terms. Negative +$ factor disables print plots, factor = 0. gives normalized +$ print plots. +$ - Flags for spectrum, input, interactions, dissipation, +$ bottom and total source term. +$ - scale ISCALE for OTYPE=2,3 +$ 0 : Dimensional. +$ 1 : Nondimensional in terms of U10 +$ 2 : Nondimensional in terms of U* +$ 3-5: like 0-2 with f normalized with fp. +$ +$ 4 0 0 T T T T T T 0 +$ +$ The transfer file contains records with the following contents. +$ +$ - File ID in quotes, nubmer of frequencies, directions and points, +$ flags for spectrum and source terms (C*21, 3I, 6L) +$ - Bin frequencies in Hz for all bins. +$ - Bin directions in radians for all bins (Oceanographic conv.). +$ -+ +$ - Time in yyyymmdd hhmmss format | loop +$ -+ | +$ - Point name (C*10), depth, wind speed and | loop | over +$ direction, current speed and direction | over | +$ - E(f,theta) if requested | points | times +$ - Sin(f,theta) if requested | | +$ - Snl(f,theta) if requested | | +$ - Sds(f,theta) if requested | | +$ - Sbt(f,theta) if requested | | +$ - Stot(f,theta) if requested | | +$ -+ -+ +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.nml b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.nml new file mode 100644 index 000000000..5967961ec --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_ounp_spec.nml @@ -0,0 +1,134 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_ounp.nml - Point output post-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the output fields to postprocess via POINT_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field +! POINT%TIMESTRIDE = '0' ! Time stride for the output field +! POINT%TIMECOUNT = '1000000000' ! Number of time steps +! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] +! POINT%SAMEFILE = T ! All the points in the same file +! POINT%BUFFER = 150 ! Number of points to process per pass +! POINT%TYPE = 1 ! [0=inventory | 1=spectra | 2=mean param | 3=source terms] +! POINT%DIMORDER = T ! [time,station=T | station,time=F] +! -------------------------------------------------------------------- ! +&POINT_NML + POINT%TIMESTART = '19680101 000000' + POINT%TIMESTRIDE = '3600.' + POINT%TIMECOUNT = '1000' + POINT%TIMESPLIT = 4 + POINT%BUFFER = 100 +/ + +! -------------------------------------------------------------------- ! +! Define the content of the output file via FILE_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! FILE%PREFIX = 'ww3.' ! Prefix for output file name +! FILE%NETCDF = 3 ! Netcdf version [3|4] +! -------------------------------------------------------------------- ! +&FILE_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 0, inventory of file +! +! * namelist must be terminated with / +! * definitions & defaults: +! No additional input, the above time range is ignored. +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the type 1, spectra via SPECTRA_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(time,station,frequency,direction) : 2D spectral density +! - dpt, wnd, wnddir, cur, curdir : mean parameters +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRA%OUTPUT = 3 ! 1: Print plots +! ! 2: Table of 1-D spectra +! ! 3: Transfer file +! ! 4: Spectral partitioning +! SPECTRA%SCALE_FAC = 1 ! Scale factor (-1=disabled) +! SPECTRA%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! -------------------------------------------------------------------- ! +&SPECTRA_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 2, mean parameter via PARAM_NML namelist +! +! +! * namelist must be terminated with / +! * definitions & defaults: +! PARAM%OUTPUT = 4 ! 1: Depth, current, wind +! ! 2: Mean wave parameters +! ! 3: Nondimensional pars. (U*) +! ! 4: Nondimensional pars. (U10) +! ! 5: Validation table +! ! 6: WMO standard output +! -------------------------------------------------------------------- ! +&PARAM_NML +/ + +! -------------------------------------------------------------------- ! +! Define the type 3, source terms via SOURCE_NML namelist +! +! Transfert file content : +! - time, station id, station name, longitude, latitude +! - frequency : unit Hz, center band frequency - linear log scale (XFR factor) +! - frequency1 : unit Hz, lower band frequency +! - frequency2 : unit Hz, upper band frequency +! - direction : unit degree, convention to, origin East, trigonometric order +! - efth(frequency,direction) : 2D spectral density +! - Sin(frequency,direction) : input source term +! - Snl(frequency,direction) : non linear interactions source term +! - Sds(frequency,direction) : dissipation source term +! - Sbt(frequency,direction) : bottom source term +! - Sice(frequency,direction) : ice source term +! - Stot(frequency,direction) : total source term +! +! * namelist must be terminated with / +! * definitions & defaults: +! SOURCE%OUTPUT = 4 ! 1: Print plots +! ! 2: Table of 1-D S(f) +! ! 3: Table of 1-D inverse time scales (1/T = S/F) +! ! 4: Transfer file +! SOURCE%SCALE_FAC = 0 ! Scale factor (-1=disabled) +! SOURCE%OUTPUT_FAC = 0 ! Output factor (0=normalized) +! SOURCE%TABLE_FAC = 0 ! Table factor +! 0 : Dimensional. +! 1 : Nondimensional in terms of U10 +! 2 : Nondimensional in terms of U* +! 3-5: like 0-2 with f normalized with fp. +! SOURCE%SPECTRUM = T ! [T|F] +! SOURCE%INPUT = T ! [T|F] +! SOURCE%INTERACTIONS = T ! [T|F] +! SOURCE%DISSIPATION = T ! [T|F] +! SOURCE%BOTTOM = T ! [T|F] +! SOURCE%ICE = T ! [T|F] +! SOURCE%TOTAL = T ! [T|F] +! -------------------------------------------------------------------- ! +&SOURCE_NML +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_spec.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_spec.inp new file mode 100644 index 000000000..44f41c060 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_spec.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 10800. 999 +$ + 1 + -1 +$ + 1 +$ + 1 0. 0. 33 T diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_tab50.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_tab50.inp new file mode 100644 index 000000000..fa823a9ea --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_outp_tab50.inp @@ -0,0 +1,11 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ +$ 19680606 000000 3600. 999 + 19680606 000000 60. 99999 +$ + 1 + -1 +$ + 2 +$ + 2 49 diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.inp new file mode 100644 index 000000000..cb19025f8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.inp @@ -0,0 +1,36 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + F T + F T + T T + F + F + F + F +$ + 19680606 000000 + 19680607 120000 +$ + 1 +$ + 19680606 000000 3600 19680618 000000 +$ +N +$ +DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS +$ + 19680606 000000 60 19680618 000000 + 0.0 0.0 'The_point' + 0.0 0.0 'STOPSTRING' + 19681207 000000 0 19681208 000000 + 19680607 120000 172600 19680608 000000 + 19681206 000000 0 19681208 000000 + 19681206 000000 0 19681208 000000 +$ + 'WND' 19680606 000000 12. 270. 0. + 'WND' 19680606 060000 12. 180. 0. + 'WND' 19680606 120000 12. 135. 0. + 'WND' 19680606 180000 12. 90. 0. + 'WND' 19680607 000000 12. 45. 0. + 'CUR' 19680606 000000 2. 90. 0. + 'STP' diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.nml b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.nml new file mode 100644 index 000000000..3426ce896 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_shel.nml @@ -0,0 +1,232 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%STOP = '19680607 120000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'H' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! DPT CUR WND AST WLV ICE IBG D50 IC1 IC5 HS LM T02 T0M1 T01 FP DIR SPR +! DP HIG EF TH1M STH1M TH2M STH2M WN PHS PTP PLP PDIR PSPR PWS TWS PNR +! UST CHA CGE FAW TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S +! USF P2L TWI FIC ABR UBR BED FBB TBB MSS MSC DTD FC CFX CFD CFK U1 U2 +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'DPT WND MSS MSD ICE HS MSS FAW WCC WCF WCH WCM FOC TAW CHA FWS' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '19680606 000000' '3600' '19680618 000000' + DATE%POINT = '19680606 000000' '60' '19680618 000000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML + HOMOG_COUNT%N_CUR = 1 + HOMOG_COUNT%N_WND = 5 +/ + +&HOMOG_INPUT_NML + HOMOG_INPUT(1)%NAME = 'CUR' + HOMOG_INPUT(1)%VALUE1 = 2. + HOMOG_INPUT(1)%VALUE2 = 90. + + HOMOG_INPUT(2)%NAME = 'WND' + HOMOG_INPUT(2)%VALUE1 = 12. + HOMOG_INPUT(2)%VALUE2 = 270. + HOMOG_INPUT(2)%VALUE3 = 0. + + HOMOG_INPUT(3)%NAME = 'WND' + HOMOG_INPUT(3)%DATE = '19680606 060000' + HOMOG_INPUT(3)%VALUE1 = 12. + HOMOG_INPUT(3)%VALUE2 = 180. + HOMOG_INPUT(3)%VALUE3 = 0. + + HOMOG_INPUT(4)%NAME = 'WND' + HOMOG_INPUT(4)%DATE = '19680606 120000' + HOMOG_INPUT(4)%VALUE1 = 12. + HOMOG_INPUT(4)%VALUE2 = 135. + HOMOG_INPUT(4)%VALUE3 = 0. + + HOMOG_INPUT(5)%NAME = 'WND' + HOMOG_INPUT(5)%DATE = '19680606 180000' + HOMOG_INPUT(5)%VALUE1 = 12. + HOMOG_INPUT(5)%VALUE2 = 90. + HOMOG_INPUT(5)%VALUE3 = 0. + + HOMOG_INPUT(6)%NAME = 'WND' + HOMOG_INPUT(6)%DATE = '19680607 000000' + HOMOG_INPUT(6)%VALUE1 = 12. + HOMOG_INPUT(6)%VALUE2 = 45. + HOMOG_INPUT(6)%VALUE3 = 0. +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_strt.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_strt.inp new file mode 100644 index 000000000..d18f7cebd --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_strt.inp @@ -0,0 +1,7 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- +$ 2 +$ 0.0 0.30 270. 3.3 0. 0. 0. 1. 0. 1. +$ 3 + 5 +$ diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp new file mode 100644 index 000000000..6b75a442e --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp @@ -0,0 +1,57 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Update Restart input file $ +$ -------------------------------------------------------------------- $ +$ +$ Time of Assimilation ----------------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ +$ This is the assimilation starting time and has to be the same with +$ the time at the restart.ww3. +$ + 19680607 120000 +$ +$ Choose algorithm to update restart file +$ UPDN for the Nth approach +$ The UPDN*, with N<2 the same correction factor is applied at all the grid points +$ UPD0C:: ELIMINATED +$ UPDOF:: Option 0F All the spectra are updated with a constant +$ fac=HsAnl/HsBckg. +$ Expected input: PRCNTG, as defined at fac +$ UPD1 :: ELIMINATED +$ UPDN, with N>1 each gridpoint has its own update factor. +$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +$ according to HsBckg and HsAnl +$ Expected input the Analysis field, grbtxt format +$ UPD3 :: Option 3 The update factor is a surface with the shape of +$ the background spectrum. +$ Expected input the Analysis field, grbtxt format +$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +$ Option 4 The generalization of the UPD3. The update factor +$ is the sum of surfaces which are applied on the background +$ spectrum. +$ The algorithm requires the mapping of each partition on the +$ individual spectra; the map is used to determine the weighting +$ surfaces. +$ Expected input: the Analysis field, grbtxt format and the +$ functions(frq,theta) of the update to be applied. + UPD3 +$ +$ PRCNTG is input for option 1 and it is the percentage of correction +$applied to all the gridpoints (e.g. 1.) +$ + 0.6754 +$ +$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +$ maximun correction applied to all the gridpoints (e.g. 0.5) +$ + 0.333 +$ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ + anl.grbtxt +$ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III EoF ww3_uprstr.inp +$ -------------------------------------------------------------------- $ + diff --git a/regtests/ww3_ts1/input/switch b/regtests/ww3_ts1/input/switch index 26e988050..c961b532e 100644 --- a/regtests/ww3_ts1/input/switch +++ b/regtests/ww3_ts1/input/switch @@ -1 +1 @@ -F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 +F90 NOGRB SHRD PR0 FLX2 LN1 ST2 NL1 BT1 DB1 TR0 BS0 IC0 IS0 REF0 XX0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11 S