From 272bace17c342a825a3a28332563a1ccbfa86eb6 Mon Sep 17 00:00:00 2001 From: duvivier Date: Thu, 11 Oct 2018 13:51:16 -0600 Subject: [PATCH 1/6] updating sst and sss data_type and restore nml settings --- cicecore/cicedynB/general/ice_forcing.F90 | 88 +++++++++++------------ cicecore/cicedynB/general/ice_init.F90 | 42 +++++------ configuration/scripts/ice_in | 6 +- 3 files changed, 68 insertions(+), 68 deletions(-) diff --git a/cicecore/cicedynB/general/ice_forcing.F90 b/cicecore/cicedynB/general/ice_forcing.F90 index 41bcf967e..4627c1d18 100644 --- a/cicecore/cicedynB/general/ice_forcing.F90 +++ b/cicecore/cicedynB/general/ice_forcing.F90 @@ -115,8 +115,8 @@ module ice_forcing ocn_data_format, & ! 'bin'=binary or 'nc'=netcdf atm_data_type, & ! 'default', 'monthly', 'ncar', ! 'LYq' or 'hadgem' or 'oned' - sss_data_type, & ! 'default', 'clim', 'ncar', 'oned' - sst_data_type, & ! 'default', 'clim', 'ncar', 'oned', + bgc_data_type, & ! 'default', 'clim', 'ncar', 'oned' + ocn_data_type, & ! 'default', 'clim', 'ncar', 'oned', ! 'hadgem_sst' or 'hadgem_sst_uvocn' precip_units ! 'mm_per_month', 'mm_per_sec', 'mks' @@ -140,7 +140,7 @@ module ice_forcing ocn_frc_m ! ocn data for 12 months logical (kind=log_kind), public :: & - restore_sst ! restore sst if true + restore_ocn ! restore sst if true integer (kind=int_kind), public :: & trestore ! restoring time scale (days) @@ -253,9 +253,9 @@ subroutine init_forcing_ocn(dt) ! Read sst data for current month, and adjust sst based on freezing ! temperature. No interpolation in time. -! Note: SST is subsequently prognosed if CICE is run with a mixed layer -! ocean (oceanmixed_ice = T), and can be restored to data -! (restore_sst = T). SSS is not prognosed by CICE. +! Note: SST is subsequently prognosed if CICE is run +! with a mixed layer ocean (oceanmixed_ice = T), and can be +! restored to data (restore_ocn = T). use ice_blocks, only: nx_block, ny_block use ice_domain, only: nblocks @@ -300,7 +300,7 @@ subroutine init_forcing_ocn(dt) nbits = 64 ! double precision data - if (restore_sst .or. restore_bgc) then + if (restore_ocn .or. restore_bgc) then if (trestore == 0) then trest = dt ! use data instantaneously else @@ -313,7 +313,7 @@ subroutine init_forcing_ocn(dt) ! initialize to annual climatology created from monthly data !------------------------------------------------------------------- - if (trim(sss_data_type) == 'clim') then + if (trim(bgc_data_type) == 'clim') then sss_file = trim(ocn_data_dir)//'/sss.mm.100x116.da' ! gx3 only @@ -357,14 +357,14 @@ subroutine init_forcing_ocn(dt) if (my_task == master_task) close(nu_forcing) - endif ! sss_data_type + endif ! bgc_data_type !------------------------------------------------------------------- ! Sea surface temperature (SST) ! initialize to data for current month !------------------------------------------------------------------- - if (trim(sst_data_type) == 'clim') then + if (trim(ocn_data_type) == 'clim') then if (nx_global == 320) then ! gx1 sst_file = trim(ocn_data_dir)//'/sst_clim_hurrell.dat' @@ -399,8 +399,8 @@ subroutine init_forcing_ocn(dt) endif ! init_sst_data - if (trim(sst_data_type) == 'hadgem_sst' .or. & - trim(sst_data_type) == 'hadgem_sst_uvocn') then + if (trim(ocn_data_type) == 'hadgem_sst' .or. & + trim(ocn_data_type) == 'hadgem_sst_uvocn') then diag = .true. ! write diagnostic information @@ -431,10 +431,10 @@ subroutine init_forcing_ocn(dt) enddo !$OMP END PARALLEL DO - endif ! sst_data_type + endif ! ocn_data_type - if (trim(sst_data_type) == 'ncar' .or. & - trim(sss_data_type) == 'ncar') then + if (trim(ocn_data_type) == 'ncar' .or. & + trim(bgc_data_type) == 'ncar') then ! call ocn_data_ncar_init call ocn_data_ncar_init_3D endif @@ -603,19 +603,19 @@ subroutine get_forcing_ocn (dt) character(len=*), parameter :: subname = '(get_forcing_ocn)' - if (trim(sst_data_type) == 'clim' .or. & - trim(sss_data_type) == 'clim') then + if (trim(ocn_data_type) == 'clim' .or. & + trim(bgc_data_type) == 'clim') then call ocn_data_clim(dt) - elseif (trim(sst_data_type) == 'ncar' .or. & - trim(sss_data_type) == 'ncar'.or. & - trim(sst_data_type) == 'ISPOL' .or. & - trim(sss_data_type) == 'ISPOL') then + elseif (trim(ocn_data_type) == 'ncar' .or. & + trim(bgc_data_type) == 'ncar'.or. & + trim(ocn_data_type) == 'ISPOL' .or. & + trim(bgc_data_type) == 'ISPOL') then call ocn_data_ncar(dt) - elseif (trim(sst_data_type) == 'hadgem_sst' .or. & - trim(sst_data_type) == 'hadgem_sst_uvocn') then + elseif (trim(ocn_data_type) == 'hadgem_sst' .or. & + trim(ocn_data_type) == 'hadgem_sst_uvocn') then call ocn_data_hadgem(dt) - elseif (trim(sst_data_type) == 'oned' .or. & - trim(sss_data_type) == 'oned') then + elseif (trim(ocn_data_type) == 'oned' .or. & + trim(bgc_data_type) == 'oned') then call ocn_data_oned endif @@ -3080,16 +3080,16 @@ subroutine ocn_data_clim (dt) character(len=*), parameter :: subname = '(ocn_data_clim)' if (my_task == master_task .and. istep == 1) then - if (trim(sss_data_type)=='clim') then + if (trim(bgc_data_type)=='clim') then write (nu_diag,*) ' ' write (nu_diag,*) 'SSS data interpolated to timestep:' write (nu_diag,*) trim(sss_file) endif - if (trim(sst_data_type)=='clim') then + if (trim(ocn_data_type)=='clim') then write (nu_diag,*) ' ' write (nu_diag,*) 'SST data interpolated to timestep:' write (nu_diag,*) trim(sst_file) - if (restore_sst) write (nu_diag,*) & + if (restore_ocn) write (nu_diag,*) & 'SST restoring timescale (days) =', trestore endif endif ! my_task, istep @@ -3101,8 +3101,8 @@ subroutine ocn_data_clim (dt) ! month. !------------------------------------------------------------------- - if (trim(sss_data_type)=='clim' .or. & - trim(sst_data_type)=='clim') then + if (trim(bgc_data_type)=='clim' .or. & + trim(ocn_data_type)=='clim') then midmonth = 15 ! data is given on 15th of every month !!! midmonth = fix(p5 * real(daymo(month))) ! exact middle @@ -3128,14 +3128,14 @@ subroutine ocn_data_clim (dt) readm = .false. if (istep==1 .or. (mday==midmonth .and. sec==0)) readm = .true. - endif ! sss/sst_data_type + endif ! bgc/ocn_data_type !------------------------------------------------------------------- ! Read two monthly SSS values and interpolate. ! Note: SSS is restored instantaneously to data. !------------------------------------------------------------------- - if (trim(sss_data_type)=='clim') then + if (trim(bgc_data_type)=='clim') then call read_clim_data (readm, 0, ixm, month, ixp, & sss_file, sss_data, & field_loc_center, field_type_scalar) @@ -3159,13 +3159,13 @@ subroutine ocn_data_clim (dt) ! Restore toward interpolated value. !------------------------------------------------------------------- - if (trim(sst_data_type)=='clim') then + if (trim(ocn_data_type)=='clim') then call read_clim_data (readm, 0, ixm, month, ixp, & sst_file, sst_data, & field_loc_center, field_type_scalar) call interpolate_data (sst_data, sstdat) - if (restore_sst) then + if (restore_ocn) then !$OMP PARALLEL DO PRIVATE(iblk,i,j) do iblk = 1, nblocks do j = 1, ny_block @@ -3248,7 +3248,7 @@ subroutine ocn_data_ncar_init write (nu_diag,*) 'WARNING: not data from ocean forcing file.' write (nu_diag,*) 'WARNING: Alter ice_dyn_evp.F90 if desired.' - if (restore_sst) write (nu_diag,*) & + if (restore_ocn) write (nu_diag,*) & 'SST restoring timescale = ',trestore,' days' sst_file = trim(ocn_data_dir)//'/'//trim(oceanmixed_file) ! not just sst @@ -3400,7 +3400,7 @@ subroutine ocn_data_ncar_init_3D write (nu_diag,*) 'WARNING: not data from ocean forcing file.' write (nu_diag,*) 'WARNING: Alter ice_dyn_evp.F if desired.' - if (restore_sst) write (nu_diag,*) & + if (restore_ocn) write (nu_diag,*) & 'SST restoring timescale = ',trestore,' days' sst_file = trim(ocn_data_dir)//'/'//trim(oceanmixed_file) ! not just sst @@ -3604,7 +3604,7 @@ subroutine ocn_data_ncar(dt) call ocn_freezing_temperature - if (restore_sst) then + if (restore_ocn) then do j = 1, ny_block do i = 1, nx_block sst(i,j,:) = sst(i,j,:) + (work1(i,j,:)-sst(i,j,:))*dt/trest @@ -3705,7 +3705,7 @@ end subroutine ocn_data_oned subroutine ocn_data_hadgem(dt) ! Reads in HadGEM ocean forcing data as required from netCDF files -! Current options (selected by sst_data_type) +! Current options (selected by ocn_data_type) ! hadgem_sst: read in sst only ! hadgem_sst_uvocn: read in sst plus uocn and vocn @@ -3776,9 +3776,9 @@ subroutine ocn_data_hadgem(dt) write (nu_diag,*) ' ' write (nu_diag,*) 'SST data interpolated to timestep:' write (nu_diag,*) trim(ocn_data_dir)//'/MONTHLY/sst.1997.nc' - if (restore_sst) write (nu_diag,*) & + if (restore_ocn) write (nu_diag,*) & 'SST restoring timescale (days) =', trestore - if (trim(sst_data_type)=='hadgem_sst_uvocn') then + if (trim(ocn_data_type)=='hadgem_sst_uvocn') then write (nu_diag,*) ' ' write (nu_diag,*) 'uocn and vocn interpolated to timestep:' write (nu_diag,*) trim(ocn_data_dir)//'/MONTHLY/uocn.1997.nc' @@ -3799,7 +3799,7 @@ subroutine ocn_data_hadgem(dt) call interpolate_data (sst_data, sstdat) ! Restore SSTs if required - if (restore_sst) then + if (restore_ocn) then !$OMP PARALLEL DO PRIVATE(iblk,i,j) do iblk = 1, nblocks do j = 1, ny_block @@ -3821,7 +3821,7 @@ subroutine ocn_data_hadgem(dt) ! Also need to be converted from cm s-1 (UM) to m s-1 (CICE) ! ----------------------------------------------------------- - if (trim(sst_data_type)=='hadgem_sst_uvocn') then + if (trim(ocn_data_type)=='hadgem_sst_uvocn') then filename = trim(ocn_data_dir)//'/MONTHLY/uocn.1997.nc' fieldname='uocn' @@ -3873,7 +3873,7 @@ subroutine ocn_data_hadgem(dt) call t2ugrid_vector(uocn) call t2ugrid_vector(vocn) - endif ! sst_data_type = hadgem_sst_uvocn + endif ! ocn_data_type = hadgem_sst_uvocn end subroutine ocn_data_hadgem @@ -4356,7 +4356,7 @@ subroutine ocn_data_ispol_init if (my_task == master_task) then - if (restore_sst) write (nu_diag,*) & + if (restore_ocn) write (nu_diag,*) & 'SST restoring timescale = ',trestore,' days' sst_file = trim(ocn_data_dir)//'/'//trim(oceanmixed_file) ! not just sst diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 4d9436b80..f641dfe97 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -79,8 +79,8 @@ subroutine input_data ycycle, fyear_init, dbug, & atm_data_type, atm_data_dir, precip_units, & atm_data_format, ocn_data_format, & - sss_data_type, sst_data_type, ocn_data_dir, & - oceanmixed_file, restore_sst, trestore + bgc_data_type, ocn_data_type, ocn_data_dir, & + oceanmixed_file, restore_ocn, trestore use ice_grid, only: grid_file, gridcpl_file, kmt_file, grid_type, grid_format use ice_dyn_shared, only: ndte, kdyn, revised_evp, yield_curve, & basalstress, Ktens, e_ratio @@ -176,8 +176,8 @@ subroutine input_data atm_data_type, atm_data_dir, calc_strair, calc_Tsfc, & precip_units, update_ocn_f, l_mpond_fresh, ustar_min, & fbot_xfer_type, emissivity, & - oceanmixed_ice, ocn_data_format, sss_data_type, sst_data_type, & - ocn_data_dir, oceanmixed_file, restore_sst, trestore, & + oceanmixed_ice, ocn_data_format, bgc_data_type, ocn_data_type, & + ocn_data_dir, oceanmixed_file, restore_ocn, trestore, & restore_ice, formdrag, highfreq, natmiter, & tfrz_option @@ -323,11 +323,11 @@ subroutine input_data tfrz_option = 'mushy' ! freezing temp formulation oceanmixed_ice = .false. ! if true, use internal ocean mixed layer ocn_data_format = 'bin' ! file format ('bin'=binary or 'nc'=netcdf) - sss_data_type = 'default' - sst_data_type = 'default' + bgc_data_type = 'default' + ocn_data_type = 'default' ocn_data_dir = ' ' oceanmixed_file = 'unknown_oceanmixed_file' ! ocean forcing data - restore_sst = .false. ! restore sst if true + restore_ocn = .false. ! restore sst if true trestore = 90 ! restoring timescale, days (0 instantaneous) restore_ice = .false. ! restore ice state on grid edges if true dbug = .false. ! true writes diagnostics for input forcing @@ -574,11 +574,11 @@ subroutine input_data call broadcast_scalar(oceanmixed_ice, master_task) call broadcast_scalar(tfrz_option, master_task) call broadcast_scalar(ocn_data_format, master_task) - call broadcast_scalar(sss_data_type, master_task) - call broadcast_scalar(sst_data_type, master_task) + call broadcast_scalar(bgc_data_type, master_task) + call broadcast_scalar(ocn_data_type, master_task) call broadcast_scalar(ocn_data_dir, master_task) call broadcast_scalar(oceanmixed_file, master_task) - call broadcast_scalar(restore_sst, master_task) + call broadcast_scalar(restore_ocn, master_task) call broadcast_scalar(trestore, master_task) call broadcast_scalar(restore_ice, master_task) call broadcast_scalar(dbug, master_task) @@ -1048,25 +1048,25 @@ subroutine input_data oceanmixed_ice write(nu_diag,*) ' tfrz_option = ', & trim(tfrz_option) - if (trim(sss_data_type) == 'ncar' .or. & - trim(sst_data_type) == 'ncar') then + if (trim(bgc_data_type) == 'ncar' .or. & + trim(ocn_data_type) == 'ncar') then write(nu_diag,*) ' oceanmixed_file = ', & trim(oceanmixed_file) endif - write(nu_diag,*) ' sss_data_type = ', & - trim(sss_data_type) - write(nu_diag,*) ' sst_data_type = ', & - trim(sst_data_type) - if (trim(sss_data_type) /= 'default' .or. & - trim(sst_data_type) /= 'default') then + write(nu_diag,*) ' bgc_data_type = ', & + trim(bgc_data_type) + write(nu_diag,*) ' ocn_data_type = ', & + trim(ocn_data_type) + if (trim(bgc_data_type) /= 'default' .or. & + trim(ocn_data_type) /= 'default') then write(nu_diag,*) ' ocn_data_dir = ', & trim(ocn_data_dir) - write(nu_diag,1010) ' restore_sst = ', & - restore_sst + write(nu_diag,1010) ' restore_ocn = ', & + restore_ocn endif write(nu_diag,1010) ' restore_ice = ', & restore_ice - if (restore_ice .or. restore_sst) & + if (restore_ice .or. restore_ocn) & write(nu_diag,1020) ' trestore = ', trestore #ifdef coupled diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index c5972a1df..cdb13c698 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -165,11 +165,11 @@ tfrz_option = 'mushy' oceanmixed_ice = .true. ocn_data_format = 'bin' - sss_data_type = 'default' - sst_data_type = 'default' + bgc_data_type = 'default' + ocn_data_type = 'default' ocn_data_dir = 'unknown_ocn_data_dir' oceanmixed_file = 'unknown_oceanmixed_file' - restore_sst = .false. + restore_ocn = .false. trestore = 90 restore_ice = .false. / From a6319745ef61f68718f23c8c31e0d7d51b0970c1 Mon Sep 17 00:00:00 2001 From: duvivier Date: Thu, 11 Oct 2018 16:05:58 -0600 Subject: [PATCH 2/6] adding default_season to the namelist --- cicecore/cicedynB/general/ice_flux.F90 | 81 ++++++++++++-------------- cicecore/cicedynB/general/ice_init.F90 | 25 ++++---- configuration/scripts/ice_in | 37 ++++++------ 3 files changed, 69 insertions(+), 74 deletions(-) diff --git a/cicecore/cicedynB/general/ice_flux.F90 b/cicecore/cicedynB/general/ice_flux.F90 index 2d0797ef6..be06417d1 100644 --- a/cicecore/cicedynB/general/ice_flux.F90 +++ b/cicecore/cicedynB/general/ice_flux.F90 @@ -28,6 +28,9 @@ module ice_flux public :: init_coupler_flux, init_history_therm, init_history_dyn, & init_flux_ocn, init_flux_atm, scale_fluxes, alloc_flux + character (char_len), public :: & + default_season ! seasonal default values for forcing + !----------------------------------------------------------------- ! Dynamics component !----------------------------------------------------------------- @@ -529,22 +532,9 @@ subroutine init_coupler_flux integer (kind=int_kind) :: n -#ifdef CESMCOUPLED - logical (kind=log_kind), parameter :: & - l_winter = .false. , & ! winter/summer default switch - l_spring = .false. ! spring example -#else - logical (kind=log_kind), parameter :: & - l_winter = .true. , & ! winter/summer default switch - l_spring = .false. ! spring example -#endif - - real (kind=dbl_kind) :: fcondtopn_d(6), fsurfn_d(6), & - stefan_boltzmann, & - Tffresh, & - vonkar, & - zref, & - iceruf + real (kind=dbl_kind) :: fcondtopn_d(6), fsurfn_d(6) + real (kind=dbl_kind) :: stefan_boltzmann, Tffresh + real (kind=dbl_kind) :: vonkar, zref, iceruf integer :: i, j, iblk @@ -572,24 +562,8 @@ subroutine init_coupler_flux stray (:,:,:) = 0.05_dbl_kind fsnow (:,:,:) = c0 ! snowfall rate (kg/m2/s) ! fsnow must be 0 for exact restarts - if (l_spring) then - !typical spring values - potT (:,:,:) = 263.15_dbl_kind ! air potential temp (K) - Tair (:,:,:) = 263.15_dbl_kind ! air temperature (K) - Qa (:,:,:) = 0.001_dbl_kind ! specific humidity (kg/kg) - swvdr (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) - swvdf (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) - swidr (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) - swidf (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) - flw (:,:,:) = 230.0_dbl_kind ! incoming longwave rad (W/m^2) - do n = 1, ncat ! surface heat flux (W/m^2) - fsurfn_f(:,:,n,:) = fsurfn_d(n) - enddo - fcondtopn_f(:,:,:,:) = 0.0_dbl_kind ! conductive heat flux (W/m^2) - flatn_f(:,:,:,:) = -1.0_dbl_kind ! latent heat flux (W/m^2) - fsensn_f(:,:,:,:) = c0 ! sensible heat flux (W/m^2) - elseif (l_winter) then - !typical winter values + if (trim(default_season) == 'winter') then + ! typical winter values potT (:,:,:) = 253.0_dbl_kind ! air potential temp (K) Tair (:,:,:) = 253.0_dbl_kind ! air temperature (K) Qa (:,:,:) = 0.0006_dbl_kind ! specific humidity (kg/kg) @@ -599,14 +573,14 @@ subroutine init_coupler_flux swidf (:,:,:) = c0 ! shortwave radiation (W/m^2) flw (:,:,:) = c180 ! incoming longwave rad (W/m^2) frain (:,:,:) = c0 ! rainfall rate (kg/m2/s) - do n = 1, ncat ! conductive heat flux (W/m^2) + do n = 1, ncat ! conductive heat flux (W/m^2) fcondtopn_f(:,:,n,:) = fcondtopn_d(n) enddo - fsurfn_f = fcondtopn_f ! surface heat flux (W/m^2) - flatn_f(:,:,:,:) = c0 ! latent heat flux (kg/m2/s) - fsensn_f(:,:,:,:) = c0 ! sensible heat flux (W/m^2) - else - !typical summer values + fsurfn_f = fcondtopn_f ! surface heat flux (W/m^2) + flatn_f (:,:,:,:) = c0 ! latent heat flux (kg/m2/s) + fsensn_f(:,:,:,:) = c0 ! sensible heat flux (W/m^2) + elseif (trim(default_season) == 'summer') then + ! typical summer values potT (:,:,:) = 273.0_dbl_kind ! air potential temp (K) Tair (:,:,:) = 273.0_dbl_kind ! air temperature (K) Qa (:,:,:) = 0.0035_dbl_kind ! specific humidity (kg/kg) @@ -616,13 +590,30 @@ subroutine init_coupler_flux swidf (:,:,:) = 50._dbl_kind ! shortwave radiation (W/m^2) flw (:,:,:) = 280.0_dbl_kind ! incoming longwave rad (W/m^2) frain (:,:,:) = c0 ! rainfall rate (kg/m2/s) - do n = 1, ncat ! surface heat flux (W/m^2) + do n = 1, ncat ! surface heat flux (W/m^2) + fsurfn_f(:,:,n,:) = fsurfn_d(n) + enddo + fcondtopn_f(:,:,:,:) = 0.0_dbl_kind ! conductive heat flux (W/m^2) + flatn_f (:,:,:,:) = -2.0_dbl_kind ! latent heat flux (W/m^2) + fsensn_f (:,:,:,:) = c0 ! sensible heat flux (W/m^2) + else + ! typical spring values + potT (:,:,:) = 263.15_dbl_kind ! air potential temp (K) + Tair (:,:,:) = 263.15_dbl_kind ! air temperature (K) + Qa (:,:,:) = 0.001_dbl_kind ! specific humidity (kg/kg) + swvdr (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) + swvdf (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) + swidr (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) + swidf (:,:,:) = 25._dbl_kind ! shortwave radiation (W/m^2) + flw (:,:,:) = 230.0_dbl_kind ! incoming longwave rad (W/m^2) + frain (:,:,:) = c0 ! rainfall rate (kg/m2/s) + do n = 1, ncat ! surface heat flux (W/m^2) fsurfn_f(:,:,n,:) = fsurfn_d(n) enddo - fcondtopn_f(:,:,:,:) = 0.0_dbl_kind ! conductive heat flux (W/m^2) - flatn_f(:,:,:,:) = -2.0_dbl_kind ! latent heat flux (W/m^2) - fsensn_f(:,:,:,:) = c0 ! sensible heat flux (W/m^2) - endif ! l_winter + fcondtopn_f(:,:,:,:) = c0 ! conductive heat flux (W/m^2) + flatn_f (:,:,:,:) = -1.0_dbl_kind ! latent heat flux (W/m^2) + fsensn_f (:,:,:,:) = c0 ! sensible heat flux (W/m^2) + endif ! faero_atm (:,:,:,:) = c0 ! aerosol deposition rate (kg/m2/s) flux_bio_atm (:,:,:,:) = c0 ! zaero and bio deposition rate (kg/m2/s) diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index f641dfe97..1380502ca 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -74,6 +74,7 @@ subroutine input_data use ice_history_shared, only: hist_avg, history_dir, history_file, & incond_dir, incond_file, version_name use ice_flux, only: update_ocn_f, l_mpond_fresh + use ice_flux, only: default_season use ice_flux_bgc, only: cpl_bgc use ice_forcing, only: & ycycle, fyear_init, dbug, & @@ -104,7 +105,7 @@ subroutine input_data ahmax, R_ice, R_pnd, R_snw, dT_mlt, rsnw_mlt, emissivity, & mu_rdg, hs0, dpscale, rfracmin, rfracmax, pndaspect, hs1, hp1, & a_rapid_mode, Rac_rapid_mode, aspect_rapid_mode, dSdt_slow_mode, & - phi_c_slow_mode, phi_i_mushy, kalg + phi_c_slow_mode, phi_i_mushy, kalg integer (kind=int_kind) :: ktherm, kstrength, krdg_partic, krdg_redist, natmiter, & kitd, kcatbound @@ -172,14 +173,14 @@ subroutine input_data hp1 namelist /forcing_nml/ & - atmbndy, fyear_init, ycycle, atm_data_format,& - atm_data_type, atm_data_dir, calc_strair, calc_Tsfc, & - precip_units, update_ocn_f, l_mpond_fresh, ustar_min, & - fbot_xfer_type, emissivity, & - oceanmixed_ice, ocn_data_format, bgc_data_type, ocn_data_type, & - ocn_data_dir, oceanmixed_file, restore_ocn, trestore, & - restore_ice, formdrag, highfreq, natmiter, & - tfrz_option + atmbndy, calc_strair, calc_Tsfc, update_ocn_f, & + l_mpond_fresh, ustar_min, fbot_xfer_type, oceanmixed_ice, & + emissivity, formdrag, highfreq, natmiter, & + tfrz_option, default_season, precip_units, fyear_init, & + ycycle, restore_ocn, trestore, restore_ice, & + atm_data_type, ocn_data_type, bgc_data_type, & + atm_data_format, ocn_data_format, oceanmixed_file, & + atm_data_dir, ocn_data_dir namelist /tracer_nml/ & tr_iage, restart_age, & @@ -308,7 +309,7 @@ subroutine input_data albsnowi = 0.70_dbl_kind ! cold snow albedo, near IR ahmax = 0.3_dbl_kind ! thickness above which ice albedo is constant (m) atmbndy = 'default' ! or 'constant' - + default_season = 'winter' ! default forcing data, if data is not read in fyear_init = 1900 ! first year of forcing cycle ycycle = 1 ! number of years in forcing cycle atm_data_format = 'bin' ! file format ('bin'=binary or 'nc'=netcdf) @@ -1036,7 +1037,9 @@ subroutine input_data trim(atm_data_dir) write(nu_diag,*) ' precip_units = ', & trim(precip_units) - endif + elseif (trim(atm_data_type)=='default') then + write(nu_diag,*) ' default_season = ', trim(default_season) + endif write(nu_diag,1010) ' update_ocn_f = ', update_ocn_f write(nu_diag,1010) ' l_mpond_fresh = ', l_mpond_fresh diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index cdb13c698..028e7cfbf 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -145,33 +145,34 @@ / &forcing_nml - formdrag = .false. atmbndy = 'default' - fyear_init = 1997 - ycycle = 1 - atm_data_format = 'bin' - atm_data_type = 'ncar' - atm_data_dir = '/glade/u/home/tcraig/cice_data/' calc_strair = .true. - highfreq = .false. - natmiter = 5 calc_Tsfc = .true. - precip_units = 'mm_per_month' - ustar_min = 0.0005 - emissivity = 0.95 - fbot_xfer_type = 'constant' update_ocn_f = .false. l_mpond_fresh = .false. - tfrz_option = 'mushy' + ustar_min = 0.0005 + fbot_xfer_type = 'constant' oceanmixed_ice = .true. - ocn_data_format = 'bin' - bgc_data_type = 'default' - ocn_data_type = 'default' - ocn_data_dir = 'unknown_ocn_data_dir' - oceanmixed_file = 'unknown_oceanmixed_file' + emissivity = 0.95 + formdrag = .false. + highfreq = .false. + natmiter = 5 + tfrz_option = 'mushy' + default_season = 'winter' + precip_units = 'mm_per_month' + fyear_init = 1997 + ycycle = 1 restore_ocn = .false. trestore = 90 restore_ice = .false. + atm_data_type = 'ncar' + ocn_data_type = 'default' + bgc_data_type = 'default' + atm_data_format = 'bin' + ocn_data_format = 'bin' + oceanmixed_file = 'unknown_oceanmixed_file' + atm_data_dir = '/glade/u/home/tcraig/cice_data/' + ocn_data_dir = 'unknown_ocn_data_dir' / &domain_nml From be1b9219367bf65ee0cb3749831fc480d883a5d6 Mon Sep 17 00:00:00 2001 From: duvivier Date: Thu, 11 Oct 2018 16:37:16 -0600 Subject: [PATCH 3/6] changing radiation namelist value names --- cicecore/cicedynB/general/ice_init.F90 | 4 ++-- configuration/scripts/ice_in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 1380502ca..93f0d958d 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -276,8 +276,8 @@ subroutine input_data Ktens = 0.0_dbl_kind ! T=Ktens*P (tensile strength: see Konig and Holland, 2010) e_ratio = 2.0_dbl_kind ! EVP ellipse aspect ratio advection = 'remap' ! incremental remapping transport scheme - shortwave = 'default' ! 'default' or 'dEdd' (delta-Eddington) - albedo_type = 'default'! or 'constant' + shortwave = 'ccsm3' ! 'ccsm3' or 'dEdd' (delta-Eddington) + albedo_type = 'ccsm3' ! 'ccsm3' or 'constant' ktherm = 1 ! 0 = 0-layer, 1 = BL99, 2 = mushy thermo conduct = 'bubbly' ! 'MU71' or 'bubbly' (Pringle et al 2007) calc_Tsfc = .true. ! calculate surface temperature diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index 028e7cfbf..94fc50217 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -119,7 +119,7 @@ &shortwave_nml shortwave = 'dEdd' - albedo_type = 'default' + albedo_type = 'ccsm3' albicev = 0.78 albicei = 0.36 albsnowv = 0.98 From 85126233106355a05c68f0c05154f3079ed72631 Mon Sep 17 00:00:00 2001 From: duvivier Date: Mon, 15 Oct 2018 12:33:07 -0600 Subject: [PATCH 4/6] updates to doc and zbgc namelist --- cicecore/cicedynB/general/ice_init.F90 | 26 ++++++++-- cicecore/shared/ice_init_column.F90 | 27 +--------- configuration/scripts/ice_in | 10 ++-- doc/source/cice_index.rst | 11 +++-- doc/source/user_guide/ug_case_settings.rst | 57 +++++++++++----------- 5 files changed, 64 insertions(+), 67 deletions(-) diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 93f0d958d..69d4b84ce 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -80,8 +80,11 @@ subroutine input_data ycycle, fyear_init, dbug, & atm_data_type, atm_data_dir, precip_units, & atm_data_format, ocn_data_format, & - bgc_data_type, ocn_data_type, ocn_data_dir, & + bgc_data_type, & + ocn_data_type, ocn_data_dir, & oceanmixed_file, restore_ocn, trestore + use ice_arrays_column, only: bgc_data_dir, & + sil_data_type, nit_data_type, fe_data_type use ice_grid, only: grid_file, gridcpl_file, kmt_file, grid_type, grid_format use ice_dyn_shared, only: ndte, kdyn, revised_evp, yield_curve, & basalstress, Ktens, e_ratio @@ -179,8 +182,9 @@ subroutine input_data tfrz_option, default_season, precip_units, fyear_init, & ycycle, restore_ocn, trestore, restore_ice, & atm_data_type, ocn_data_type, bgc_data_type, & + sil_data_type, nit_data_type, fe_data_type, & atm_data_format, ocn_data_format, oceanmixed_file, & - atm_data_dir, ocn_data_dir + atm_data_dir, ocn_data_dir, bgc_data_dir namelist /tracer_nml/ & tr_iage, restart_age, & @@ -325,8 +329,12 @@ subroutine input_data oceanmixed_ice = .false. ! if true, use internal ocean mixed layer ocn_data_format = 'bin' ! file format ('bin'=binary or 'nc'=netcdf) bgc_data_type = 'default' + sil_data_type = 'default' + nit_data_type = 'default' + fe_data_type = 'default' + bgc_data_dir = 'unknown_bgc_data_dir' ocn_data_type = 'default' - ocn_data_dir = ' ' + ocn_data_dir = 'unknown_ocn_data_dir' oceanmixed_file = 'unknown_oceanmixed_file' ! ocean forcing data restore_ocn = .false. ! restore sst if true trestore = 90 ! restoring timescale, days (0 instantaneous) @@ -576,6 +584,10 @@ subroutine input_data call broadcast_scalar(tfrz_option, master_task) call broadcast_scalar(ocn_data_format, master_task) call broadcast_scalar(bgc_data_type, master_task) + call broadcast_scalar(sil_data_type, master_task) + call broadcast_scalar(nit_data_type, master_task) + call broadcast_scalar(fe_data_type, master_task) + call broadcast_scalar(bgc_data_dir, master_task) call broadcast_scalar(ocn_data_type, master_task) call broadcast_scalar(ocn_data_dir, master_task) call broadcast_scalar(oceanmixed_file, master_task) @@ -1058,6 +1070,14 @@ subroutine input_data endif write(nu_diag,*) ' bgc_data_type = ', & trim(bgc_data_type) + write(nu_diag,*) ' sil_data_type = ', & + trim(sil_data_type) + write(nu_diag,*) ' nit_data_type = ', & + trim(nit_data_type) + write(nu_diag,*) ' fe_data_type = ', & + trim(fe_data_type) + write(nu_diag,*) ' bgc_data_dir = ', & + trim(bgc_data_dir) write(nu_diag,*) ' ocn_data_type = ', & trim(ocn_data_type) if (trim(bgc_data_type) /= 'default' .or. & diff --git a/cicecore/shared/ice_init_column.F90 b/cicecore/shared/ice_init_column.F90 index 552ad699e..cedad53ec 100644 --- a/cicecore/shared/ice_init_column.F90 +++ b/cicecore/shared/ice_init_column.F90 @@ -1038,7 +1038,6 @@ subroutine init_zbgc tr_brine, restart_hbrine, tr_zaero, modal_aero, skl_bgc, & z_tracers, dEdd_algae, solve_zbgc, bgc_flux_type, & restore_bgc, restart_bgc, scale_bgc, solve_zsal, restart_zsal, & - bgc_data_dir, sil_data_type, nit_data_type, fe_data_type, & tr_bgc_Nit, tr_bgc_C, tr_bgc_chl, tr_bgc_Am, tr_bgc_Sil, & tr_bgc_DMS, tr_bgc_PON, tr_bgc_hum, tr_bgc_DON, tr_bgc_Fe, & grid_o, grid_o_t, l_sk, grid_oS, & @@ -1097,10 +1096,6 @@ subroutine init_zbgc modal_aero = .false. ! use modal aerosol treatment of aerosols restore_bgc = .false. ! restore bgc if true solve_zsal = .false. ! update salinity tracer profile from solve_S_dt - bgc_data_dir = 'unknown_bgc_data_dir' - sil_data_type = 'default' - nit_data_type = 'default' - fe_data_type = 'default' restart_bgc = .false. ! biogeochemistry restart restart_zsal = .false. ! salinity restart restart_hbrine = .false. ! hbrine restart @@ -1438,10 +1433,6 @@ subroutine init_zbgc call broadcast_scalar(restart_bgc, master_task) call broadcast_scalar(bgc_flux_type, master_task) call broadcast_scalar(restore_bgc, master_task) - call broadcast_scalar(bgc_data_dir, master_task) - call broadcast_scalar(sil_data_type, master_task) - call broadcast_scalar(nit_data_type, master_task) - call broadcast_scalar(fe_data_type, master_task) call broadcast_scalar(tr_bgc_N, master_task) call broadcast_scalar(tr_bgc_C, master_task) call broadcast_scalar(tr_bgc_chl, master_task) @@ -2230,14 +2221,6 @@ subroutine init_zbgc write(nu_diag,1030) ' bgc_flux_type = ', bgc_flux_type write(nu_diag,1010) ' restart_bgc = ', restart_bgc write(nu_diag,1010) ' restore_bgc = ', restore_bgc - write(nu_diag,*) ' bgc_data_dir = ', & - trim(bgc_data_dir) - write(nu_diag,*) ' sil_data_type = ', & - trim(sil_data_type) - write(nu_diag,*) ' nit_data_type = ', & - trim(nit_data_type) - write(nu_diag,*) ' fe_data_type = ', & - trim(fe_data_type) write(nu_diag,1020) ' number of bio tracers = ', nbtrcr write(nu_diag,1020) ' number of Isw tracers = ', nbtrcr_sw write(nu_diag,1020) ' number of autotrophs = ', n_algae @@ -2259,15 +2242,7 @@ subroutine init_zbgc write(nu_diag,1010) ' tr_bgc_Fe = ', tr_bgc_Fe elseif (z_tracers) then - - write(nu_diag,*) ' sil_data_type = ', & - trim(sil_data_type) - write(nu_diag,*) ' nit_data_type = ', & - trim(nit_data_type) - write(nu_diag,*) ' fe_data_type = ', & - trim(fe_data_type) - write(nu_diag,*) ' bgc_data_dir = ', & - trim(bgc_data_dir) + write(nu_diag,1010) ' restart_bgc = ', restart_bgc write(nu_diag,1010) ' dEdd_algae = ', dEdd_algae write(nu_diag,1010) ' modal_aero = ', modal_aero diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index 94fc50217..9a2121a3a 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -168,11 +168,15 @@ atm_data_type = 'ncar' ocn_data_type = 'default' bgc_data_type = 'default' + sil_data_type = 'default' + nit_data_type = 'default' + fe_data_type = 'default' atm_data_format = 'bin' ocn_data_format = 'bin' oceanmixed_file = 'unknown_oceanmixed_file' atm_data_dir = '/glade/u/home/tcraig/cice_data/' - ocn_data_dir = 'unknown_ocn_data_dir' + ocn_data_dir = '/unknown_ocn_data_dir' + bgc_data_dir = '/uknown_bgc_data_dir' / &domain_nml @@ -207,10 +211,6 @@ scale_bgc = .false. solve_zsal = .false. restart_zsal = .false. - bgc_data_dir = '/uknown_bgc_data_dir' - sil_data_type = 'default' - nit_data_type = 'default' - fe_data_type = 'default' tr_bgc_Nit = .true. tr_bgc_C = .true. tr_bgc_chl = .false. diff --git a/doc/source/cice_index.rst b/doc/source/cice_index.rst index be5e3bc70..c82c3c94a 100644 --- a/doc/source/cice_index.rst +++ b/doc/source/cice_index.rst @@ -33,7 +33,7 @@ either Celsius or Kelvin units). "aice_init", "concentration of ice at beginning of timestep", "" "aice0", "fractional open water area", "" "aice(n)", "total concentration of ice in grid cell (in category n)", "" - "albedo_type", ":math:`\bullet` type of albedo parameterization (‘default’ or ‘constant’)", "" + "albedo_type", ":math:`\bullet` type of albedo parameterization (‘ccsm3’ or ‘constant’)", "" "albcnt", "counter for averaging albedo", "" "albice", "bare ice albedo", "" "albicei", ":math:`\bullet` near infrared ice albedo for thicker ice", "" @@ -70,6 +70,7 @@ either Celsius or Kelvin units). "**B**", "", "" "bfb_flag", ":math:`\bullet` for bit-for-bit reproducible diagnostics", "" "bgc_data_dir", ":math:`\bullet` data directory for bgc", "" + "bgc_data_type", ":math:`\bullet` source of surface salinity data", "" "bgc_flux_type", ":math:`\bullet` ice–ocean flux velocity", "" "bgc_tracer_type", "tracer_type for bgc tracers", "" "bgrid", "nondimensional vertical grid points for bio grid", "" @@ -133,6 +134,7 @@ either Celsius or Kelvin units). "dbl_kind", "definition of double precision", "selected_real_kind(13)" "dbug", ":math:`\bullet` write extra diagnostics", ".false." "Delta", "function of strain rates (see Section :ref:`dynam`)", "1/s" + "default_season", "Season from which initial values of forcing are set.", "winter" "denom1", "combination of constants for stress equation", "" "depressT", "ratio of freezing temperature to salinity of brine", "0.054 deg/ppt" "dhbr_bt", "change in brine height at the bottom of the column", "" @@ -430,6 +432,7 @@ either Celsius or Kelvin units). "oceanmixed_ice", ":math:`\bullet` if true, use internal ocean mixed layer", "" "ocn_data_dir", ":math:`\bullet` directory for ocean forcing data", "" "ocn_data_format", ":math:`\bullet` format of ocean forcing files", "" + "ocn_data_type", ":math:`\bullet` source of surface temperature data", "" "omega", "angular velocity of Earth", "7.292\ :math:`\times`\ 10\ :math:`^{-5}` rad/s" "opening", "rate of ice opening due to divergence and shear", "1/s" "**P**", "", "" @@ -509,7 +512,7 @@ either Celsius or Kelvin units). "restart_ext", ":math:`\bullet` if true, read/write halo cells in restart file", "" "restore_bgc", ":math:`\bullet` if true, restore nitrate/silicate to data", "" "restore_ice", ":math:`\bullet` if true, restore ice state along lateral boundaries", "" - "restore_sst", ":math:`\bullet` restore sst to data", "" + "restore_ocn", ":math:`\bullet` restore sst to data", "" "revised_evp", ":math:`\bullet` if true, use revised EVP parameters and approach", "" "rfracmin", ":math:`\bullet` minimum melt water fraction added to ponds", "0.15" "rfracmax", ":math:`\bullet` maximum melt water fraction added to ponds", "1.0" @@ -537,7 +540,7 @@ either Celsius or Kelvin units). "shcoef", "transfer coefficient for sensible heat", "" "shear", "strain rate II component", "1/s" "shlat", "southern latitude of artificial mask edge", "30\ :math:`^\circ`\ N" - "shortwave", ":math:`\bullet` flag for shortwave parameterization (‘default’ or ‘dEdd’)", "" + "shortwave", ":math:`\bullet` flag for shortwave parameterization (‘ccsm3’ or ‘dEdd’)", "" "sig1(2)", "principal stress components (diagnostic)", "" "sil", "silicate concentration", "mmol/m\ :math:`^3`" "sil_data_type", ":math:`\bullet` forcing type for silicate", "" @@ -550,9 +553,7 @@ either Celsius or Kelvin units). "spval_dbl", "special value (double precision)", ":math:`10^{30}`", "" "ss_tltx(y)", "sea surface in the x(y) direction", "m/m" "sss", "sea surface salinity", "ppt" - "sss_data_type", ":math:`\bullet` source of surface salinity data", "" "sst", "sea surface temperature", "C" - "sst_data_type", ":math:`\bullet` source of surface temperature data", "" "Sswabs", "shortwave radiation absorbed in snow layers", "W/m\ :math:`^2`" "stefan-boltzmann", "Stefan-Boltzmann constant", "5.67\ :math:`\times`\ 10\ :math:`^{-8}` W/m\ :math:`^2`\ K\ :math:`^4`" "stop_now", "if 1, end program execution", "" diff --git a/doc/source/user_guide/ug_case_settings.rst b/doc/source/user_guide/ug_case_settings.rst index 6cbcc397a..46994432f 100755 --- a/doc/source/user_guide/ug_case_settings.rst +++ b/doc/source/user_guide/ug_case_settings.rst @@ -254,9 +254,9 @@ Table of namelist options "", "", "", "" "*shortwave_nml*", "", "", "" "", "", "*Shortwave*", "" - "``shortwave``", "``default``", "NCAR CCSM3 distribution method", "" + "``shortwave``", "``ccsm3``", "NCAR CCSM3 distribution method", "" "", "``dEdd``", "Delta-Eddington method", "" - "``albedo_type``", "``default``", "NCAR CCSM3 albedos", "‘default’" + "``albedo_type``", "``ccsm3``", "NCAR CCSM3 albedos", "‘default’" "", "``constant``", "four constant albedos", "" "``albicev``", ":math:`0<\alpha <1`", "visible ice albedo for thicker ice", "" "``albicei``", ":math:`0<\alpha <1`", "near infrared ice albedo for thicker ice", "" @@ -289,15 +289,7 @@ Table of namelist options "``modal_aero``", "true/false", "modal aersols", "" "``restore_bgc``", "true/false", "restore bgc to data", "" "``solve_zsal`", "true/false", "update salinity tracer profile", "" - "``bgc_data_dir``", "path/", "data directory for bgc", "" "``skl_bgc``", "true/false", "biogeochemistry", "" - "``sil_data_type``", "``default``", "default forcing value for silicate", "" - "", "``clim``", "silicate forcing from ocean climatology :cite:`Garcia06`", "" - "``nit_data_type``", "``default``", "default forcing value for nitrate", "" - "", "``clim``", "nitrate forcing from ocean climatology :cite:`Garcia06`", "" - "", "``sss``", "nitrate forcing equals salinity", "" - "``fe_data_type``", "``default``", "default forcing value for iron", "" - "", "``clim``", "iron forcing from ocean climatology", "" "``bgc_flux_type``", "``Jin2006``", "ice–ocean flux velocity of :cite:`Jin06`", "" "", "``constant``", "constant ice–ocean flux velocity", "" "``restart_bgc``", "true/false", "restart tracer values from file", "" @@ -317,19 +309,12 @@ Table of namelist options "", "``constant``", "bulk transfer coefficients", "" "``fyear_init``", "yyyy", "first year of atmospheric forcing data", "" "``ycycle``", "integer", "number of years in forcing data cycle", "" - "``atm_data_format``", "``nc``", "read  atmo forcing files", "" - "", "``bin``", "read direct access, binary files", "" - "``atm_data_type``", "``default``", "constant values defined in the code", "" - "", "``LYq``", "AOMIP/Large-Yeager forcing data", "" - "", "``monthly``", "monthly forcing data", "" - "", "``ncar``", "NCAR bulk forcing data", "" - "", "``oned``", "column forcing data", "" - "``atm_data_dir``", "path/", "path to atmospheric forcing data directory", "" "``calc_strair``", "true", "calculate wind stress and speed", "" "", "false", "read wind stress and speed from files", "" "``highfreq``", "true/false", "high-frequency atmo coupling", "" "``natmiter``", "integer", "number of atmo boundary layer iterations", "" "``calc_Tsfc``", "true/false", "calculate surface temperature", "``.true.``" + "``default_season``","``winter``", "Sets initial values of forcing and is overwritten if forcing is read in.", "" "``precip_units``", "``mks``", "liquid precipitation data units", "" "", "``mm_per_month``", "", "" "", "``mm_per_sec``", "(same as MKS units)", "" @@ -345,19 +330,35 @@ Table of namelist options "``l_mpond_fresh``", "true", "retain (topo) pond water until ponds drain", "" "", "false", "release (topo) pond water immediately to ocean", "" "``oceanmixed_ice``", "true/false", "active ocean mixed layer calculation", "``.true.`` (if uncoupled)" - "``ocn_data_format``", "``nc``", "read  ocean forcing files", "" - "", "``bin``", "read direct access, binary files", "" - "``sss_data_type``", "``default``", "constant values defined in the code", "" - "", "``clim``", "climatological data", "" - "", "``near``", "POP ocean forcing data", "" - "``sst_data_type``", "``default``", "constant values defined in the code", "" + "``restore_ocn``", "true/false", "restore sst to data", "" + "``trestore``", "integer", "sst restoring time scale (days)", "" + "``restore_ice``", "true/false", "restore ice state along lateral boundaries", "" + "``atm_data_type``", "``default``", "constant values defined in the code", "" + "", "``LYq``", "AOMIP/Large-Yeager forcing data", "" + "", "``monthly``", "monthly forcing data", "" + "", "``ncar``", "NCAR bulk forcing data", "" + "", "``oned``", "column forcing data", "" + "``ocn_data_type``", "``default``", "constant values defined in the code", "" "", "``clim``", "climatological data", "" "", "``ncar``", "POP ocean forcing data", "" - "``ocn_data_dir``", "path/", "path to oceanic forcing data directory", "" + "``bgc_data_type``", "``default``", "constant values defined in the code", "" + "", "``clim``", "climatological data", "" + "", "``near``", "POP ocean forcing data", "" + "``sil_data_type``", "``default``", "default forcing value for silicate", "" + "", "``clim``", "silicate forcing from ocean climatology :cite:`Garcia06`", "" + "``nit_data_type``", "``default``", "default forcing value for nitrate", "" + "", "``clim``", "nitrate forcing from ocean climatology :cite:`Garcia06`", "" + "", "``sss``", "nitrate forcing equals salinity", "" + "``fe_data_type``", "``default``", "default forcing value for iron", "" + "", "``clim``", "iron forcing from ocean climatology", "" + "``atm_data_format``", "``nc``", "read  atmo forcing files", "" + "", "``bin``", "read direct access, binary files", "" + "``ocn_data_format``", "``nc``", "read  ocean forcing files", "" + "", "``bin``", "read direct access, binary files", "" "``oceanmixed_file``", "filename", "data file containing ocean forcing data", "" - "``restore_sst``", "true/false", "restore sst to data", "" - "``trestore``", "integer", "sst restoring time scale (days)", "" - "``restore_ice``", "true/false", "restore ice state along lateral boundaries", "" + "``atm_data_dir``", "path/", "path to atmospheric forcing data directory", "" + "``ocn_data_dir``", "path/", "path to oceanic forcing data directory", "" + "``bgc_data_dir``", "path/", "path to oceanic forcing data directory", "" "", "", "", "" "*icefields_nml*", "", "", "" "", "", "*History Fields*", "" From 34c5284600767ad57ca75b57e7ce1282405565d2 Mon Sep 17 00:00:00 2001 From: duvivier Date: Tue, 16 Oct 2018 04:07:19 -0600 Subject: [PATCH 5/6] Updating testing doc --- doc/source/master_list.bib | 25 ++++++++----------------- doc/source/user_guide/ug_testing.rst | 2 +- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/doc/source/master_list.bib b/doc/source/master_list.bib index f2258b0cc..5ea79f7a0 100644 --- a/doc/source/master_list.bib +++ b/doc/source/master_list.bib @@ -55,6 +55,7 @@ @string{EFM @string{GMD = {Geosci. Model Dev.}} @string{CRST = {Cold Reg. Sci. Technol.}} @string{IJHPCA={Int. J High Perform. Comput. Appl}} +@string{PTRSA={Philos. Trans. Royal Soc. A}} % **************************************** @@ -826,16 +827,6 @@ @Article{Craig14 pages = {154-165}, url = {http://dx.doi.org/10.1177/1094342014548771} } -% Irving2015 is not cited in the rst files. Should it be? -@Article{Irving2015, - author = "D. Irving", - title = "{A minimum standard for publishing computational results in the weather and climate sciences}", - year = "2015", - journal = BAMS, - number = {97}, - pages = {1149-1158}, - url = {http://dx.doi.org/10.1175/BAMS-D-15-00010.1} -} @Article{Tsamados14 author = "M. Tsamados and D.L. Feltham and D. Schroeder and D. Flocco and S.L. Farrell and N.T. Kurtz and S.W. Laxon and S. Bacon", title = "{Impact of variable atmospheric and oceanic form drag on simulations of Arctic sea ice}", @@ -880,13 +871,13 @@ @Article{Hunke18 year = {2018 - In Prep.}, url = {http://dx.doi.org/} } -% Roberts2018 is not cited in the rst files. Should it be? -@Article{Roberts2018, - author = "A. Roberts and W. Maslowski and E.C. Hunke and R. Osinski and J.J. Cassano and A.K. DuVivier and M. Hughes and M. Seefeldt and B. Nijssen and J. Hamman and J. Hutchings and M. Tsamados and D. Feltham", - title = "{Inter-comparison of isotropic and anisotropic sea-ice mechanics in a high-resolution fully coupled climate model}", - journal = {In Prep.}, - year = {2018 - In Prep.}, - url = {http://dx.doi.org/} +@Article{Roberts18, + author = "A. Roberts and E.C. Hunke and R. Allard and D.A. Bailey and A.P. Craig and J. Lemieux and M.D. Turner", + title = "{Quality control for community-based sea-ice model development}", + journal = {PTRSA}, + year = "2018", + volume = {376} + url = {http://dx.doi.org/10.1098/rsta.2017.0344} } % ** example template ** diff --git a/doc/source/user_guide/ug_testing.rst b/doc/source/user_guide/ug_testing.rst index f3cf92dac..8e3b09574 100644 --- a/doc/source/user_guide/ug_testing.rst +++ b/doc/source/user_guide/ug_testing.rst @@ -523,7 +523,7 @@ and CICE have not significantly altered simulated ice volume using previous mode configurations. Here we describe the CICE testing tools, which are applies to output from five-year gx-1 simulations that use the standard CICE atmospheric forcing. A scientific justification of the testing is provided in -:cite:`Hunke18`. +:cite:`Hunke18`. The following sections follow :cite:`Roberts18`. .. _paired: From 9a4560b2487c3dc115c0c3fe851784618f2b57e1 Mon Sep 17 00:00:00 2001 From: duvivier Date: Tue, 16 Oct 2018 05:20:34 -0600 Subject: [PATCH 6/6] re-order namelist to match icepack --- cicecore/cicedynB/general/ice_init.F90 | 16 ++++++++------ configuration/scripts/ice_in | 30 +++++++++++++------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 69d4b84ce..d19b95641 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -176,15 +176,17 @@ subroutine input_data hp1 namelist /forcing_nml/ & - atmbndy, calc_strair, calc_Tsfc, update_ocn_f, & - l_mpond_fresh, ustar_min, fbot_xfer_type, oceanmixed_ice, & - emissivity, formdrag, highfreq, natmiter, & - tfrz_option, default_season, precip_units, fyear_init, & - ycycle, restore_ocn, trestore, restore_ice, & + formdrag, atmbndy, calc_strair, calc_Tsfc, & + highfreq, natmiter, ustar_min, emissivity, & + fbot_xfer_type, update_ocn_f, l_mpond_fresh, tfrz_option, & + oceanmixed_ice, restore_ice, restore_ocn, trestore, & + precip_units, default_season, & atm_data_type, ocn_data_type, bgc_data_type, & sil_data_type, nit_data_type, fe_data_type, & - atm_data_format, ocn_data_format, oceanmixed_file, & - atm_data_dir, ocn_data_dir, bgc_data_dir + fyear_init, ycycle, & + atm_data_dir, ocn_data_dir, bgc_data_dir, & + atm_data_format, ocn_data_format, & + oceanmixed_file namelist /tracer_nml/ & tr_iage, restart_age, & diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index 9a2121a3a..2bea32602 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -145,38 +145,38 @@ / &forcing_nml + formdrag = .false. atmbndy = 'default' calc_strair = .true. calc_Tsfc = .true. - update_ocn_f = .false. - l_mpond_fresh = .false. - ustar_min = 0.0005 - fbot_xfer_type = 'constant' - oceanmixed_ice = .true. - emissivity = 0.95 - formdrag = .false. highfreq = .false. natmiter = 5 + ustar_min = 0.0005 + emissivity = 0.95 + fbot_xfer_type = 'constant' + update_ocn_f = .false. + l_mpond_fresh = .false. tfrz_option = 'mushy' - default_season = 'winter' - precip_units = 'mm_per_month' - fyear_init = 1997 - ycycle = 1 + oceanmixed_ice = .true. + restore_ice = .false. restore_ocn = .false. trestore = 90 - restore_ice = .false. + precip_units = 'mm_per_month' + default_season = 'winter' atm_data_type = 'ncar' ocn_data_type = 'default' bgc_data_type = 'default' sil_data_type = 'default' nit_data_type = 'default' fe_data_type = 'default' - atm_data_format = 'bin' - ocn_data_format = 'bin' - oceanmixed_file = 'unknown_oceanmixed_file' + fyear_init = 1997 + ycycle = 1 atm_data_dir = '/glade/u/home/tcraig/cice_data/' ocn_data_dir = '/unknown_ocn_data_dir' bgc_data_dir = '/uknown_bgc_data_dir' + atm_data_format = 'bin' + ocn_data_format = 'bin' + oceanmixed_file = 'unknown_oceanmixed_file' / &domain_nml