Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync CICE (2024-11) including pio_finalize bug fix #96

Open
wants to merge 12 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions cicecore/cicedyn/general/ice_flux.F90
Original file line number Diff line number Diff line change
Expand Up @@ -368,15 +368,14 @@ module ice_flux
real (kind=dbl_kind), dimension (:,:,:), allocatable, public :: &
uatmT , & ! uatm on T grid (m/s)
vatmT , & ! vatm on T grid (m/s)
rside , & ! fraction of ice that melts laterally
fside , & ! lateral heat flux (W/m^2)
wlat , & ! lateral heat rate (m/s)
fsw , & ! incoming shortwave radiation (W/m^2)
coszen , & ! cosine solar zenith angle, < 0 for sun below horizon
rdg_conv, & ! convergence term for ridging (1/s)
rdg_shear ! shear term for ridging (1/s)

real (kind=dbl_kind), dimension(:,:,:,:), allocatable, public :: &
rsiden ,& ! fraction of ice that melts laterally
salinz ,& ! initial salinity profile (ppt)
Tmltz ! initial melting temperature (^oC)

Expand Down Expand Up @@ -546,13 +545,12 @@ subroutine alloc_flux
fsalt_da (nx_block,ny_block,max_blocks), & ! salt flux to ocean due to data assimilation(kg/m^2/s)
uatmT (nx_block,ny_block,max_blocks), & ! uatm on T grid
vatmT (nx_block,ny_block,max_blocks), & ! vatm on T grid
rside (nx_block,ny_block,max_blocks), & ! fraction of ice that melts laterally
fside (nx_block,ny_block,max_blocks), & ! lateral melt flux (W/m^2)
wlat (nx_block,ny_block,max_blocks), & ! lateral melt rate (m/s)
fsw (nx_block,ny_block,max_blocks), & ! incoming shortwave radiation (W/m^2)
coszen (nx_block,ny_block,max_blocks), & ! cosine solar zenith angle, < 0 for sun below horizon
rdg_conv (nx_block,ny_block,max_blocks), & ! convergence term for ridging (1/s)
rdg_shear (nx_block,ny_block,max_blocks), & ! shear term for ridging (1/s)
rsiden (nx_block,ny_block,ncat,max_blocks), & ! fraction of ice that melts laterally
dardg1ndt (nx_block,ny_block,ncat,max_blocks), & ! rate of area loss by ridging ice (1/s)
dardg2ndt (nx_block,ny_block,ncat,max_blocks), & ! rate of area gain by new ridges (1/s)
dvirdgndt (nx_block,ny_block,ncat,max_blocks), & ! rate of ice volume ridged (m/s)
Expand Down
2 changes: 0 additions & 2 deletions cicecore/cicedyn/general/ice_forcing.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5473,8 +5473,6 @@ subroutine wave_spec_data
logical (kind=log_kind) :: wave_spec
character(len=*), parameter :: subname = '(wave_spec_data)'



debug_n_d = .false. !usually false

call icepack_query_parameters(secday_out=secday)
Expand Down
26 changes: 18 additions & 8 deletions cicecore/cicedyn/general/ice_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ subroutine input_data
diag_file, print_global, print_points, latpnt, lonpnt, &
debug_model, debug_model_step, debug_model_task, &
debug_model_i, debug_model_j, debug_model_iblk
use ice_domain, only: close_boundaries, orca_halogrid
use ice_domain, only: close_boundaries
use ice_domain_size, only: &
ncat, nilyr, nslyr, nblyr, nfsd, nfreq, &
n_iso, n_aero, n_zaero, n_algae, &
Expand Down Expand Up @@ -174,6 +174,7 @@ subroutine input_data
logical (kind=log_kind) :: tr_pond_lvl, tr_pond_topo
integer (kind=int_kind) :: numin, numax ! unit number limits
logical (kind=log_kind) :: lcdf64 ! deprecated, backwards compatibility
logical (kind=log_kind) :: orca_halogrid !deprecated

integer (kind=int_kind) :: rplvl, rptopo
real (kind=dbl_kind) :: Cf, ksno, puny, ice_ref_salinity, Tocnfrz
Expand Down Expand Up @@ -382,7 +383,7 @@ subroutine input_data
grid_atm = 'A' ! underlying atm forcing/coupling grid
grid_ocn = 'A' ! underlying atm forcing/coupling grid
gridcpl_file = 'unknown_gridcpl_file'
orca_halogrid = .false. ! orca haloed grid
orca_halogrid = .false. ! orca haloed grid - deprecated
bathymetry_file = 'unknown_bathymetry_file'
bathymetry_format = 'default'
use_bathymetry = .false.
Expand Down Expand Up @@ -1198,10 +1199,6 @@ subroutine input_data
call broadcast_scalar(sw_frac, master_task)
call broadcast_scalar(sw_dtemp, master_task)

