Skip to content

Add ability to use noleap calendar with gregorian forcing files - #33

Merged
dougiesquire merged 8 commits into
masterfrom
32-calendar-override
Aug 13, 2026
Merged

dougiesquire merged 8 commits into
masterfrom
32-calendar-override

Conversation

@dougiesquire

@dougiesquire dougiesquire commented Aug 7, 2026 •

Copy link
Copy Markdown
Collaborator

This PR adds an optional calendar_override entry to date_manager_nml in accessom2.nml. When set, it takes precedence over the file-derived calendar for both the forcing and experiment clocks. Only calendar_override='noleap' with gregorian forcing files is supported - the existing noleap date-skipping logic already handles this by dropping Feb 29 records. The reverse (calendar_override='gregorian' with noleap forcing files) aborts for now.

Contributes to #32

@dougiesquire dougiesquire self-assigned this Aug 7, 2026
…files

Only adds support to override gregorian with noleap for now. The opposite aborts
- build_log_items was broken when
  - forcing_field_update-file/-index were renamed from field_update_data-file/-index in 0147d18
  - forcing_update_field-datetime was dropped entirely in 8c3c7d9
- also fixes a small error left over from e51e6a8.
Now checks both drop and replay leap year handling
- Updates to use JRA data on vk83/qv56 rather than ua8
- Removes JRA55_v1p4_IAF test config and updates JRA55_IAF and JRA55_IAF_SINGLE_FIELD to v1.4
- Updates instructions in README to use spack
@dougiesquire

dougiesquire commented Aug 11, 2026 •

Copy link
Copy Markdown
Collaborator Author

I've fixed up the tests, which have been broken in a number of different ways for a long time. This included:

  • replacing a test utility function that was broken by libaccessom2 updates years ago (build_log_items)
  • refactoring the test_iaf_cycles test for better speed and test coverage
  • updating test configurations to use JRA data on vk83/qv56. Dropped the JRA55_v1p4_IAF and updated the other IAF configs to JRA55-do v1.6

I struggled getting a test environment with working versions of libaccessom2 and the necessary Python packages (netcdf is problematic). In the end, this was easiest with Spack and I've updated the README accordingly.

I've also added tests for the new calendar_override functionality. All tests now pass:

$ python -m pytest tests -v
================================================= test session starts ==================================================
platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.5.0 -- /g/data/tm70/ds0092/model/dev/access-om2-calendar-override/libaccessom2/.spack-env/view/bin/python
cachedir: .pytest_cache
rootdir: /g/data/tm70/ds0092/model/dev/access-om2-calendar-override/libaccessom2/tests
configfile: pytest.ini
collected 20 items

