From 4070e0a8c1a7b70968b9672ce44b53eea47f982d Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Sun, 5 May 2024 11:07:31 -0600 Subject: [PATCH 1/3] fix for CTSM issue Issue #2518 --- streams/dshr_strdata_mod.F90 | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/streams/dshr_strdata_mod.F90 b/streams/dshr_strdata_mod.F90 index e9159f69..877b781f 100644 --- a/streams/dshr_strdata_mod.F90 +++ b/streams/dshr_strdata_mod.F90 @@ -1933,6 +1933,7 @@ subroutine shr_strdata_set_stream_iodesc(sdat, per_stream, fldname, pioid, rc) character(*), parameter :: F00 = "('(shr_strdata_set_stream_iodesc) ',a,i8,2x,i8,2x,a)" character(*), parameter :: F01 = "('(shr_strdata_set_stream_iodesc) ',a,i8,2x,i8,2x,a)" character(*), parameter :: F02 = "('(shr_strdata_set_stream_iodesc) ',a,i8,2x,i8,2x,i8,2x,a)" + character(*), parameter :: F03 = "('(shr_strdata_set_stream_iodesc) ',a,i8,2x,a)" !------------------------------------------------------------------------------- rc = ESMF_SUCCESS @@ -1982,13 +1983,23 @@ subroutine shr_strdata_set_stream_iodesc(sdat, per_stream, fldname, pioid, rc) ! determine io descriptor if (ndims == 2) then - if (sdat%mainproc) then - write(sdat%stream(1)%logunit,F00) 'setting iodesc for : '//trim(fldname)// & - ' with dimlens(1), dimlens2 = ',dimlens(1),dimlens(2),& - ' variable has no time dimension ' + rcode = pio_inq_dimname(pioid, dimids(ndims), dimname) + if (trim(dimname) == 'time' .or. trim(dimname) == 'nt') then + if (sdat%mainproc) then + write(sdat%stream(1)%logunit,F03) 'setting iodesc for : '//trim(fldname)// & + ' with dimlens(1) = ',dimlens(1),' and the variable has a time dimension ' + end if + call pio_initdecomp(sdat%pio_subsystem, pio_iovartype, (/dimlens(1)/), compdof, & + per_stream%stream_pio_iodesc) + else + if (sdat%mainproc) then + write(sdat%stream(1)%logunit,F00) 'setting iodesc for : '//trim(fldname)// & + ' with dimlens(1), dimlens(2) = ',dimlens(1),dimlens(2),& + ' variable has no time dimension ' + end if + call pio_initdecomp(sdat%pio_subsystem, pio_iovartype, (/dimlens(1),dimlens(2)/), compdof, & + per_stream%stream_pio_iodesc) end if - call pio_initdecomp(sdat%pio_subsystem, pio_iovartype, (/dimlens(1),dimlens(2)/), compdof, & - per_stream%stream_pio_iodesc) else if (ndims == 3) then rcode = pio_inq_dimname(pioid, dimids(ndims), dimname) From cf975ab4fd7afd99b3912334e45799cc0d51fba7 Mon Sep 17 00:00:00 2001 From: Teagan King <98482480+TeaganKing@users.noreply.github.com> Date: Thu, 9 May 2024 15:13:25 -0600 Subject: [PATCH 2/3] Update stream_definition_datm.xml to include longer files --- datm/cime_config/stream_definition_datm.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datm/cime_config/stream_definition_datm.xml b/datm/cime_config/stream_definition_datm.xml index 310c5097..7f38beda 100644 --- a/datm/cime_config/stream_definition_datm.xml +++ b/datm/cime_config/stream_definition_datm.xml @@ -3578,7 +3578,7 @@ none - $DIN_LOC_ROOT/atm/datm7/CO2/fco2_datm_globalSSP3-7.0__simyr_2014-2501_CMIP6_c190506.nc + $DIN_LOC_ROOT/atm/datm7/CO2/fco2_datm_globalSSP3-7.0_simyr_1750-2501_CMIP6_c201101.nc CO2 Sa_co2diag @@ -4001,7 +4001,7 @@ $DIN_LOC_ROOT/share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc - $DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/aero/aerodep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.001_2014-2101_monthly_0.9x1.25_c190402.nc + $DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/aero/aerodep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.001_1849-2101_monthly_0.9x1.25_c201103.nc BCDEPWET Faxa_bcphiwet From 096ff6adce342c7059cadfc8a4c641c6f0f0aec8 Mon Sep 17 00:00:00 2001 From: Chris Fischer Date: Fri, 14 Jun 2024 12:47:01 -0600 Subject: [PATCH 3/3] Fix missing field width for L edit descriptor for NAG --- dglc/glc_comp_nuopc.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dglc/glc_comp_nuopc.F90 b/dglc/glc_comp_nuopc.F90 index 09c858ff..f5b6c2a3 100644 --- a/dglc/glc_comp_nuopc.F90 +++ b/dglc/glc_comp_nuopc.F90 @@ -491,7 +491,7 @@ subroutine ModelAdvance(gcomp, rc) if (my_task == main_task) then call ESMF_TimeGet(currTime, timestring=timestring, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - write(logunit,'(a,l)') trim(timestring)//': valid_input for dglc is ',valid_inputs + write(logunit,'(a,l6)') trim(timestring)//': valid_input for dglc is ',valid_inputs end if ! determine if will write restart