From b3f566c29e67ac46a3c64ffdcd0909b47993cb30 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Mon, 14 Mar 2022 23:12:51 -0600 Subject: [PATCH 01/16] addition of stream_ndep changes --- src/cpl/nuopc/atm_comp_shr.F90 | 15 ++ src/cpl/nuopc/atm_stream_ndep.F90 | 238 ++++++++++++++++++++++++++++++ 2 files changed, 253 insertions(+) create mode 100644 src/cpl/nuopc/atm_comp_shr.F90 create mode 100644 src/cpl/nuopc/atm_stream_ndep.F90 diff --git a/src/cpl/nuopc/atm_comp_shr.F90 b/src/cpl/nuopc/atm_comp_shr.F90 new file mode 100644 index 0000000000..4f561425b4 --- /dev/null +++ b/src/cpl/nuopc/atm_comp_shr.F90 @@ -0,0 +1,15 @@ +module atm_comp_shr + + ! Model mesh info is here in order to be leveraged by CDEPS in line calls + + use ESMF + use shr_kind_mod, only : r8 => shr_kind_r8, cl=>shr_kind_cl + + implicit none + public + + type(ESMF_Clock) :: model_clock ! model clock + type(ESMF_Mesh) :: model_mesh ! model_mesh + character(len=cl) :: model_meshfile ! model mesh file + +end module atm_comp_shr diff --git a/src/cpl/nuopc/atm_stream_ndep.F90 b/src/cpl/nuopc/atm_stream_ndep.F90 new file mode 100644 index 0000000000..3565773125 --- /dev/null +++ b/src/cpl/nuopc/atm_stream_ndep.F90 @@ -0,0 +1,238 @@ +module atm_stream_ndep + + !----------------------------------------------------------------------- + ! Contains methods for reading in nitrogen deposition data file + ! Also includes functions for dynamic ndep file handling and + ! interpolation. + !----------------------------------------------------------------------- + ! + use ESMF + use dshr_strdata_mod , only : shr_strdata_type + use shr_kind_mod , only : r8 => shr_kind_r8, CL => shr_kind_cl, CS => shr_kind_cs + use shr_sys_mod , only : shr_sys_abort + use shr_log_mod , only : errMsg => shr_log_errMsg + use spmdMod , only : mpicom, masterproc, iam + use cam_logfile , only : iulog + use cam_abortutils , only : endrun + + implicit none + private + + public :: stream_ndep_init ! position datasets for dynamic ndep + public :: stream_ndep_interp ! interpolates between two years of ndep file data + + private :: stream_ndep_check_units ! Check the units and make sure they can be used + + type(shr_strdata_type) :: sdat_ndep ! input data stream + character(len=CS) :: stream_varlist_ndep(2) + + character(len=*), parameter, private :: sourcefile = & + __FILE__ + +!============================================================================== +contains +!============================================================================== + + subroutine stream_ndep_init(model_mesh, model_clock, rc) + ! + ! Initialize data stream information. + + ! Uses: + use shr_nl_mod , only : shr_nl_find_group_name + use shr_mpi_mod , only : shr_mpi_bcast + use dshr_strdata_mod , only : shr_strdata_init_from_inline + + ! input/output variables + type(ESMF_Mesh) , intent(in) :: model_mesh + type(ESMF_Clock) , intent(in) :: model_clock + integer , intent(out) :: rc + + ! local variables + integer :: nu_nml ! unit for namelist file + integer :: nml_error ! namelist i/o error flag + character(len=CL) :: stream_datafile_ndep + character(len=CL) :: stream_meshfile_ndep + integer :: stream_year_first_ndep ! first year in stream to use + integer :: stream_year_last_ndep ! last year in stream to use + integer :: model_year_align_ndep ! align stream_year_firstndep with + integer :: stream_nflds + character(*), parameter :: subName = "('stream_ndep_init')" + !----------------------------------------------------------------------- + + rc = ESMF_SUCCESS + + namelist /ndep_stream_nml/ & + stream_datafile_ndep, & + stream_meshfile_ndep, & + stream_year_first_ndep, & + stream_year_last_ndep, & + model_year_align_ndep + + ! Default values for namelist + stream_datafile_ndep = ' ' + stream_meshfile_ndep = ' ' + stream_year_first_ndep = 1 ! first year in stream to use + stream_year_last_ndep = 1 ! last year in stream to use + model_year_align_ndep = 1 ! align stream_year_first_ndep with this model year + + ! For now variable list in stream data file is hard-wired + stream_varlist_ndep = (/'NDEP_Nhx', 'NDEP_Noy'/) + + ! Read ndepdyn_nml namelist + if (masterproc) then + open( newunit=nu_nml, file='atm_in', status='old', iostat=nml_error ) + call shr_nl_find_group_name(nu_nml, 'ndepdyn_nml', status=nml_error) + if (nml_error == 0) then + read(nu_nml, nml=ndep_stream_nml, iostat=nml_error) + if (nml_error /= 0) then + call endrun(' ERROR reading ndepdyn_nml namelist'//errMsg(sourcefile, __LINE__)) + end if + else + call endrun(' ERROR finding ndepdyn_nml namelist'//errMsg(sourcefile, __LINE__)) + end if + close(nu_nml) + endif + call shr_mpi_bcast(stream_meshfile_ndep , mpicom) + call shr_mpi_bcast(stream_datafile_ndep , mpicom) + call shr_mpi_bcast(stream_year_first_ndep , mpicom) + call shr_mpi_bcast(stream_year_last_ndep , mpicom) + call shr_mpi_bcast(model_year_align_ndep , mpicom) + + if (masterproc) then + write(iulog,'(a)' ) ' ' + write(iulog,'(a,i8)') 'stream ndep settings:' + write(iulog,'(a,a)' ) ' stream_datafile_ndep = ',trim(stream_datafile_ndep) + write(iulog,'(a,a)' ) ' stream_meshfile_ndep = ',trim(stream_meshfile_ndep) + write(iulog,'(a,a)' ) ' stream_varlist_ndep = ',trim(stream_varlist_ndep(1)) + write(iulog,'(a,i8)') ' stream_year_first_ndep = ',stream_year_first_ndep + write(iulog,'(a,i8)') ' stream_year_last_ndep = ',stream_year_last_ndep + write(iulog,'(a,i8)') ' model_year_align_ndep = ',model_year_align_ndep + write(iulog,'(a)' ) ' ' + endif + + ! Read in units + call stream_ndep_check_units(stream_datafile_ndep) + + ! Initialize the cdeps data type sdat_ndep + call shr_strdata_init_from_inline(sdat_ndep, & + my_task = iam, & + logunit = iulog, & + compname = 'ATM', & + model_clock = model_clock, & + model_mesh = model_mesh, & + stream_meshfile = trim(stream_meshfile_ndep), & + stream_filenames = (/trim(stream_datafile_ndep)/), & + stream_yearFirst = stream_year_first_ndep, & + stream_yearLast = stream_year_last_ndep, & + stream_yearAlign = model_year_align_ndep, & + stream_fldlistFile = stream_varlist_ndep, & + stream_fldListModel = stream_varlist_ndep, & + stream_lev_dimname = 'null', & + stream_mapalgo = 'bilinear', & + stream_offset = 0, & + stream_taxmode = 'cycle', & + stream_dtlimit = 1.5_r8, & + stream_tintalgo = 'linear', & + stream_name = 'Nitrogen deposition data ', & + rc = rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) then + call ESMF_Finalize(endflag=ESMF_END_ABORT) + end if + + end subroutine stream_ndep_init + + !================================================================ + subroutine stream_ndep_check_units( stream_fldFileName_ndep) + + !-------------------------------------------------------- + ! Check that units are correct on the file and if need any conversion + !-------------------------------------------------------- + + use ncdio_pio , only : ncd_pio_openfile, ncd_inqvid, ncd_getatt, ncd_pio_closefile, ncd_nowrite + use ncdio_pio , only : file_desc_t, var_desc_t + use shr_log_mod , only : errMsg => shr_log_errMsg + + ! Arguments + character(len=*), intent(in) :: stream_fldFileName_ndep ! ndep filename + ! + ! Local variables + type(file_desc_t) :: ncid ! NetCDF filehandle for ndep file + type(var_desc_t) :: vardesc ! variable descriptor + integer :: varid ! variable index + logical :: readvar ! If variable was read + character(len=CS) :: ndepunits! ndep units + !----------------------------------------------------------------------- + + call ncd_pio_openfile( ncid, trim(stream_fldFileName_ndep), ncd_nowrite ) + call ncd_inqvid(ncid, stream_varlist_ndep(1), varid, vardesc, readvar=readvar) + if ( readvar ) then + call ncd_getatt(ncid, varid, "units", ndepunits) + else + call endrun(' ERROR finding variable: '//trim(stream_varlist_ndep(1))//" in file: "// & + trim(stream_fldFileName_ndep)//errMsg(sourcefile, __LINE__)) + end if + call ncd_pio_closefile( ncid ) + + ! Now check to make sure they are correct + if (.not. trim(ndepunits) == "g(N)/m2/s" )then + call endrun(' ERROR in units for nitrogen deposition equal to: '//trim(ndepunits)//" not units expected"// & + errMsg(sourcefile, __LINE__)) + end if + + end subroutine stream_ndep_check_units + + !================================================================ + subroutine stream_ndep_interp(cam_out, rc) + + use dshr_methods_mod , only : dshr_fldbun_getfldptr + use dshr_strdata_mod , only : shr_strdata_advance + use camsrfexch , only : cam_out_t + use ppgrid , only : begchunk, endchunk + use time_manager , only : get_curr_date + use phys_grid , only : get_ncols_p + + ! input/output variables + type(cam_out_t) , intent(inout) :: cam_out(begchunk:endchunk) + integer , intent(out) :: rc + + ! local variables + integer :: i,c,g + integer :: year ! year (0, ...) for nstep+1 + integer :: mon ! month (1, ..., 12) for nstep+1 + integer :: day ! day of month (1, ..., 31) for nstep+1 + integer :: sec ! seconds into current date for nstep+1 + integer :: mcdate ! Current model date (yyyymmdd) + real(r8), pointer :: dataptr1d_nhx(:) + real(r8), pointer :: dataptr1d_noy(:) + !----------------------------------------------------------------------- + + ! Advance sdat stream + call get_curr_date(year, mon, day, sec) + mcdate = year*10000 + mon*100 + day + call shr_strdata_advance(sdat_ndep, ymd=mcdate, tod=sec, logunit=iulog, istr='ndepdyn', rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) then + call ESMF_Finalize(endflag=ESMF_END_ABORT) + end if + + ! Get pointer for stream data that is time and spatially interpolate to model time and grid + call dshr_fldbun_getFldPtr(sdat_ndep%pstrm(1)%fldbun_model, stream_varlist_ndep(1), fldptr1=dataptr1d_nhx, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) then + call ESMF_Finalize(endflag=ESMF_END_ABORT) + end if + call dshr_fldbun_getFldPtr(sdat_ndep%pstrm(1)%fldbun_model, stream_varlist_ndep(2), fldptr1=dataptr1d_noy, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) then + call ESMF_Finalize(endflag=ESMF_END_ABORT) + end if + + g = 1 + do c = begchunk,endchunk + do i = 1,get_ncols_p(c) + cam_out(c)%nhx_nitrogen_flx(i) = dataptr1d_nhx(g) + cam_out(c)%noy_nitrogen_flx(i) = dataptr1d_noy(g) + g = g + 1 + end do + end do + + end subroutine stream_ndep_interp + +end module atm_stream_ndep From 1ad753829ca34f32dda5ef17798f7dd5a9892935 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Mon, 14 Mar 2022 23:20:18 -0600 Subject: [PATCH 02/16] udpates to have ndep read from stream file --- bld/build-namelist | 11 ++ bld/configure | 4 - bld/namelist_files/namelist_defaults_cam.xml | 115 ++++--------------- bld/namelist_files/namelist_definition.xml | 32 ++++++ cime_config/buildnml | 1 + cime_config/config_component.xml | 20 ++++ src/cpl/nuopc/atm_comp_nuopc.F90 | 25 +++- src/cpl/nuopc/atm_import_export.F90 | 67 ++++++----- 8 files changed, 147 insertions(+), 128 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index b0c6056085..a054ee1a7b 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3947,11 +3947,21 @@ add_default($nl, 'cam_snapshot_before_num'); add_default($nl, 'cam_snapshot_after_num'); check_snapshot_settings(); +# Ndep stream forching +# TODO: mah the cam_pres_ndep an input argument to the namelist +my %valhash = ('cam_pres_ndep'=>'clim_1850'); +add_default($nl, 'stream_datafile_ndep' , %valhash ); +add_default($nl, 'stream_meshfile_ndep' , %valhash ); +add_default($nl, 'stream_year_first_ndep', %valhash ); +add_default($nl, 'stream_year_last_ndep' , %valhash ); +add_default($nl, 'model_year_align_ndep' , %valhash ); + #----------------------------------------------------------------------------------------------- # Write output files # Get array of group names that have been defined in the namelist. my @nl_groups = $nl->get_group_names(); +print "DEBUG: nl_groups are @nl_groups \n"; # Temp vars reused for each component. my @comp_groups; @@ -3965,6 +3975,7 @@ foreach my $name (@nl_groups) { $nl_group{$name} = ''; } # Dry deposition, MEGAN VOC emis and ozone namelists @comp_groups = qw(drydep_inparm megan_emis_nl fire_emis_nl carma_inparm ndep_inparm ozone_coupling_nl); + # nature of ozone data passed to surface models -- only if cmeps (nuopc) coupling is used if ($opts{'cmeps'}) { if ($rad_prog_ozone) { diff --git a/bld/configure b/bld/configure index 6564dfc791..fad355d3d2 100755 --- a/bld/configure +++ b/bld/configure @@ -139,10 +139,6 @@ OPTIONS -verbose [or -v] Turn on verbose echoing of settings made by configure. -version Echo the CVS tag name used to check out this CAM distribution. - Options for surface components used in standalone CAM mode: - - -ocn Build CAM with ocean model [docn | dom | som | socn | aquaplanet | pop]. Default: aquaplanet - Options for building CAM via standalone scripts: -cam_bld Directory where CAM will be built. This is where configure will write the diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index e3cde5a134..d7224e7275 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3093,96 +3093,31 @@ - + - - - -atm/cam/sst/sst_HadOIBl_bc_0.23x0.31_clim_c061106.nc -atm/cam/sst/sst_HadOIBl_bc_0.47x0.63_clim_c061106.nc -atm/cam/sst/sst_HadOIBl_bc_0.9x1.25_clim_c040926a.nc -atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_clim_c061031.nc -atm/cam/sst/sst_HadOIBl_bc_2.5x3.33_clim_c091210.nc -atm/cam/sst/sst_HadOIBl_bc_4x5_clim_c061031.nc -atm/cam/sst/sst_HadOIBl_bc_10x15_clim_c050526.nc - -atm/cam/sst/sst_HadOIBl_bc_256x512_clim_c031031.nc -atm/cam/sst/sst_HadOIBl_bc_128x256_clim_c050526.nc -atm/cam/sst/sst_HadOIBl_bc_64x128_clim_c050526.nc -atm/cam/sst/sst_HadOIBl_bc_48x96_clim_c050526.nc -atm/cam/sst/sst_HadOIBl_bc_32x64_clim_c050526.nc -atm/cam/sst/sst_HadOIBl_bc_8x16_clim_c050526.nc - -atm/cam/sst/sst_HadOIBl_bc_1x1_clim_c101029.nc -atm/cam/sst/sst_HadOIBl_bc_1x1_clim_c101029.nc - - -atm/cam/sst/sst_HadOIBl_bc_0.23x0.31_clim_pi_c091020.nc -atm/cam/sst/sst_HadOIBl_bc_0.47x0.63_clim_pi_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_0.9x1.25_clim_pi_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_clim_pi_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_4x5_clim_pi_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_10x15_clim_pi_c100127.nc - -atm/cam/sst/sst_HadOIBl_bc_128x256_clim_pi_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_64x128_clim_pi_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_48x96_clim_pi_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_32x64_clim_pi_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_8x16_clim_pi_c100128.nc - -atm/cam/sst/sst_HadOIBl_bc_1x1_clim_pi_c100129.nc -atm/cam/sst/sst_HadOIBl_bc_1x1_clim_pi_c100129.nc - - -atm/cam/sst/sst_HadOIBl_bc_0.23x0.31_clim_pi_c091020.nc -atm/cam/sst/sst_HadOIBl_bc_0.47x0.63_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_0.9x1.25_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_4x5_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_10x15_1850_2012_c130411.nc - -atm/cam/sst/sst_HadOIBl_bc_128x256_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_64x128_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_48x96_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_32x64_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_8x16_1850_2012_c130411.nc - -atm/cam/sst/sst_HadOIBl_bc_1x1_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_1x1_1850_2012_c130411.nc - -atm/cam/som/cam4.som.forcing.aquaplanet.QzaFix_h50Fix_TspunFix.fv19.nc - - -ocn/docn7/domain.ocn.1x1.111007.nc -ocn/docn7/domain.ocn.1x1.111007.nc - - -atm/cam/ocnfrac/domain.camocn.128x256_USGS_070807.nc -share/domains/domain.ocn.T42_gx1v7.180727.nc -share/domains/domain.ocn.48x96_gx3v7_100114.nc -atm/cam/ocnfrac/domain.camocn.32x64_USGS_070807.nc -atm/cam/ocnfrac/domain.camocn.8x16_USGS_070807.nc - -atm/cam/ocnfrac/domain.camocn.0.23x0.31_gx1v6_101108.nc -atm/cam/ocnfrac/domain.camocn.0.47x0.63_gx1v6_090408.nc -share/domains/domain.ocn.fv0.9x1.25_gx1v7.151020.nc -share/domains/domain.ocn.fv1.9x2.5_gx1v7.170518.nc -share/domains/domain.ocn.4x5_gx3v7_100120.nc -atm/cam/ocnfrac/domain.camocn.10x15_USGS_070807.nc - -share/domains/domain.ocn.C24_gx1v7_c200625.nc -share/domains/domain.ocn.C48_gx1v7_c200625.nc -share/domains/domain.ocn.C96_gx1v7_c200625.nc -share/domains/domain.ocn.C192_gx1v7_c200625.nc -share/domains/domain.ocn.C384_gx1v7_c200625.nc - -share/domains/domain.ocn.ne5np4_gx3v7.140810.nc -share/domains/domain.ocn.ne16np4_gx1v7.171018.nc -share/domains/domain.ocn.ne30_gx1v7.171003.nc -share/domains/domain.ocn.ne60np4_gx1v6.121113.nc -share/domains/domain.ocn.ne120np4_gx1v6.121113.nc -share/domains/domain.ocn.ne240np4_gx1v6.111226.nc - -atm/cam/ocnfrac/domain.aqua.fv1.9x2.5.nc + + +share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc + +lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc +lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc +lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc +lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/lnd/clm2/fndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP5-8.5-WACCM_1849-2101_monthly_c191007.nc + +1850 +1850 +1 + +2000 +2000 +1 + +2010 +2010 +1 diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index a98064ade8..500316769b 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -8809,4 +8809,36 @@ If TRUE perform temp tendency scaling before send to fv3 dynamics Default: FALSE + + + + + + + + +Stream filename(s) of for Nitrogen Deposition data + + + +Stream meshfile for Nitrogen Deposition data + + + +First year to loop over for Nitrogen Deposition data + + + +Last year to loop over for Nitrogen Deposition data + + + +Simulation year that aligns with stream_year_first_ndep value + + diff --git a/cime_config/buildnml b/cime_config/buildnml index 9393269f84..cf097b0bb9 100755 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -37,6 +37,7 @@ def buildnml(case, caseroot, compname): atm_ncpl = case.get_value("ATM_NCPL") CAM_NAMELIST_OPTS = case.get_value("CAM_NAMELIST_OPTS") CAM_NML_USE_CASE = case.get_value("CAM_NML_USE_CASE") + CAM_STREAM_NDEP = case.get_value("CAM_STREAM_NDEP") DEBUG = case.get_value("DEBUG") NINST_ATM = case.get_value("NINST_ATM") NTASKS = case.get_value("NTASKS_PER_INST_ATM") diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 5cf95a6e4a..3901884e30 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -343,6 +343,26 @@ User mods to apply to specific compset matches. + + char + clim_1850,clim_2000,clim_2010,hist,SSP1-2.6,SSP2-4.5,SSP3-7.0,SSP5-3.4,SSP5-8.5 + clim_2000 + + clim_1850 + clim_2000 + clim_2010 + SSP1-2.6 + SSP2-4.5 + SSP3-7.0 + SSP5-8.5 + hist + hist + + run_component_datm + env_run.xml + CAM prescribed nitrogen deposition forcing (used if CAM prognostic ndep is not on) + + ========================================= CAM naming conventions diff --git a/src/cpl/nuopc/atm_comp_nuopc.F90 b/src/cpl/nuopc/atm_comp_nuopc.F90 index 0a69dffe5d..e8e4308a92 100644 --- a/src/cpl/nuopc/atm_comp_nuopc.F90 +++ b/src/cpl/nuopc/atm_comp_nuopc.F90 @@ -31,6 +31,9 @@ module atm_comp_nuopc use time_manager , only : get_curr_calday, advance_timestep, get_curr_date, get_nstep, get_step_size use atm_import_export , only : advertise_fields, realize_fields use atm_import_export , only : import_fields, export_fields + use atm_comp_shr , only : model_mesh, model_clock + use srf_field_check , only : active_Faxa_nhx, active_Faxa_noy + use atm_stream_ndep , only : stream_ndep_init use nuopc_shr_methods , only : chkerr, state_setscalar, state_getscalar, state_diagnose, alarmInit use nuopc_shr_methods , only : set_component_logging, get_component_instance, log_clock_advance use perf_mod , only : t_startf, t_stopf @@ -316,7 +319,6 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) type(ESMF_TimeInterval) :: timeStep type(ESMF_CalKind_Flag) :: esmf_caltype ! esmf calendar type type(ESMF_DistGrid) :: distGrid - type(ESMF_Mesh) :: mesh integer :: spatialDim integer :: numOwnedElements real(R8), pointer :: ownedElemCoords(:) @@ -391,6 +393,10 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) call shr_file_setLogUnit (iulog) + ! Set model clock in atm_comp_shr + model_clock = clock + + !---------------------------------------------------------------------------- ! generate local mpi comm !---------------------------------------------------------------------------- @@ -618,7 +624,7 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) if (single_column) then - call cam_set_mesh_for_single_column(scol_lon, scol_lat, mesh, rc) + call cam_set_mesh_for_single_column(scol_lon, scol_lat, model_mesh, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return else @@ -647,7 +653,7 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) call NUOPC_CompAttributeGet(gcomp, name='mesh_atm', value=cvalue, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - mesh = ESMF_MeshCreate(filename=trim(cvalue), fileformat=ESMF_FILEFORMAT_ESMFMESH, & + model_mesh = ESMF_MeshCreate(filename=trim(cvalue), fileformat=ESMF_FILEFORMAT_ESMFMESH, & elementDistgrid=Distgrid, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return if (masterproc) then @@ -655,7 +661,7 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) end if ! obtain mesh lats and lons - call ESMF_MeshGet(mesh, spatialDim=spatialDim, numOwnedElements=numOwnedElements, rc=rc) + call ESMF_MeshGet(model_mesh, spatialDim=spatialDim, numOwnedElements=numOwnedElements, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return if (numOwnedElements /= lsize) then write(tempc1,'(i10)') numOwnedElements @@ -667,7 +673,7 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) end if allocate(ownedElemCoords(spatialDim*numOwnedElements)) allocate(lonMesh(lsize), latMesh(lsize)) - call ESMF_MeshGet(mesh, ownedElemCoords=ownedElemCoords) + call ESMF_MeshGet(model_mesh, ownedElemCoords=ownedElemCoords) if (ChkErr(rc,__LINE__,u_FILE_u)) return do n = 1,lsize lonMesh(n) = ownedElemCoords(2*n-1) @@ -712,9 +718,16 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) end if ! end of if single_column ! realize the actively coupled fields - call realize_fields(gcomp, mesh, flds_scalar_name, flds_scalar_num, single_column, rc) + call realize_fields(gcomp, model_mesh, flds_scalar_name, flds_scalar_num, single_column, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return + ! initialize stream ndep if appropriate + ! NOTE: this depends on the chemistry setting the ndep_nflds value (TODO: add more documention) + if (.not. active_Faxa_nhx .and. .not. active_Faxa_noy) then + call stream_ndep_init(model_mesh, clock, rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + end if + ! Create cam export array and set the state scalars call export_fields( gcomp, cam_out, rc=rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return diff --git a/src/cpl/nuopc/atm_import_export.F90 b/src/cpl/nuopc/atm_import_export.F90 index 073433ea20..7387c20565 100644 --- a/src/cpl/nuopc/atm_import_export.F90 +++ b/src/cpl/nuopc/atm_import_export.F90 @@ -23,6 +23,8 @@ module atm_import_export use srf_field_check , only : set_active_Faoo_fco2_ocn use srf_field_check , only : set_active_Faxa_nhx use srf_field_check , only : set_active_Faxa_noy + use srf_field_check , only : active_Faxa_nhx, active_Faxa_noy + use atm_stream_ndep , only : stream_ndep_interp implicit none private ! except @@ -52,13 +54,6 @@ module atm_import_export real(r8), allocatable :: mod2med_areacor(:) real(r8), allocatable :: med2mod_areacor(:) - character(len=cx) :: carma_fields ! list of CARMA fields from lnd->atm - integer :: drydep_nflds ! number of dry deposition velocity fields lnd-> atm - integer :: megan_nflds ! number of MEGAN voc fields from lnd-> atm - integer :: emis_nflds ! number of fire emission fields from lnd-> atm - integer, public :: ndep_nflds ! number of nitrogen deposition fields from atm->lnd/ocn - character(*),parameter :: F01 = "('(cam_import_export) ',a,i8,2x,i8,2x,d21.14)" - character(*),parameter :: F02 = "('(cam_import_export) ',a,i8,2x,i8,2x,i8,2x,d21.14)" character(*),parameter :: u_FILE_u = & __FILE__ @@ -84,13 +79,15 @@ subroutine advertise_fields(gcomp, flds_scalar_name, rc) type(ESMF_State) :: exportState character(ESMF_MAXSTR) :: stdname character(ESMF_MAXSTR) :: cvalue - character(len=2) :: nec_str integer :: n, num - logical :: flds_co2a ! use case - logical :: flds_co2b ! use case - logical :: flds_co2c ! use case - integer :: ndep_nflds, megan_nflds, emis_nflds - character(len=128) :: fldname + logical :: flds_co2a ! use case + logical :: flds_co2b ! use case + logical :: flds_co2c ! use case + integer :: emis_nflds ! number of fire emission fields from lnd-> atm + integer :: ndep_nflds ! number of nitrogen deposition fields from atm->lnd/ocn + integer :: drydep_nflds ! number of dry deposition velocity fields lnd-> atm + integer :: megan_nflds ! number of MEGAN voc fields from lnd-> atm + character(len=cx) :: carma_fields ! list of CARMA fields from lnd->atm character(len=*), parameter :: subname='(atm_import_export:advertise_fields)' !------------------------------------------------------------------------------- @@ -171,12 +168,17 @@ subroutine advertise_fields(gcomp, flds_scalar_name, rc) call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Sa_co2diag' ) end if - ! from atm - nitrogen deposition + ! from atm - nitrogen deposition is now always sent call shr_ndep_readnl("drv_flds_in", ndep_nflds) if (ndep_nflds > 0) then call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Faxa_ndep', ungridded_lbound=1, ungridded_ubound=ndep_nflds) call set_active_Faxa_nhx(.true.) call set_active_Faxa_noy(.true.) + else + ! The following is used for reading in stream data + call set_active_Faxa_nhx(.false.) + call set_active_Faxa_noy(.false.) + call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Faxa_ndep', ungridded_lbound=1, ungridded_ubound=2) end if ! Now advertise above export fields @@ -844,9 +846,9 @@ subroutine export_fields( gcomp, cam_out, rc) !------------------------------- ! input/output variables - type(ESMF_GridComp) :: gcomp - type(cam_out_t) , intent(in) :: cam_out(begchunk:endchunk) - integer , intent(out) :: rc + type(ESMF_GridComp) :: gcomp + type(cam_out_t) , intent(inout) :: cam_out(begchunk:endchunk) + integer , intent(out) :: rc ! local variables type(ESMF_State) :: exportState @@ -854,6 +856,7 @@ subroutine export_fields( gcomp, cam_out, rc) integer :: ncols ! Number of columns integer :: nstep logical :: exists + real(r8) :: scale_ndep ! 2d pointers real(r8), pointer :: fldptr_ndep(:,:) real(r8), pointer :: fldptr_bcph(:,:) , fldptr_ocph(:,:) @@ -1024,19 +1027,27 @@ subroutine export_fields( gcomp, cam_out, rc) end do end if - call state_getfldptr(exportState, 'Faxa_ndep', fldptr2d=fldptr_ndep, exists=exists, rc=rc) + ! If ndep fields are not computed in cam and must be obtained from + ! the ndep input stream + call state_getfldptr(exportState, 'Faxa_ndep', fldptr2d=fldptr_ndep, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - if (exists) then - ! (1) => nhx, (2) => noy - g = 1 - do c = begchunk,endchunk - do i = 1,get_ncols_p(c) - fldptr_ndep(1,g) = cam_out(c)%nhx_nitrogen_flx(i) * mod2med_areacor(g) - fldptr_ndep(2,g) = cam_out(c)%noy_nitrogen_flx(i) * mod2med_areacor(g) - g = g + 1 - end do - end do + if (.not. active_Faxa_nhx .and. .not. active_Faxa_noy) then + call stream_ndep_interp(cam_out, rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + scale_ndep = 1._r8 + else + ! If waccm computes ndep, then its in of kgN/m2/s - and the mediator expects + ! units of gN/m2/sec, so the following conversion needs to happen + scale_ndep = 1000._r8 end if + g = 1 + do c = begchunk,endchunk + do i = 1,get_ncols_p(c) + fldptr_ndep(1,g) = cam_out(c)%nhx_nitrogen_flx(i) * scale_ndep * mod2med_areacor(g) + fldptr_ndep(2,g) = cam_out(c)%noy_nitrogen_flx(i) * scale_ndep * mod2med_areacor(g) + g = g + 1 + end do + end do end subroutine export_fields From cfd55a466055f825b3fca47cc75a3e694e1d8249 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Thu, 15 Dec 2022 09:56:02 -0700 Subject: [PATCH 03/16] added ndep stream capability to cam nuopca cap - now cam always sends ndep - either from WACCM or from reading in stream data --- bld/build-namelist | 51 +++++-- bld/namelist_files/namelist_definition.xml | 48 +++++++ cime_config/buildnml | 14 +- cime_config/config_component.xml | 82 ++++++++++-- src/control/camsrfexch.F90 | 18 +-- src/cpl/nuopc/atm_comp_nuopc.F90 | 146 +++++++++++---------- src/cpl/nuopc/atm_comp_shr.F90 | 15 --- src/cpl/nuopc/atm_import_export.F90 | 51 ++++--- src/cpl/nuopc/atm_stream_ndep.F90 | 144 ++++++++++---------- 9 files changed, 364 insertions(+), 205 deletions(-) delete mode 100644 src/cpl/nuopc/atm_comp_shr.F90 diff --git a/bld/build-namelist b/bld/build-namelist index e6038b2e32..9d3d51ad9e 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -74,6 +74,11 @@ OPTIONS -use_case Specify a use case. Default: present day climatology -verbose [or -v] Turn on verbose echoing of informational messages. -version Echo the CVS tag name used to check out this CAM distribution. + -stream_ndep_year_first Only set from input options(no precedence) + -stream_ndep_year_last Only set from input options(no precedence) + -stream_ndep_year_align Only set from input options(no precedence) + -stream_ndep_data_filename "filename" Only set from input options(no precedence) + -stream_ndep_mesh_filename "filename" Only set from input options(no precedence) Note: The precedence for setting the values of namelist variables is (highest to lowest): 1. namelist values set by specific command-line options, i.e., -case, @@ -125,6 +130,12 @@ my %opts = ( config => $cfg_cache, dir => $outdirname, silent => 0, test => 0, + # + stream_ndep_year_first => 0, + stream_ndep_year_last => 0, + stream_ndep_year_align => 0, + stream_ndep_data_filename => "default", + stream_ndep_mesh_filename => "default", ); GetOptions( @@ -147,7 +158,13 @@ GetOptions( "v|verbose" => \$opts{'verbose'}, "version" => \$opts{'version'}, "cmeps" => \$opts{'cmeps'}, -) or usage(); + # + "stream_ndep_year_first=i" => \$opts{'stream_ndep_year_first'}, + "stream_ndep_year_last=i" => \$opts{'stream_ndep_year_last'}, + "stream_ndep_year_align=i" => \$opts{'stream_ndep_year_align'}, + "stream_ndep_data_filename=s" => \$opts{'stream_ndep_data_filename'}, + "stream_ndep_mesh_filename=s" => \$opts{'stream_ndep_mesh_filename'}, + ) or usage(); # Give usage message. usage() if $opts{'help'}; @@ -4023,14 +4040,30 @@ add_default($nl, 'cam_snapshot_before_num'); add_default($nl, 'cam_snapshot_after_num'); check_snapshot_settings(); -# Ndep stream forching -# TODO: mah the cam_pres_ndep an input argument to the namelist -my %valhash = ('cam_pres_ndep'=>'clim_1850'); -add_default($nl, 'stream_datafile_ndep' , %valhash ); -add_default($nl, 'stream_meshfile_ndep' , %valhash ); -add_default($nl, 'stream_year_first_ndep', %valhash ); -add_default($nl, 'stream_year_last_ndep' , %valhash ); -add_default($nl, 'model_year_align_ndep' , %valhash ); +# ndep stream forching +add_stream_default($nl, 'stream_ndep_year_first' , $opts{'stream_ndep_year_first'} , 0); +add_stream_default($nl, 'stream_ndep_year_last' , $opts{'stream_ndep_year_last'} , 0); +add_stream_default($nl, 'stream_ndep_year_align' , $opts{'stream_ndep_year_align'} , 0); +add_stream_default($nl, 'stream_ndep_data_filename' , $opts{'stream_ndep_data_filename'}, 1); +add_stream_default($nl, 'stream_ndep_mesh_filename' , $opts{'stream_ndep_mesh_filename'}, 1); + +sub add_stream_default { + my ($nl, $var_nml, $val_opts, $check_char) = @_; + add_default($nl, $var_nml, 'val'=>$val_opts); + my $val_nml = $nl->get_value($var_nml); + my $var_xml = uc($var_nml); + my $var_xml = "CAM_${var_nml}"; + if ($check_char) { + if ($val_nml ne "'$val_opts'"){ + die "$ProgName - ERROR: \n $var_nml with value $val_nml can only be set via the xml variable $var_xml, it CANNOT be set in user_nl_cam \n"; + } + } else { + if ($val_nml ne $val_opts) { + die "$ProgName - ERROR: \n $var_nml with value $val_nml can only be set via the xml variable $var_xml, it CANNOT be set in user_nl_clm \n"; + } + } +} + #----------------------------------------------------------------------------------------------- # Write output files diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index a47a566c13..c8034924f6 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -7192,6 +7192,54 @@ List of nitrogen deposition fluxes to be sent from CAM to surface models. Default: set by build-namelist. + +Year first to use in nitrogen deposition stream data. Set by case xml variable +CAM_STREAM_NDEP_YEAR_FIRST + + + +Year last to use in nitrogen deposition stream data. +Set by case xml variable CAM_STREAM_NDEP_YEAR_LAST + + + +Model year to align with CAM_STREAM_NDEP_YEAR_FIRST. +Set by case xml variable CAM_STREAM_NDEP_YEAR_ALIGN + + + +NDEP stream data filename. +Set by case xml variable CAM_STREAM_NDEP_DATA_FILENAME. + + + +NDEP mesh file corresponding to sream_ndep_data_filename. +Set by case xml variable CAM_STREAM_NDEP_MESH_FILENAME. + + + +NDEP spatial mapping to go from forcing data resolution to model resolution. +Set by case xml variable CAM_STREAM_NDEP_MAPALGO. + + + +NDEP time interpolation to go from forcing data times to model times. +Set by case xml variable CAM_STREAM_NDEP_TINTALGO. + + + +NDEP time extrapolation mode. +Set by case xml variable CAM_STREAM_DEP_TAXMODE. + + File containing MEGAN emissions factors. diff --git a/cime_config/buildnml b/cime_config/buildnml index cf097b0bb9..21b4dd5c11 100755 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -37,7 +37,6 @@ def buildnml(case, caseroot, compname): atm_ncpl = case.get_value("ATM_NCPL") CAM_NAMELIST_OPTS = case.get_value("CAM_NAMELIST_OPTS") CAM_NML_USE_CASE = case.get_value("CAM_NML_USE_CASE") - CAM_STREAM_NDEP = case.get_value("CAM_STREAM_NDEP") DEBUG = case.get_value("DEBUG") NINST_ATM = case.get_value("NINST_ATM") NTASKS = case.get_value("NTASKS_PER_INST_ATM") @@ -48,6 +47,12 @@ def buildnml(case, caseroot, compname): RUN_REFTOD = case.get_value("RUN_REFTOD") COMP_INTERFACE = case.get_value("COMP_INTERFACE") + stream_ndep_year_first = case.get_value("CAM_STREAM_NDEP_YEAR_FIRST") + stream_ndep_year_last = case.get_value("CAM_STREAM_NDEP_YEAR_LAST") + stream_ndep_year_align = case.get_value("CAM_STREAM_NDEP_YEAR_ALIGN") + stream_ndep_data_filename = case.get_value("CAM_STREAM_NDEP_DATA_FILENAME") + stream_ndep_mesh_filename = case.get_value("CAM_STREAM_NDEP_MESH_FILENAME") + testsrc = os.path.join(srcroot, "components", "cam") if os.path.exists(testsrc): srcroot = testsrc @@ -170,10 +175,17 @@ def buildnml(case, caseroot, compname): buildnl_opts += ["-namelist", '" &atmexp ' + CAM_NAMELIST_OPTS + '/" '] + buildnl_opts += ["-stream_ndep_year_first" , stream_ndep_year_first] + buildnl_opts += ["-stream_ndep_year_last" , stream_ndep_year_last] + buildnl_opts += ["-stream_ndep_year_align" , stream_ndep_year_align] + buildnl_opts += ["-stream_ndep_data_filename" , stream_ndep_data_filename] + buildnl_opts += ["-stream_ndep_mesh_filename" , stream_ndep_mesh_filename] + if COMP_INTERFACE == 'nuopc': buildnl_opts.append("-cmeps") cmd = os.path.join(srcroot, "bld", "build-namelist") + cmd += " " + " ".join(buildnl_opts) rc, out, err = run_cmd(cmd, from_dir=camconf) diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 3901884e30..e53252a0f8 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -80,6 +80,7 @@ CAM Parallel Offline Radiation Tool: + char cam @@ -343,24 +344,77 @@ User mods to apply to specific compset matches. - + + + + char + 2000 + + 1850 + 2010 + 1850 + 2015 + + run_component_cam + env_run.xml + Nitrogen deposition data year first + + + + char + 2000 + + 2010 + 1850 + 2015 + 2101 + + run_component_cam + env_run.xml + Nitrogen deposition data year last + + + char - clim_1850,clim_2000,clim_2010,hist,SSP1-2.6,SSP2-4.5,SSP3-7.0,SSP5-3.4,SSP5-8.5 - clim_2000 + 1 - clim_1850 - clim_2000 - clim_2010 - SSP1-2.6 - SSP2-4.5 - SSP3-7.0 - SSP5-8.5 - hist - hist + 1850 + 2015 - run_component_datm + run_component_cam + env_run.xml + Nitrogen depqosition align CAM_STREAM_NDEP_YEAR_FIRST with this model year + + + + + char + UNSET + + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP5-8.5-WACCM_1849-2101_monthly_c191007.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc + $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc + + run_component_cam + env_run.xml + Nitrogen deposition data filename + + + + char + $DIN_LOC_ROOT/share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc + run_component_cam env_run.xml - CAM prescribed nitrogen deposition forcing (used if CAM prognostic ndep is not on) + Nitrogen deposition mesh filename (corresponding to the CAM_STREAM_NDEP_DATA_FILENAME) diff --git a/src/control/camsrfexch.F90 b/src/control/camsrfexch.F90 index 6715b6f4cd..f978e4923c 100644 --- a/src/control/camsrfexch.F90 +++ b/src/control/camsrfexch.F90 @@ -319,18 +319,14 @@ subroutine atm2hub_alloc( cam_out ) cam_out(c)%dstwet4(:) = 0._r8 nullify(cam_out(c)%nhx_nitrogen_flx) - nullify(cam_out(c)%noy_nitrogen_flx) + allocate (cam_out(c)%nhx_nitrogen_flx(pcols), stat=ierror) + if ( ierror /= 0 ) call endrun(sub//': allocation error nhx_nitrogen_flx') + cam_out(c)%nhx_nitrogen_flx(:) = 0._r8 - if (active_Faxa_nhx) then - allocate (cam_out(c)%nhx_nitrogen_flx(pcols), stat=ierror) - if ( ierror /= 0 ) call endrun(sub//': allocation error nhx_nitrogen_flx') - cam_out(c)%nhx_nitrogen_flx(:) = 0._r8 - endif - if (active_Faxa_noy) then - allocate (cam_out(c)%noy_nitrogen_flx(pcols), stat=ierror) - if ( ierror /= 0 ) call endrun(sub//': allocation error noy_nitrogen_flx') - cam_out(c)%noy_nitrogen_flx(:) = 0._r8 - endif + nullify(cam_out(c)%noy_nitrogen_flx) + allocate (cam_out(c)%noy_nitrogen_flx(pcols), stat=ierror) + if ( ierror /= 0 ) call endrun(sub//': allocation error noy_nitrogen_flx') + cam_out(c)%noy_nitrogen_flx(:) = 0._r8 end do end subroutine atm2hub_alloc diff --git a/src/cpl/nuopc/atm_comp_nuopc.F90 b/src/cpl/nuopc/atm_comp_nuopc.F90 index 752f8cd771..42e7392cb6 100644 --- a/src/cpl/nuopc/atm_comp_nuopc.F90 +++ b/src/cpl/nuopc/atm_comp_nuopc.F90 @@ -4,63 +4,81 @@ module atm_comp_nuopc ! This is the NUOPC cap for CAM !---------------------------------------------------------------------------- - use ESMF - use NUOPC , only : NUOPC_CompDerive, NUOPC_CompSetEntryPoint, NUOPC_CompSpecialize - use NUOPC , only : NUOPC_CompFilterPhaseMap, NUOPC_IsUpdated, NUOPC_IsAtTime - use NUOPC , only : NUOPC_CompAttributeGet, NUOPC_Advertise - use NUOPC , only : NUOPC_SetAttribute, NUOPC_CompAttributeGet, NUOPC_CompAttributeSet - use NUOPC_Model , only : model_routine_SS => SetServices - use NUOPC_Model , only : SetVM - use NUOPC_Model , only : model_label_Advance => label_Advance - use NUOPC_Model , only : model_label_DataInitialize => label_DataInitialize - use NUOPC_Model , only : model_label_SetRunClock => label_SetRunClock - use NUOPC_Model , only : model_label_Finalize => label_Finalize - use NUOPC_Model , only : NUOPC_ModelGet - use shr_kind_mod , only : r8=>shr_kind_r8, i8=>shr_kind_i8, cl=>shr_kind_cl, cs=>shr_kind_cs - use shr_sys_mod , only : shr_sys_abort - use shr_file_mod , only : shr_file_getlogunit, shr_file_setlogunit - use shr_cal_mod , only : shr_cal_noleap, shr_cal_gregorian, shr_cal_ymd2date - use shr_const_mod , only : shr_const_pi - use shr_orb_mod , only : shr_orb_decl, shr_orb_params, SHR_ORB_UNDEF_REAL, SHR_ORB_UNDEF_INT - use cam_instance , only : cam_instance_init, inst_suffix, inst_index - use cam_comp , only : cam_init, cam_run1, cam_run2, cam_run3, cam_run4, cam_final - use camsrfexch , only : cam_out_t, cam_in_t - use radiation , only : nextsw_cday - use cam_logfile , only : iulog - use spmd_utils , only : spmdinit, masterproc, iam, mpicom - use time_manager , only : get_curr_calday, advance_timestep, get_curr_date, get_nstep, get_step_size - use atm_import_export , only : read_surface_fields_namelists, advertise_fields, realize_fields - use atm_import_export , only : import_fields, export_fields - use atm_comp_shr , only : model_mesh, model_clock - use srf_field_check , only : active_Faxa_nhx, active_Faxa_noy - use atm_stream_ndep , only : stream_ndep_init - use nuopc_shr_methods , only : chkerr, state_setscalar, state_getscalar, state_diagnose, alarmInit - use nuopc_shr_methods , only : set_component_logging, get_component_instance, log_clock_advance - use perf_mod , only : t_startf, t_stopf - use ppgrid , only : pcols, begchunk, endchunk - use dyn_grid , only : get_horiz_grid_dim_d - use phys_grid , only : get_ncols_p, get_gcol_p, get_rlon_all_p, get_rlat_all_p - use phys_grid , only : ngcols=>num_global_phys_cols - use cam_control_mod , only : cam_ctrl_set_orbit - use cam_pio_utils , only : cam_pio_createfile, cam_pio_openfile, cam_pio_closefile, pio_subsystem - use cam_initfiles , only : cam_initfiles_get_caseid, cam_initfiles_get_restdir - use cam_history_support , only : fillvalue - use filenames , only : interpret_filename_spec - use pio , only : file_desc_t, io_desc_t, var_desc_t, pio_double, pio_def_dim, PIO_MAX_NAME - use pio , only : pio_closefile, pio_put_att, pio_enddef, pio_nowrite - use pio , only : pio_inq_dimid, pio_inq_varid, pio_inquire_dimension, pio_def_var - use pio , only : pio_initdecomp, pio_freedecomp - use pio , only : pio_read_darray, pio_write_darray - use pio , only : pio_noerr, pio_bcast_error, pio_internal_error, pio_seterrorhandling - use pio , only : pio_def_var, pio_get_var, pio_put_var, PIO_INT - use ioFileMod -!$use omp_lib , only : omp_set_num_threads + use ESMF , only : operator(<=), operator(>), operator(==), operator(+) + use ESMF , only : ESMF_MethodRemove + use ESMF , only : ESMF_GridComp, ESMF_GridCompGet, ESMF_State, ESMF_StateGet + use ESMF , only : ESMF_Grid, ESMF_GridCreateNoPeriDimUfrm, ESMF_Field, ESMF_FieldGet + use ESMF , only : ESMF_DistGrid, ESMF_DistGridCreate + use ESMF , only : ESMF_Mesh, ESMF_MeshCreate, ESMF_MeshGet, ESMF_FILEFORMAT_ESMFMESH + use ESMF , only : ESMF_Clock, ESMF_ClockGet, ESMF_ClockSet, ESMF_ClockGetNextTime, ESMF_ClockAdvance + use ESMF , only : ESMF_Time, ESMF_TimeGet + use ESMF , only : ESMF_Alarm, ESMF_ClockGetAlarm, ESMF_AlarmRingerOff, ESMF_AlarmIsRinging + use ESMF , only : ESMF_ClockGetAlarmList, ESMF_ALARMLIST_ALL, ESMF_AlarmSet + use ESMF , only : ESMF_TimeInterval, ESMF_TimeIntervalGet + use ESMF , only : ESMF_CalKind_Flag, ESMF_MAXSTR, ESMF_KIND_I8 + use ESMF , only : ESMF_CALKIND_NOLEAP, ESMF_CALKIND_GREGORIAN + use ESMF , only : ESMF_GridCompSetEntryPoint + use ESMF , only : ESMF_VM, ESMF_VMGetCurrent, ESMF_VMGet + use ESMF , only : ESMF_LOGMSG_INFO, ESMF_LOGERR_PASSTHRU + use ESMF , only : ESMF_LogWrite, ESMF_LogSetError, ESMF_LogFoundError + use ESMF , only : ESMF_SUCCESS, ESMF_METHOD_INITIALIZE, ESMF_FAILURE, ESMF_RC_NOT_VALID + use ESMF , only : ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_CORNER + use NUOPC , only : NUOPC_CompDerive, NUOPC_CompSetEntryPoint, NUOPC_CompSpecialize + use NUOPC , only : NUOPC_CompFilterPhaseMap, NUOPC_IsUpdated, NUOPC_IsAtTime + use NUOPC , only : NUOPC_CompAttributeGet, NUOPC_Advertise + use NUOPC , only : NUOPC_SetAttribute, NUOPC_CompAttributeGet, NUOPC_CompAttributeSet + use NUOPC_Model , only : model_routine_SS => SetServices + use NUOPC_Model , only : SetVM + use NUOPC_Model , only : model_label_Advance => label_Advance + use NUOPC_Model , only : model_label_DataInitialize => label_DataInitialize + use NUOPC_Model , only : model_label_SetRunClock => label_SetRunClock + use NUOPC_Model , only : model_label_Finalize => label_Finalize + use NUOPC_Model , only : NUOPC_ModelGet + use shr_kind_mod , only : r8=>shr_kind_r8, i8=>shr_kind_i8, cl=>shr_kind_cl, cs=>shr_kind_cs + use shr_sys_mod , only : shr_sys_abort + use shr_file_mod , only : shr_file_getlogunit, shr_file_setlogunit + use shr_cal_mod , only : shr_cal_noleap, shr_cal_gregorian, shr_cal_ymd2date + use shr_const_mod , only : shr_const_pi + use shr_orb_mod , only : shr_orb_decl, shr_orb_params, SHR_ORB_UNDEF_REAL, SHR_ORB_UNDEF_INT + use cam_instance , only : cam_instance_init, inst_suffix, inst_index + use cam_comp , only : cam_init, cam_run1, cam_run2, cam_run3, cam_run4, cam_final + use camsrfexch , only : cam_out_t, cam_in_t + use radiation , only : nextsw_cday + use cam_logfile , only : iulog + use spmd_utils , only : spmdinit, masterproc, iam, mpicom + use time_manager , only : get_curr_calday, advance_timestep, get_curr_date, get_nstep, get_step_size + use atm_import_export , only : read_surface_fields_namelists, advertise_fields, realize_fields + use atm_import_export , only : import_fields, export_fields + use srf_field_check , only : active_Faxa_nhx, active_Faxa_noy + use atm_stream_ndep , only : stream_ndep_init + use nuopc_shr_methods , only : chkerr, state_setscalar, state_getscalar, state_diagnose, alarmInit + use nuopc_shr_methods , only : set_component_logging, get_component_instance, log_clock_advance + use perf_mod , only : t_startf, t_stopf + use ppgrid , only : pcols, begchunk, endchunk + use dyn_grid , only : get_horiz_grid_dim_d + use phys_grid , only : get_ncols_p, get_gcol_p, get_rlon_all_p, get_rlat_all_p + use phys_grid , only : ngcols=>num_global_phys_cols + use cam_control_mod , only : cam_ctrl_set_orbit + use cam_pio_utils , only : cam_pio_createfile, cam_pio_openfile, cam_pio_closefile, pio_subsystem + use cam_initfiles , only : cam_initfiles_get_caseid, cam_initfiles_get_restdir + use cam_history_support , only : fillvalue + use filenames , only : interpret_filename_spec + use pio , only : file_desc_t, io_desc_t, var_desc_t, pio_double, pio_def_dim, PIO_MAX_NAME + use pio , only : pio_closefile, pio_put_att, pio_enddef, pio_nowrite + use pio , only : pio_inq_dimid, pio_inq_varid, pio_inquire_dimension, pio_def_var + use pio , only : pio_initdecomp, pio_freedecomp + use pio , only : pio_read_darray, pio_write_darray + use pio , only : pio_noerr, pio_bcast_error, pio_internal_error, pio_seterrorhandling + use pio , only : pio_def_var, pio_get_var, pio_put_var, PIO_INT + use ioFileMod , only : getfil + !$use omp_lib , only : omp_set_num_threads implicit none private ! except public :: SetServices public :: SetVM + !-------------------------------------------------------------------------- ! Private interfaces !-------------------------------------------------------------------------- @@ -112,6 +130,10 @@ module atm_comp_nuopc character(len=*) , parameter :: orb_fixed_parameters = 'fixed_parameters' real(R8) , parameter :: grid_tol = 1.e-2_r8 ! tolerance for calculated lat/lon vs read in + + type(ESMF_Mesh) :: model_mesh ! model_mesh + type(ESMF_Clock) :: model_clock ! model_clock + !=============================================================================== contains !=============================================================================== @@ -395,10 +417,6 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) call shr_file_setLogUnit (iulog) - ! Set model clock in atm_comp_shr - model_clock = clock - - !---------------------------------------------------------------------------- ! generate local mpi comm !---------------------------------------------------------------------------- @@ -728,18 +746,14 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) end if ! end of if single_column ! realize the actively coupled fields - call realize_fields(gcomp, model_mesh, flds_scalar_name, flds_scalar_num, single_column, rc) + call realize_fields(gcomp, model_mesh, flds_scalar_name, flds_scalar_num, single_column, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - ! initialize stream ndep if appropriate - ! NOTE: this depends on the chemistry setting the ndep_nflds value (TODO: add more documention) - if (.not. active_Faxa_nhx .and. .not. active_Faxa_noy) then - call stream_ndep_init(model_mesh, clock, rc) - if (ChkErr(rc,__LINE__,u_FILE_u)) return - end if + ! Create model_clock as a module variable - needed for generating streams + model_clock = clock ! Create cam export array and set the state scalars - call export_fields( gcomp, cam_out, rc=rc ) + call export_fields( gcomp, model_mesh, model_clock, cam_out, rc=rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return call get_horiz_grid_dim_d(hdim1_d, hdim2_d) @@ -894,7 +908,7 @@ subroutine DataInitialize(gcomp, rc) call import_fields( gcomp, cam_in, rc=rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return call cam_run1 ( cam_in, cam_out ) - call export_fields( gcomp, cam_out, rc=rc ) + call export_fields( gcomp, model_mesh, model_clock, cam_out, rc=rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return else call cam_read_srfrest( gcomp, clock, rc=rc ) @@ -902,7 +916,7 @@ subroutine DataInitialize(gcomp, rc) call import_fields( gcomp, cam_in, restart_init=.true., rc=rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return call cam_run1 ( cam_in, cam_out ) - call export_fields( gcomp, cam_out, rc=rc ) + call export_fields( gcomp, model_mesh, model_clock, cam_out, rc=rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return end if @@ -1149,7 +1163,7 @@ subroutine ModelAdvance(gcomp, rc) if (mediator_present) then ! Set export fields call t_startf ('CAM_export') - call export_fields( gcomp, cam_out, rc ) + call export_fields( gcomp, model_mesh, model_clock, cam_out, rc ) if (ChkErr(rc,__LINE__,u_FILE_u)) return call t_stopf ('CAM_export') diff --git a/src/cpl/nuopc/atm_comp_shr.F90 b/src/cpl/nuopc/atm_comp_shr.F90 deleted file mode 100644 index 4f561425b4..0000000000 --- a/src/cpl/nuopc/atm_comp_shr.F90 +++ /dev/null @@ -1,15 +0,0 @@ -module atm_comp_shr - - ! Model mesh info is here in order to be leveraged by CDEPS in line calls - - use ESMF - use shr_kind_mod, only : r8 => shr_kind_r8, cl=>shr_kind_cl - - implicit none - public - - type(ESMF_Clock) :: model_clock ! model clock - type(ESMF_Mesh) :: model_mesh ! model_mesh - character(len=cl) :: model_meshfile ! model mesh file - -end module atm_comp_shr diff --git a/src/cpl/nuopc/atm_import_export.F90 b/src/cpl/nuopc/atm_import_export.F90 index 6bb2bfd359..df5399d7cb 100644 --- a/src/cpl/nuopc/atm_import_export.F90 +++ b/src/cpl/nuopc/atm_import_export.F90 @@ -3,6 +3,7 @@ module atm_import_export use NUOPC , only : NUOPC_CompAttributeGet, NUOPC_Advertise, NUOPC_IsConnected use NUOPC_Model , only : NUOPC_ModelGet use ESMF , only : ESMF_GridComp, ESMF_State, ESMF_Mesh, ESMF_StateGet, ESMF_Field + use ESMF , only : ESMF_Clock use ESMF , only : ESMF_KIND_R8, ESMF_SUCCESS, ESMF_MAXSTR, ESMF_LOGMSG_INFO use ESMF , only : ESMF_LogWrite, ESMF_LOGMSG_ERROR, ESMF_LogFoundError use ESMF , only : ESMF_STATEITEM_NOTFOUND, ESMF_StateItem_Flag @@ -24,7 +25,7 @@ module atm_import_export use srf_field_check , only : set_active_Faxa_nhx use srf_field_check , only : set_active_Faxa_noy use srf_field_check , only : active_Faxa_nhx, active_Faxa_noy - use atm_stream_ndep , only : stream_ndep_interp + use atm_stream_ndep , only : stream_ndep_init, stream_ndep_interp, stream_ndep_is_initialized implicit none private ! except @@ -90,6 +91,9 @@ subroutine read_surface_fields_namelists() end subroutine read_surface_fields_namelists + !----------------------------------------------------------- + ! advertise fields + !----------------------------------------------------------- subroutine advertise_fields(gcomp, flds_scalar_name, rc) ! input/output variables @@ -187,19 +191,17 @@ subroutine advertise_fields(gcomp, flds_scalar_name, rc) call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Sa_co2diag' ) end if - ! from atm - nitrogen deposition is now always sent - call shr_ndep_readnl("drv_flds_in", ndep_nflds) - - ! if (ndep_nflds > 0) then - ! call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Faxa_ndep', ungridded_lbound=1, ungridded_ubound=ndep_nflds) - ! call set_active_Faxa_nhx(.true.) - ! call set_active_Faxa_noy(.true.) - ! else - ! ! The following is used for reading in stream data - ! call set_active_Faxa_nhx(.false.) - ! call set_active_Faxa_noy(.false.) - ! call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Faxa_ndep', ungridded_lbound=1, ungridded_ubound=2) - ! end if + if (ndep_nflds > 0) then + ! The following is when WACCM computes ndep + call set_active_Faxa_nhx(.true.) + call set_active_Faxa_noy(.true.) + else + ! The following is used for reading in stream data + call set_active_Faxa_nhx(.false.) + call set_active_Faxa_noy(.false.) + end if + ! Assume that 2 fields are always sent as part of Faxa_ndep + call fldlist_add(fldsFrAtm_num, fldsFrAtm, 'Faxa_ndep', ungridded_lbound=1, ungridded_ubound=2) ! Now advertise above export fields if (masterproc) write(iulog,*) trim(subname)//' advertise export fields' @@ -866,7 +868,7 @@ end subroutine import_fields !=============================================================================== - subroutine export_fields( gcomp, cam_out, rc) + subroutine export_fields( gcomp, model_mesh, model_clock, cam_out, rc) ! ----------------------------------------------------- ! Set field pointers in export set @@ -885,11 +887,14 @@ subroutine export_fields( gcomp, cam_out, rc) ! input/output variables type(ESMF_GridComp) :: gcomp + type(ESMF_Mesh) , intent(in) :: model_mesh + type(ESMF_Clock), intent(in) :: model_clock type(cam_out_t) , intent(inout) :: cam_out(begchunk:endchunk) integer , intent(out) :: rc ! local variables type(ESMF_State) :: exportState + type(ESMF_Clock) :: clock integer :: i,m,c,n,g ! indices integer :: ncols ! Number of columns integer :: nstep @@ -1065,18 +1070,24 @@ subroutine export_fields( gcomp, cam_out, rc) end do end if - ! If ndep fields are not computed in cam and must be obtained from - ! the ndep input stream + ! If ndep fields are not computed in cam and must be obtained from the ndep input stream call state_getfldptr(exportState, 'Faxa_ndep', fldptr2d=fldptr_ndep, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return if (.not. active_Faxa_nhx .and. .not. active_Faxa_noy) then + if (.not. stream_ndep_is_initialized) then + call stream_ndep_init(model_mesh, model_clock, rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + stream_ndep_is_initialized = .true. + end if call stream_ndep_interp(cam_out, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - scale_ndep = 1._r8 + ! NDEP read from forcing is expected to be in units if gN/m2/sec - but the mediator + ! expects units of kgN/m2/sec + scale_ndep = .001_r8 else ! If waccm computes ndep, then its in of kgN/m2/s - and the mediator expects - ! units of gN/m2/sec, so the following conversion needs to happen - scale_ndep = 1000._r8 + ! units of kgN/m2/sec, so the following conversion needs to happen + scale_ndep = 1._r8 end if g = 1 do c = begchunk,endchunk diff --git a/src/cpl/nuopc/atm_stream_ndep.F90 b/src/cpl/nuopc/atm_stream_ndep.F90 index 3565773125..e354890acc 100644 --- a/src/cpl/nuopc/atm_stream_ndep.F90 +++ b/src/cpl/nuopc/atm_stream_ndep.F90 @@ -6,14 +6,16 @@ module atm_stream_ndep ! interpolation. !----------------------------------------------------------------------- ! - use ESMF - use dshr_strdata_mod , only : shr_strdata_type - use shr_kind_mod , only : r8 => shr_kind_r8, CL => shr_kind_cl, CS => shr_kind_cs - use shr_sys_mod , only : shr_sys_abort - use shr_log_mod , only : errMsg => shr_log_errMsg - use spmdMod , only : mpicom, masterproc, iam - use cam_logfile , only : iulog - use cam_abortutils , only : endrun + use ESMF , only : ESMF_Clock, ESMF_Mesh + use ESMF , only : ESMF_SUCCESS, ESMF_LOGERR_PASSTHRU, ESMF_END_ABORT + use ESMF , only : ESMF_Finalize, ESMF_LogFoundError + use nuopc_shr_methods , only : chkerr + use dshr_strdata_mod , only : shr_strdata_type + use shr_kind_mod , only : r8 => shr_kind_r8, CL => shr_kind_cl, CS => shr_kind_cs + use shr_log_mod , only : errMsg => shr_log_errMsg + use spmdMod , only : mpicom, masterproc, iam + use cam_logfile , only : iulog + use cam_abortutils , only : endrun implicit none private @@ -24,9 +26,14 @@ module atm_stream_ndep private :: stream_ndep_check_units ! Check the units and make sure they can be used type(shr_strdata_type) :: sdat_ndep ! input data stream + logical, public :: stream_ndep_is_initialized = .false. character(len=CS) :: stream_varlist_ndep(2) + type(ESMF_Clock) :: model_clock - character(len=*), parameter, private :: sourcefile = & + character(len=*), parameter :: sourcefile = & + __FILE__ + + character(*) ,parameter :: u_FILE_u = & __FILE__ !============================================================================== @@ -43,97 +50,96 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) use dshr_strdata_mod , only : shr_strdata_init_from_inline ! input/output variables - type(ESMF_Mesh) , intent(in) :: model_mesh - type(ESMF_Clock) , intent(in) :: model_clock - integer , intent(out) :: rc + type(ESMF_CLock), intent(in) :: model_clock + type(ESMF_Mesh) , intent(in) :: model_mesh + integer , intent(out) :: rc ! local variables integer :: nu_nml ! unit for namelist file integer :: nml_error ! namelist i/o error flag - character(len=CL) :: stream_datafile_ndep - character(len=CL) :: stream_meshfile_ndep - integer :: stream_year_first_ndep ! first year in stream to use - integer :: stream_year_last_ndep ! last year in stream to use - integer :: model_year_align_ndep ! align stream_year_firstndep with - integer :: stream_nflds + character(len=CL) :: stream_ndep_data_filename + character(len=CL) :: stream_ndep_mesh_filename + integer :: stream_ndep_year_first ! first year in stream to use + integer :: stream_ndep_year_last ! last year in stream to use + integer :: stream_ndep_year_align ! align stream_year_firstndep with character(*), parameter :: subName = "('stream_ndep_init')" !----------------------------------------------------------------------- rc = ESMF_SUCCESS - namelist /ndep_stream_nml/ & - stream_datafile_ndep, & - stream_meshfile_ndep, & - stream_year_first_ndep, & - stream_year_last_ndep, & - model_year_align_ndep + namelist /ndep_stream_nl/ & + stream_ndep_data_filename, & + stream_ndep_mesh_filename, & + stream_ndep_year_first, & + stream_ndep_year_last, & + stream_ndep_year_align ! Default values for namelist - stream_datafile_ndep = ' ' - stream_meshfile_ndep = ' ' - stream_year_first_ndep = 1 ! first year in stream to use - stream_year_last_ndep = 1 ! last year in stream to use - model_year_align_ndep = 1 ! align stream_year_first_ndep with this model year + stream_ndep_data_filename = ' ' + stream_ndep_mesh_filename = ' ' + stream_ndep_year_first = 1 ! first year in stream to use + stream_ndep_year_last = 1 ! last year in stream to use + stream_ndep_year_align = 1 ! align stream_ndep_year_first with this model year ! For now variable list in stream data file is hard-wired - stream_varlist_ndep = (/'NDEP_Nhx', 'NDEP_Noy'/) + stream_varlist_ndep = (/'NDEP_NHx_month', 'NDEP_NOy_month'/) - ! Read ndepdyn_nml namelist + ! Read ndep_stream namelist if (masterproc) then open( newunit=nu_nml, file='atm_in', status='old', iostat=nml_error ) - call shr_nl_find_group_name(nu_nml, 'ndepdyn_nml', status=nml_error) + call shr_nl_find_group_name(nu_nml, 'ndep_stream_nl', status=nml_error) if (nml_error == 0) then - read(nu_nml, nml=ndep_stream_nml, iostat=nml_error) + read(nu_nml, nml=ndep_stream_nl, iostat=nml_error) if (nml_error /= 0) then - call endrun(' ERROR reading ndepdyn_nml namelist'//errMsg(sourcefile, __LINE__)) + call endrun(' ERROR reading ndep_stream_nl namelist'//errMsg(sourcefile, __LINE__)) end if else - call endrun(' ERROR finding ndepdyn_nml namelist'//errMsg(sourcefile, __LINE__)) + call endrun(' ERROR finding ndep_stream_nl namelist'//errMsg(sourcefile, __LINE__)) end if close(nu_nml) endif - call shr_mpi_bcast(stream_meshfile_ndep , mpicom) - call shr_mpi_bcast(stream_datafile_ndep , mpicom) - call shr_mpi_bcast(stream_year_first_ndep , mpicom) - call shr_mpi_bcast(stream_year_last_ndep , mpicom) - call shr_mpi_bcast(model_year_align_ndep , mpicom) + call shr_mpi_bcast(stream_ndep_mesh_filename , mpicom) + call shr_mpi_bcast(stream_ndep_data_filename , mpicom) + call shr_mpi_bcast(stream_ndep_year_first , mpicom) + call shr_mpi_bcast(stream_ndep_year_last , mpicom) + call shr_mpi_bcast(stream_ndep_year_align , mpicom) if (masterproc) then write(iulog,'(a)' ) ' ' - write(iulog,'(a,i8)') 'stream ndep settings:' - write(iulog,'(a,a)' ) ' stream_datafile_ndep = ',trim(stream_datafile_ndep) - write(iulog,'(a,a)' ) ' stream_meshfile_ndep = ',trim(stream_meshfile_ndep) - write(iulog,'(a,a)' ) ' stream_varlist_ndep = ',trim(stream_varlist_ndep(1)) - write(iulog,'(a,i8)') ' stream_year_first_ndep = ',stream_year_first_ndep - write(iulog,'(a,i8)') ' stream_year_last_ndep = ',stream_year_last_ndep - write(iulog,'(a,i8)') ' model_year_align_ndep = ',model_year_align_ndep - write(iulog,'(a)' ) ' ' + write(iulog,'(a,i8)') 'stream ndep settings:' + write(iulog,'(a,a)' ) ' stream_ndep_data_filename = ',trim(stream_ndep_data_filename) + write(iulog,'(a,a)' ) ' stream_ndep_mesh_filename = ',trim(stream_ndep_mesh_filename) + write(iulog,'(a,a,a)') ' stream_varlist_ndep = ',trim(stream_varlist_ndep(1)), trim(stream_varlist_ndep(2)) + write(iulog,'(a,i8)') ' stream_ndep_year_first = ',stream_ndep_year_first + write(iulog,'(a,i8)') ' stream_ndep_year_last = ',stream_ndep_year_last + write(iulog,'(a,i8)') ' stream_ndep_year_align = ',stream_ndep_year_align + write(iulog,'(a)' ) ' ' endif ! Read in units - call stream_ndep_check_units(stream_datafile_ndep) + call stream_ndep_check_units(stream_ndep_data_filename) ! Initialize the cdeps data type sdat_ndep - call shr_strdata_init_from_inline(sdat_ndep, & - my_task = iam, & - logunit = iulog, & - compname = 'ATM', & - model_clock = model_clock, & - model_mesh = model_mesh, & - stream_meshfile = trim(stream_meshfile_ndep), & - stream_filenames = (/trim(stream_datafile_ndep)/), & - stream_yearFirst = stream_year_first_ndep, & - stream_yearLast = stream_year_last_ndep, & - stream_yearAlign = model_year_align_ndep, & - stream_fldlistFile = stream_varlist_ndep, & - stream_fldListModel = stream_varlist_ndep, & - stream_lev_dimname = 'null', & - stream_mapalgo = 'bilinear', & - stream_offset = 0, & - stream_taxmode = 'cycle', & - stream_dtlimit = 1.5_r8, & - stream_tintalgo = 'linear', & - stream_name = 'Nitrogen deposition data ', & + call shr_strdata_init_from_inline(sdat_ndep, & + my_task = iam, & + logunit = iulog, & + compname = 'ATM', & + model_clock = model_clock, & + model_mesh = model_mesh, & + stream_meshfile = trim(stream_ndep_mesh_filename), & + stream_filenames = (/trim(stream_ndep_data_filename)/), & + stream_yearFirst = stream_ndep_year_first, & + stream_yearLast = stream_ndep_year_last, & + stream_yearAlign = stream_ndep_year_align, & + stream_fldlistFile = stream_varlist_ndep, & + stream_fldListModel = stream_varlist_ndep, & + stream_lev_dimname = 'null', & + stream_mapalgo = 'bilinear', & + stream_offset = 0, & + stream_taxmode = 'cycle', & + stream_dtlimit = 1.0e30_r8, & + stream_tintalgo = 'linear', & + stream_name = 'Nitrogen deposition data ', & rc = rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) then call ESMF_Finalize(endflag=ESMF_END_ABORT) From 7c82ef62094380136674f4ac3628b286598b1357 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Thu, 15 Dec 2022 11:39:23 -0700 Subject: [PATCH 04/16] removed sst settings that should only be in docn --- bld/namelist_files/namelist_definition.xml | 24 ------- .../use_cases/1850-2005_cam5.xml | 30 +-------- .../use_cases/aquaplanet_cam3.xml | 4 -- .../use_cases/aquaplanet_cam4.xml | 3 - .../use_cases/sd_waccm_sulfur.xml | 23 ------- .../use_cases/waccm_carma_bc_2013_cam4.xml | 65 ++++++------------- 6 files changed, 24 insertions(+), 125 deletions(-) diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index c8034924f6..a937a9086f 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -8265,30 +8265,6 @@ us_standard_atmosphere: static atmospheric state (u,v)=0, standard lapse rate fo Default: 'none' - - - - - -Full pathname of time-variant sea-surface temperature and sea-ice -concentration boundary dataset. -Default: set by build-namelist. - - - -Full pathname of -Default: set by build-namelist. - - - -Full pathname of grid file for time-variant sea-surface temperature and sea-ice -concentration boundary dataset. -Default: set by build-namelist. - - - atm/cam/chem/trop_mozart_aero/oxid - oxid_1.9x2.5_L26_1850-2005_c091123.nc - INTERP_MISSING_MONTHS + atm/cam/chem/trop_mozart_aero/oxid + oxid_1.9x2.5_L26_1850-2005_c091123.nc + INTERP_MISSING_MONTHS 1850-2000 - -.false. -1850 -2012 -2008 - -atm/cam/sst/sst_HadOIBl_bc_0.47x0.63_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_0.9x1.25_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_4x5_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_10x15_1850_2012_c130411.nc - -atm/cam/sst/sst_HadOIBl_bc_128x256_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_64x128_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_48x96_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_32x64_1850_2012_c130411.nc -atm/cam/sst/sst_HadOIBl_bc_8x16_1850_2012_c130411.nc - - -.true. -0 -0 -atm/cam/sst/sst_HadOIBl_bc_0.23x0.31_clim_pi_c091020.nc - diff --git a/bld/namelist_files/use_cases/aquaplanet_cam3.xml b/bld/namelist_files/use_cases/aquaplanet_cam3.xml index 3fd3d876cb..373b2ad18d 100644 --- a/bld/namelist_files/use_cases/aquaplanet_cam3.xml +++ b/bld/namelist_files/use_cases/aquaplanet_cam3.xml @@ -57,9 +57,6 @@ - -.true. - 86164.10063718943 6.37100e6 @@ -78,4 +75,3 @@ 0 - diff --git a/bld/namelist_files/use_cases/aquaplanet_cam4.xml b/bld/namelist_files/use_cases/aquaplanet_cam4.xml index a18f4cfcd0..67d32c9f9f 100644 --- a/bld/namelist_files/use_cases/aquaplanet_cam4.xml +++ b/bld/namelist_files/use_cases/aquaplanet_cam4.xml @@ -31,8 +31,6 @@ - -.true. 86164.10063718943 6.37100e6 @@ -45,4 +43,3 @@ .false. - diff --git a/bld/namelist_files/use_cases/sd_waccm_sulfur.xml b/bld/namelist_files/use_cases/sd_waccm_sulfur.xml index f45159054a..25c4d622de 100644 --- a/bld/namelist_files/use_cases/sd_waccm_sulfur.xml +++ b/bld/namelist_files/use_cases/sd_waccm_sulfur.xml @@ -139,27 +139,4 @@ 1850-2000 - -.false. -1850 -2008 - -atm/cam/sst/sst_HadOIBl_bc_0.47x0.63_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_0.9x1.25_1850_2008_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_1850_2008_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_4x5_1850_2008_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_10x15_1850_2008_c100127.nc - -atm/cam/sst/sst_HadOIBl_bc_128x256_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_64x128_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_48x96_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_32x64_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_8x16_1850_2008_c100128.nc - - -.true. -0 -0 -atm/cam/sst/sst_HadOIBl_bc_0.23x0.31_clim_pi_c091020.nc - diff --git a/bld/namelist_files/use_cases/waccm_carma_bc_2013_cam4.xml b/bld/namelist_files/use_cases/waccm_carma_bc_2013_cam4.xml index ff2a72cbcc..a6e5287553 100644 --- a/bld/namelist_files/use_cases/waccm_carma_bc_2013_cam4.xml +++ b/bld/namelist_files/use_cases/waccm_carma_bc_2013_cam4.xml @@ -46,12 +46,12 @@ atm/waccm/sulf/SAD_SULF_1849-2100_1.9x2.5_c090817.nc 'SERIAL' - + .false. atm/waccm/qbo/qbocoefficients_c091230.nc' -.true. +.true. @@ -75,42 +75,42 @@ 0, -240, -240, -24, -24 'A', 'I', 'I', 'A', 'A' - + - 'AOA1', 'AOA2', 'BR', 'BRCL', 'BRO', 'BRONO2', 'CCL4', 'CF2CLBR', 'CF3BR', - 'CFC11', 'CFC113', 'CFC12', 'CH2O', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH3O2', 'CH3OOH', - 'CH4', 'CL', 'CL2', 'CL2O2', 'CLDHGH', 'CLDLOW', 'CLDMED', 'CLDTOT', 'CLO', 'CLONO2', - 'CLOUD', 'CO', 'CO2', 'DTCOND', 'DTV', 'DUV', 'DVV', 'EKGW', 'FLNS', 'FLNSC', 'FLNT', + 'AOA1', 'AOA2', 'BR', 'BRCL', 'BRO', 'BRONO2', 'CCL4', 'CF2CLBR', 'CF3BR', + 'CFC11', 'CFC113', 'CFC12', 'CH2O', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH3O2', 'CH3OOH', + 'CH4', 'CL', 'CL2', 'CL2O2', 'CLDHGH', 'CLDLOW', 'CLDMED', 'CLDTOT', 'CLO', 'CLONO2', + 'CLOUD', 'CO', 'CO2', 'DTCOND', 'DTV', 'DUV', 'DVV', 'EKGW', 'FLNS', 'FLNSC', 'FLNT', 'FLNTC', 'FSDS', 'FSNS', 'FSNSC', 'FSNT', 'FSNTC', 'H', 'H2', 'H2O', 'H2O2', 'HBR', 'HCFC22', 'HCL', 'HNO3', 'HO2', 'HO2NO2', 'HOBR', 'HOCL', 'HORZ', 'LANDFRAC', 'LHFLX', 'N', 'N2O', 'N2O5', 'NO', 'NO2', 'NO3', 'O', 'O1D', 'O2', 'O3', 'OCLO', 'OCNFRAC', 'OH', 'OMEGA', 'PHIS', 'PRECC', 'PRECL', 'PS', 'Q', 'QFLX', 'QPERT', 'QRL', 'QRLNLTE', 'QRS', 'RELHUM', 'SHFLX', 'SOLIN', 'SWCF', 'QCP', - 'QTHERMAL', 'QRL_TOT', 'QRS_TOT', 'QJOULE', 'PSL', 'HNO3_STS', 'HNO3_NAT', - 'HNO3_GAS', 'NO_Aircraft', 'NO_Lightning', 'QNO', 'QRS_AUR', 'QRS_CO2NIR', 'QRS_EUV', - 'SAD_ICE', 'SAD_LNAT', 'SAD_SULFC', 'T', 'TREFHT', - 'TTGW', 'U', 'UTGWORO', 'UTGWSPEC', 'V', 'VERT', 'VTGWORO', 'VTGWSPEC', 'Z3', 'O2_1S', - 'O2_1D', 'NOX', 'NOY', 'CLOX', 'CLOY', 'BROX', 'BROY', 'TCLY', 'TOTH', 'QJOULE', 'UI', + 'QTHERMAL', 'QRL_TOT', 'QRS_TOT', 'QJOULE', 'PSL', 'HNO3_STS', 'HNO3_NAT', + 'HNO3_GAS', 'NO_Aircraft', 'NO_Lightning', 'QNO', 'QRS_AUR', 'QRS_CO2NIR', 'QRS_EUV', + 'SAD_ICE', 'SAD_LNAT', 'SAD_SULFC', 'T', 'TREFHT', + 'TTGW', 'U', 'UTGWORO', 'UTGWSPEC', 'V', 'VERT', 'VTGWORO', 'VTGWSPEC', 'Z3', 'O2_1S', + 'O2_1D', 'NOX', 'NOY', 'CLOX', 'CLOY', 'BROX', 'BROY', 'TCLY', 'TOTH', 'QJOULE', 'UI', 'VI', 'UIONTEND', 'VIONTEND', 'DTCORE', 'T_24_COS', 'T_24_SIN', 'T_12_COS', 'T_12_SIN', 'OMEGA_24_COS', 'OMEGA_24_SIN', 'OMEGA_12_COS', 'OMEGA_12_SIN', - 'U_24_COS', 'U_24_SIN', 'U_12_COS', 'U_12_SIN', 'V_24_COS', 'V_24_SIN', 'V_12_COS', + 'U_24_COS', 'U_24_SIN', 'U_12_COS', 'U_12_SIN', 'V_24_COS', 'V_24_SIN', 'V_12_COS', 'V_12_SIN', 'PS_24_COS', 'PS_24_SIN', 'PS_12_COS', 'PS_12_SIN', 'CLDLIQ','CLDICE','CONCLD', 'FRONTGF:I', 'BUTGWSPEC', 'BTAUE', 'BTAUW', 'BTAUN', 'BTAUS','TAUE','TAUW','TAUN','TAUS', 'TAUGWX', 'TAUGWY', 'TAUX','TAUY','SNOWHLND','SNOWHICE','ICEFRAC','FSDSC','SFNO', 'SFCO', 'SFCH2O','CFC11STAR','TROPP_FD' - + - 'PS', 'Z3', 'T', 'U', 'V', 'FLNT','PSL', + 'PS', 'Z3', 'T', 'U', 'V', 'FLNT','PSL', 'OMEGA','FSDS','FSDSC','CLOUD','CONCLD','SNOWHLND','SNOWHICE', - 'CH3CL', 'CFC11', 'CFC12', 'CFC113', 'HCFC22', 'CCL4', 'CH3CCL3', + 'CH3CL', 'CFC11', 'CFC12', 'CFC113', 'HCFC22', 'CCL4', 'CH3CCL3', 'CH3BR', 'CF3BR', 'CF2CLBR', 'CO', 'CO2', 'CH2O', 'CH3OOH', 'CH4', 'O3', 'O', 'O1D', 'N', 'NO', 'NO2', 'NO3', 'N2O5', 'HNO3', 'HO2NO2', 'NOX', 'NOY', 'N2O', 'H', 'H2', 'OH', 'HO2', 'H2O2', 'H2O', - 'CL','CL2', 'CLO', 'OCLO', 'CL2O2', 'CLONO2', 'HOCL', 'HCL', 'CLOX', 'CLOY', + 'CL','CL2', 'CLO', 'OCLO', 'CL2O2', 'CLONO2', 'HOCL', 'HCL', 'CLOX', 'CLOY', 'BR', 'BRO', 'HOBR', 'HBR', 'BRCL', 'BRONO2', 'BROX', 'BROY', 'TCLY', 'jo2_a', 'jo2_b', 'jo3_a', 'jo3_b', 'jhocl', 'jno3_b', 'jcl2o2', 'SAD_SULFC', 'SAD_LNAT', 'SAD_ICE','AOA1','AOA2', @@ -118,7 +118,7 @@ 'VTHzm', 'WTHzm', 'UVzm', 'UWzm', 'TH', 'MSKtem' - + 'PS:B', 'T:B', 'Z3:B', 'U:B', 'V:B', 'CO:B', 'CO2:B', 'H2:B', 'O:B', 'O2:B', 'O3:B', 'H:B', 'OH:B', 'HO2:B', 'H2O:B', @@ -126,11 +126,11 @@ 'Np:B', 'N2p:B', 'Op:B', 'O2p:B', 'NOp:B', 'e:B', 'QRL_TOT:B', 'QRS_TOT:B', 'QJOULE:B', 'jno3_a:B', 'jno3_b:B', 'jcl2o2:B', 'CL2O2:B', 'CLO:B', 'BRO:B', 'NO3:B', 'DTCORE:B', 'DTV:B', 'TTGW:B','OMEGA:B' - + - 'PS', 'PSL', 'U', 'V', 'T', 'Z3', 'PHIS','FRONTGF:I', 'OMEGA' + 'PS', 'PSL', 'U', 'V', 'T', 'Z3', 'PHIS','FRONTGF:I', 'OMEGA' - + 'MSKtem', 'PS', 'PSL', 'VTHzm', 'UVzm', 'UWzm', 'Uzm', 'Vzm', 'THzm','Wzm', 'PHIS' @@ -138,27 +138,4 @@ 1850-2000 - -.false. -1850 -2008 - -atm/cam/sst/sst_HadOIBl_bc_0.47x0.63_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_0.9x1.25_1850_2008_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_1850_2008_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_4x5_1850_2008_c100127.nc -atm/cam/sst/sst_HadOIBl_bc_10x15_1850_2008_c100127.nc - -atm/cam/sst/sst_HadOIBl_bc_128x256_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_64x128_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_48x96_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_32x64_1850_2008_c100128.nc -atm/cam/sst/sst_HadOIBl_bc_8x16_1850_2008_c100128.nc - - -.true. -0 -0 -atm/cam/sst/sst_HadOIBl_bc_0.23x0.31_clim_pi_c091020.nc - From d204b72de553e4275c4909ec7dede7885563e688 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Sat, 7 Jan 2023 07:40:12 -0700 Subject: [PATCH 05/16] removed uneeded DEBUG print --- bld/build-namelist | 1 - 1 file changed, 1 deletion(-) diff --git a/bld/build-namelist b/bld/build-namelist index 9d3d51ad9e..276bc6a721 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -4070,7 +4070,6 @@ sub add_stream_default { # Get array of group names that have been defined in the namelist. my @nl_groups = $nl->get_group_names(); -print "DEBUG: nl_groups are @nl_groups \n"; # Temp vars reused for each component. my @comp_groups; From b812d04115db288302fbd27daa377c17bf88d49a Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Sun, 8 Jan 2023 04:11:49 -0700 Subject: [PATCH 06/16] fixed compile problem in unit checking of stream input --- src/cpl/nuopc/atm_stream_ndep.F90 | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/cpl/nuopc/atm_stream_ndep.F90 b/src/cpl/nuopc/atm_stream_ndep.F90 index e354890acc..f3d06bc9ea 100644 --- a/src/cpl/nuopc/atm_stream_ndep.F90 +++ b/src/cpl/nuopc/atm_stream_ndep.F90 @@ -13,7 +13,7 @@ module atm_stream_ndep use dshr_strdata_mod , only : shr_strdata_type use shr_kind_mod , only : r8 => shr_kind_r8, CL => shr_kind_cl, CS => shr_kind_cs use shr_log_mod , only : errMsg => shr_log_errMsg - use spmdMod , only : mpicom, masterproc, iam + use spmd_utils , only : mpicom, masterproc, iam use cam_logfile , only : iulog use cam_abortutils , only : endrun @@ -154,30 +154,33 @@ subroutine stream_ndep_check_units( stream_fldFileName_ndep) ! Check that units are correct on the file and if need any conversion !-------------------------------------------------------- - use ncdio_pio , only : ncd_pio_openfile, ncd_inqvid, ncd_getatt, ncd_pio_closefile, ncd_nowrite - use ncdio_pio , only : file_desc_t, var_desc_t - use shr_log_mod , only : errMsg => shr_log_errMsg + use cam_pio_utils , only : cam_pio_createfile, cam_pio_openfile, cam_pio_closefile, pio_subsystem + use pio , only : file_desc_t, io_desc_t, var_desc_t, pio_double, pio_def_dim + use pio , only : pio_bcast_error, pio_seterrorhandling, pio_inq_varid, pio_get_att + use pio , only : PIO_NOERR, PIO_NOWRITE ! Arguments character(len=*), intent(in) :: stream_fldFileName_ndep ! ndep filename ! ! Local variables - type(file_desc_t) :: ncid ! NetCDF filehandle for ndep file + type(file_desc_t) :: File ! NetCDF filehandle for ndep file type(var_desc_t) :: vardesc ! variable descriptor - integer :: varid ! variable index - logical :: readvar ! If variable was read + integer :: ierr ! error status + integer :: err_handling ! temporary character(len=CS) :: ndepunits! ndep units !----------------------------------------------------------------------- - call ncd_pio_openfile( ncid, trim(stream_fldFileName_ndep), ncd_nowrite ) - call ncd_inqvid(ncid, stream_varlist_ndep(1), varid, vardesc, readvar=readvar) - if ( readvar ) then - call ncd_getatt(ncid, varid, "units", ndepunits) - else + call cam_pio_openfile( File, trim(stream_fldFileName_ndep), PIO_NOWRITE) + call pio_seterrorhandling(File, PIO_BCAST_ERROR, err_handling) + ierr = pio_inq_varid(File, stream_varlist_ndep(1), vardesc) + if (ierr /= PIO_NOERR) then call endrun(' ERROR finding variable: '//trim(stream_varlist_ndep(1))//" in file: "// & trim(stream_fldFileName_ndep)//errMsg(sourcefile, __LINE__)) + else + ierr = PIO_get_att(File, vardesc, "units", ndepunits) end if - call ncd_pio_closefile( ncid ) + call pio_seterrorhandling(File, err_handling) + call cam_pio_closefile(File) ! Now check to make sure they are correct if (.not. trim(ndepunits) == "g(N)/m2/s" )then From 13ef355889b6a9c3eb7e1d93a27883780e58bda5 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Tue, 31 Jan 2023 09:46:21 -0700 Subject: [PATCH 07/16] fixed specification for clm_2010 --- bld/namelist_files/namelist_defaults_cam.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 799cfce547..df465584f8 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3161,8 +3161,8 @@ 2000 1 -2010 -2010 -1 +2010 +2010 +1 From 19b3a2ac55e9dfb4e2a74b9826542ca3eef3db59 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Thu, 2 Feb 2023 13:51:01 -0700 Subject: [PATCH 08/16] updates to address PR review comments --- bld/build-namelist | 3 +-- .../use_cases/aquaplanet_cam5.xml | 5 ----- .../use_cases/aquaplanet_cam6.xml | 4 ---- .../use_cases/aquaplanet_rce_cam6.xml | 4 ---- src/cpl/nuopc/atm_import_export.F90 | 4 ++-- src/cpl/nuopc/atm_stream_ndep.F90 | 20 ++++++++++++------- 6 files changed, 16 insertions(+), 24 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index a4e632a32a..818690892f 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -468,8 +468,7 @@ add_default($nl, 'water_species_in_air'); # Spectral Element dycore my $dyn = $cfg->get('dyn'); -# Physics package checks done here since aqua_planet setting is in -# the seq_infodata_inparm group +# Physics package checks done here my $phys_mode_flags = 0; my $adia_mode = 0; my $aqua_mode = 0; diff --git a/bld/namelist_files/use_cases/aquaplanet_cam5.xml b/bld/namelist_files/use_cases/aquaplanet_cam5.xml index afc820ecef..814eecd98f 100644 --- a/bld/namelist_files/use_cases/aquaplanet_cam5.xml +++ b/bld/namelist_files/use_cases/aquaplanet_cam5.xml @@ -29,10 +29,6 @@ CYCLICAL 1990 - -.true. - - 86164.10063718943 6.37100e6 @@ -50,4 +46,3 @@ "" - diff --git a/bld/namelist_files/use_cases/aquaplanet_cam6.xml b/bld/namelist_files/use_cases/aquaplanet_cam6.xml index cbe41e8cee..814eecd98f 100644 --- a/bld/namelist_files/use_cases/aquaplanet_cam6.xml +++ b/bld/namelist_files/use_cases/aquaplanet_cam6.xml @@ -29,9 +29,6 @@ CYCLICAL 1990 - -.true. - 86164.10063718943 6.37100e6 @@ -49,4 +46,3 @@ "" - diff --git a/bld/namelist_files/use_cases/aquaplanet_rce_cam6.xml b/bld/namelist_files/use_cases/aquaplanet_rce_cam6.xml index 01d810b08d..f03c4294b2 100644 --- a/bld/namelist_files/use_cases/aquaplanet_rce_cam6.xml +++ b/bld/namelist_files/use_cases/aquaplanet_rce_cam6.xml @@ -44,9 +44,6 @@ CYCLICAL 1990 - -.true. - .true. 0.73391095 @@ -71,4 +68,3 @@ 0.0 - diff --git a/src/cpl/nuopc/atm_import_export.F90 b/src/cpl/nuopc/atm_import_export.F90 index df5399d7cb..18e8a73977 100644 --- a/src/cpl/nuopc/atm_import_export.F90 +++ b/src/cpl/nuopc/atm_import_export.F90 @@ -1081,11 +1081,11 @@ subroutine export_fields( gcomp, model_mesh, model_clock, cam_out, rc) end if call stream_ndep_interp(cam_out, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - ! NDEP read from forcing is expected to be in units if gN/m2/sec - but the mediator + ! NDEP read from forcing is expected to be in units of gN/m2/sec - but the mediator ! expects units of kgN/m2/sec scale_ndep = .001_r8 else - ! If waccm computes ndep, then its in of kgN/m2/s - and the mediator expects + ! If waccm computes ndep, then its in units of kgN/m2/s - and the mediator expects ! units of kgN/m2/sec, so the following conversion needs to happen scale_ndep = 1._r8 end if diff --git a/src/cpl/nuopc/atm_stream_ndep.F90 b/src/cpl/nuopc/atm_stream_ndep.F90 index f3d06bc9ea..06aea0b242 100644 --- a/src/cpl/nuopc/atm_stream_ndep.F90 +++ b/src/cpl/nuopc/atm_stream_ndep.F90 @@ -14,6 +14,7 @@ module atm_stream_ndep use shr_kind_mod , only : r8 => shr_kind_r8, CL => shr_kind_cl, CS => shr_kind_cs use shr_log_mod , only : errMsg => shr_log_errMsg use spmd_utils , only : mpicom, masterproc, iam + use spmd_utils , only : mpi_character, mpi_integer use cam_logfile , only : iulog use cam_abortutils , only : endrun @@ -46,7 +47,6 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) ! Uses: use shr_nl_mod , only : shr_nl_find_group_name - use shr_mpi_mod , only : shr_mpi_bcast use dshr_strdata_mod , only : shr_strdata_init_from_inline ! input/output variables @@ -61,7 +61,8 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) character(len=CL) :: stream_ndep_mesh_filename integer :: stream_ndep_year_first ! first year in stream to use integer :: stream_ndep_year_last ! last year in stream to use - integer :: stream_ndep_year_align ! align stream_year_firstndep with + integer :: stream_ndep_year_align ! align stream_year_firstndep with + integer :: ierr character(*), parameter :: subName = "('stream_ndep_init')" !----------------------------------------------------------------------- @@ -98,11 +99,16 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) end if close(nu_nml) endif - call shr_mpi_bcast(stream_ndep_mesh_filename , mpicom) - call shr_mpi_bcast(stream_ndep_data_filename , mpicom) - call shr_mpi_bcast(stream_ndep_year_first , mpicom) - call shr_mpi_bcast(stream_ndep_year_last , mpicom) - call shr_mpi_bcast(stream_ndep_year_align , mpicom) + call mpi_bcast(stream_ndep_mesh_filename, len(stream_ndep_mesh_filename), mpi_character, 0, mpicom, ierr) + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_mesh_filename") + call mpi_bcast(stream_ndep_data_filename, len(stream_ndep_data_filename), mpi_character, 0, mpicom, ierr) + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_data_filename") + call mpi_bcast(stream_ndep_year_first, 1, mpi_integer, 0, mpicom, ierr) + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_first") + call mpi_bcast(stream_ndep_year_last, 1, mpi_integer, 0, mpicom, ierr) + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_first") + call mpi_bcast(stream_ndep_year_align, 1, mpi_integer, 0, mpicom, ierr) + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_first") if (masterproc) then write(iulog,'(a)' ) ' ' From 1f35d68b56ca7f790d4cc09f7658fde0044da898 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Sun, 5 Feb 2023 12:09:53 -0700 Subject: [PATCH 09/16] fixed additional issue in PR --- src/cpl/nuopc/atm_stream_ndep.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cpl/nuopc/atm_stream_ndep.F90 b/src/cpl/nuopc/atm_stream_ndep.F90 index 06aea0b242..77e1f739e7 100644 --- a/src/cpl/nuopc/atm_stream_ndep.F90 +++ b/src/cpl/nuopc/atm_stream_ndep.F90 @@ -66,8 +66,6 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) character(*), parameter :: subName = "('stream_ndep_init')" !----------------------------------------------------------------------- - rc = ESMF_SUCCESS - namelist /ndep_stream_nl/ & stream_ndep_data_filename, & stream_ndep_mesh_filename, & @@ -75,6 +73,8 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) stream_ndep_year_last, & stream_ndep_year_align + rc = ESMF_SUCCESS + ! Default values for namelist stream_ndep_data_filename = ' ' stream_ndep_mesh_filename = ' ' From 4b4b41763e391f92be57dc8732e445d54eafc328 Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Fri, 17 Feb 2023 05:51:17 -0700 Subject: [PATCH 10/16] removed unnecessary settings from namelist_definition.xml --- bld/namelist_files/namelist_defaults_cam.xml | 28 -------------------- 1 file changed, 28 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index df465584f8..0873f8850d 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3137,32 +3137,4 @@ ' C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3 + MTERP_O3 + BCARY_O3 + S_O3 + SO_O3' - - - - - -share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc - -lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc -lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc -lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc -lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc -lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc -lnd/clm2/ndepdata/lnd/clm2/fndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc -lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc -lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP5-8.5-WACCM_1849-2101_monthly_c191007.nc - -1850 -1850 -1 - -2000 -2000 -1 - -2010 -2010 -1 - From 20034f4fbeceed432d3b5a5ef2422bcc1a85e61d Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Fri, 17 Feb 2023 06:08:39 -0700 Subject: [PATCH 11/16] addressed more issue brought up in PR review --- bld/build-namelist | 2 +- cime_config/config_component.xml | 2 +- src/cpl/nuopc/atm_stream_ndep.F90 | 9 +++------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index 818690892f..c3cffd64ca 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -4039,7 +4039,7 @@ add_default($nl, 'cam_snapshot_before_num'); add_default($nl, 'cam_snapshot_after_num'); check_snapshot_settings(); -# ndep stream forching +# ndep stream forcing add_stream_default($nl, 'stream_ndep_year_first' , $opts{'stream_ndep_year_first'} , 0); add_stream_default($nl, 'stream_ndep_year_last' , $opts{'stream_ndep_year_last'} , 0); add_stream_default($nl, 'stream_ndep_year_align' , $opts{'stream_ndep_year_align'} , 0); diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 2b0f85b1df..aadb5c3ce0 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -392,7 +392,7 @@ run_component_cam env_run.xml - Nitrogen depqosition align CAM_STREAM_NDEP_YEAR_FIRST with this model year + Nitrogen deposition align CAM_STREAM_NDEP_YEAR_FIRST with this model year diff --git a/src/cpl/nuopc/atm_stream_ndep.F90 b/src/cpl/nuopc/atm_stream_ndep.F90 index 77e1f739e7..76ae37ec1b 100644 --- a/src/cpl/nuopc/atm_stream_ndep.F90 +++ b/src/cpl/nuopc/atm_stream_ndep.F90 @@ -34,9 +34,6 @@ module atm_stream_ndep character(len=*), parameter :: sourcefile = & __FILE__ - character(*) ,parameter :: u_FILE_u = & - __FILE__ - !============================================================================== contains !============================================================================== @@ -106,9 +103,9 @@ subroutine stream_ndep_init(model_mesh, model_clock, rc) call mpi_bcast(stream_ndep_year_first, 1, mpi_integer, 0, mpicom, ierr) if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_first") call mpi_bcast(stream_ndep_year_last, 1, mpi_integer, 0, mpicom, ierr) - if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_first") + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_last") call mpi_bcast(stream_ndep_year_align, 1, mpi_integer, 0, mpicom, ierr) - if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_first") + if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_ndep_year_align") if (masterproc) then write(iulog,'(a)' ) ' ' @@ -229,7 +226,7 @@ subroutine stream_ndep_interp(cam_out, rc) call ESMF_Finalize(endflag=ESMF_END_ABORT) end if - ! Get pointer for stream data that is time and spatially interpolate to model time and grid + ! Get pointer for stream data that is time and spatially interpolated to model time and grid call dshr_fldbun_getFldPtr(sdat_ndep%pstrm(1)%fldbun_model, stream_varlist_ndep(1), fldptr1=dataptr1d_nhx, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) then call ESMF_Finalize(endflag=ESMF_END_ABORT) From 8bb802667736c44e281f0d1b64ca73aef451ffef Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Fri, 17 Feb 2023 14:19:55 -0700 Subject: [PATCH 12/16] removal of unused namelists --- bld/namelist_files/namelist_definition.xml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index 3c9a82596d..6613f5fd5e 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -7222,24 +7222,6 @@ NDEP mesh file corresponding to sream_ndep_data_filename. Set by case xml variable CAM_STREAM_NDEP_MESH_FILENAME. - -NDEP spatial mapping to go from forcing data resolution to model resolution. -Set by case xml variable CAM_STREAM_NDEP_MAPALGO. - - - -NDEP time interpolation to go from forcing data times to model times. -Set by case xml variable CAM_STREAM_NDEP_TINTALGO. - - - -NDEP time extrapolation mode. -Set by case xml variable CAM_STREAM_DEP_TAXMODE. - - File containing MEGAN emissions factors. From 76c37386551fc8b8604da7712c4f6917f9c9d71e Mon Sep 17 00:00:00 2001 From: Mariana Vertenstein Date: Tue, 21 Feb 2023 13:50:10 -0700 Subject: [PATCH 13/16] fixed grammar --- bld/namelist_files/namelist_definition.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index 6613f5fd5e..379614f17d 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -9054,7 +9054,7 @@ Default: FALSE -Stream filename(s) of for Nitrogen Deposition data +Stream filename(s) for Nitrogen Deposition data Date: Fri, 10 Mar 2023 09:34:28 -0500 Subject: [PATCH 14/16] merge mvertens feature/remove_sst_specs branch; revert build-namelist; misc --- bld/build-namelist | 48 +-------- bld/namelist_files/namelist_definition.xml | 4 +- cime_config/buildnml | 13 ++- cime_config/config_component.xml | 1 - doc/ChangeLog | 114 +++++++++++++++++++++ src/cpl/nuopc/atm_import_export.F90 | 2 +- 6 files changed, 126 insertions(+), 56 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index cb9467089e..83399bd2ba 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -74,11 +74,6 @@ OPTIONS -use_case Specify a use case. Default: present day climatology -verbose [or -v] Turn on verbose echoing of informational messages. -version Echo the CVS tag name used to check out this CAM distribution. - -stream_ndep_year_first Only set from input options(no precedence) - -stream_ndep_year_last Only set from input options(no precedence) - -stream_ndep_year_align Only set from input options(no precedence) - -stream_ndep_data_filename "filename" Only set from input options(no precedence) - -stream_ndep_mesh_filename "filename" Only set from input options(no precedence) Note: The precedence for setting the values of namelist variables is (highest to lowest): 1. namelist values set by specific command-line options, i.e., -case, @@ -130,12 +125,6 @@ my %opts = ( config => $cfg_cache, dir => $outdirname, silent => 0, test => 0, - # - stream_ndep_year_first => 0, - stream_ndep_year_last => 0, - stream_ndep_year_align => 0, - stream_ndep_data_filename => "default", - stream_ndep_mesh_filename => "default", ); GetOptions( @@ -158,13 +147,7 @@ GetOptions( "v|verbose" => \$opts{'verbose'}, "version" => \$opts{'version'}, "cmeps" => \$opts{'cmeps'}, - # - "stream_ndep_year_first=i" => \$opts{'stream_ndep_year_first'}, - "stream_ndep_year_last=i" => \$opts{'stream_ndep_year_last'}, - "stream_ndep_year_align=i" => \$opts{'stream_ndep_year_align'}, - "stream_ndep_data_filename=s" => \$opts{'stream_ndep_data_filename'}, - "stream_ndep_mesh_filename=s" => \$opts{'stream_ndep_mesh_filename'}, - ) or usage(); +) or usage(); # Give usage message. usage() if $opts{'help'}; @@ -468,7 +451,8 @@ add_default($nl, 'water_species_in_air'); # Spectral Element dycore my $dyn = $cfg->get('dyn'); -# Physics package checks done here +# Physics package checks done here since aqua_planet setting is in +# the seq_infodata_inparm group my $phys_mode_flags = 0; my $adia_mode = 0; my $aqua_mode = 0; @@ -4113,31 +4097,6 @@ add_default($nl, 'cam_snapshot_before_num'); add_default($nl, 'cam_snapshot_after_num'); check_snapshot_settings(); -# ndep stream forcing -add_stream_default($nl, 'stream_ndep_year_first' , $opts{'stream_ndep_year_first'} , 0); -add_stream_default($nl, 'stream_ndep_year_last' , $opts{'stream_ndep_year_last'} , 0); -add_stream_default($nl, 'stream_ndep_year_align' , $opts{'stream_ndep_year_align'} , 0); -add_stream_default($nl, 'stream_ndep_data_filename' , $opts{'stream_ndep_data_filename'}, 1); -add_stream_default($nl, 'stream_ndep_mesh_filename' , $opts{'stream_ndep_mesh_filename'}, 1); - -sub add_stream_default { - my ($nl, $var_nml, $val_opts, $check_char) = @_; - add_default($nl, $var_nml, 'val'=>$val_opts); - my $val_nml = $nl->get_value($var_nml); - my $var_xml = uc($var_nml); - my $var_xml = "CAM_${var_nml}"; - if ($check_char) { - if ($val_nml ne "'$val_opts'"){ - die "$ProgName - ERROR: \n $var_nml with value $val_nml can only be set via the xml variable $var_xml, it CANNOT be set in user_nl_cam \n"; - } - } else { - if ($val_nml ne $val_opts) { - die "$ProgName - ERROR: \n $var_nml with value $val_nml can only be set via the xml variable $var_xml, it CANNOT be set in user_nl_clm \n"; - } - } -} - - #----------------------------------------------------------------------------------------------- # Write output files @@ -4156,7 +4115,6 @@ foreach my $name (@nl_groups) { $nl_group{$name} = ''; } # Dry deposition, MEGAN VOC emis and ozone namelists @comp_groups = qw(drydep_inparm megan_emis_nl fire_emis_nl carma_inparm ndep_inparm ozone_coupling_nl); - # nature of ozone data passed to surface models -- only if cmeps (nuopc) coupling is used if ($opts{'cmeps'}) { if ($rad_prog_ozone) { diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index a71fa1ee82..b9e3097574 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -7252,13 +7252,13 @@ Model year to align with CAM_STREAM_NDEP_YEAR_FIRST. Set by case xml variable CAM_STREAM_NDEP_YEAR_ALIGN - NDEP stream data filename. Set by case xml variable CAM_STREAM_NDEP_DATA_FILENAME. - NDEP mesh file corresponding to sream_ndep_data_filename. Set by case xml variable CAM_STREAM_NDEP_MESH_FILENAME. diff --git a/cime_config/buildnml b/cime_config/buildnml index 21b4dd5c11..856f1d6949 100755 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -172,20 +172,19 @@ def buildnml(case, caseroot, compname): buildnl_opts += ["-inputdata", input_data_list] + CAM_NAMELIST_OPTS += " stream_ndep_year_first=" + stream_ndep_year_first + CAM_NAMELIST_OPTS += " stream_ndep_year_last=" + stream_ndep_year_last + CAM_NAMELIST_OPTS += " stream_ndep_year_align=" + stream_ndep_year_align + CAM_NAMELIST_OPTS += " stream_ndep_data_filename='" + stream_ndep_data_filename.strip() + "'" + CAM_NAMELIST_OPTS += " stream_ndep_mesh_filename='" + stream_ndep_mesh_filename.strip() + "'" + buildnl_opts += ["-namelist", '" &atmexp ' + CAM_NAMELIST_OPTS + '/" '] - buildnl_opts += ["-stream_ndep_year_first" , stream_ndep_year_first] - buildnl_opts += ["-stream_ndep_year_last" , stream_ndep_year_last] - buildnl_opts += ["-stream_ndep_year_align" , stream_ndep_year_align] - buildnl_opts += ["-stream_ndep_data_filename" , stream_ndep_data_filename] - buildnl_opts += ["-stream_ndep_mesh_filename" , stream_ndep_mesh_filename] - if COMP_INTERFACE == 'nuopc': buildnl_opts.append("-cmeps") cmd = os.path.join(srcroot, "bld", "build-namelist") - cmd += " " + " ".join(buildnl_opts) rc, out, err = run_cmd(cmd, from_dir=camconf) diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 0d2fd171f4..da7d223e92 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -82,7 +82,6 @@ CAM Parallel Offline Radiation Tool: - char cam diff --git a/doc/ChangeLog b/doc/ChangeLog index 2d195ab2ec..21b8bcc2ef 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,119 @@ =============================================================== +Tag name: +Originator(s): mvertens +Date: +One-line Summary: +Github PR URL: + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + +Describe any changes made to build system: + +Describe any changes made to the namelist: + +List any changes to the defaults for the boundary datasets: + +Describe any substantial timing or memory changes: + +Code reviewed by: + +List all files eliminated: none + +List all files added and what they do: + +src/cpl/nuopc/atm_stream_ndep.F90 +. Contains methods for reading in nitrogen deposition data file. Also + includes functions for dynamic ndep file handling and interpolation. +. Reads namelist group ndep_stream_nl from the atm_in file. + +List all existing files that have been modified, and describe the changes: +bld/configure +. remove documentation for -ocn option. + +bld/namelist_files/namelist_defaults_cam.xml +. remove old settings for bndtvs, bndtvs_domain, and focndomain. DOM and + DOCN are no longer used. + +bld/namelist_files/namelist_definition.xml +. 5 new variables, stream_ndep_*, are added to group ndep_stream_nl +. bndtvs, focndomain, and bndtvs_domain removed +. 5 new variables, *_ndep, added to group ndep_stream_nml + +bld/namelist_files/use_cases/1850-2005_cam5.xml +bld/namelist_files/use_cases/sd_waccm_sulfur.xml +bld/namelist_files/use_cases/waccm_carma_bc_2013_cam4.xml +. remove defaults for stream_year_*, bndtvs, sstcyc + +bld/namelist_files/use_cases/aquaplanet_cam3.xml +bld/namelist_files/use_cases/aquaplanet_cam4.xml +bld/namelist_files/use_cases/aquaplanet_cam5.xml +bld/namelist_files/use_cases/aquaplanet_cam6.xml +bld/namelist_files/use_cases/aquaplanet_rce_cam6.xml +. remove default for aqua_planet (no longer in the namelist definition file) + +cime_config/buildnml +. get values of stream_ndep_* from the corresponding case variables + (CAM_STREAM_NDEP_*). Add the namelist key=value pairs to the string that + is generated to be passed via the -namelist option. + +cime_config/config_component.xml +. add values for the case variables CAM_STREAM_NDEP_* + +src/control/camsrfexch.F90 +. remove conditionals from allocation of cam_out%nhx_nitrogen_flx and + cam_out%noy_nitrogen_flx. CAM always provides this data now. + +src/cpl/nuopc/atm_comp_nuopc.F90 +. add explicit use/only statements for ESMF module +. add ESMF Mesh and clock objects with module scope, and add to the calling + args for export_fields. They are needed to generate streams. + +src/cpl/nuopc/atm_import_export.F90 +. mods so that nhx/noy are always in the list of fields that are exported. + If ndep_nflds=0 then the set_active_Faxa_* flags are set false. +. model_mesh, model_clock added to export_fields arg list +. add code to export_fields to use the stream code to set nhx/noy + deposition if it hasn't been computed. + +If there were any failures reported from running test_driver.sh on any test +platform, and checkin with these failures has been OK'd by the gatekeeper, +then copy the lines from the td.*.status files for the failed tests to the +appropriate machine below. All failed tests must be justified. + +cheyenne/intel/aux_cam: + +izumi/nag/aux_cam: + +izumi/gnu/aux_cam: + +CAM tag used for the baseline comparison tests if different than previous +tag: + +Summarize any changes to answers, i.e., +- what code configurations: +- what platforms/compilers: +- nature of change (roundoff; larger than roundoff but same climate; new + climate): + +If bitwise differences were observed, how did you show they were no worse +than roundoff? + +If this tag changes climate describe the run(s) done to evaluate the new +climate in enough detail that it(they) could be reproduced, i.e., +- source tag (all code used must be in the repository): +- platform/compilers: +- configure commandline: +- build-namelist command (or complete namelist): +- MSS location of output: + +MSS location of control simulations used to validate new climate: + +URL for AMWG diagnostics output used to validate new climate: + +=============================================================== +=============================================================== + Tag name: cam6_3_096 Originator(s): tilmes, fvitt Date: 8 Mar 2023 diff --git a/src/cpl/nuopc/atm_import_export.F90 b/src/cpl/nuopc/atm_import_export.F90 index 18e8a73977..3c0cbba542 100644 --- a/src/cpl/nuopc/atm_import_export.F90 +++ b/src/cpl/nuopc/atm_import_export.F90 @@ -192,7 +192,7 @@ subroutine advertise_fields(gcomp, flds_scalar_name, rc) end if if (ndep_nflds > 0) then - ! The following is when WACCM computes ndep + ! The following is when CAM/WACCM computes ndep call set_active_Faxa_nhx(.true.) call set_active_Faxa_noy(.true.) else From b4f55cb016876165e0b2a26784097994d0f3cc58 Mon Sep 17 00:00:00 2001 From: Brian Eaton Date: Tue, 14 Mar 2023 13:04:03 -0400 Subject: [PATCH 15/16] update ChangeLog --- doc/ChangeLog | 415 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 389 insertions(+), 26 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 5d12b2f1aa..e06fddef18 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -2,21 +2,49 @@ Tag name: cam6_3_098 Originator(s): mvertens, eaton -Date: -One-line Summary: -Github PR URL: +Date: Tue Mar 14 09:16:31 MDT 2023 +One-line Summary: always pass NDEP from CAM and remove sst specs +Github PR URL: https://github.com/ESCOMP/CAM/pull/764 Purpose of changes (include the issue number and title text for each relevant GitHub issue): -Describe any changes made to build system: +. Resolve issue #104 - Always send Nitrogen-deposition to surface components. + + This PR enables CAM to read in ndep (using the CDEPS inline API) from + forcing files if it is not computing NDEP prognostically. As a result + CAM will ALWAYS send NDEP to the mediator. + + Right how, CLM is not using the passed NDEP from the streams - since it + is still reading the drv_flds_in for NDEP. + + It is now possible for the drv_flds_in entry for ndep to be removed + and CLM can always accept NDEP from either CAM or DATM. + + New XML variables are introduced to specify the stream forcing. This is + being done in CTSM as well for all of its CDEPS stream specific variables. + + NOTE: that CTSM also needs a new PR in order to accept these new fields + from CAM rather than use its own internal streams. + +. Remove old sst specs from the namelist. This is a cleanup. + +Describe any changes made to build system: none Describe any changes made to the namelist: +. The follow variables are in new group ndep_stream_nl which is read in + src/cpl/nuopc/atm_stream_ndep.F90 + stream_ndep_year_first + stream_ndep_year_last + stream_ndep_year_align + stream_ndep_data_filename + stream_ndep_mesh_filename List any changes to the defaults for the boundary datasets: +. NDEP datasets are added by cime_config/config_component.xml -Describe any substantial timing or memory changes: +Describe any substantial timing or memory changes: not tested -Code reviewed by: +Code reviewed by: gold2718, fvitt, cacraigucar, nusbaume, brian-eaton List all files eliminated: none @@ -82,34 +110,369 @@ then copy the lines from the td.*.status files for the failed tests to the appropriate machine below. All failed tests must be justified. cheyenne/intel/aux_cam: + ERC_D_Ln9_P144x1_Vnuopc.ne16pg3_ne16pg3_mg17.QPC6HIST.cheyenne_intel.cam-outfrq3s_ttrac_usecase (Overall: DIFF) details: + FAIL ERC_D_Ln9_P144x1_Vnuopc.ne16pg3_ne16pg3_mg17.QPC6HIST.cheyenne_intel.cam-outfrq3s_ttrac_usecase NLCOMP + FAIL ERC_D_Ln9_P144x1_Vnuopc.ne16pg3_ne16pg3_mg17.QPC6HIST.cheyenne_intel.cam-outfrq3s_ttrac_usecase BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vmct.T42_T42_mg17.FDABIP04.cheyenne_intel.cam-outfrq3s_usecase (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vmct.T42_T42_mg17.FDABIP04.cheyenne_intel.cam-outfrq3s_usecase NLCOMP + ERC_D_Ln9_Vmct.T42_T42_mg17.FHS94.cheyenne_intel.cam-outfrq3s_usecase (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vmct.T42_T42_mg17.FHS94.cheyenne_intel.cam-outfrq3s_usecase NLCOMP + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq3s_cosp (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq3s_cosp NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq3s_cosp BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPMOZ.cheyenne_intel.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPMOZ.cheyenne_intel.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPMOZ.cheyenne_intel.cam-outfrq3s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.FADIAB.cheyenne_intel.cam-terminator (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.FADIAB.cheyenne_intel.cam-terminator NLCOMP + ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC5HIST.cheyenne_intel.cam-outfrq3s_usecase (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC5HIST.cheyenne_intel.cam-outfrq3s_usecase NLCOMP + FAIL ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC5HIST.cheyenne_intel.cam-outfrq3s_usecase BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.T42_T42_mg17.FDABIP04.cheyenne_intel.cam-outfrq3s_usecase (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.T42_T42_mg17.FDABIP04.cheyenne_intel.cam-outfrq3s_usecase NLCOMP + ERC_D_Ln9_Vnuopc.T42_T42_mg17.FHS94.cheyenne_intel.cam-outfrq3s_usecase (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.T42_T42_mg17.FHS94.cheyenne_intel.cam-outfrq3s_usecase NLCOMP + ERI_D_Ln18_Vnuopc.f45_f45_mg37.QPC41850.cheyenne_intel.cam-co2rmp_usecase (Overall: DIFF) details: + FAIL ERI_D_Ln18_Vnuopc.f45_f45_mg37.QPC41850.cheyenne_intel.cam-co2rmp_usecase NLCOMP + FAIL ERI_D_Ln18_Vnuopc.f45_f45_mg37.QPC41850.cheyenne_intel.cam-co2rmp_usecase BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_D_Ln9_Vmct.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERP_D_Ln9_Vmct.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s NLCOMP + ERP_D_Ln9_Vmct.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERP_D_Ln9_Vmct.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s NLCOMP + ERP_D_Ln9_Vnuopc.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_D_Ln9_Vnuopc.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_D_Ln9_Vnuopc.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ld3_Vnuopc.f09_f09_mg17.FWHIST.cheyenne_intel.cam-reduced_hist1d (Overall: NLFAIL) details: + FAIL ERP_Ld3_Vnuopc.f09_f09_mg17.FWHIST.cheyenne_intel.cam-reduced_hist1d NLCOMP + ERP_Lh12_Vnuopc.f19_f19_mg17.FW4madSD.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + FAIL ERP_Lh12_Vnuopc.f19_f19_mg17.FW4madSD.cheyenne_intel.cam-outfrq3h NLCOMP + FAIL ERP_Lh12_Vnuopc.f19_f19_mg17.FW4madSD.cheyenne_intel.cam-outfrq3h BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes (Overall: DIFF) details: + FAIL ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes NLCOMP + FAIL ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vmct.f09_f09_mg17.2000_CAM60_CLM50%SP_CICE5%PRES_DOCN%DOM_MOSART_SGLC_SWAV.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERP_Ln9_Vmct.f09_f09_mg17.2000_CAM60_CLM50%SP_CICE5%PRES_DOCN%DOM_MOSART_SGLC_SWAV.cheyenne_intel.cam-outfrq9s NLCOMP + ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 NLCOMP + FAIL ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.f09_f09_mg17.F1850.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F1850.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F1850.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.f09_f09_mg17.F2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F2000climo.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F2000climo.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.f09_f09_mg17.F2000dev.cheyenne_intel.cam-outfrq9s_mg3 (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F2000dev.cheyenne_intel.cam-outfrq9s_mg3 NLCOMP + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F2000dev.cheyenne_intel.cam-outfrq9s_mg3 BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.f09_f09_mg17.FHIST_BDRD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FHIST_BDRD.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FHIST_BDRD.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.f19_f19_mg17.FWsc1850.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.f19_f19_mg17.FWsc1850.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.f19_f19_mg17.FWsc1850.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.ne30_ne30_mg17.FCnudged.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERP_Ln9_Vnuopc.ne30_ne30_mg17.FCnudged.cheyenne_intel.cam-outfrq9s NLCOMP + ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 (Overall: NLFAIL) details: + FAIL ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 NLCOMP + ERS_Ld3_Vnuopc.f10_f10_mg37.F1850.cheyenne_intel.cam-outfrq1d_14dec_L32wsc (Overall: DIFF) details: + FAIL ERS_Ld3_Vnuopc.f10_f10_mg37.F1850.cheyenne_intel.cam-outfrq1d_14dec_L32wsc NLCOMP + FAIL ERS_Ld3_Vnuopc.f10_f10_mg37.F1850.cheyenne_intel.cam-outfrq1d_14dec_L32wsc BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln9_P288x1_Vnuopc.mpasa120_mpasa120.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details: + FAIL ERS_Ln9_P288x1_Vnuopc.mpasa120_mpasa120.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa120 NLCOMP + FAIL ERS_Ln9_P288x1_Vnuopc.mpasa120_mpasa120.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa120 BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480 (Overall: DIFF) details: + FAIL ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480 NLCOMP + FAIL ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480 BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln9_Vnuopc.f19_f19_mg17.FSPCAMS.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FSPCAMS.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FSPCAMS.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln9_Vnuopc.ne0TESTONLYne5x4_ne0TESTONLYne5x4_mg37.FADIAB.cheyenne_intel.cam-outfrq3s_refined (Overall: NLFAIL) details: + FAIL ERS_Ln9_Vnuopc.ne0TESTONLYne5x4_ne0TESTONLYne5x4_mg37.FADIAB.cheyenne_intel.cam-outfrq3s_refined NLCOMP + SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC5.cheyenne_intel.cam-scm_prep (Overall: DIFF) details: + FAIL SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC5.cheyenne_intel.cam-scm_prep NLCOMP + FAIL SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC5.cheyenne_intel.cam-scm_prep BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ld2_Vnuopc.f19_f19_mg17.QPC5HIST.cheyenne_intel.cam-volc_usecase (Overall: DIFF) details: + FAIL SMS_D_Ld2_Vnuopc.f19_f19_mg17.QPC5HIST.cheyenne_intel.cam-volc_usecase NLCOMP + FAIL SMS_D_Ld2_Vnuopc.f19_f19_mg17.QPC5HIST.cheyenne_intel.cam-volc_usecase BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ld5_Vnuopc.f19_f19_mg17.PC4.cheyenne_intel.cam-cam4_port5d (Overall: NLFAIL) details: + FAIL SMS_D_Ld5_Vnuopc.f19_f19_mg17.PC4.cheyenne_intel.cam-cam4_port5d NLCOMP + SMS_D_Ln9_Vmct.T42_T42.2000_CAM60%SCAM_CLM50%SP_CICE5%PRES_DOCN%DOM_SROF_SGLC_SWAV.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_Vmct.T42_T42.2000_CAM60%SCAM_CLM50%SP_CICE5%PRES_DOCN%DOM_SROF_SGLC_SWAV.cheyenne_intel.cam-outfrq9s NLCOMP + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCts2nudged.cheyenne_intel.cam-outfrq9s_leapday (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCts2nudged.cheyenne_intel.cam-outfrq9s_leapday NLCOMP + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCvbsxHIST.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCvbsxHIST.cheyenne_intel.cam-outfrq9s NLCOMP + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f09_f09_mg17.FSD.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f09_f09_mg17.FSD.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s_waccm_ma_mam4 (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s_waccm_ma_mam4 NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s_waccm_ma_mam4 BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC2000climo.cheyenne_intel.cam-outfrq3s_usecase (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC2000climo.cheyenne_intel.cam-outfrq3s_usecase NLCOMP + SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC5M7.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC5M7.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC5M7.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc_P720x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc_P720x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc_P720x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc_P720x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_Vnuopc_P720x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s NLCOMP + SMS_D_Ln9_Vnuopc_P720x1.ne30pg3_ne30pg3_mg17.FCLTHIST.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_Vnuopc_P720x1.ne30pg3_ne30pg3_mg17.FCLTHIST.cheyenne_intel.cam-outfrq9s NLCOMP + SMS_D_Ln9_Vnuopc.T42_T42.FSCAM.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.T42_T42.FSCAM.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.T42_T42.FSCAM.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_Ld1_Vnuopc.f09_f09_mg17.FW2000climo.cheyenne_intel.cam-outfrq1d (Overall: NLFAIL) details: + FAIL SMS_Ld1_Vnuopc.f09_f09_mg17.FW2000climo.cheyenne_intel.cam-outfrq1d NLCOMP + SMS_Ld1_Vnuopc.f19_f19.F2000dev.cheyenne_intel.cam-outfrq1d (Overall: DIFF) details: + FAIL SMS_Ld1_Vnuopc.f19_f19.F2000dev.cheyenne_intel.cam-outfrq1d NLCOMP + FAIL SMS_Ld1_Vnuopc.f19_f19.F2000dev.cheyenne_intel.cam-outfrq1d BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_Ld1_Vnuopc.ne30pg3_ne30pg3_mg17.FC2010climo.cheyenne_intel.cam-outfrq1d (Overall: NLFAIL) details: + FAIL SMS_Ld1_Vnuopc.ne30pg3_ne30pg3_mg17.FC2010climo.cheyenne_intel.cam-outfrq1d NLCOMP + SMS_Ld5_Vnuopc.f09_f09_mg17.PC6.cheyenne_intel.cam-cam6_port_f09 (Overall: NLFAIL) details: + FAIL SMS_Ld5_Vnuopc.f09_f09_mg17.PC6.cheyenne_intel.cam-cam6_port_f09 NLCOMP + SMS_Lm13_Vnuopc.f10_f10_mg37.F2000climo.cheyenne_intel.cam-outfrq1m (Overall: DIFF) details: + FAIL SMS_Lm13_Vnuopc.f10_f10_mg37.F2000climo.cheyenne_intel.cam-outfrq1m NLCOMP + FAIL SMS_Lm13_Vnuopc.f10_f10_mg37.F2000climo.cheyenne_intel.cam-outfrq1m BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-nudging (Overall: DIFF) details: + FAIL SMS_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-nudging NLCOMP + FAIL SMS_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-nudging BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_Ln9_Vnuopc.f09_f09_mg17.FW1850.cheyenne_intel.cam-reduced_hist3s (Overall: NLFAIL) details: + FAIL SMS_Ln9_Vnuopc.f09_f09_mg17.FW1850.cheyenne_intel.cam-reduced_hist3s NLCOMP + SMS_Ln9_Vnuopc.f19_f19.F2000climo.cheyenne_intel.cam-silhs (Overall: DIFF) details: + FAIL SMS_Ln9_Vnuopc.f19_f19.F2000climo.cheyenne_intel.cam-silhs NLCOMP + FAIL SMS_Ln9_Vnuopc.f19_f19.F2000climo.cheyenne_intel.cam-silhs BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_Ln9_Vnuopc.f19_f19_mg17.FHIST.cheyenne_intel.cam-outfrq9s_nochem (Overall: DIFF) details: + FAIL SMS_Ln9_Vnuopc.f19_f19_mg17.FHIST.cheyenne_intel.cam-outfrq9s_nochem NLCOMP + FAIL SMS_Ln9_Vnuopc.f19_f19_mg17.FHIST.cheyenne_intel.cam-outfrq9s_nochem BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_097: FIELDLIST field lists differ (otherwise bit-for-bit) -izumi/nag/aux_cam: +The NLCOMP failures are due to adding the ndep_stream_nl group to atm_in. +The BASELINE test failures are due to different field list in the cpl.hi files. -izumi/gnu/aux_cam: +izumi/nag/aux_cam: + DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details: + FAIL DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae NLCOMP + FAIL DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=223 + PEND DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae COMPARE_base_da + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-carma_sea_salt (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-carma_sea_salt NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-carma_sea_salt BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_cosp (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_cosp NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_cosp BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_subcol (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_subcol NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_subcol BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_am (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_am NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_am BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_convmic (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_convmic NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_convmic BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_cospsathist (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_cospsathist NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_cospsathist BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QSPCAMS.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QSPCAMS.izumi_nag.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QSPCAMS.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.mpasa480z32_mpasa480.FHS94.izumi_nag.cam-outfrq3s_usecase (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.mpasa480z32_mpasa480.FHS94.izumi_nag.cam-outfrq3s_usecase NLCOMP + ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase NLCOMP + FAIL ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.ne16pg3_ne16pg3_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.ne16pg3_ne16pg3_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase NLCOMP + FAIL ERC_D_Ln9_Vnuopc.ne16pg3_ne16pg3_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-outfrq3s_ttrac (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-outfrq3s_ttrac NLCOMP + FAIL ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-outfrq3s_ttrac BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC4.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC4.izumi_nag.cam-outfrq3s_usecase NLCOMP + FAIL ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC4.izumi_nag.cam-outfrq3s_usecase BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERI_D_Ln18_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac (Overall: DIFF) details: + FAIL ERI_D_Ln18_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac NLCOMP + FAIL ERI_D_Ln18_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERI_D_Ln18_Vnuopc.f19_f19_mg17.QPC6.izumi_nag.cam-ghgrmp_e8 (Overall: DIFF) details: + FAIL ERI_D_Ln18_Vnuopc.f19_f19_mg17.QPC6.izumi_nag.cam-ghgrmp_e8 NLCOMP + FAIL ERI_D_Ln18_Vnuopc.f19_f19_mg17.QPC6.izumi_nag.cam-ghgrmp_e8 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERI_D_Ln18_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq3s_bwic (Overall: NLFAIL) details: + FAIL ERI_D_Ln18_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq3s_bwic NLCOMP + ERI_D_Ln18_Vnuopc.ne5pg3_ne5pg3_mg37.FADIAB.izumi_nag.cam-outfrq3s_bwic (Overall: NLFAIL) details: + FAIL ERI_D_Ln18_Vnuopc.ne5pg3_ne5pg3_mg37.FADIAB.izumi_nag.cam-outfrq3s_bwic NLCOMP + ERP_Ln9_Vmct.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: NLFAIL) details: + FAIL ERP_Ln9_Vmct.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf NLCOMP + ERP_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf NLCOMP + FAIL ERP_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + ERS_Ln27_Vnuopc.ne5pg3_ne5pg3_mg37.FKESSLER.izumi_nag.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERS_Ln27_Vnuopc.ne5pg3_ne5pg3_mg37.FKESSLER.izumi_nag.cam-outfrq9s NLCOMP + ERS_Ln9_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERS_Ln9_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq9s NLCOMP + PEM_D_Ln9_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq3s (Overall: NLFAIL) details: + FAIL PEM_D_Ln9_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq3s NLCOMP + PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ld2_Vnuopc.f45_f45_mg37.PC5.izumi_nag.cam-outfrq24h_port (Overall: NLFAIL) details: + FAIL SMS_D_Ld2_Vnuopc.f45_f45_mg37.PC5.izumi_nag.cam-outfrq24h_port NLCOMP + SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s NLCOMP + FAIL SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln6_Vnuopc.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem (Overall: DIFF) details: + FAIL SMS_D_Ln6_Vnuopc.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem NLCOMP + FAIL SMS_D_Ln6_Vnuopc.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln7_Vnuopc.T42_T42_mg17.QPSCAMC5.izumi_nag.cam-scmarm (Overall: DIFF) details: + FAIL SMS_D_Ln7_Vnuopc.T42_T42_mg17.QPSCAMC5.izumi_nag.cam-scmarm NLCOMP + FAIL SMS_D_Ln7_Vnuopc.T42_T42_mg17.QPSCAMC5.izumi_nag.cam-scmarm BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_P1x1_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq3s (Overall: NLFAIL) details: + FAIL SMS_D_Ln9_P1x1_Vnuopc.ne5_ne5_mg37.FADIAB.izumi_nag.cam-outfrq3s NLCOMP + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-rad_diag_mam (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-rad_diag_mam NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-rad_diag_mam BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_ba (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_ba NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_ba BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_P48x1_D_Ln3_Vnuopc.f09_f09_mg17.QPC6HIST.izumi_nag.cam-outfrq3s_co2cycle_usecase (Overall: DIFF) details: + FAIL SMS_P48x1_D_Ln3_Vnuopc.f09_f09_mg17.QPC6HIST.izumi_nag.cam-outfrq3s_co2cycle_usecase NLCOMP + FAIL SMS_P48x1_D_Ln3_Vnuopc.f09_f09_mg17.QPC6HIST.izumi_nag.cam-outfrq3s_co2cycle_usecase BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + SUB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL SUB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s NLCOMP + FAIL SUB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + TMC_D_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac (Overall: NLFAIL) details: + FAIL TMC_D_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac NLCOMP + TMC_D_Vnuopc.T5_T5_mg37.QPC5.izumi_nag.cam-ghgrmp_e8 (Overall: NLFAIL) details: + FAIL TMC_D_Vnuopc.T5_T5_mg37.QPC5.izumi_nag.cam-ghgrmp_e8 NLCOMP -CAM tag used for the baseline comparison tests if different than previous -tag: +The DAE failure is pre-existing. +The NLCOMP failures are due to adding the ndep_stream_nl group to atm_in. +The BASELINE test failures are due to different field list in the cpl.hi files. -Summarize any changes to answers, i.e., -- what code configurations: -- what platforms/compilers: -- nature of change (roundoff; larger than roundoff but same climate; new - climate): +izumi/gnu/aux_cam: -If bitwise differences were observed, how did you show they were no worse -than roundoff? + ERC_D_Ln9_Vnuopc.f10_f10_mg37.FADIAB.izumi_gnu.cam-terminator (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.FADIAB.izumi_gnu.cam-terminator NLCOMP + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-outfrq3s_unicon (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-outfrq3s_unicon NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-outfrq3s_unicon BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-rad_diag (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-rad_diag NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-rad_diag BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPSPCAMM.izumi_gnu.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPSPCAMM.izumi_gnu.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPSPCAMM.izumi_gnu.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC4.izumi_gnu.cam-outfrq3s_nudging_ne5_L26 (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC4.izumi_gnu.cam-outfrq3s_nudging_ne5_L26 NLCOMP + FAIL ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC4.izumi_gnu.cam-outfrq3s_nudging_ne5_L26 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq3s_ba (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq3s_ba NLCOMP + FAIL ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq3s_ba BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERC_D_Ln9_Vnuopc.ne5pg2_ne5pg2_mg37.FADIAB.izumi_gnu.cam-outfrq3s (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.ne5pg2_ne5pg2_mg37.FADIAB.izumi_gnu.cam-outfrq3s NLCOMP + ERC_D_Ln9_Vnuopc.ne5pg4_ne5pg4_mg37.FADIAB.izumi_gnu.cam-outfrq3s (Overall: NLFAIL) details: + FAIL ERC_D_Ln9_Vnuopc.ne5pg4_ne5pg4_mg37.FADIAB.izumi_gnu.cam-outfrq3s NLCOMP + ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC3.izumi_gnu.cam-outfrq3s_usecase (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC3.izumi_gnu.cam-outfrq3s_usecase NLCOMP + FAIL ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC3.izumi_gnu.cam-outfrq3s_usecase BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERI_D_Ln18_Vnuopc.T5_T5_mg37.QPC4.izumi_gnu.cam-co2rmp (Overall: DIFF) details: + FAIL ERI_D_Ln18_Vnuopc.T5_T5_mg37.QPC4.izumi_gnu.cam-co2rmp NLCOMP + FAIL ERI_D_Ln18_Vnuopc.T5_T5_mg37.QPC4.izumi_gnu.cam-co2rmp BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + ERP_Ln9_Vnuopc.ne5_ne5_mg37.FHS94.izumi_gnu.cam-outfrq9s (Overall: NLFAIL) details: + FAIL ERP_Ln9_Vnuopc.ne5_ne5_mg37.FHS94.izumi_gnu.cam-outfrq9s NLCOMP + ERP_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq9s (Overall: DIFF) details: + FAIL ERP_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq9s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + PEM_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.FADIAB.izumi_gnu.cam-outfrq3s (Overall: NLFAIL) details: + FAIL PEM_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.FADIAB.izumi_gnu.cam-outfrq3s NLCOMP + PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal0 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal0 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal0 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal1 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal1 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal1 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal3 (Overall: DIFF) details: + FAIL PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal3 NLCOMP + FAIL PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal3 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC4.izumi_gnu.cam-scm_prep (Overall: DIFF) details: + FAIL SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC4.izumi_gnu.cam-scm_prep NLCOMP + FAIL SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC4.izumi_gnu.cam-scm_prep BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC6.izumi_gnu.cam-scm_prep_c6 (Overall: DIFF) details: + FAIL SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC6.izumi_gnu.cam-scm_prep_c6 NLCOMP + FAIL SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC6.izumi_gnu.cam-scm_prep_c6 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln3_Vnuopc.f10_f10_mg37.QPMOZ.izumi_gnu.cam-outfrq3s_chemproc (Overall: DIFF) details: + FAIL SMS_D_Ln3_Vnuopc.f10_f10_mg37.QPMOZ.izumi_gnu.cam-outfrq3s_chemproc NLCOMP + FAIL SMS_D_Ln3_Vnuopc.f10_f10_mg37.QPMOZ.izumi_gnu.cam-outfrq3s_chemproc BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-outfrq3s_ttrac (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-outfrq3s_ttrac NLCOMP + FAIL SMS_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-outfrq3s_ttrac BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) + SMS_P48x1_D_Ln9_Vnuopc.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_P48x1_D_Ln9_Vnuopc.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s NLCOMP + FAIL SMS_P48x1_D_Ln9_Vnuopc.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_097_gnu: FIELDLIST field lists differ (otherwise bit-for-bit) -If this tag changes climate describe the run(s) done to evaluate the new -climate in enough detail that it(they) could be reproduced, i.e., -- source tag (all code used must be in the repository): -- platform/compilers: -- configure commandline: -- build-namelist command (or complete namelist): -- MSS location of output: +The NLCOMP failures are due to adding the ndep_stream_nl group to atm_in. +The BASELINE test failures are due to different field list in the cpl.hi files. -MSS location of control simulations used to validate new climate: +CAM tag used for the baseline comparison tests if different than previous +tag: -URL for AMWG diagnostics output used to validate new climate: +Summarize any changes to answers: none. =============================================================== =============================================================== From 72e2913d38dd16cf9e1761bf35d4a8245729f407 Mon Sep 17 00:00:00 2001 From: Brian Eaton Date: Tue, 14 Mar 2023 13:36:48 -0400 Subject: [PATCH 16/16] add full issue path to ChangeLog --- doc/ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index e06fddef18..0f61ec1b0a 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -8,7 +8,8 @@ Github PR URL: https://github.com/ESCOMP/CAM/pull/764 Purpose of changes (include the issue number and title text for each relevant GitHub issue): -. Resolve issue #104 - Always send Nitrogen-deposition to surface components. +. Resolve issue #104 - https://github.com/ESCOMP/CAM/issues/104 + Always send Nitrogen-deposition to surface components. This PR enables CAM to read in ndep (using the CDEPS inline API) from forcing files if it is not computing NDEP prognostically. As a result