tests/test_stubs.py::TestStubs::test_run[JRA55_RYF_MINIMAL] PASSED                                               [  5%]
tests/test_stubs.py::TestStubs::test_run[JRA55_IAF] PASSED                                                       [ 10%]
tests/test_stubs.py::TestStubs::test_run[JRA55_RYF] PASSED                                                       [ 15%]
tests/test_stubs.py::TestStubs::test_unchanged_forcing_checksums[JRA55_RYF_MINIMAL] PASSED                       [ 20%]
tests/test_stubs.py::TestStubs::test_unchanged_forcing_checksums[JRA55_IAF] PASSED                               [ 25%]
tests/test_stubs.py::TestStubs::test_unchanged_forcing_checksums[JRA55_RYF] PASSED                               [ 30%]
tests/test_stubs.py::TestStubs::test_forcing_perturbations PASSED                                                [ 35%]
tests/test_stubs.py::TestStubs::test_calendar_override_unsupported PASSED                                        [ 40%]
tests/test_stubs.py::TestStubs::test_calendar_override_matching[JRA55_RYF_MINIMAL-noleap] PASSED                 [ 45%]
tests/test_stubs.py::TestStubs::test_calendar_override_matching[JRA55_IAF_SINGLE_FIELD-gregorian] PASSED         [ 50%]
tests/test_stubs.py::TestStubs::test_calendar_override_noleap PASSED                                             [ 55%]
tests/test_stubs.py::TestStubs::test_calendar_override_gregorian PASSED                                          [ 60%]
tests/test_stubs.py::TestStubs::test_forcing_fields[JRA55_RYF_MINIMAL] PASSED                                    [ 65%]
tests/test_stubs.py::TestStubs::test_forcing_fields[JRA55_IAF] PASSED                                            [ 70%]
tests/test_stubs.py::TestStubs::test_forcing_fields[JRA55_RYF] PASSED                                            [ 75%]
tests/test_stubs.py::TestStubs::test_restart[JRA55_RYF_MINIMAL] PASSED                                           [ 80%]
tests/test_stubs.py::TestStubs::test_restart[JRA55_IAF] PASSED                                                   [ 85%]
tests/test_stubs.py::TestStubs::test_restart[JRA55_RYF] PASSED                                                   [ 90%]
tests/test_stubs.py::TestStubs::test_iaf_cycles[JRA55_IAF_SINGLE_FIELD-None] PASSED                              [ 95%]
tests/test_stubs.py::TestStubs::test_iaf_cycles[JRA55_IAF_SINGLE_FIELD-noleap] PASSED                            [100%]

=========================================== 20 passed in 4083.52s (1:08:03) ============================================

@dougiesquire

dougiesquire commented Aug 12, 2026 •

Copy link
Copy Markdown
Collaborator Author

I ran three consecutive IAF cycles over the 5-year forcing period 1962-1966 (1964 is a leap year) with calendar_override = noleap. Output is here: /scratch/tm70/ds0092/access-om2/archive/om2_1deg_jra55_iaf+wombatlite

