From 035d4a6ed9158197fa0554d3139e957fecfd7782 Mon Sep 17 00:00:00 2001 From: Nancy Collins Date: Thu, 29 Jun 2023 12:08:41 -0600 Subject: [PATCH 1/4] fix misplaced comment about writing an obs_seq file --- assimilation_code/modules/assimilation/filter_mod.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assimilation_code/modules/assimilation/filter_mod.f90 b/assimilation_code/modules/assimilation/filter_mod.f90 index 2999c0314..0565dda90 100644 --- a/assimilation_code/modules/assimilation/filter_mod.f90 +++ b/assimilation_code/modules/assimilation/filter_mod.f90 @@ -1711,7 +1711,7 @@ subroutine obs_space_sync_QCs(obs_fwd_op_ens_handle, & io_task = map_pe_to_task(obs_fwd_op_ens_handle, 0) my_task = my_task_id() -! write the obs_seq.final file +! create temp space for QC values if (my_task == io_task) then allocate(obs_temp(num_obs_in_set)) else From b2363b7f82a235209fd89534533c3ce2d8de654c Mon Sep 17 00:00:00 2001 From: Helen Kershaw Date: Thu, 22 Jun 2023 12:32:39 -0600 Subject: [PATCH 2/4] converts mom6 time (days from year 0) to dart time (from 1601) see #494 for discusion. I'm still not sure whether write_time should match the obs or the model --- models/MOM6/model_mod.f90 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/models/MOM6/model_mod.f90 b/models/MOM6/model_mod.f90 index 2f6f02a8c..ea8d1a257 100644 --- a/models/MOM6/model_mod.f90 +++ b/models/MOM6/model_mod.f90 @@ -945,14 +945,21 @@ function read_model_time(filename) integer :: ncid character(len=*), parameter :: routine = 'read_model_time' real(r8) :: days +type(time_type) :: mom6_time +integer :: dart_base_date_in_days, dart_days +dart_base_date_in_days = 584388 ! 1601 1 1 0 0 ncid = nc_open_file_readonly(filename, routine) call nc_get_variable(ncid, 'Time', days, routine) call nc_close_file(ncid, routine) -read_model_time = set_time(0,int(days)) +! MOM6 counts days from year 1 +! DART counts days from 1601 +dart_days = int(days) - dart_base_date_in_days + +read_model_time = set_time(0,dart_days) end function read_model_time From 9a85fc801e56d994078ead6fe669462fdcb74ffd Mon Sep 17 00:00:00 2001 From: Helen Kershaw Date: Tue, 18 Jul 2023 10:36:39 -0400 Subject: [PATCH 3/4] docs for mom6 time --- models/MOM6/readme.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/models/MOM6/readme.rst b/models/MOM6/readme.rst index 21895546c..612e8bd43 100644 --- a/models/MOM6/readme.rst +++ b/models/MOM6/readme.rst @@ -9,6 +9,48 @@ Instructions for using MOM6 in CESM are available on the `MOM_interface GitHub W This DART-MOM6 interface was developed for `MOM6 `_ within the CESM framework. +MOM6 time +--------- + +The default in CESM is to run with no leap years. +To assimilate real observations, we need to switch to the Gregorian +calendar to account for leap years. + +.. code-block:: text + + ./xmlchange CALENDAR=GREGORIAN + +To illustrate what happens if you do not set CALENDAR=GREGORIAN, here is +an example where the RUN_STARTDATE is set to 2015-02-01 and MOM6 is run for 10 days. + +.. code-block:: text + + ./xmlchange RUN_STARTDATE=2015-02-01 + +The MOM6 restart file has the following meta data, where Time is days from year 1. + +.. code-block:: text + + double Time(Time) ; + Time:long_name = "Time" ; + Time:units = "days" ; + Time:axis = "T" ; + ... + // global attributes: + :filename = "./c.T62_g16.ens3.mom6.r.2015-02-11-00000._0001.nc" ; + data: + + Time = 735151 ; + } + + +The absence of leap years gives you inconsistent time information when comparing +to observation times in YYYY-MM-DD: + +- Restart filename has the time 2015-02-11-00000. +- The Time variable is Time = 735151 days, which is 2013/10/11 + + MOM6 checksum of restart files ------------------------------ From f55f44d08cde8fa913c03f3291adc332e2ff4318 Mon Sep 17 00:00:00 2001 From: Helen Kershaw Date: Thu, 27 Jul 2023 16:40:36 -0400 Subject: [PATCH 4/4] bump conf.py and changelog for release --- CHANGELOG.rst | 15 +++++++++++++++ conf.py | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b3fb8e694..c3bf43d70 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -22,6 +22,21 @@ individual files. The changes are now listed with the most recent at the top. +**July 27 2023 :: Bug-fixes for MOM6 and WRF. Tag v10.8.1** + +- bug-fixes: + + - MOM6 read_model_time converts to dart time to match observation sequences. + - MOM6 salinity units converted to MSU during model_interpolate. + - WRF get_dist calculation fixed for observations with VERTISUNDEF. + +- doc-fixes: + + - WOD and GTSPP converter documentation notes about salinity units. + - MOM6 documentation for setting the Gregorian calendar in CESM. + - comment fix in filter_mod.f90 + + **June 27 2023 :: CAM-DART observation preprocessor. Tag v10.8.0** - Tool to remove observations above a given CAM level from an obs sequence file diff --git a/conf.py b/conf.py index 420f3d402..a655dcf87 100644 --- a/conf.py +++ b/conf.py @@ -21,7 +21,7 @@ author = 'Data Assimilation Research Section' # The full version, including alpha/beta/rc tags -release = '10.8.0' +release = '10.8.1' master_doc = 'README' # -- General configuration ---------------------------------------------------