#ifdef CESMCOUPLED
pointer_file = trim(pointer_file) // trim(inst_suffix)
#endif

!-----------------------------------------------------------------
! update defaults
!-----------------------------------------------------------------
Expand Down Expand Up @@ -1270,7 +1267,7 @@ subroutine input_data
endif
abort_list = trim(abort_list)//":1"
endif

if (history_format /= 'cdf1' .and. &
history_format /= 'cdf2' .and. &
history_format /= 'cdf5' .and. &
Expand Down Expand Up @@ -1833,6 +1830,20 @@ subroutine input_data
endif
endif

if (orca_halogrid) then
if (my_task == master_task) then
write(nu_diag,*) subname//' ERROR: orca_halogrid has been deprecated'
endif
abort_list = trim(abort_list)//":63"
endif

if (trim(grid_type) == 'cpom_grid') then
if (my_task == master_task) then
write(nu_diag,*) subname//" ERROR: grid_type = 'cpom_grid' has been deprecated"
endif
abort_list = trim(abort_list)//":64"
endif

ice_IOUnitsMinUnit = numin
ice_IOUnitsMaxUnit = numax

Expand Down Expand Up @@ -2583,7 +2594,6 @@ subroutine input_data
if (trim(kmt_type) == 'file') &
write(nu_diag,1031) ' kmt_file = ', trim(kmt_file)
endif
write(nu_diag,1011) ' orca_halogrid = ', orca_halogrid

write(nu_diag,1011) ' conserv_check = ', conserv_check

Expand Down
29 changes: 12 additions & 17 deletions cicecore/cicedyn/general/ice_step_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -224,9 +224,9 @@ subroutine step_therm1 (dt, iblk)
fswsfcn, fswintn, Sswabsn, Iswabsn, meltsliqn, meltsliq, &
fswthrun, fswthrun_vdr, fswthrun_vdf, fswthrun_idr, fswthrun_idf
use ice_calendar, only: yday
use ice_domain_size, only: ncat, nilyr, nslyr, n_iso, n_aero
use ice_flux, only: frzmlt, sst, Tf, strocnxT_iavg, strocnyT_iavg, rside, fbot, Tbot, Tsnice, &
meltsn, melttn, meltbn, congeln, snoicen, uatmT, vatmT, fside, wlat, &
use ice_domain_size, only: ncat, nilyr, nslyr, n_iso, n_aero, nfsd
use ice_flux, only: frzmlt, sst, Tf, strocnxT_iavg, strocnyT_iavg, rsiden, fbot, Tbot, Tsnice, &
meltsn, melttn, meltbn, congeln, snoicen, uatmT, vatmT, wlat, &
wind, rhoa, potT, Qa, zlvl, zlvs, strax, stray, flatn, fsensn, fsurfn, fcondtopn, &
flw, fsnow, fpond, sss, mlt_onset, frz_onset, fcondbotn, fcondbot, fsloss, &
frain, Tair, strairxT, strairyT, fsurf, fcondtop, fsens, &
Expand Down Expand Up @@ -269,7 +269,7 @@ subroutine step_therm1 (dt, iblk)

integer (kind=int_kind) :: &
ntrcr, nt_apnd, nt_hpnd, nt_ipnd, nt_alvl, nt_vlvl, nt_Tsfc, &
nt_iage, nt_FY, nt_qice, nt_sice, nt_aero, nt_qsno, &
nt_iage, nt_FY, nt_qice, nt_sice, nt_aero, nt_qsno, nt_fsd, &
nt_isosno, nt_isoice, nt_rsnw, nt_smice, nt_smliq

logical (kind=log_kind) :: &
Expand Down Expand Up @@ -304,7 +304,7 @@ subroutine step_therm1 (dt, iblk)
call icepack_query_tracer_indices( &
nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, nt_ipnd_out=nt_ipnd, &
nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl, nt_Tsfc_out=nt_Tsfc, &
nt_iage_out=nt_iage, nt_FY_out=nt_FY, &
nt_iage_out=nt_iage, nt_FY_out=nt_FY, nt_fsd_out=nt_fsd, &
nt_qice_out=nt_qice, nt_sice_out=nt_sice, &
nt_aero_out=nt_aero, nt_qsno_out=nt_qsno, &
nt_rsnw_out=nt_rsnw, nt_smice_out=nt_smice, nt_smliq_out=nt_smliq, &
Expand Down Expand Up @@ -412,6 +412,7 @@ subroutine step_therm1 (dt, iblk)
ipnd = trcrn (i,j,nt_ipnd,:,iblk), &
iage = trcrn (i,j,nt_iage,:,iblk), &
FY = trcrn (i,j,nt_FY ,:,iblk), &
afsdn = trcrn (i,j,nt_fsd:nt_fsd+nfsd-1,:,iblk), &
rsnwn = rsnwn (:,:), &
smicen = smicen (:,:), &
smliqn = smliqn (:,:), &
Expand Down Expand Up @@ -464,8 +465,7 @@ subroutine step_therm1 (dt, iblk)
Tbot = Tbot (i,j, iblk), &
Tsnice = Tsnice (i,j, iblk), &
frzmlt = frzmlt (i,j, iblk), &
rside = rside (i,j, iblk), &
fside = fside (i,j, iblk), &
rsiden = rsiden (i,j,:,iblk), &
wlat = wlat (i,j, iblk), &
fsnow = fsnow (i,j, iblk), &
frain = frain (i,j, iblk), &
Expand Down Expand Up @@ -611,12 +611,12 @@ subroutine step_therm2 (dt, iblk)

use ice_arrays_column, only: hin_max, ocean_bio, wave_sig_ht, &
wave_spectrum, wavefreq, dwavefreq, &
first_ice, bgrid, cgrid, igrid, floe_rad_c, floe_binwidth, &
first_ice, bgrid, cgrid, igrid, &
d_afsd_latg, d_afsd_newi, d_afsd_latm, d_afsd_weld
use ice_calendar, only: yday
use ice_domain_size, only: ncat, nilyr, nslyr, nblyr, nfsd
use ice_flux, only: fresh, frain, fpond, frzmlt, frazil, frz_onset, &
fsalt, Tf, sss, salinz, fhocn, rside, fside, wlat, &
fsalt, Tf, sss, salinz, fhocn, rsiden, wlat, &
meltl, frazil_diag
use ice_flux_bgc, only: flux_bio, faero_ocn, &
fiso_ocn, HDO_ocn, H2_16O_ocn, H2_18O_ocn
Expand Down Expand Up @@ -695,9 +695,8 @@ subroutine step_therm2 (dt, iblk)
Tf = Tf (i,j, iblk), &
sss = sss (i,j, iblk), &
salinz = salinz (i,j,:,iblk), &
rside = rside (i,j, iblk), &
rsiden = rsiden (i,j,:,iblk), &
meltl = meltl (i,j, iblk), &
fside = fside (i,j, iblk), &
wlat = wlat (i,j, iblk), &
frzmlt = frzmlt (i,j, iblk), &
frazil = frazil (i,j, iblk), &
Expand All @@ -724,9 +723,7 @@ subroutine step_therm2 (dt, iblk)
d_afsd_latg= d_afsd_latg(i,j,:,iblk),&
d_afsd_newi= d_afsd_newi(i,j,:,iblk),&
d_afsd_latm= d_afsd_latm(i,j,:,iblk),&
d_afsd_weld= d_afsd_weld(i,j,:,iblk),&
floe_rad_c = floe_rad_c(:), &
floe_binwidth = floe_binwidth(:))
d_afsd_weld= d_afsd_weld(i,j,:,iblk))
endif ! tmask

enddo ! i
Expand Down Expand Up @@ -863,7 +860,7 @@ end subroutine update_state
subroutine step_dyn_wave (dt)

use ice_arrays_column, only: wave_spectrum, &
d_afsd_wave, floe_rad_l, floe_rad_c, wavefreq, dwavefreq
d_afsd_wave, wavefreq, dwavefreq
use ice_domain_size, only: ncat, nfsd, nfreq
use ice_state, only: trcrn, aicen, aice, vice
use ice_timers, only: ice_timer_start, ice_timer_stop, timer_column, &
Expand Down Expand Up @@ -911,8 +908,6 @@ subroutine step_dyn_wave (dt)
aice = aice (i,j, iblk), &
vice = vice (i,j, iblk), &
aicen = aicen (i,j,:, iblk), &
floe_rad_l = floe_rad_l (:), &
floe_rad_c = floe_rad_c (:), &
wave_spectrum = wave_spectrum(i,j,:, iblk), &
wavefreq = wavefreq (:), &
dwavefreq = dwavefreq (:), &
Expand Down
3 changes: 1 addition & 2 deletions cicecore/cicedyn/infrastructure/ice_domain.F90
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@ module ice_domain
maskhalo_remap , & ! if true, use masked halo updates for transport
maskhalo_bound , & ! if true, use masked halo updates for bound_state
halo_dynbundle , & ! if true, bundle halo update in dynamics
landblockelim , & ! if true, land block elimination is on
orca_halogrid ! if true, input fields are haloed as defined by orca grid
landblockelim ! if true, land block elimination is on

!-----------------------------------------------------------------------
!
Expand Down
Loading
Loading