Some relevant snippets from libaccessom2 logs:

  • First cycle (output000/atmosphere/log/matmxx.pe00000.log):

    accessom2_set_calendar: forcing files use calendar=gregorian but calendar_override=noleap was set. Feb 29 records will be dropped from the forcing data.
    ...
    { "checksum-matmxx-uwnd_ai-0068158800": -.7260272511E+005 }
    { "forcing_field_update-file" : "INPUT/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        472 }
    { "checksum-matmxx-vwnd_ai-0068158800": -.2481271722E+005 }
    { "checksum-matmxx-licalvf_ai-0068158800": 0.3533917493E-001 }
    { "cur_exp-datetime" :  "1964-02-28T21:00:00" }
    { "cur_forcing-datetime" : "1964-02-28T21:00:00" }
    cur_runtime_in_seconds   68158800
    { "forcing_field_update-file" : "INPUT/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-swfld_ai-0068169600": 0.3139695166E+008 }
    { "forcing_field_update-file" : "INPUT/rlds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-lwfld_ai-0068169600": 0.5891069739E+008 }
    { "forcing_field_update-file" : "INPUT/prra_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-rain_ai-0068169600": 0.4383976616E+001 }
    { "forcing_field_update-file" : "INPUT/prsn_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-snow_ai-0068169600": 0.6022467810E+000 }
    { "forcing_field_update-file" : "INPUT/psl_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-press_ai-0068169600": 0.2072814897E+011 }
    { "forcing_field_update-file" : "INPUT/friver_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_19640101-19641231.nc" }
    { "forcing_field_update-index" :         61 }
    { "checksum-matmxx-runof_ai-0068169600": 0.2296551642E+000 }
    { "forcing_field_update-file" : "INPUT/tas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-tair_ai-0068169600": 0.5683280856E+008 }
    { "forcing_field_update-file" : "INPUT/huss_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-qair_ai-0068169600": 0.1422343156E+004 }
    { "forcing_field_update-file" : "INPUT/uas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-uwnd_ai-0068169600": -.8469447324E+005 }
    { "forcing_field_update-file" : "INPUT/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-vwnd_ai-0068169600": -.2914760696E+005 }
    { "forcing_field_update-file" : "INPUT/licalvf_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_19640101-19641231.nc" }
    { "forcing_field_update-index" :         61 }
    { "checksum-matmxx-licalvf_ai-0068169600": 0.3535418398E-001 }
    { "cur_exp-datetime" :  "1964-03-01T00:00:00" }
    { "cur_forcing-datetime" : "1964-03-01T00:00:00" }
    cur_runtime_in_seconds   68169600
    { "forcing_field_update-file" : "INPUT/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        482 }
    ...
    
  • Second cycle: (output001/atmosphere/log/matmxx.pe00000.log):

    ...
    { "checksum-matmxx-uwnd_ai-0036622800": -.2138169513E+005 }
    { "forcing_field_update-file" : "INPUT/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010000-196312312100.nc" }
    { "forcing_field_update-index" :        472 }
    { "checksum-matmxx-vwnd_ai-0036622800": -.8686846677E+004 }
    { "checksum-matmxx-licalvf_ai-0036622800": 0.3560168715E-001 }
    { "cur_exp-datetime" :  "1968-02-28T21:00:00" }
    { "cur_forcing-datetime" : "1963-02-28T21:00:00" }
    cur_runtime_in_seconds   36622800
    { "forcing_field_update-file" : "INPUT/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010130-196312312230.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-swfld_ai-0036633600": 0.3103404289E+008 }
    { "forcing_field_update-file" : "INPUT/rlds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010130-196312312230.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-lwfld_ai-0036633600": 0.5904001679E+008 }
    { "forcing_field_update-file" : "INPUT/prra_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010130-196312312230.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-rain_ai-0036633600": 0.4447252579E+001 }
    { "forcing_field_update-file" : "INPUT/prsn_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010130-196312312230.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-snow_ai-0036633600": 0.6376442655E+000 }
    { "forcing_field_update-file" : "INPUT/psl_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010000-196312312100.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-press_ai-0036633600": 0.2069345778E+011 }
    { "forcing_field_update-file" : "INPUT/friver_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_19630101-19631231.nc" }
    { "forcing_field_update-index" :         60 }
    { "checksum-matmxx-runof_ai-0036633600": 0.2267093793E+000 }
    { "forcing_field_update-file" : "INPUT/tas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010000-196312312100.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-tair_ai-0036633600": 0.5679307704E+008 }
    { "forcing_field_update-file" : "INPUT/huss_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010000-196312312100.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-qair_ai-0036633600": 0.1425234242E+004 }
    { "forcing_field_update-file" : "INPUT/uas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010000-196312312100.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-uwnd_ai-0036633600": -.2492417505E+005 }
    { "forcing_field_update-file" : "INPUT/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010000-196312312100.nc" }
    { "forcing_field_update-index" :        473 }
    { "checksum-matmxx-vwnd_ai-0036633600": -.9318703164E+004 }
    { "forcing_field_update-file" : "INPUT/licalvf_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_19630101-19631231.nc" }
    { "forcing_field_update-index" :         60 }
    { "checksum-matmxx-licalvf_ai-0036633600": 0.3560019798E-001 }
    { "cur_exp-datetime" :  "1968-03-01T00:00:00" }
    { "cur_forcing-datetime" : "1963-03-01T00:00:00" }
    cur_runtime_in_seconds   36633600
    { "forcing_field_update-file" : "INPUT/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196301010130-196312312230.nc" }
    { "forcing_field_update-index" :        474 }
    ...
    { "checksum-matmxx-uwnd_ai-0068158800": -.7260272511E+005 }
    { "forcing_field_update-file" : "INPUT/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        472 }
    { "checksum-matmxx-vwnd_ai-0068158800": -.2481271722E+005 }
    { "checksum-matmxx-licalvf_ai-0068158800": 0.3533917493E-001 }
    { "cur_exp-datetime" :  "1969-02-28T21:00:00" }
    { "cur_forcing-datetime" : "1964-02-28T21:00:00" }
    cur_runtime_in_seconds   68158800
    { "forcing_field_update-file" : "INPUT/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-swfld_ai-0068169600": 0.3139695166E+008 }
    { "forcing_field_update-file" : "INPUT/rlds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-lwfld_ai-0068169600": 0.5891069739E+008 }
    { "forcing_field_update-file" : "INPUT/prra_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-rain_ai-0068169600": 0.4383976616E+001 }
    { "forcing_field_update-file" : "INPUT/prsn_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-snow_ai-0068169600": 0.6022467810E+000 }
    { "forcing_field_update-file" : "INPUT/psl_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-press_ai-0068169600": 0.2072814897E+011 }
    { "forcing_field_update-file" : "INPUT/friver_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_19640101-19641231.nc" }
    { "forcing_field_update-index" :         61 }
    { "checksum-matmxx-runof_ai-0068169600": 0.2296551642E+000 }
    { "forcing_field_update-file" : "INPUT/tas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-tair_ai-0068169600": 0.5683280856E+008 }
    { "forcing_field_update-file" : "INPUT/huss_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-qair_ai-0068169600": 0.1422343156E+004 }
    { "forcing_field_update-file" : "INPUT/uas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-uwnd_ai-0068169600": -.8469447324E+005 }
    { "forcing_field_update-file" : "INPUT/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010000-196412312100.nc" }
    { "forcing_field_update-index" :        481 }
    { "checksum-matmxx-vwnd_ai-0068169600": -.2914760696E+005 }
    { "forcing_field_update-file" : "INPUT/licalvf_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_19640101-19641231.nc" }
    { "forcing_field_update-index" :         61 }
    { "checksum-matmxx-licalvf_ai-0068169600": 0.3535418398E-001 }
    { "cur_exp-datetime" :  "1969-03-01T00:00:00" }
    { "cur_forcing-datetime" : "1964-03-01T00:00:00" }
    cur_runtime_in_seconds   68169600
    { "forcing_field_update-file" : "INPUT/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-6-0_gr_196401010130-196412312230.nc" }
    { "forcing_field_update-index" :        482 }
    

Also, ocean and ice diagnostics use noleap calendar:

$ ncdump -hsc /g/data/tm70/ds0092/model/config/om2_1deg_jra55_iaf+wombatlite/archive/output000/ocean/access-om2.mom5.3d.temp.1mon.mean.1962.nc
...
	double time(time) ;
		time:long_name = "time" ;
		time:units = "days since 1900-01-01 00:00:00" ;
		time:axis = "T" ;
		time:calendar_type = "NOLEAP" ;
		time:calendar = "noleap" ;
		time:bounds = "time_bnds" ;
		time:_Storage = "chunked" ;
		time:_ChunkSizes = 512 ;
		time:_DeflateLevel = 5 ;
		time:_Endianness = "little" ;
		time:_NoFill = "true" ;
...

$ ncdump -hsc /g/data/tm70/ds0092/model/config/om2_1deg_jra55_iaf+wombatlite/archive/output000/ice/OUTPUT/iceh-1monthly-mean_1962.nc
...
	double time(time) ;
		time:long_name = "model time" ;
		time:units = "days since 1962-01-01 00:00:00" ;
		time:calendar = "NoLeap" ;
		time:bounds = "time_bounds" ;
		time:_Storage = "chunked" ;
		time:_ChunkSizes = 512 ;
		time:_Endianness = "little" ;
		time:_NoFill = "true" ;

@anton-seaice anton-seaice left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's not much work, the older version of the forcing data are in

/g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-3

and might be a usecase we care about at some point?

Are there tests for not setting effective_calendar too ?

Comment thread libcouple/src/accessom2.F90
@anton-seaice

anton-seaice commented Aug 13, 2026 •

Copy link
Copy Markdown
Collaborator

Are there tests for not setting effective_calendar too ?

Sorry - I mean - have you run OM2 with an unmodified calendar / not setting the new namelist value

@dougiesquire

dougiesquire commented Aug 13, 2026 •

Copy link
Copy Markdown
Collaborator Author

Sorry - I mean - have you run OM2 with an unmodified calendar / not setting the new namelist value

Many of the tests do this. But I'll kick off a repro test with ACCESS-OM2

@dougiesquire

Copy link
Copy Markdown
Collaborator Author

If it's not much work, the older version of the forcing data are in

/g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-3

and might be a usecase we care about at some point?

I added a JRA55_v1p3_IAF test configuration in d698a9e. The new tests all pass:

$ python -m pytest tests -k JRA55_v1p3_IAF -v
================================================= test session starts ==================================================
platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.5.0 -- /g/data/tm70/ds0092/model/dev/access-om2-calendar-override/libaccessom2/.spack-env/view/bin/python
cachedir: .pytest_cache
rootdir: /g/data/tm70/ds0092/model/dev/access-om2-calendar-override/libaccessom2/tests
configfile: pytest.ini
collected 24 items / 20 deselected / 4 selected

tests/test_stubs.py::TestStubs::test_run[JRA55_v1p3_IAF] PASSED                                                  [ 25%]
tests/test_stubs.py::TestStubs::test_unchanged_forcing_checksums[JRA55_v1p3_IAF] PASSED                          [ 50%]
tests/test_stubs.py::TestStubs::test_forcing_fields[JRA55_v1p3_IAF] PASSED                                       [ 75%]
tests/test_stubs.py::TestStubs::test_restart[JRA55_v1p3_IAF] PASSED                                              [100%]

===================================== 4 passed, 20 deselected in 136.80s (0:02:16) =====================================

@dougiesquire

Copy link
Copy Markdown
Collaborator Author

Many of the tests do this. But I'll kick off a repro test with ACCESS-OM2

The default repro tests all pass: ACCESS-NRI/ACCESS-OM2#156

I also ran the 1deg RYF and IAF configurations for 1 month each and checked that the calendars are correct:

RYF

ncdump -hsc /g/data/tm70/ds0092/model/config/om2_testing/archive/output000/ocean/access-om2.mom5.3d.temp.1mon.mean.1900.nc
...
	double time(time) ;
		time:long_name = "time" ;
		time:units = "days since 1900-01-01 00:00:00" ;
		time:axis = "T" ;
		time:calendar_type = "NOLEAP" ;
		time:calendar = "noleap" ;
		time:bounds = "time_bnds" ;
		time:_Storage = "chunked" ;
		time:_ChunkSizes = 512 ;
		time:_DeflateLevel = 5 ;
		time:_Endianness = "little" ;
		time:_NoFill = "true" ;
...

IAF

ncdump -hsc /g/data/tm70/ds0092/model/config/om2_testing_2/archive/output000/ocean/access-om2.mom5.3d.temp.1mon.mean.1958.nc
...
	double time(time) ;
		time:long_name = "time" ;
		time:units = "days since 1900-01-01 00:00:00" ;
		time:axis = "T" ;
		time:calendar_type = "PROLEPTIC_GREGORIAN" ;
		time:calendar = "proleptic_gregorian" ;
		time:bounds = "time_bnds" ;
		time:_Storage = "chunked" ;
		time:_ChunkSizes = 512 ;
		time:_DeflateLevel = 5 ;
		time:_Endianness = "little" ;
		time:_NoFill = "true" ;
...

@dougiesquire

Copy link
Copy Markdown
Collaborator Author

Back to you @anton-seaice

@anton-seaice anton-seaice left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@dougiesquire
dougiesquire merged commit 83b27fe into master Aug 13, 2026
4 checks passed
@dougiesquire
dougiesquire deleted the 32-calendar-override branch August 13, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants