From a10d7180f7b1ad9b35773e2148cd6e39a56dcf34 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Sat, 30 Nov 2019 16:50:33 +0000 Subject: [PATCH 01/14] Updated dmi drivers according to standalone --- Icepack | 1 + cicecore/cicedynB/general/ice_forcing.F90 | 3 +- cicecore/cicedynB/infrastructure/ice_grid.F90 | 13 - cicecore/drivers/nuopc/dmi/CICE_FinalMod.F90 | 12 +- cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 | 53 +- cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 | 24 +- lal.dat | 3445 +++++++++++++++++ 7 files changed, 3494 insertions(+), 57 deletions(-) create mode 160000 Icepack create mode 100644 lal.dat diff --git a/Icepack b/Icepack new file mode 160000 index 000000000..245fcaa64 --- /dev/null +++ b/Icepack @@ -0,0 +1 @@ +Subproject commit 245fcaa64bd310837e1b9ac6d6c2ce4c5c674164 diff --git a/cicecore/cicedynB/general/ice_forcing.F90 b/cicecore/cicedynB/general/ice_forcing.F90 index 53eb0ec49..92b19bc2d 100755 --- a/cicecore/cicedynB/general/ice_forcing.F90 +++ b/cicecore/cicedynB/general/ice_forcing.F90 @@ -240,6 +240,7 @@ subroutine init_forcing_atmo if (use_leap_years .and. (trim(atm_data_type) /= 'JRA55' .and. & trim(atm_data_type) /= 'default' .and. & + trim(atm_data_type) /= 'hycom' .and. & trim(atm_data_type) /= 'box2001')) then write(nu_diag,*) 'use_leap_years option is currently only supported for' write(nu_diag,*) 'JRA55, default , and box2001 atmospheric data' @@ -2319,7 +2320,7 @@ subroutine JRA55_data (yr) sec3hr = secday/c8 ! seconds in 3 hours !maxrec = 2920 ! 365*8; for leap years = 366*8 - if(use_leap_years) days_per_year = 366 !overrides setting of 365 in ice_calendar + if (use_leap_years) days_per_year = 366 !overrides setting of 365 in ice_calendar maxrec = days_per_year*8 if(days_per_year == 365 .and. (mod(yr, 4) == 0)) then diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index b889a528a..db8d95132 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -499,21 +499,8 @@ subroutine init_grid2 cos(angle_w)+ & cos(angle_s)+ & cos(angle_sw))) -! if ( angle_0 < c0 ) then -! if ( abs(angle_w - angle_0) > pi) & -! angle_w = angle_w - pi2 -! if ( abs(angle_s - angle_0) > pi) & -! angle_s = angle_s - pi2 -! if ( abs(angle_sw - angle_0) > pi) & -! angle_sw = angle_sw - pi2 -! endif - -! ANGLET_dum = angle_0 * p25 + angle_w * p25 & -! + angle_s * p25 + angle_sw* p25 -! write(my_task+700,*) ANGLET_dum, ANGLET(i,j,iblk) enddo enddo -! call flush(my_task+700) enddo !$OMP END PARALLEL DO endif ! cpom_grid diff --git a/cicecore/drivers/nuopc/dmi/CICE_FinalMod.F90 b/cicecore/drivers/nuopc/dmi/CICE_FinalMod.F90 index 2e30181e2..10b0edb21 100644 --- a/cicecore/drivers/nuopc/dmi/CICE_FinalMod.F90 +++ b/cicecore/drivers/nuopc/dmi/CICE_FinalMod.F90 @@ -55,15 +55,15 @@ subroutine CICE_Finalize !echmod if (nu_diag /= 6) close (nu_diag) ! diagnostic output call release_all_fileunits -!------------------------------------------------------------------- -! write 'finished' file if needed -!------------------------------------------------------------------- + !------------------------------------------------------------------- + ! write 'finished' file if needed + !------------------------------------------------------------------- if (runid == 'bering') call writeout_finished_file() -!------------------------------------------------------------------- -! quit MPI -!------------------------------------------------------------------- + !------------------------------------------------------------------- + ! quit MPI + !------------------------------------------------------------------- #ifndef coupled #ifndef CICE_DMI diff --git a/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 b/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 index 27fca6338..d846f449b 100644 --- a/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 +++ b/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 @@ -45,9 +45,9 @@ subroutine CICE_Initialize(mpi_comm) integer (kind=int_kind), optional, intent(in) :: mpi_comm ! communicator from nuopc character(len=*), parameter :: subname='(CICE_Initialize)' -!-------------------------------------------------------------------- -! model initialization -!-------------------------------------------------------------------- + !-------------------------------------------------------------------- + ! model initialization + !-------------------------------------------------------------------- if (present(mpi_comm)) then call cice_init(mpi_comm) else @@ -76,12 +76,12 @@ subroutine cice_init(mpi_comm) use ice_flux, only: init_coupler_flux, init_history_therm, & init_history_dyn, init_flux_atm, init_flux_ocn, alloc_flux use ice_forcing, only: init_forcing_ocn, init_forcing_atmo, & - get_forcing_atmo, get_forcing_ocn, alloc_forcing + get_forcing_atmo, get_forcing_ocn use ice_forcing_bgc, only: get_forcing_bgc, get_atm_bgc, & faero_default, faero_optics, alloc_forcing_bgc use ice_grid, only: init_grid1, init_grid2, alloc_grid use ice_history, only: init_hist, accum_hist - use ice_restart_shared, only: restart, runid, runtype + use ice_restart_shared, only: restart, runtype use ice_init, only: input_data, init_state use ice_init_column, only: init_thermo_vertical, init_shortwave, init_zbgc, input_zbgc, count_tracers use ice_kinds_mod @@ -102,6 +102,9 @@ subroutine cice_init(mpi_comm) endif call init_fileunits ! unit numbers + ! tcx debug, this will create a different logfile for each pe + ! if (my_task /= master_task) nu_diag = 100+my_task + call icepack_configure() ! initialize icepack call icepack_warnings_flush(nu_diag) if (icepack_warnings_aborted()) call abort_ice(trim(subname), & @@ -140,9 +143,9 @@ subroutine cice_init(mpi_comm) #endif call init_thermo_vertical ! initialize vertical thermodynamics - call icepack_init_itd(ncat, hin_max) ! ice thickness distribution + call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution if (my_task == master_task) then - call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output + call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output endif call icepack_warnings_flush(nu_diag) if (icepack_warnings_aborted()) call abort_ice(error_message=subname, & @@ -186,9 +189,9 @@ subroutine cice_init(mpi_comm) time = time + dt ! determine the time and date call calendar(time) ! at the end of the first timestep -!-------------------------------------------------------------------- -! coupler communication or forcing data initialization -!-------------------------------------------------------------------- + !-------------------------------------------------------------------- + ! coupler communication or forcing data initialization + !-------------------------------------------------------------------- call init_forcing_atmo ! initialize atmospheric forcing (standalone) @@ -405,21 +408,21 @@ subroutine init_restart do j = 1, ny_block do i = 1, nx_block if (tmask(i,j,iblk)) then - call icepack_aggregate (ncat, & - aicen(i,j,:,iblk), & - trcrn(i,j,:,:,iblk),& - vicen(i,j,:,iblk), & - vsnon(i,j,:,iblk), & - aice (i,j, iblk), & - trcr (i,j,:,iblk), & - vice (i,j, iblk), & - vsno (i,j, iblk), & - aice0(i,j, iblk), & - ntrcr, & - trcr_depend, & - trcr_base, & - n_trcr_strata, & - nt_strata) + call icepack_aggregate(ncat = ncat, & + aicen = aicen(i,j,:,iblk), & + trcrn = trcrn(i,j,:,:,iblk), & + vicen = vicen(i,j,:,iblk), & + vsnon = vsnon(i,j,:,iblk), & + aice = aice (i,j, iblk), & + trcr = trcr (i,j,:,iblk), & + vice = vice (i,j, iblk), & + vsno = vsno (i,j, iblk), & + aice0 = aice0(i,j, iblk), & + ntrcr = ntrcr, & + trcr_depend = trcr_depend, & + trcr_base = trcr_base, & + n_trcr_strata = n_trcr_strata, & + nt_strata = nt_strata) else ! tcraig, reset all tracer values on land to zero trcrn(i,j,:,:,iblk) = c0 diff --git a/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 b/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 index 66ba147da..a71708b21 100644 --- a/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 +++ b/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 @@ -39,12 +39,12 @@ module CICE_RunMod ! ! author Elizabeth C. Hunke, LANL ! Philip W. Jones, LANL -! William H. Lipscomb, LANL + William H. Lipscomb, LANL subroutine CICE_Run use ice_calendar, only: istep, istep1, time, dt, stop_now, calendar - use ice_forcing, only: get_forcing_atmo, get_forcing_ocn, atm_data_type + use ice_forcing, only: get_forcing_atmo, get_forcing_ocn use ice_forcing_bgc, only: get_forcing_bgc, get_atm_bgc, & faero_default use ice_flux, only: init_flux_atm, init_flux_ocn @@ -54,9 +54,9 @@ subroutine CICE_Run tr_aero, tr_zaero, skl_bgc, z_tracers character(len=*), parameter :: subname = '(CICE_Run)' -!-------------------------------------------------------------------- -! initialize error code and step timer -!-------------------------------------------------------------------- + !-------------------------------------------------------------------- + ! initialize error code and step timer + !-------------------------------------------------------------------- call ice_timer_start(timer_step) ! start timing entire run @@ -67,11 +67,11 @@ subroutine CICE_Run file=__FILE__, line=__LINE__) #ifndef CICE_IN_NEMO -!-------------------------------------------------------------------- -! timestep loop -!-------------------------------------------------------------------- + !-------------------------------------------------------------------- + ! timestep loop + !-------------------------------------------------------------------- #ifndef CICE_DMI - timeLoop: do + timeLoop: do #endif #endif call ice_step @@ -116,9 +116,9 @@ subroutine CICE_Run enddo timeLoop #endif #endif -!-------------------------------------------------------------------- -! end of timestep loop -!-------------------------------------------------------------------- + !-------------------------------------------------------------------- + ! end of timestep loop + !-------------------------------------------------------------------- call ice_timer_stop(timer_step) ! end timestepping loop timer diff --git a/lal.dat b/lal.dat new file mode 100644 index 000000000..ae4aa959e --- /dev/null +++ b/lal.dat @@ -0,0 +1,3445 @@ +diff -r ./cicecore/cicedynB/dynamics/ice_dyn_eap.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/dynamics/ice_dyn_eap.F90 +349,355c349,355 +< call icepack_ice_strength(ncat=ncat, & +< aice = aice (i,j, iblk), & +< vice = vice (i,j, iblk), & +< aice0 = aice0 (i,j, iblk), & +< aicen = aicen (i,j,:,iblk), & +< vicen = vicen (i,j,:,iblk), & +< strength = strength(i,j, iblk) ) +--- +> call icepack_ice_strength (ncat, & +> aice (i,j, iblk), & +> vice (i,j, iblk), & +> aice0 (i,j, iblk), & +> aicen (i,j,:,iblk), & +> vicen (i,j,:,iblk), & +> strength(i,j, iblk) ) +diff -r ./cicecore/cicedynB/dynamics/ice_dyn_evp.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 +289,295c289,295 +< call icepack_ice_strength(ncat = ncat, & +< aice = aice (i,j, iblk), & +< vice = vice (i,j, iblk), & +< aice0 = aice0 (i,j, iblk), & +< aicen = aicen (i,j,:,iblk), & +< vicen = vicen (i,j,:,iblk), & +< strength = strength(i,j, iblk) ) +--- +> call icepack_ice_strength (ncat, & +> aice (i,j, iblk), & +> vice (i,j, iblk), & +> aice0 (i,j, iblk), & +> aicen (i,j,:,iblk), & +> vicen (i,j,:,iblk), & +> strength(i,j, iblk) ) +diff -r ./cicecore/cicedynB/dynamics/ice_transport_driver.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/dynamics/ice_transport_driver.F90 +1682,1690c1682,1688 +< call icepack_compute_tracers(ntrcr=ntrcr, trcr_depend=trcr_depend(:), & +< atrcrn = work (ij,narrays+1:narrays+ntrcr), & +< aicen = aicen(i,j,n), & +< vicen = vicen(i,j,n), & +< vsnon = vsnon(i,j,n), & +< trcr_base = trcr_base(:,:), & +< n_trcr_strata = n_trcr_strata(:), & +< nt_strata = nt_strata(:,:), & +< trcrn = trcrn(i,j,:,n)) +--- +> call icepack_compute_tracers (ntrcr, trcr_depend(:), & +> work (ij,narrays+1:narrays+ntrcr), & +> aicen(i,j,n), & +> vicen(i,j,n), vsnon(i,j,n), & +> trcr_base(:,:), n_trcr_strata(:), & +> nt_strata(:,:), & +> trcrn(i,j,:,n)) +diff -r ./cicecore/cicedynB/general/ice_forcing.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/general/ice_forcing.F90 +242a243 +> trim(atm_data_type) /= 'hycom' .and. & +2322c2323 +< if(use_leap_years) days_per_year = 366 !overrides setting of 365 in ice_calendar +--- +> if (use_leap_years) days_per_year = 366 !overrides setting of 365 in ice_calendar +diff -r ./cicecore/cicedynB/general/ice_init.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/general/ice_init.F90 +1484,1498c1484,1498 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend(:), & +< trcr_base = trcr_base(:,:), & +< n_trcr_strata = n_trcr_strata(:), & +< nt_strata = nt_strata(:,:)) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk), & +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend (:), & +> trcr_base (:,:), & +> n_trcr_strata(:), & +> nt_strata (:,:)) +1800,1805c1800,1804 +< call icepack_init_trcr(Tair = Tair(i,j), Tf = Tf(i,j), & +< Sprofile = salinz(i,j,:), & +< Tprofile = Tmltz(i,j,:), & +< Tsfc = Tsfc, & +< nilyr = nilyr, nslyr = nslyr, & +< qin = qin(:), qsn = qsn(:)) +--- +> call icepack_init_trcr(Tair(i,j), Tf(i,j), & +> salinz(i,j,:), Tmltz(i,j,:), & +> Tsfc, & +> nilyr, nslyr, & +> qin(:), qsn(:)) +diff -r ./cicecore/cicedynB/general/ice_step_mod.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/general/ice_step_mod.F90 +124,133c124,133 +< call icepack_prep_radiation (ncat=ncat, nilyr=nilyr, nslyr=nslyr, & +< scale_factor=scale_factor(i,j,iblk), & +< aice = aice (i,j, iblk), aicen = aicen (i,j, :,iblk), & +< swvdr = swvdr (i,j, iblk), swvdf = swvdf (i,j, iblk), & +< swidr = swidr (i,j, iblk), swidf = swidf (i,j, iblk), & +< alvdr_ai = alvdr_ai(i,j, iblk), alvdf_ai = alvdf_ai(i,j, iblk), & +< alidr_ai = alidr_ai(i,j, iblk), alidf_ai = alidf_ai(i,j, iblk), & +< fswsfcn = fswsfcn (i,j, :,iblk), fswintn = fswintn (i,j, :,iblk), & +< fswthrun = fswthrun(i,j, :,iblk), fswpenln = fswpenln(i,j,:,:,iblk), & +< Sswabsn = Sswabsn (i,j,:,:,iblk), Iswabsn = Iswabsn (i,j,:,:,iblk)) +--- +> call icepack_prep_radiation (ncat, nilyr, nslyr, & +> aice (i,j, iblk), aicen (i,j, :,iblk), & +> swvdr (i,j, iblk), swvdf (i,j, iblk), & +> swidr (i,j, iblk), swidf (i,j, iblk), & +> alvdr_ai(i,j, iblk), alvdf_ai(i,j, iblk), & +> alidr_ai(i,j, iblk), alidf_ai(i,j, iblk), & +> scale_factor(i,j,iblk), & +> fswsfcn (i,j, :,iblk), fswintn (i,j, :,iblk), & +> fswthrun(i,j, :,iblk), fswpenln(i,j,:,:,iblk), & +> Sswabsn (i,j,:,:,iblk), Iswabsn (i,j,:,:,iblk)) +287,407c287,358 +< call icepack_step_therm1(dt=dt, ncat=ncat, & +< nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & +< aicen_init = aicen_init (i,j,:,iblk), & +< vicen_init = vicen_init (i,j,:,iblk), & +< vsnon_init = vsnon_init (i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< aicen = aicen (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vicen = vicen (i,j,:,iblk), & +< vsno = vsno (i,j, iblk), & +< vsnon = vsnon (i,j,:,iblk), & +< uvel = uvel (i,j, iblk), & +< vvel = vvel (i,j, iblk), & +< Tsfc = trcrn (i,j,nt_Tsfc,:,iblk), & +< zqsn = trcrn (i,j,nt_qsno:nt_qsno+nslyr-1,:,iblk), & +< zqin = trcrn (i,j,nt_qice:nt_qice+nilyr-1,:,iblk), & +< zSin = trcrn (i,j,nt_sice:nt_sice+nilyr-1,:,iblk), & +< alvl = trcrn (i,j,nt_alvl,:,iblk), & +< vlvl = trcrn (i,j,nt_vlvl,:,iblk), & +< apnd = trcrn (i,j,nt_apnd,:,iblk), & +< hpnd = trcrn (i,j,nt_hpnd,:,iblk), & +< ipnd = trcrn (i,j,nt_ipnd,:,iblk), & +< iage = trcrn (i,j,nt_iage,:,iblk), & +< FY = trcrn (i,j,nt_FY ,:,iblk), & +< aerosno = aerosno (:,:,:), & +< aeroice = aeroice (:,:,:), & +< uatm = uatm (i,j, iblk), & +< vatm = vatm (i,j, iblk), & +< wind = wind (i,j, iblk), & +< zlvl = zlvl (i,j, iblk), & +< Qa = Qa (i,j, iblk), & +< rhoa = rhoa (i,j, iblk), & +< Tair = Tair (i,j, iblk), & +< Tref = Tref (i,j, iblk), & +< Qref = Qref (i,j, iblk), & +< Uref = Uref (i,j, iblk), & +< Cdn_atm_ratio= Cdn_atm_ratio(i,j, iblk), & +< Cdn_ocn = Cdn_ocn (i,j, iblk), & +< Cdn_ocn_skin = Cdn_ocn_skin(i,j, iblk), & +< Cdn_ocn_floe = Cdn_ocn_floe(i,j, iblk), & +< Cdn_ocn_keel = Cdn_ocn_keel(i,j, iblk), & +< Cdn_atm = Cdn_atm (i,j, iblk), & +< Cdn_atm_skin = Cdn_atm_skin(i,j, iblk), & +< Cdn_atm_floe = Cdn_atm_floe(i,j, iblk), & +< Cdn_atm_pond = Cdn_atm_pond(i,j, iblk), & +< Cdn_atm_rdg = Cdn_atm_rdg (i,j, iblk), & +< hfreebd = hfreebd (i,j, iblk), & +< hdraft = hdraft (i,j, iblk), & +< hridge = hridge (i,j, iblk), & +< distrdg = distrdg (i,j, iblk), & +< hkeel = hkeel (i,j, iblk), & +< dkeel = dkeel (i,j, iblk), & +< lfloe = lfloe (i,j, iblk), & +< dfloe = dfloe (i,j, iblk), & +< strax = strax (i,j, iblk), & +< stray = stray (i,j, iblk), & +< strairxT = strairxT (i,j, iblk), & +< strairyT = strairyT (i,j, iblk), & +< potT = potT (i,j, iblk), & +< sst = sst (i,j, iblk), & +< sss = sss (i,j, iblk), & +< Tf = Tf (i,j, iblk), & +< strocnxT = strocnxT (i,j, iblk), & +< strocnyT = strocnyT (i,j, iblk), & +< fbot = fbot (i,j, iblk), & +< Tbot = Tbot (i,j, iblk), & +< Tsnice = Tsnice (i,j, iblk), & +< frzmlt = frzmlt (i,j, iblk), & +< rside = rside (i,j, iblk), & +< fsnow = fsnow (i,j, iblk), & +< frain = frain (i,j, iblk), & +< fpond = fpond (i,j, iblk), & +< fsurf = fsurf (i,j, iblk), & +< fsurfn = fsurfn (i,j,:,iblk), & +< fcondtop = fcondtop (i,j, iblk), & +< fcondtopn = fcondtopn (i,j,:,iblk), & +< fcondbot = fcondbot (i,j, iblk), & +< fcondbotn = fcondbotn (i,j,:,iblk), & +< fswsfcn = fswsfcn (i,j,:,iblk), & +< fswintn = fswintn (i,j,:,iblk), & +< fswthrun = fswthrun (i,j,:,iblk), & +< fswabs = fswabs (i,j, iblk), & +< flwout = flwout (i,j, iblk), & +< Sswabsn = Sswabsn (i,j,:,:,iblk), & +< Iswabsn = Iswabsn (i,j,:,:,iblk), & +< flw = flw (i,j, iblk), & +< fsens = fsens (i,j, iblk), & +< fsensn = fsensn (i,j,:,iblk), & +< flat = flat (i,j, iblk), & +< flatn = flatn (i,j,:,iblk), & +< evap = evap (i,j, iblk), & +< evaps = evaps (i,j, iblk), & +< evapi = evapi (i,j, iblk), & +< fresh = fresh (i,j, iblk), & +< fsalt = fsalt (i,j, iblk), & +< fhocn = fhocn (i,j, iblk), & +< fswthru = fswthru (i,j, iblk), & +< flatn_f = flatn_f (i,j,:,iblk), & +< fsensn_f = fsensn_f (i,j,:,iblk), & +< fsurfn_f = fsurfn_f (i,j,:,iblk), & +< fcondtopn_f = fcondtopn_f (i,j,:,iblk), & +< faero_atm = faero_atm (i,j,1:n_aero,iblk), & +< faero_ocn = faero_ocn (i,j,1:n_aero,iblk), & +< dhsn = dhsn (i,j,:,iblk), & +< ffracn = ffracn (i,j,:,iblk), & +< meltt = meltt (i,j, iblk), & +< melttn = melttn (i,j,:,iblk), & +< meltb = meltb (i,j, iblk), & +< meltbn = meltbn (i,j,:,iblk), & +< melts = melts (i,j, iblk), & +< meltsn = meltsn (i,j,:,iblk), & +< congel = congel (i,j, iblk), & +< congeln = congeln (i,j,:,iblk), & +< snoice = snoice (i,j, iblk), & +< snoicen = snoicen (i,j,:,iblk), & +< dsnown = dsnown (i,j,:,iblk), & +< lmask_n = lmask_n (i,j, iblk), & +< lmask_s = lmask_s (i,j, iblk), & +< mlt_onset = mlt_onset (i,j, iblk), & +< frz_onset = frz_onset (i,j, iblk), & +< yday=yday, prescribed_ice=prescribed_ice) +--- +> call icepack_step_therm1(dt, ncat, nilyr, nslyr, n_aero, & +> aicen_init (i,j,:,iblk), & +> vicen_init (i,j,:,iblk), vsnon_init (i,j,:,iblk), & +> aice (i,j, iblk), aicen (i,j,:,iblk), & +> vice (i,j, iblk), vicen (i,j,:,iblk), & +> vsno (i,j, iblk), vsnon (i,j,:,iblk), & +> uvel (i,j, iblk), vvel (i,j, iblk), & +> trcrn (i,j,nt_Tsfc,:,iblk), & +> trcrn (i,j,nt_qsno:nt_qsno+nslyr-1,:,iblk), & +> trcrn (i,j,nt_qice:nt_qice+nilyr-1,:,iblk), & +> trcrn (i,j,nt_sice:nt_sice+nilyr-1,:,iblk), & +> trcrn (i,j,nt_alvl,:,iblk), & +> trcrn (i,j,nt_vlvl,:,iblk), & +> trcrn (i,j,nt_apnd,:,iblk), & +> trcrn (i,j,nt_hpnd,:,iblk), & +> trcrn (i,j,nt_ipnd,:,iblk), & +> trcrn (i,j,nt_iage,:,iblk), & +> trcrn (i,j,nt_FY ,:,iblk), & +> aerosno (:,:,:), aeroice (:,:,:), & +> uatm (i,j, iblk), vatm (i,j, iblk), & +> wind (i,j, iblk), zlvl (i,j, iblk), & +> Qa (i,j, iblk), rhoa (i,j, iblk), & +> Tair (i,j, iblk), Tref (i,j, iblk), & +> Qref (i,j, iblk), Uref (i,j, iblk), & +> Cdn_atm_ratio(i,j, iblk), & +> Cdn_ocn (i,j, iblk), Cdn_ocn_skin(i,j, iblk), & +> Cdn_ocn_floe(i,j, iblk), Cdn_ocn_keel(i,j, iblk), & +> Cdn_atm (i,j, iblk), Cdn_atm_skin(i,j, iblk), & +> Cdn_atm_floe(i,j, iblk), Cdn_atm_pond(i,j, iblk), & +> Cdn_atm_rdg (i,j, iblk), hfreebd (i,j, iblk), & +> hdraft (i,j, iblk), hridge (i,j, iblk), & +> distrdg (i,j, iblk), hkeel (i,j, iblk), & +> dkeel (i,j, iblk), lfloe (i,j, iblk), & +> dfloe (i,j, iblk), & +> strax (i,j, iblk), stray (i,j, iblk), & +> strairxT (i,j, iblk), strairyT (i,j, iblk), & +> potT (i,j, iblk), sst (i,j, iblk), & +> sss (i,j, iblk), Tf (i,j, iblk), & +> strocnxT (i,j, iblk), strocnyT (i,j, iblk), & +> fbot (i,j, iblk), & +> Tbot (i,j, iblk), Tsnice (i,j, iblk), & +> frzmlt (i,j, iblk), rside (i,j, iblk), & +> fsnow (i,j, iblk), frain (i,j, iblk), & +> fpond (i,j, iblk), & +> fsurf (i,j, iblk), fsurfn (i,j,:,iblk), & +> fcondtop (i,j, iblk), fcondtopn (i,j,:,iblk), & +> fcondbot (i,j, iblk), fcondbotn (i,j,:,iblk), & +> fswsfcn (i,j,:,iblk), fswintn (i,j,:,iblk), & +> fswthrun (i,j,:,iblk), fswabs (i,j, iblk), & +> flwout (i,j, iblk), & +> Sswabsn (i,j,:,:,iblk), Iswabsn (i,j,:,:,iblk), & +> flw (i,j, iblk), & +> fsens (i,j, iblk), fsensn (i,j,:,iblk), & +> flat (i,j, iblk), flatn (i,j,:,iblk), & +> evap (i,j, iblk), & +> evaps (i,j, iblk), evapi (i,j, iblk), & +> fresh (i,j, iblk), fsalt (i,j, iblk), & +> fhocn (i,j, iblk), fswthru (i,j, iblk), & +> flatn_f (i,j,:,iblk), fsensn_f (i,j,:,iblk), & +> fsurfn_f (i,j,:,iblk), fcondtopn_f (i,j,:,iblk), & +> faero_atm (i,j,1:n_aero,iblk), & +> faero_ocn (i,j,1:n_aero,iblk), & +> dhsn (i,j,:,iblk), ffracn (i,j,:,iblk), & +> meltt (i,j, iblk), melttn (i,j,:,iblk), & +> meltb (i,j, iblk), meltbn (i,j,:,iblk), & +> melts (i,j, iblk), meltsn (i,j,:,iblk), & +> congel (i,j, iblk), congeln (i,j,:,iblk), & +> snoice (i,j, iblk), snoicen (i,j,:,iblk), & +> dsnown (i,j,:,iblk), & +> lmask_n (i,j, iblk), lmask_s (i,j, iblk), & +> mlt_onset (i,j, iblk), frz_onset (i,j, iblk), & +> yday, prescribed_ice) +504,542c455,478 +< call icepack_step_therm2(dt=dt, ncat=ncat, n_aero=n_aero, & +< nltrcr=nltrcr, nilyr=nilyr, nslyr=nslyr, nblyr=nblyr, & +< hin_max = hin_max (:), & +< aicen = aicen (i,j,:,iblk), & +< vicen = vicen (i,j,:,iblk), & +< vsnon = vsnon (i,j,:,iblk), & +< aicen_init = aicen_init(i,j,:,iblk), & +< vicen_init = vicen_init(i,j,:,iblk), & +< trcrn = trcrn (i,j,:,:,iblk), & +< aice0 = aice0 (i,j, iblk), & +< aice = aice (i,j, iblk), & +< trcr_depend= trcr_depend(:), & +< trcr_base = trcr_base(:,:), & +< n_trcr_strata = n_trcr_strata(:), & +< nt_strata = nt_strata(:,:), & +< Tf = Tf (i,j, iblk), & +< sss = sss (i,j, iblk), & +< salinz = salinz (i,j,:,iblk), & +< rside = rside (i,j, iblk), & +< meltl = meltl (i,j, iblk), & +< frzmlt = frzmlt (i,j, iblk), & +< frazil = frazil (i,j, iblk), & +< frain = frain (i,j, iblk), & +< fpond = fpond (i,j, iblk), & +< fresh = fresh (i,j, iblk), & +< fsalt = fsalt (i,j, iblk), & +< fhocn = fhocn (i,j, iblk), & +< update_ocn_f = update_ocn_f, & +< bgrid = bgrid, & +< cgrid = cgrid, & +< igrid = igrid, & +< faero_ocn = faero_ocn (i,j,:,iblk), & +< first_ice = first_ice (i,j,:,iblk), & +< fzsal = fzsal (i,j, iblk), & +< flux_bio = flux_bio (i,j,1:nbtrcr,iblk), & +< ocean_bio = ocean_bio (i,j,1:nbtrcr,iblk), & +< frazil_diag = frazil_diag(i,j,iblk), & +< frz_onset = frz_onset (i,j, iblk), & +< yday = yday) +--- +> call icepack_step_therm2(dt, ncat, n_aero, nltrcr, & +> nilyr, nslyr, & +> hin_max (:), nblyr, & +> aicen (i,j,:,iblk), & +> vicen (i,j,:,iblk), vsnon (i,j,:,iblk), & +> aicen_init(i,j,:,iblk), vicen_init(i,j,:,iblk), & +> trcrn (i,j,:,:,iblk), & +> aice0 (i,j, iblk), aice (i,j, iblk), & +> trcr_depend(:), trcr_base(:,:), & +> n_trcr_strata(:), nt_strata(:,:), & +> Tf (i,j, iblk), sss (i,j, iblk), & +> salinz (i,j,:,iblk), & +> rside (i,j, iblk), meltl (i,j, iblk), & +> frzmlt (i,j, iblk), frazil (i,j, iblk), & +> frain (i,j, iblk), fpond (i,j, iblk), & +> fresh (i,j, iblk), fsalt (i,j, iblk), & +> fhocn (i,j, iblk), update_ocn_f, & +> bgrid, cgrid, & +> igrid, faero_ocn (i,j,:,iblk), & +> first_ice (i,j,:,iblk), fzsal (i,j, iblk), & +> flux_bio (i,j,1:nbtrcr,iblk), & +> ocean_bio (i,j,1:nbtrcr,iblk), & +> frazil_diag(i,j, iblk), & +> frz_onset (i,j, iblk), yday) +548c484 +< +--- +> +619,633c555,566 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend(:), & +< trcr_base = trcr_base(:,:), & +< n_trcr_strata = n_trcr_strata(:), & +< nt_strata = nt_strata(:,:)) +--- +> call icepack_aggregate (ncat, aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk), & +> vicen(i,j,:,iblk), vsnon(i,j, :,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:, iblk), & +> vice (i,j, iblk), vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend(:), & +> trcr_base (:,:), & +> n_trcr_strata(:), & +> nt_strata (:,:)) +781,816c714,738 +< call icepack_step_ridge (dt=dt, ndtd=ndtd, & +< nilyr=nilyr, nslyr=nslyr, nblyr=nblyr, & +< ncat=ncat, n_aero=n_aero, hin_max=hin_max(:), & +< trcr_depend = trcr_depend (:), & +< trcr_base = trcr_base (:,:), & +< n_trcr_strata = n_trcr_strata(:), & +< nt_strata = nt_strata (:,:), & +< trcrn = trcrn (i,j,:,:,iblk), & +< rdg_conv = rdg_conv (i,j, iblk), & +< rdg_shear = rdg_shear(i,j, iblk), & +< aicen = aicen (i,j,:,iblk), & +< vicen = vicen (i,j,:,iblk), & +< vsnon = vsnon (i,j,:,iblk), & +< aice0 = aice0 (i,j, iblk), & +< dardg1dt = dardg1dt (i,j, iblk), & +< dardg2dt = dardg2dt (i,j, iblk), & +< dvirdgdt = dvirdgdt (i,j, iblk), & +< opening = opening (i,j, iblk), & +< fpond = fpond (i,j, iblk), & +< fresh = fresh (i,j, iblk), & +< fhocn = fhocn (i,j, iblk), & +< faero_ocn = faero_ocn(i,j,:,iblk), & +< aparticn = aparticn (i,j,:,iblk), & +< krdgn = krdgn (i,j,:,iblk), & +< aredistn = aredistn (i,j,:,iblk), & +< vredistn = vredistn (i,j,:,iblk), & +< dardg1ndt = dardg1ndt(i,j,:,iblk), & +< dardg2ndt = dardg2ndt(i,j,:,iblk), & +< dvirdgndt = dvirdgndt(i,j,:,iblk), & +< araftn = araftn (i,j,:,iblk), & +< vraftn = vraftn (i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< fsalt = fsalt (i,j, iblk), & +< first_ice = first_ice(i,j,:,iblk), & +< fzsal = fzsal (i,j, iblk), & +< flux_bio = flux_bio (i,j,1:nbtrcr,iblk)) +--- +> call icepack_step_ridge (dt, ndtd, & +> nilyr, nslyr, & +> nblyr, & +> ncat, hin_max (:), & +> rdg_conv (i,j, iblk), rdg_shear(i,j, iblk), & +> aicen (i,j,:,iblk), & +> trcrn (i,j,:,:,iblk), & +> vicen (i,j,:,iblk), vsnon (i,j,:,iblk), & +> aice0 (i,j, iblk), trcr_depend(:), & +> trcr_base(:,:), n_trcr_strata(:), & +> nt_strata(:,:), & +> dardg1dt (i,j, iblk), dardg2dt (i,j, iblk), & +> dvirdgdt (i,j, iblk), opening (i,j, iblk), & +> fpond (i,j, iblk), & +> fresh (i,j, iblk), fhocn (i,j, iblk), & +> n_aero, & +> faero_ocn(i,j,:,iblk), & +> aparticn (i,j,:,iblk), krdgn (i,j,:,iblk), & +> aredistn (i,j,:,iblk), vredistn (i,j,:,iblk), & +> dardg1ndt(i,j,:,iblk), dardg2ndt(i,j,:,iblk), & +> dvirdgndt(i,j,:,iblk), & +> araftn (i,j,:,iblk), vraftn (i,j,:,iblk), & +> aice (i,j, iblk), fsalt (i,j, iblk), & +> first_ice(i,j,:,iblk), fzsal (i,j, iblk), & +> flux_bio (i,j,1:nbtrcr,iblk) ) +949,991c871,910 +< call icepack_step_radiation (dt=dt, ncat=ncat, & +< n_algae=n_algae, tr_zaero=tr_zaero, nblyr=nblyr, & +< ntrcr=ntrcr, nbtrcr_sw=nbtrcr_sw, & +< nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & +< n_zaero=n_zaero, nlt_chl_sw=nlt_chl_sw, & +< nlt_zaero_sw=nlt_zaero_sw(:), & +< dEdd_algae=dEdd_algae, & +< swgrid=swgrid(:), igrid=igrid(:), & +< fbri=fbri(:), & +< aicen=aicen(i,j, :,iblk), & +< vicen=vicen(i,j, :,iblk), & +< vsnon=vsnon(i,j, :,iblk), & +< Tsfcn=trcrn(i,j,nt_Tsfc,:,iblk), & +< alvln=trcrn(i,j,nt_alvl,:,iblk), & +< apndn=trcrn(i,j,nt_apnd,:,iblk), & +< hpndn=trcrn(i,j,nt_hpnd,:,iblk), & +< ipndn=trcrn(i,j,nt_ipnd,:,iblk), & +< aeron=trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & +< zbion=ztrcr_sw, & +< trcrn=ztrcr, & +< TLAT=TLAT(i,j,iblk), TLON=TLON(i,j,iblk), & +< calendar_type=calendar_type, & +< days_per_year=days_per_year, & +< nextsw_cday=nextsw_cday, yday=yday, & +< sec=sec, & +< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & +< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & +< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & +< bcenh=bcenh(:,:,:), & +< modal_aero=modal_aero, & +< swvdr =swvdr (i,j ,iblk), swvdf =swvdf (i,j ,iblk), & +< swidr =swidr (i,j ,iblk), swidf =swidf (i,j ,iblk), & +< coszen =coszen (i,j ,iblk), fsnow =fsnow (i,j ,iblk), & +< alvdrn =alvdrn (i,j,: ,iblk), alvdfn =alvdfn (i,j,: ,iblk), & +< alidrn =alidrn (i,j,: ,iblk), alidfn =alidfn (i,j,: ,iblk), & +< fswsfcn =fswsfcn (i,j,: ,iblk), fswintn =fswintn (i,j,: ,iblk), & +< fswthrun =fswthrun (i,j,: ,iblk), fswpenln=fswpenln(i,j,:,:,iblk), & +< Sswabsn =Sswabsn (i,j,:,:,iblk), Iswabsn =Iswabsn (i,j,:,:,iblk), & +< albicen =albicen (i,j,: ,iblk), albsnon =albsnon (i,j,: ,iblk), & +< albpndn =albpndn (i,j,: ,iblk), apeffn =apeffn (i,j,: ,iblk), & +< snowfracn=snowfracn(i,j,: ,iblk), & +< dhsn =dhsn (i,j,: ,iblk), ffracn =ffracn(i,j,:,iblk), & +< l_print_point=l_print_point) +--- +> call icepack_step_radiation (dt, ncat, & +> n_algae, tr_zaero, nblyr, & +> ntrcr, nbtrcr_sw, & +> nilyr, nslyr, n_aero, & +> n_zaero, dEdd_algae, nlt_chl_sw, & +> nlt_zaero_sw(:), & +> swgrid(:), igrid(:), & +> fbri(:), & +> aicen(i,j,:,iblk), vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> trcrn(i,j,nt_Tsfc,:,iblk), & +> trcrn(i,j,nt_alvl,:,iblk), & +> trcrn(i,j,nt_apnd,:,iblk), & +> trcrn(i,j,nt_hpnd,:,iblk), & +> trcrn(i,j,nt_ipnd,:,iblk), & +> trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & +> ztrcr_sw, & +> ztrcr, & +> TLAT(i,j,iblk), TLON(i,j,iblk), & +> calendar_type, days_per_year, & +> nextsw_cday, yday, & +> sec, & +> kaer_tab, waer_tab, & +> gaer_tab, & +> kaer_bc_tab(:,:), waer_bc_tab(:,:), & +> gaer_bc_tab(:,:), bcenh(:,:,:), & +> modal_aero, & +> swvdr(i,j,iblk), swvdf(i,j,iblk), & +> swidr(i,j,iblk), swidf(i,j,iblk), & +> coszen(i,j,iblk), fsnow(i,j,iblk), & +> alvdrn(i,j,:,iblk), alvdfn(i,j,:,iblk), & +> alidrn(i,j,:,iblk), alidfn(i,j,:,iblk), & +> fswsfcn(i,j,:,iblk), fswintn(i,j,:,iblk), & +> fswthrun(i,j,:,iblk), fswpenln(i,j,:,:,iblk), & +> Sswabsn(i,j,:,:,iblk), Iswabsn(i,j,:,:,iblk), & +> albicen(i,j,:,iblk), albsnon(i,j,:,iblk), & +> albpndn(i,j,:,iblk), apeffn(i,j,:,iblk), & +> snowfracn(i,j,:,iblk), & +> dhsn(i,j,:,iblk), ffracn(i,j,:,iblk), & +> l_print_point) +1111,1129c1030,1048 +< call icepack_atm_boundary(sfctype = 'ocn', & +< Tsf = sst (i,j,iblk), & +< potT = potT (i,j,iblk), & +< uatm = uatm (i,j,iblk), & +< vatm = vatm (i,j,iblk), & +< wind = wind (i,j,iblk), & +< zlvl = zlvl (i,j,iblk), & +< Qa = Qa (i,j,iblk), & +< rhoa = rhoa (i,j,iblk), & +< strx = strairx_ocn(i,j,iblk), & +< stry = strairy_ocn(i,j,iblk), & +< Tref = Tref_ocn (i,j,iblk), & +< Qref = Qref_ocn (i,j,iblk), & +< delt = delt (i,j), & +< delq = delq (i,j), & +< lhcoef = lhcoef (i,j), & +< shcoef = shcoef (i,j), & +< Cdn_atm = Cdn_atm (i,j,iblk), & +< Cdn_atm_ratio_n = Cdn_atm_ratio(i,j,iblk)) +--- +> call icepack_atm_boundary( 'ocn', & +> sst (i,j,iblk), & +> potT (i,j,iblk), & +> uatm (i,j,iblk), & +> vatm (i,j,iblk), & +> wind (i,j,iblk), & +> zlvl (i,j,iblk), & +> Qa (i,j,iblk), & +> rhoa (i,j,iblk), & +> strairx_ocn(i,j,iblk), & +> strairy_ocn(i,j,iblk), & +> Tref_ocn (i,j,iblk), & +> Qref_ocn (i,j,iblk), & +> delt (i,j), & +> delq (i,j), & +> lhcoef (i,j), & +> shcoef (i,j), & +> Cdn_atm (i,j,iblk), & +> Cdn_atm_ratio(i,j,iblk)) +1157,1169c1076,1088 +< call icepack_ocn_mixed_layer(alvdr_ocn=alvdr_ocn(i,j,iblk), swvdr =swvdr (i,j,iblk), & +< alidr_ocn=alidr_ocn(i,j,iblk), swidr =swidr (i,j,iblk), & +< alvdf_ocn=alvdf_ocn(i,j,iblk), swvdf =swvdf (i,j,iblk), & +< alidf_ocn=alidf_ocn(i,j,iblk), swidf =swidf (i,j,iblk), & +< sst =sst (i,j,iblk), flwout_ocn=flwout_ocn(i,j,iblk), & +< fsens_ocn=fsens_ocn(i,j,iblk), shcoef=shcoef(i,j), & +< flat_ocn =flat_ocn (i,j,iblk), lhcoef=lhcoef(i,j), & +< evap_ocn =evap_ocn (i,j,iblk), flw =flw (i,j,iblk), & +< delt =delt (i,j), delq =delq (i,j), & +< aice =aice (i,j,iblk), fhocn =fhocn (i,j,iblk), & +< fswthru =fswthru (i,j,iblk), hmix =hmix (i,j,iblk), & +< Tf =Tf (i,j,iblk), qdp =qdp (i,j,iblk), & +< frzmlt =frzmlt (i,j,iblk), dt =dt) +--- +> call icepack_ocn_mixed_layer (alvdr_ocn(i,j,iblk), swvdr (i,j,iblk), & +> alidr_ocn(i,j,iblk), swidr (i,j,iblk), & +> alvdf_ocn(i,j,iblk), swvdf (i,j,iblk), & +> alidf_ocn(i,j,iblk), swidf (i,j,iblk), & +> sst (i,j,iblk), flwout_ocn(i,j,iblk), & +> fsens_ocn(i,j,iblk), shcoef (i,j), & +> flat_ocn (i,j,iblk), lhcoef (i,j), & +> evap_ocn (i,j,iblk), flw (i,j,iblk), & +> delt (i,j), delq (i,j), & +> aice (i,j,iblk), fhocn (i,j,iblk), & +> fswthru (i,j,iblk), hmix (i,j,iblk), & +> Tf (i,j,iblk), qdp (i,j,iblk), & +> frzmlt (i,j,iblk), dt) +1256,1267c1175,1185 +< call icepack_init_OceanConcArray(max_nbtrcr = icepack_max_nbtrcr, & +< max_algae = icepack_max_algae, max_don = icepack_max_don, & +< max_doc = icepack_max_doc, max_dic = icepack_max_dic, & +< max_aero = icepack_max_aero, max_fe = icepack_max_fe, & +< nit = nit(i,j, iblk), amm = amm (i,j, iblk), & +< sil = sil(i,j, iblk), dmsp = dmsp (i,j, iblk), & +< dms = dms(i,j, iblk), algalN = algalN(i,j,:,iblk), & +< doc = doc(i,j,:,iblk), don = don (i,j,:,iblk), & +< dic = dic(i,j,:,iblk), fed = fed (i,j,:,iblk), & +< fep = fep(i,j,:,iblk), zaeros = zaeros(i,j,:,iblk), & +< hum = hum(i,j, iblk), & +< ocean_bio_all = ocean_bio_all(i,j,:,iblk)) +--- +> call icepack_init_OceanConcArray(icepack_max_nbtrcr, & +> icepack_max_algae, icepack_max_don, icepack_max_doc, & +> icepack_max_dic, icepack_max_aero, icepack_max_fe, & +> nit(i,j, iblk), amm (i,j, iblk), & +> sil(i,j, iblk), dmsp (i,j, iblk), & +> dms(i,j, iblk), algalN(i,j,:,iblk), & +> doc(i,j,:,iblk), don (i,j,:,iblk), & +> dic(i,j,:,iblk), fed (i,j,:,iblk), & +> fep(i,j,:,iblk), zaeros(i,j,:,iblk), & +> ocean_bio_all(i,j,:,iblk), & +> hum(i,j, iblk)) +1278,1328c1196,1246 +< call icepack_biogeochemistry(dt=dt, ntrcr=ntrcr, nbtrcr=nbtrcr,& +< bgrid=bgrid, igrid=igrid, icgrid=icgrid, cgrid=cgrid, & +< nblyr=nblyr, nilyr=nilyr, nslyr=nslyr, n_algae=n_algae, n_zaero=n_zaero, & +< ncat=ncat, n_doc=n_doc, n_dic=n_dic, n_don=n_don, n_fed=n_fed, n_fep=n_fep, & +< upNO = upNO (i,j, iblk), & +< upNH = upNH (i,j, iblk), & +< iDi = iDi (i,j,:,:, iblk), & +< iki = iki (i,j,:,:, iblk), & +< zfswin = zfswin (i,j,:,:, iblk), & +< zsal_tot = zsal_tot (i,j, iblk), & +< darcy_V = darcy_V (i,j,:, iblk), & +< grow_net = grow_net (i,j, iblk), & +< PP_net = PP_net (i,j, iblk), & +< hbri = hbri (i,j, iblk), & +< dhbr_bot = dhbr_bot (i,j,:, iblk), & +< dhbr_top = dhbr_top (i,j,:, iblk), & +< Zoo = Zoo (i,j,:,:, iblk), & +< fbio_snoice = fbio_snoice (i,j,:, iblk), & +< fbio_atmice = fbio_atmice (i,j,:, iblk), & +< ocean_bio = ocean_bio (i,j,1:nbtrcr, iblk), & +< first_ice = first_ice (i,j,:, iblk), & +< fswpenln = fswpenln (i,j,:,:, iblk), & +< bphi = bphi (i,j,:,:, iblk), & +< bTiz = bTiz (i,j,:,:, iblk), & +< ice_bio_net = ice_bio_net (i,j,1:nbtrcr, iblk), & +< snow_bio_net = snow_bio_net(i,j,1:nbtrcr, iblk), & +< fswthrun = fswthrun (i,j,:, iblk), & +< sice_rho = sice_rho (i,j,:, iblk), & +< fzsal = fzsal (i,j, iblk), & +< fzsal_g = fzsal_g (i,j, iblk), & +< meltbn = meltbn (i,j,:, iblk), & +< melttn = melttn (i,j,:, iblk), & +< congeln = congeln (i,j,:, iblk), & +< snoicen = snoicen (i,j,:, iblk), & +< sst = sst (i,j, iblk), & +< sss = sss (i,j, iblk), & +< fsnow = fsnow (i,j, iblk), & +< meltsn = meltsn (i,j,:, iblk), & +< hin_old = hin_old (i,j,:, iblk), & +< flux_bio = flux_bio (i,j,1:nbtrcr, iblk), & +< flux_bio_atm = flux_bio_atm(i,j,1:nbtrcr, iblk), & +< aicen_init = aicen_init (i,j,:, iblk), & +< vicen_init = vicen_init (i,j,:, iblk), & +< aicen = aicen (i,j,:, iblk), & +< vicen = vicen (i,j,:, iblk), & +< vsnon = vsnon (i,j,:, iblk), & +< aice0 = aice0 (i,j, iblk), & +< trcrn = trcrn (i,j,:,:, iblk), & +< vsnon_init = vsnon_init (i,j,:, iblk), & +< Rayleigh_criteria = Rayleigh_criteria(i,j,iblk), & +< skl_bgc = skl_bgc) +--- +> call icepack_biogeochemistry(dt, ntrcr, nbtrcr,& +> upNO (i,j, iblk), & +> upNH (i,j, iblk), & +> iDi (i,j,:,:, iblk), & +> iki (i,j,:,:, iblk), & +> zfswin (i,j,:,:, iblk), & +> zsal_tot (i,j, iblk), & +> darcy_V (i,j,:, iblk), & +> grow_net (i,j, iblk), & +> PP_net (i,j, iblk), & +> hbri (i,j, iblk), & +> dhbr_bot (i,j,:, iblk), & +> dhbr_top (i,j,:, iblk), & +> Zoo (i,j,:,:, iblk), & +> fbio_snoice (i,j,:, iblk), & +> fbio_atmice (i,j,:, iblk), & +> ocean_bio (i,j,1:nbtrcr, iblk), & +> first_ice (i,j,:, iblk), & +> fswpenln (i,j,:,:, iblk), & +> bphi (i,j,:,:, iblk), & +> bTiz (i,j,:,:, iblk), & +> ice_bio_net (i,j,1:nbtrcr, iblk), & +> snow_bio_net(i,j,1:nbtrcr, iblk), & +> fswthrun (i,j,:, iblk), & +> Rayleigh_criteria(i,j, iblk), & +> sice_rho (i,j,:, iblk), & +> fzsal (i,j, iblk), & +> fzsal_g (i,j, iblk), & +> bgrid, igrid, icgrid, cgrid, & +> nblyr, nilyr, nslyr, n_algae, n_zaero, & +> ncat, n_doc, n_dic, n_don, n_fed, n_fep, & +> meltbn (i,j,:, iblk), & +> melttn (i,j,:, iblk), & +> congeln (i,j,:, iblk), & +> snoicen (i,j,:, iblk), & +> sst (i,j, iblk), & +> sss (i,j, iblk), & +> fsnow (i,j, iblk), & +> meltsn (i,j,:, iblk), & +> hin_old (i,j,:, iblk), & +> flux_bio (i,j,1:nbtrcr, iblk), & +> flux_bio_atm(i,j,1:nbtrcr, iblk), & +> aicen_init (i,j,:, iblk), & +> vicen_init (i,j,:, iblk), & +> aicen (i,j,:, iblk), & +> vicen (i,j,:, iblk), & +> vsnon (i,j,:, iblk), & +> aice0 (i,j, iblk), & +> trcrn (i,j,:,:,iblk), & +> vsnon_init (i,j,:, iblk), & +> skl_bgc) +diff -r ./cicecore/cicedynB/infrastructure/ice_restart_driver.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/infrastructure/ice_restart_driver.F90 +496,510c496,510 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend, & +< trcr_base = trcr_base, & +< n_trcr_strata = n_trcr_strata, & +< nt_strata = nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk),& +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +859,873c859,873 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend, & +< trcr_base = trcr_base, & +< n_trcr_strata = n_trcr_strata, & +< nt_strata = nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk),& +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./cicecore/cicedynB/infrastructure/ice_restoring.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/infrastructure/ice_restoring.F90 +514,519c514,518 +< call icepack_init_trcr(Tair=Tair(i,j), Tf=Tf(i,j), & +< Sprofile=salinz(i,j,:), & +< Tprofile=Tmltz(i,j,:), & +< Tsfc=Tsfc, & +< nilyr=nilyr, nslyr=nslyr, & +< qin=qin(:), qsn=qsn(:)) +--- +> call icepack_init_trcr(Tair(i,j), Tf(i,j), & +> salinz(i,j,:), Tmltz(i,j,:), & +> Tsfc, & +> nilyr, nslyr, & +> qin(:), qsn(:)) +diff -r ./cicecore/drivers/direct/hadgem3/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/direct/hadgem3/CICE_InitMod.F90 +135c135 +< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution +--- +> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution +137c137 +< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output +--- +> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output +398,412c398,412 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend, & +< trcr_base = trcr_base, & +< n_trcr_strata = n_trcr_strata, & +< nt_strata = nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk),& +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./cicecore/drivers/mct/cesm1/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/mct/cesm1/CICE_InitMod.F90 +139c139 +< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution +--- +> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution +141c141 +< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output +--- +> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output +398,412c398,412 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend, & +< trcr_base = trcr_base, & +< n_trcr_strata = n_trcr_strata, & +< nt_strata = nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk),& +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./cicecore/drivers/mct/cesm1/ice_prescribed_mod.F90 /data/tar/git_cice/CICE/cicecore/drivers/mct/cesm1/ice_prescribed_mod.F90 +547,561c547,557 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,1:ntrcr,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,1:ntrcr,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend(1:ntrcr), & +< trcr_base = trcr_base(1:ntrcr,:), & +< n_trcr_strata = n_trcr_strata(1:ntrcr), & +< nt_strata = nt_strata(1:ntrcr,:)) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), trcrn(i,j,1:ntrcr,:,iblk), & +> vicen(i,j,:,iblk), vsnon(i,j, :,iblk), & +> aice (i,j, iblk), trcr (i,j,1:ntrcr, iblk), & +> vice (i,j, iblk), vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend(1:ntrcr), & +> trcr_base(1:ntrcr,:), & +> n_trcr_strata(1:ntrcr), & +> nt_strata(1:ntrcr,:)) +diff -r ./cicecore/drivers/nuopc/cmeps/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/nuopc/cmeps/CICE_InitMod.F90 +139c139 +< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution +--- +> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution +141c141 +< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output +--- +> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output +398,412c398,412 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend, & +< trcr_base = trcr_base, & +< n_trcr_strata = n_trcr_strata, & +< nt_strata = nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk),& +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./cicecore/drivers/nuopc/cmeps/ice_prescribed_mod.F90 /data/tar/git_cice/CICE/cicecore/drivers/nuopc/cmeps/ice_prescribed_mod.F90 +495,509c495,508 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,1:ntrcr,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,1:ntrcr,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend(1:ntrcr), & +< trcr_base = trcr_base(1:ntrcr,:), & +< n_trcr_strata = n_trcr_strata(1:ntrcr), & +< nt_strata = nt_strata(1:ntrcr,:)) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,1:ntrcr,:,iblk), & +> vicen(i,j,:,iblk), vsnon(i,j, :,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,1:ntrcr, iblk), & +> vice (i,j, iblk), vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend(1:ntrcr), & +> trcr_base(1:ntrcr,:), & +> n_trcr_strata(1:ntrcr), & +> nt_strata(1:ntrcr,:)) +> +Only in /data/tar/git_cice/CICE/cicecore/drivers/nuopc/dmi: cice_cap.F90_info +diff -r ./cicecore/drivers/standalone/cice/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/standalone/cice/CICE_InitMod.F90 +138c138 +< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution +--- +> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution +140c140 +< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output +--- +> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output +402,416c402,416 +< call icepack_aggregate(ncat = ncat, & +< aicen = aicen(i,j,:,iblk), & +< trcrn = trcrn(i,j,:,:,iblk), & +< vicen = vicen(i,j,:,iblk), & +< vsnon = vsnon(i,j,:,iblk), & +< aice = aice (i,j, iblk), & +< trcr = trcr (i,j,:,iblk), & +< vice = vice (i,j, iblk), & +< vsno = vsno (i,j, iblk), & +< aice0 = aice0(i,j, iblk), & +< ntrcr = ntrcr, & +< trcr_depend = trcr_depend, & +< trcr_base = trcr_base, & +< n_trcr_strata = n_trcr_strata, & +< nt_strata = nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,j,:,iblk), & +> trcrn(i,j,:,:,iblk),& +> vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> aice (i,j, iblk), & +> trcr (i,j,:,iblk), & +> vice (i,j, iblk), & +> vsno (i,j, iblk), & +> aice0(i,j, iblk), & +> ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./cicecore/shared/ice_init_column.F90 /data/tar/git_cice/CICE/cicecore/shared/ice_init_column.F90 +149c149 +< call icepack_init_thermo(nilyr=nilyr, sprofile=sprofile) +--- +> call icepack_init_thermo(nilyr, sprofile) +334,376c334,373 +< call icepack_step_radiation (dt=dt, ncat=ncat, & +< n_algae=n_algae, tr_zaero=tr_zaero, nblyr=nblyr, & +< ntrcr=ntrcr, nbtrcr_sw=nbtrcr_sw, & +< nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & +< n_zaero=n_zaero, nlt_chl_sw=nlt_chl_sw, & +< nlt_zaero_sw=nlt_zaero_sw(:), & +< dEdd_algae=dEdd_algae, & +< swgrid=swgrid(:), igrid=igrid(:), & +< fbri=fbri(:), & +< aicen=aicen(i,j,:,iblk), & +< vicen=vicen(i,j,:,iblk), & +< vsnon=vsnon(i,j,:,iblk), & +< Tsfcn=trcrn(i,j,nt_Tsfc,:,iblk), & +< alvln=trcrn(i,j,nt_alvl,:,iblk), & +< apndn=trcrn(i,j,nt_apnd,:,iblk), & +< hpndn=trcrn(i,j,nt_hpnd,:,iblk), & +< ipndn=trcrn(i,j,nt_ipnd,:,iblk), & +< aeron=trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & +< zbion=ztrcr_sw, & +< trcrn=ztrcr, & +< TLAT=TLAT(i,j,iblk), TLON=TLON(i,j,iblk), & +< calendar_type=calendar_type, & +< days_per_year=days_per_year, & +< nextsw_cday=nextsw_cday, yday=yday, & +< sec=sec, & +< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & +< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & +< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & +< bcenh=bcenh(:,:,:), & +< modal_aero=modal_aero, & +< swvdr=swvdr(i,j,iblk), swvdf=swvdf(i,j,iblk),& +< swidr=swidr(i,j,iblk), swidf=swidf(i,j,iblk),& +< coszen=coszen(i,j,iblk), fsnow=fsnow(i,j,iblk),& +< alvdrn=alvdrn(i,j,:,iblk), alvdfn=alvdfn(i,j,:,iblk), & +< alidrn=alidrn(i,j,:,iblk), alidfn=alidfn(i,j,:,iblk), & +< fswsfcn=fswsfcn(i,j,:,iblk), fswintn=fswintn(i,j,:,iblk), & +< fswthrun=fswthrun(i,j,:,iblk), fswpenln=fswpenln(i,j,:,:,iblk), & +< Sswabsn=Sswabsn(i,j,:,:,iblk), Iswabsn=Iswabsn(i,j,:,:,iblk), & +< albicen=albicen(i,j,:,iblk), albsnon=albsnon(i,j,:,iblk), & +< albpndn=albpndn(i,j,:,iblk), apeffn=apeffn(i,j,:,iblk), & +< snowfracn=snowfracn(i,j,:,iblk), & +< dhsn=dhsn(i,j,:,iblk), ffracn=ffracn(i,j,:,iblk), & +< l_print_point=l_print_point, & +--- +> call icepack_step_radiation (dt, ncat, & +> n_algae, tr_zaero, nblyr, & +> ntrcr, nbtrcr_sw, & +> nilyr, nslyr, n_aero, & +> n_zaero, dEdd_algae, nlt_chl_sw, & +> nlt_zaero_sw(:), & +> swgrid(:), igrid(:), & +> fbri(:), & +> aicen(i,j,:,iblk), vicen(i,j,:,iblk), & +> vsnon(i,j,:,iblk), & +> trcrn(i,j,nt_Tsfc,:,iblk), & +> trcrn(i,j,nt_alvl,:,iblk), & +> trcrn(i,j,nt_apnd,:,iblk), & +> trcrn(i,j,nt_hpnd,:,iblk), & +> trcrn(i,j,nt_ipnd,:,iblk), & +> trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & +> ztrcr_sw, & +> ztrcr, & +> TLAT(i,j,iblk), TLON(i,j,iblk), & +> calendar_type, days_per_year, & +> nextsw_cday, yday, & +> sec, & +> kaer_tab, waer_tab, & +> gaer_tab, & +> kaer_bc_tab(:,:), waer_bc_tab(:,:), & +> gaer_bc_tab(:,:), bcenh(:,:,:), & +> modal_aero, & +> swvdr(i,j,iblk), swvdf(i,j,iblk), & +> swidr(i,j,iblk), swidf(i,j,iblk), & +> coszen(i,j,iblk), fsnow(i,j,iblk), & +> alvdrn(i,j,:,iblk), alvdfn(i,j,:,iblk), & +> alidrn(i,j,:,iblk), alidfn(i,j,:,iblk), & +> fswsfcn(i,j,:,iblk), fswintn(i,j,:,iblk), & +> fswthrun(i,j,:,iblk), fswpenln(i,j,:,:,iblk), & +> Sswabsn(i,j,:,:,iblk), Iswabsn(i,j,:,:,iblk), & +> albicen(i,j,:,iblk), albsnon(i,j,:,iblk), & +> albpndn(i,j,:,iblk), apeffn(i,j,:,iblk), & +> snowfracn(i,j,:,iblk), & +> dhsn(i,j,:,iblk), ffracn(i,j,:,iblk), & +> l_print_point, & +683,689c680,681 +< call icepack_init_zsalinity(nblyr=nblyr, ntrcr_o=ntrcr_o, & +< Rayleigh_criteria = RayleighC, & +< Rayleigh_real = RayleighR, & +< trcrn = trcrn_bgc, & +< nt_bgc_S = nt_bgc_S, & +< ncat = ncat, & +< sss = sss(i,j,iblk)) +--- +> call icepack_init_zsalinity(nblyr, ntrcr_o, RayleighC, & +> RayleighR, trcrn_bgc, nt_bgc_S, ncat, sss(i,j,iblk)) +731,737c723,727 +< amm=amm (i,j, iblk), dmsp=dmsp(i,j, iblk), dms=dms(i,j, iblk), & +< algalN=algalN(i,j,:,iblk), doc=doc (i,j,:,iblk), dic=dic(i,j,:,iblk), & +< don=don (i,j,:,iblk), fed=fed (i,j,:,iblk), fep=fep(i,j,:,iblk), & +< hum=hum (i,j, iblk), nit=nit (i,j, iblk), sil=sil(i,j, iblk), & +< zaeros=zaeros(i,j,:,iblk), & +< max_dic = icepack_max_dic, max_don = icepack_max_don, & +< max_fe = icepack_max_fe, max_aero = icepack_max_aero) +--- +> amm (i,j, iblk), dmsp(i,j, iblk), dms(i,j, iblk), & +> algalN(i,j,:,iblk), doc (i,j,:,iblk), dic(i,j,:,iblk), & +> don (i,j,:,iblk), fed (i,j,:,iblk), fep(i,j,:,iblk), & +> hum (i,j, iblk), nit (i,j, iblk), sil(i,j, iblk), & +> zaeros(i,j,:,iblk), icepack_max_dic, icepack_max_don, icepack_max_fe, icepack_max_aero) +773,781c763,770 +< call icepack_init_OceanConcArray(max_nbtrcr=icepack_max_nbtrcr, & +< max_algae=icepack_max_algae, max_don=icepack_max_don, & +< max_doc=icepack_max_doc, max_fe=icepack_max_fe, & +< max_dic=icepack_max_dic, max_aero=icepack_max_aero, & +< nit =nit (i,j, iblk), amm=amm(i,j, iblk), sil =sil (i,j, iblk), & +< dmsp=dmsp(i,j, iblk), dms=dms(i,j, iblk), algalN=algalN(i,j,:,iblk), & +< doc =doc (i,j,:,iblk), don=don(i,j,:,iblk), dic =dic (i,j,:,iblk), & +< fed =fed (i,j,:,iblk), fep=fep(i,j,:,iblk), zaeros=zaeros(i,j,:,iblk), & +< hum=hum (i,j, iblk), ocean_bio_all=ocean_bio_all(i,j,:,iblk)) +--- +> call icepack_init_OceanConcArray(icepack_max_nbtrcr, & +> icepack_max_algae, icepack_max_don, icepack_max_doc, & +> icepack_max_dic, icepack_max_aero, icepack_max_fe, & +> nit (i,j, iblk), amm(i,j, iblk), sil (i,j, iblk), & +> dmsp(i,j, iblk), dms(i,j, iblk), algalN(i,j,:,iblk), & +> doc (i,j,:,iblk), don(i,j,:,iblk), dic (i,j,:,iblk), & +> fed (i,j,:,iblk), fep(i,j,:,iblk), zaeros(i,j,:,iblk), & +> ocean_bio_all(i,j,:,iblk), hum (i,j, iblk)) +805,808c794,797 +< call icepack_init_bgc(ncat=ncat, nblyr=nblyr, nilyr=nilyr, ntrcr_o=ntrcr_o, & +< cgrid=cgrid, igrid=igrid, ntrcr=ntrcr, nbtrcr=nbtrcr, & +< sicen=sicen(:,:), trcrn=trcrn_bgc(:,:), sss=sss(i,j, iblk), & +< ocean_bio_all=ocean_bio_all(i,j,:,iblk)) +--- +> call icepack_init_bgc(ncat, nblyr, nilyr, ntrcr_o, & +> cgrid, igrid, ntrcr, nbtrcr, & +> sicen(:,:), trcrn_bgc(:,:), sss(i,j, iblk), & +> ocean_bio_all(i,j,:,iblk)) +849,850c838,839 +< call icepack_init_hbrine(bgrid=bgrid, igrid=igrid, cgrid=cgrid, icgrid=icgrid, & +< swgrid=swgrid, nblyr=nblyr, nilyr=nilyr, phi_snow=phi_snow) +--- +> call icepack_init_hbrine(bgrid, igrid, cgrid, icgrid, & +> swgrid, nblyr, nilyr, phi_snow) +Only in ./configuration/scripts/tests: nothread_quicksuite.ts +diff -r ./.git/COMMIT_EDITMSG /data/tar/git_cice/CICE/.git/COMMIT_EDITMSG +1c1 +< remove dum.dat +--- +> Added a cice cap for info. It is not desirable for DMI in the current setup to put the cice nuopc cap here as it requires building of esmf at the same time +diff -r ./.git/config /data/tar/git_cice/CICE/.git/config +12,16d11 +< [submodule "Icepack"] +< url = https://github.com/TillRasmussen/Icepack +< [remote "upstream"] +< url = https://github.com/CICE-Consortium/CICE.git +< fetch = +refs/heads/*:refs/remotes/upstream/* +diff -r ./.git/FETCH_HEAD /data/tar/git_cice/CICE/.git/FETCH_HEAD +1,2c1 +< 333a5a28ccd0bfc3059a1b35a290509ee6513102 not-for-merge branch 'cice6.0' of https://github.com/CICE-Consortium/CICE +< 38816bac934df4582ed21fc7cb0fcb7dd57773f5 not-for-merge branch 'master' of https://github.com/CICE-Consortium/CICE +--- +> c4bccda069cf600dd1a94f649601ff55ff213abc branch 'master' of github.com:TillRasmussen/CICE +Binary files ./.git/index and /data/tar/git_cice/CICE/.git/index differ +diff -r ./.git/logs/HEAD /data/tar/git_cice/CICE/.git/logs/HEAD +1,6c1,13 +< 0000000000000000000000000000000000000000 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575069727 +0000 clone: from git@github.com:TillRasmussen/CICE.git +< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575070183 +0000 checkout: moving from master to master +< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 451d91addd6ffaff3bf60167748b79d710dea52e TillRasmussen 1575072239 +0000 commit (merge): test +< 451d91addd6ffaff3bf60167748b79d710dea52e 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575072420 +0000 commit: remove dum.dat +< 98df1b2ca479e562eacf9968565f2271aae197da 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575109106 +0000 checkout: moving from master to master +< 98df1b2ca479e562eacf9968565f2271aae197da 38816bac934df4582ed21fc7cb0fcb7dd57773f5 TillRasmussen 1575109179 +0000 reset: moving to upstream/master +--- +> 0000000000000000000000000000000000000000 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 TillRasmussen 1566829468 +0000 clone: from git@github.com:TillRasmussen/CICE.git +> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566829964 +0000 pull origin master: Fast-forward +> 3fbb2cd308be4555767367d5c40b8fd980c4c080 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566889393 +0000 checkout: moving from master to coupled +> 3fbb2cd308be4555767367d5c40b8fd980c4c080 bca1df5c4950db0b08bf887ef5e9a2c5181b13a6 TillRasmussen 1566889716 +0000 commit: added driver_dmi +> bca1df5c4950db0b08bf887ef5e9a2c5181b13a6 33594a5ed37d4beb3fdc2677b7115c2c8430d46b TillRasmussen 1566996437 +0000 commit: added CICE.F90 +> 33594a5ed37d4beb3fdc2677b7115c2c8430d46b 8eca24bc6805c2ddb6ab0611758cee22c9b56d9c TillRasmussen 1573046975 +0000 commit: correct integer division and message spaces +> 8eca24bc6805c2ddb6ab0611758cee22c9b56d9c 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1573047044 +0000 checkout: moving from coupled to master +> 3fbb2cd308be4555767367d5c40b8fd980c4c080 74a6b63a23a06d4127e502a82e7da854ebb16070 TillRasmussen 1573047704 +0000 pull: Fast-forward +> 74a6b63a23a06d4127e502a82e7da854ebb16070 bb3673e5273b5759911e67cbb4eb7308b1059d8e TillRasmussen 1573229522 +0000 commit: Fix for bug in ice_Grid and anglet +> bb3673e5273b5759911e67cbb4eb7308b1059d8e 506642e6f4e827c59a3fed2684e0163d5bc1d5ea TillRasmussen 1573230789 +0000 pull: Merge made by the 'recursive' strategy. +> 506642e6f4e827c59a3fed2684e0163d5bc1d5ea cf012428173d99654eefe37777d52326edb68e5d TillRasmussen 1573233532 +0000 commit: merged changes from branch (coupled) +> cf012428173d99654eefe37777d52326edb68e5d c4bccda069cf600dd1a94f649601ff55ff213abc TillRasmussen 1574327995 +0000 pull origin master: Fast-forward +> c4bccda069cf600dd1a94f649601ff55ff213abc fcae2e828ad137e22d27a5ba1e76635810622f27 TillRasmussen 1574328442 +0000 commit: Added a cice cap for info. It is not desirable for DMI in the current setup to put the cice nuopc cap here as it requires building of esmf at the same time +Only in /data/tar/git_cice/CICE/.git/logs/refs/heads: coupled +diff -r ./.git/logs/refs/heads/master /data/tar/git_cice/CICE/.git/logs/refs/heads/master +1,4c1,8 +< 0000000000000000000000000000000000000000 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575069727 +0000 clone: from git@github.com:TillRasmussen/CICE.git +< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 451d91addd6ffaff3bf60167748b79d710dea52e TillRasmussen 1575072239 +0000 commit (merge): test +< 451d91addd6ffaff3bf60167748b79d710dea52e 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575072420 +0000 commit: remove dum.dat +< 98df1b2ca479e562eacf9968565f2271aae197da 38816bac934df4582ed21fc7cb0fcb7dd57773f5 TillRasmussen 1575109179 +0000 reset: moving to upstream/master +--- +> 0000000000000000000000000000000000000000 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 TillRasmussen 1566829468 +0000 clone: from git@github.com:TillRasmussen/CICE.git +> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566829964 +0000 pull origin master: Fast-forward +> 3fbb2cd308be4555767367d5c40b8fd980c4c080 74a6b63a23a06d4127e502a82e7da854ebb16070 TillRasmussen 1573047704 +0000 pull: Fast-forward +> 74a6b63a23a06d4127e502a82e7da854ebb16070 bb3673e5273b5759911e67cbb4eb7308b1059d8e TillRasmussen 1573229522 +0000 commit: Fix for bug in ice_Grid and anglet +> bb3673e5273b5759911e67cbb4eb7308b1059d8e 506642e6f4e827c59a3fed2684e0163d5bc1d5ea TillRasmussen 1573230789 +0000 pull: Merge made by the 'recursive' strategy. +> 506642e6f4e827c59a3fed2684e0163d5bc1d5ea cf012428173d99654eefe37777d52326edb68e5d TillRasmussen 1573233532 +0000 commit: merged changes from branch (coupled) +> cf012428173d99654eefe37777d52326edb68e5d c4bccda069cf600dd1a94f649601ff55ff213abc TillRasmussen 1574327995 +0000 pull origin master: Fast-forward +> c4bccda069cf600dd1a94f649601ff55ff213abc fcae2e828ad137e22d27a5ba1e76635810622f27 TillRasmussen 1574328442 +0000 commit: Added a cice cap for info. It is not desirable for DMI in the current setup to put the cice nuopc cap here as it requires building of esmf at the same time +Only in /data/tar/git_cice/CICE/.git/logs/refs/remotes/origin: coupled +diff -r ./.git/logs/refs/remotes/origin/HEAD /data/tar/git_cice/CICE/.git/logs/refs/remotes/origin/HEAD +1c1 +< 0000000000000000000000000000000000000000 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575069727 +0000 clone: from git@github.com:TillRasmussen/CICE.git +--- +> 0000000000000000000000000000000000000000 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 TillRasmussen 1566829468 +0000 clone: from git@github.com:TillRasmussen/CICE.git +diff -r ./.git/logs/refs/remotes/origin/master /data/tar/git_cice/CICE/.git/logs/refs/remotes/origin/master +1,3c1,6 +< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 451d91addd6ffaff3bf60167748b79d710dea52e TillRasmussen 1575072319 +0000 update by push +< 451d91addd6ffaff3bf60167748b79d710dea52e 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575072434 +0000 update by push +< 98df1b2ca479e562eacf9968565f2271aae197da 38816bac934df4582ed21fc7cb0fcb7dd57773f5 TillRasmussen 1575109230 +0000 update by push +--- +> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566829963 +0000 pull origin master: fast-forward +> 3fbb2cd308be4555767367d5c40b8fd980c4c080 74a6b63a23a06d4127e502a82e7da854ebb16070 TillRasmussen 1573047681 +0000 pull: fast-forward +> 74a6b63a23a06d4127e502a82e7da854ebb16070 d1927fd4632e9750019bf72f84172f79e3d706ba TillRasmussen 1573230764 +0000 fetch: fast-forward +> d1927fd4632e9750019bf72f84172f79e3d706ba 506642e6f4e827c59a3fed2684e0163d5bc1d5ea TillRasmussen 1573231244 +0000 update by push +> 506642e6f4e827c59a3fed2684e0163d5bc1d5ea cf012428173d99654eefe37777d52326edb68e5d TillRasmussen 1573233540 +0000 update by push +> cf012428173d99654eefe37777d52326edb68e5d c4bccda069cf600dd1a94f649601ff55ff213abc TillRasmussen 1574327994 +0000 pull origin master: fast-forward +Only in ./.git/logs/refs/remotes: upstream +Only in ./.git: modules +Only in ./.git/objects: 00 +Only in /data/tar/git_cice/CICE/.git/objects: 02 +Only in ./.git/objects/03: 8e76bbe70944f8de41c0e52d8cf6eedb5bd8fe +Only in /data/tar/git_cice/CICE/.git/objects/03: 911d68d064460d2edf7f7aed609b503d7af829 +Only in /data/tar/git_cice/CICE/.git/objects: 04 +Only in ./.git/objects: 08 +Only in /data/tar/git_cice/CICE/.git/objects/0c: 0ea6f7b7649072b941f236af25468e0c2b64ff +Only in ./.git/objects/0c: ce18f21810331b542e147389d267bdebdc2b5e +Only in /data/tar/git_cice/CICE/.git/objects: 0d +Only in /data/tar/git_cice/CICE/.git/objects: 10 +Only in ./.git/objects: 15 +Only in /data/tar/git_cice/CICE/.git/objects: 17 +Only in /data/tar/git_cice/CICE/.git/objects: 1d +Only in /data/tar/git_cice/CICE/.git/objects: 21 +Only in /data/tar/git_cice/CICE/.git/objects: 26 +Only in /data/tar/git_cice/CICE/.git/objects: 27 +Only in ./.git/objects: 29 +Only in /data/tar/git_cice/CICE/.git/objects/2d: 99a64761439dad1ef78abc08dc6063cb8cb9e6 +Only in ./.git/objects/2d: b47fae76194aff50d4f21818c2298e78e3d5f6 +Only in /data/tar/git_cice/CICE/.git/objects: 2e +Only in /data/tar/git_cice/CICE/.git/objects: 30 +Only in /data/tar/git_cice/CICE/.git/objects: 33 +Only in /data/tar/git_cice/CICE/.git/objects: 36 +Only in ./.git/objects: 38 +Only in ./.git/objects: 3a +Only in /data/tar/git_cice/CICE/.git/objects: 44 +Only in ./.git/objects: 45 +Only in /data/tar/git_cice/CICE/.git/objects: 47 +Only in ./.git/objects: 4b +Only in /data/tar/git_cice/CICE/.git/objects: 4e +Only in /data/tar/git_cice/CICE/.git/objects: 4f +Only in /data/tar/git_cice/CICE/.git/objects: 50 +Only in /data/tar/git_cice/CICE/.git/objects: 51 +Only in ./.git/objects: 53 +Only in ./.git/objects: 54 +Only in ./.git/objects: 60 +Only in ./.git/objects/61: 89a1fb297709f8897640cd353bf50a00fd3bf6 +Only in /data/tar/git_cice/CICE/.git/objects/61: dd66fb0e4db34c79b7fb5e8aeee14e8d9d597b +Only in /data/tar/git_cice/CICE/.git/objects: 66 +Only in /data/tar/git_cice/CICE/.git/objects: 67 +Only in /data/tar/git_cice/CICE/.git/objects: 6a +Only in ./.git/objects: 6d +Only in /data/tar/git_cice/CICE/.git/objects: 70 +Only in /data/tar/git_cice/CICE/.git/objects: 78 +Only in /data/tar/git_cice/CICE/.git/objects: 7e +Only in /data/tar/git_cice/CICE/.git/objects: 80 +Only in ./.git/objects: 82 +Only in /data/tar/git_cice/CICE/.git/objects: 85 +Only in ./.git/objects: 87 +Only in ./.git/objects: 8a +Only in /data/tar/git_cice/CICE/.git/objects: 8e +Only in /data/tar/git_cice/CICE/.git/objects: 8f +Only in ./.git/objects: 92 +Only in /data/tar/git_cice/CICE/.git/objects: 95 +Only in ./.git/objects: 98 +Only in /data/tar/git_cice/CICE/.git/objects: 9b +Only in ./.git/objects/9d: 6deac3df97bada538718584b34d0fe23021536 +Only in /data/tar/git_cice/CICE/.git/objects/9d: ef9fb46b383634d4508e546394abbca517e411 +Only in ./.git/objects: 9e +Only in ./.git/objects: a1 +Only in ./.git/objects: af +Only in /data/tar/git_cice/CICE/.git/objects: b2 +Only in /data/tar/git_cice/CICE/.git/objects: b5 +Only in /data/tar/git_cice/CICE/.git/objects/b7: 4d7faef3de192f2ef5a6e2edec69b42c6647f2 +Only in ./.git/objects/b7: fb0f4b879d6504769759684d46e5d40b4960de +Only in /data/tar/git_cice/CICE/.git/objects: b8 +Only in ./.git/objects/b9: 45feeb6779303c590ebfb84b43ed332905224e +Only in ./.git/objects/b9: c797a9fae16c9c4a3fc34ae403ceabb0378283 +Only in /data/tar/git_cice/CICE/.git/objects/b9: e0032e19d541e0dea4313ab58fdcd9fdbb5b07 +Only in ./.git/objects: ba +Only in /data/tar/git_cice/CICE/.git/objects: bb +Only in /data/tar/git_cice/CICE/.git/objects/bc: a1df5c4950db0b08bf887ef5e9a2c5181b13a6 +Only in ./.git/objects/bc: a8c7ab7304313a12732c2acde176e4aad7857e +Only in /data/tar/git_cice/CICE/.git/objects: bd +Only in ./.git/objects/bf: 12157bac41edd4a9c877d489f795cca8c113a5 +Only in /data/tar/git_cice/CICE/.git/objects/bf: e506c332e1ef05660d639db4b49d571f1adccb +Only in /data/tar/git_cice/CICE/.git/objects: c0 +Only in ./.git/objects/c4: 715fa61bae455fca02c117e8cb8062ed1b9b2e +Only in /data/tar/git_cice/CICE/.git/objects/c4: bccda069cf600dd1a94f649601ff55ff213abc +Only in /data/tar/git_cice/CICE/.git/objects: c5 +Only in ./.git/objects/c6: 9f70d6043bc0b37f6173fb1277a344488914b2 +Only in /data/tar/git_cice/CICE/.git/objects/c6: f6f20c2554214e1e230829f47ffe6fc81bd9d7 +Only in ./.git/objects: ca +Only in /data/tar/git_cice/CICE/.git/objects: cb +Only in /data/tar/git_cice/CICE/.git/objects: cc +Only in /data/tar/git_cice/CICE/.git/objects: cf +Only in /data/tar/git_cice/CICE/.git/objects: d1 +Only in /data/tar/git_cice/CICE/.git/objects: d3 +Only in ./.git/objects: d6 +Only in /data/tar/git_cice/CICE/.git/objects: d9 +Only in ./.git/objects: dc +Only in /data/tar/git_cice/CICE/.git/objects: dd +Only in /data/tar/git_cice/CICE/.git/objects: e6 +Only in ./.git/objects: e7 +Only in /data/tar/git_cice/CICE/.git/objects: e8 +Only in /data/tar/git_cice/CICE/.git/objects: e9 +Only in /data/tar/git_cice/CICE/.git/objects: eb +Only in ./.git/objects: ee +Only in /data/tar/git_cice/CICE/.git/objects: ef +Only in /data/tar/git_cice/CICE/.git/objects/fc: ae2e828ad137e22d27a5ba1e76635810622f27 +Only in ./.git/objects/fc: bea1debf77c0442f5ed6e91036bf301089f33d +Only in ./.git/objects/ff: 3909107b41dcb7032956d12da0b1f8b5878225 +Only in /data/tar/git_cice/CICE/.git/objects/ff: ef0b615bcfc035ac2b38a15b03b88cfbbe40a8 +Only in ./.git/objects/pack: pack-4c722f8c542ad03655ba1bd53c7e38fd8e5f4a71.idx +Only in ./.git/objects/pack: pack-4c722f8c542ad03655ba1bd53c7e38fd8e5f4a71.pack +Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-82a1cb39120044f6ac0fc88e03ddee85730daacb.idx +Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-82a1cb39120044f6ac0fc88e03ddee85730daacb.pack +Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-a42829fda20506953f90d0a5ba43c6bdee0420df.idx +Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-a42829fda20506953f90d0a5ba43c6bdee0420df.pack +Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-e699070aa71de864c72892fb7465e1fe58cc0742.idx +Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-e699070aa71de864c72892fb7465e1fe58cc0742.pack +diff -r ./.git/ORIG_HEAD /data/tar/git_cice/CICE/.git/ORIG_HEAD +1c1 +< 98df1b2ca479e562eacf9968565f2271aae197da +--- +> cf012428173d99654eefe37777d52326edb68e5d +diff -r ./.git/packed-refs /data/tar/git_cice/CICE/.git/packed-refs +3,4c3 +< b554968d8aa2456bdabb8a953f4b5efb68453189 refs/remotes/origin/coupled +< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 refs/remotes/origin/master +--- +> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 refs/remotes/origin/master +Only in /data/tar/git_cice/CICE/.git/refs/heads: coupled +diff -r ./.git/refs/heads/master /data/tar/git_cice/CICE/.git/refs/heads/master +1c1 +< 38816bac934df4582ed21fc7cb0fcb7dd57773f5 +--- +> fcae2e828ad137e22d27a5ba1e76635810622f27 +Only in /data/tar/git_cice/CICE/.git/refs/remotes/origin: coupled +diff -r ./.git/refs/remotes/origin/master /data/tar/git_cice/CICE/.git/refs/remotes/origin/master +1c1 +< 38816bac934df4582ed21fc7cb0fcb7dd57773f5 +--- +> c4bccda069cf600dd1a94f649601ff55ff213abc +Only in ./.git/refs/remotes: upstream +Only in ./.git/refs/tags: CICE6.0.0 +Only in ./.git/refs/tags: CICE6.0.1 +Only in ./.git/refs/tags: CICE6.0.2 +diff -r ./.gitmodules /data/tar/git_cice/CICE/.gitmodules +1,4d0 +< [submodule "icepack"] +< path = icepack +< url = https://github.com/cice-consortium/icepack.git +< branch = master +Only in .: icepack +diff -r ./Icepack/columnphysics/icepack_atmo.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_atmo.F90 +800,801d799 +< !autodocument_start icepack_atm_boundary +< ! +854,857d851 +< !autodocument_end +< +< ! local variables +< +910,912c904,906 +< !------------------------------------------------------------ +< ! Define functions +< !------------------------------------------------------------ +--- +> !------------------------------------------------------------ +> ! Define functions +> !------------------------------------------------------------ +diff -r ./Icepack/columnphysics/icepack_brine.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_brine.F90 +913c913 +< !autodocument_start icepack_init_hbrine +--- +> +937,940d936 +< !autodocument_end +< +< ! local variables +< +1009c1005 +< !autodocument_start icepack_init_zsalinity +--- +> +1032,1035d1027 +< +< !autodocument_end +< +< ! local variables +diff -r ./Icepack/columnphysics/icepack_itd.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_itd.F90 +819c819 +< logical (kind=log_kind), dimension(ncat), intent(inout) :: & +--- +> logical (kind=log_kind), dimension(ncat),intent(inout) :: & +834c834,835 +< real (kind=dbl_kind), dimension (:), intent(inout), optional :: & +--- +> real (kind=dbl_kind), dimension (:), & +> intent(inout), optional :: & +1075c1076 +< logical (kind=log_kind), dimension (:), intent(inout) :: & +--- +> logical (kind=log_kind), dimension (:),intent(inout) :: & +1441c1442 +< real (kind=dbl_kind), dimension (:), intent(inout) :: & +--- +> real (kind=dbl_kind), dimension (:),intent(inout) :: & +1672d1672 +< !autodocument_start icepack_init_itd +1686,1687d1685 +< !autodocument_end +< +1853c1851 +< !autodocument_start icepack_init_itd_hist +--- +> +1870,1871d1867 +< !autodocument_end +< +1908c1904 +< !autodocument_start icepack_aggregate +--- +> +1935c1931,1932 +< real (kind=dbl_kind), dimension (:,:), intent(inout) :: & +--- +> real (kind=dbl_kind), dimension (:,:), & +> intent(inout) :: & +1955c1952,1953 +< real (kind=dbl_kind), dimension (:), intent(out) :: & +--- +> real (kind=dbl_kind), dimension (:), & +> intent(out) :: & +1957,1958d1954 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_mechred.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_mechred.F90 +1561c1561 +< !autodocument_start icepack_ice_strength +--- +> +1597,1598d1596 +< !autodocument_end +< +1693c1691 +< !autodocument_start icepack_step_ridge +--- +> ! +1795,1796d1792 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_ocean.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_ocean.F90 +24d23 +< !autodocument_start icepack_ocn_mixed_layer +73,74d71 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_orbital.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_orbital.F90 +42d41 +< !autodocument_start icepack_init_orbit +62,63d60 +< !autodocument_end +< +91d87 +< !autodocument_start icepack_query_orbit +110,111d105 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_parameters.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_parameters.F90 +344d343 +< !autodocument_start icepack_init_parameters +648,649d646 +< !autodocument_end +< +798d794 +< !autodocument_start icepack_query_parameters +1116,1117d1111 +< !autodocument_end +< +1310d1303 +< !autodocument_start icepack_write_parameters +1318,1319d1310 +< !autodocument_end +< +1473,1475d1463 +< !autodocument_start icepack_recompute_constants +< ! subroutine to reinitialize some derived constants +< +1477,1478d1464 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_shortwave.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_shortwave.F90 +3735c3735 +< !autodocument_start icepack_prep_radiation +--- +> ! +3784,3785d3783 +< !autodocument_end +< +3837c3835 +< !autodocument_start icepack_step_radiation +--- +> ! +3994,3995d3991 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_therm_itd.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_therm_itd.F90 +1496d1495 +< !autodocument_start icepack_step_therm2 +1606,1607d1604 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_therm_shared.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_therm_shared.F90 +218c218 +< !autodocument_start icepack_init_thermo +--- +> ! +232,233d231 +< !autodocument_end +< +279,280c277 +< !autodocument_start icepack_init_trcr +< ! +--- +> +306,307d302 +< !autodocument_end +< +356,357d350 +< !autodocument_start icepack_liquidus_temperature +< ! compute liquidus temperature +364,365d356 +< !autodocument_end +< +381,382d371 +< !autodocument_start icepack_sea_freezing_temperature +< ! compute ocean freezing temperature +389,390d377 +< !autodocument_end +< +410,411d396 +< !autodocument_start icepack_ice_temperature +< ! compute ice temperature +418,419d402 +< !autodocument_end +< +438,439d420 +< !autodocument_start icepack_snow_temperature +< ! compute snow temperature +446,447d426 +< !autodocument_end +< +463,464d441 +< !autodocument_start icepack_enthalpy_snow +< ! compute snow enthalpy +470,471d446 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_therm_vertical.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_therm_vertical.F90 +2011c2011 +< !autodocument_start icepack_step_therm1 +--- +> +2225,2226d2224 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_tracers.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_tracers.F90 +189d188 +< !autodocument_start icepack_query_tracer_sizes +208,209d206 +< !autodocument_end +< +223d219 +< !autodocument_start icepack_write_tracer_sizes +230,231d225 +< !autodocument_end +< +246d239 +< !autodocument_start icepack_init_tracer_flags +280,281d272 +< !autodocument_end +< +307d297 +< !autodocument_start icepack_query_tracer_flags +341,342d330 +< !autodocument_end +< +368d355 +< !autodocument_start icepack_write_tracer_flags +375,376d361 +< !autodocument_end +< +403d387 +< !autodocument_start icepack_init_tracer_indices +502,503d485 +< !autodocument_end +< +619d600 +< !autodocument_start icepack_query_tracer_indices +707,708d687 +< !autodocument_end +< +767d745 +< !autodocument_start icepack_write_tracer_indices +774,775d751 +< !autodocument_end +< +865d840 +< !autodocument_start icepack_init_tracer_numbers +877,878d851 +< !autodocument_end +< +887d859 +< !autodocument_start icepack_query_tracer_numbers +899,900d870 +< !autodocument_end +< +909d878 +< !autodocument_start icepack_write_tracer_numbers +916,917d884 +< !autodocument_end +< +926c893 +< !autodocument_start icepack_compute_tracers +--- +> +928a896,897 +> ! +> ! author: William H. Lipscomb, LANL +960,961d928 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_warnings.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_warnings.F90 +38,40d37 +< !autodocument_start icepack_warnings_aborted +< ! turn on the abort flag in the icepack warnings package +< ! pass in an optional error message +45,47d41 +< +< !autodocument_end +< +81,82d74 +< !autodocument_start icepack_warnings_clear +< ! clear all warning messages from the icepack warning buffer +86,87d77 +< !autodocument_end +< +114,115d103 +< !autodocument_start icepack_warnings_print +< ! print all warning messages from the icepack warning buffer +121,122d108 +< !autodocument_end +< +138,139d123 +< !autodocument_start icepack_warnings_flush +< ! print and clear all warning messages from the icepack warning buffer +144,145d127 +< +< !autodocument_end +diff -r ./Icepack/columnphysics/icepack_zbgc.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_zbgc.F90 +538,539d537 +< !autodocument_start icepack_init_bgc +< ! +571,572d568 +< !autodocument_end +< +666,667d661 +< !autodocument_start icepack_init_zbgc +< ! +740,741d733 +< !autodocument_end +< +807,808d798 +< !autodocument_start icepack_biogeochemistry +< ! +914,915d903 +< !autodocument_end +< +1162c1150 +< !autodocument_start icepack_init_OceanConcArray +--- +> +1208,1209d1195 +< !autodocument_end +< +1274c1260 +< !autodocument_start icepack_init_ocean_conc +--- +> +1307,1310d1292 +< +< !autodocument_end +< +< ! local variables +diff -r ./Icepack/columnphysics/version.txt /data/tar/git_cice/CICE/Icepack/columnphysics/version.txt +1c1 +< ICEPACK 1.1.2 +--- +> ICEPACK 1.1.1 +diff -r ./Icepack/configuration/driver/icedrv_init_column.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_init_column.F90 +72c72 +< call icepack_init_thermo(nilyr=nilyr, sprofile=sprofile) +--- +> call icepack_init_thermo(nilyr, sprofile) +156c156 +< nbtrcr_sw_out=nbtrcr_sw) +--- +> nbtrcr_sw_out=nbtrcr_sw) +158c158 +< tr_zaero_out=tr_zaero, tr_bgc_n_out=tr_bgc_n) +--- +> tr_zaero_out=tr_zaero, tr_bgc_n_out=tr_bgc_n) +160,163c160,163 +< nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & +< nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & +< nt_fbri_out=nt_fbri, nt_tsfc_out=nt_tsfc, & +< nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw) +--- +> nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & +> nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & +> nt_fbri_out=nt_fbri, nt_tsfc_out=nt_tsfc, & +> nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw) +231,277c231,266 +< call icepack_step_radiation ( & +< dt=dt, ncat=ncat, & +< n_algae=n_algae, nblyr=nblyr, & +< ntrcr=ntrcr, nbtrcr_sw=nbtrcr_sw, & +< nilyr=nilyr, nslyr=nslyr, & +< n_aero=n_aero, n_zaero=n_zaero, & +< tr_zaero=tr_zaero, & +< dEdd_algae=dEdd_algae, & +< nlt_chl_sw=nlt_chl_sw, & +< nlt_zaero_sw=nlt_zaero_sw(:), & +< swgrid=swgrid(:), & +< igrid=igrid(:), & +< fbri=fbri(:), & +< aicen=aicen(i,:), & +< vicen=vicen(i,:), & +< vsnon=vsnon(i,:), & +< Tsfcn=trcrn(i,nt_Tsfc,:), & +< alvln=trcrn(i,nt_alvl,:), & +< apndn=trcrn(i,nt_apnd,:), & +< hpndn=trcrn(i,nt_hpnd,:), & +< ipndn=trcrn(i,nt_ipnd,:), & +< aeron=trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & +< zbion=ztrcr_sw, & +< trcrn=ztrcr, & +< TLAT=TLAT(i), TLON=TLON(i), & +< calendar_type=calendar_type, & +< days_per_year=days_per_year, & +< nextsw_cday=nextsw_cday, yday=yday, sec=sec, & +< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & +< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & +< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & +< bcenh=bcenh(:,:,:), & +< modal_aero=modal_aero, & +< swvdr=swvdr(i), swvdf=swvdf(i), & +< swidr=swidr(i), swidf=swidf(i), & +< coszen=coszen(i), fsnow=fsnow(i), & +< alvdrn=alvdrn(i,:), alvdfn=alvdfn(i,:), & +< alidrn=alidrn(i,:), alidfn=alidfn(i,:), & +< fswsfcn=fswsfcn(i,:), fswintn=fswintn(i,:), & +< fswthrun=fswthrun(i,:), fswpenln=fswpenln(i,:,:), & +< Sswabsn=Sswabsn(i,:,:), Iswabsn=Iswabsn(i,:,:), & +< albicen=albicen(i,:), albsnon=albsnon(i,:), & +< albpndn=albpndn(i,:), apeffn=apeffn(i,:), & +< snowfracn=snowfracn(i,:), & +< dhsn=dhsn(i,:), ffracn=ffracn(i,:), & +< l_print_point=l_print_point, & +< initonly = .true.) +--- +> call icepack_step_radiation ( dt, ncat, & +> n_algae, tr_zaero, nblyr, & +> ntrcr, nbtrcr_sw, & +> nilyr, nslyr, n_aero, & +> n_zaero, dEdd_algae, nlt_chl_sw, & +> nlt_zaero_sw(:), & +> swgrid(:), igrid(:), fbri(:), & +> aicen(i,:), vicen(i,:), & +> vsnon(i,:), & +> trcrn(i,nt_Tsfc,:), & +> trcrn(i,nt_alvl,:), & +> trcrn(i,nt_apnd,:), & +> trcrn(i,nt_hpnd,:), & +> trcrn(i,nt_ipnd,:), & +> trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & +> ztrcr_sw, ztrcr, & +> TLAT(i), TLON(i), & +> calendar_type, days_per_year, & +> nextsw_cday, yday, sec, & +> kaer_tab, waer_tab, gaer_tab, & +> kaer_bc_tab(:,:), waer_bc_tab(:,:), & +> gaer_bc_tab(:,:), bcenh(:,:,:), & +> modal_aero, & +> swvdr(i), swvdf(i), & +> swidr(i), swidf(i), & +> coszen(i), fsnow(i), & +> alvdrn(i,:), alvdfn(i,:), & +> alidrn(i,:), alidfn(i,:), & +> fswsfcn(i,:), fswintn(i,:), & +> fswthrun(i,:), fswpenln(i,:,:), & +> Sswabsn(i,:,:), Iswabsn(i,:,:), & +> albicen(i,:), albsnon(i,:), & +> albpndn(i,:), apeffn(i,:), & +> snowfracn(i,:), & +> dhsn(i,:), ffracn(i,:), & +> l_print_point, initonly = .true.) +427,433c416,417 +< call icepack_init_zsalinity(ncat=ncat, nblyr=nblyr, & +< ntrcr_o = ntrcr_o, & +< Rayleigh_criteria = RayleighC, & +< Rayleigh_real = RayleighR, & +< trcrn = trcrn_bgc, & +< nt_bgc_S = nt_bgc_S, & +< sss = sss(i)) +--- +> call icepack_init_zsalinity(nblyr, ntrcr_o, RayleighC, & +> RayleighR, trcrn_bgc, nt_bgc_S, ncat, sss(i)) +456,463c440,444 +< amm=amm(i), dmsp=dmsp(i), dms=dms(i), & +< doc=doc(i,:), dic =dic(i,:), don=don(i,:), & +< fed=fed(i,:), fep =fep(i,:), hum=hum(i), & +< nit=nit(i), sil =sil(i), & +< zaeros=zaeros(i,:), & +< algalN=algalN(i,:), & +< max_dic=max_dic, max_don =max_don, & +< max_fe =max_fe, max_aero=max_aero) +--- +> amm (i ), dmsp(i ), dms(i ), & +> algalN(i,:), doc (i,:), dic(i,:), & +> don (i,:), fed (i,:), fep(i,:), & +> hum (i ), nit (i ), sil(i ), & +> zaeros(i,:), max_dic, max_don, max_fe, max_aero) +482,489c463,470 +< call icepack_init_OceanConcArray(max_nbtrcr=max_nbtrcr, & +< max_algae=max_algae, max_don=max_don, max_doc=max_doc, & +< max_aero =max_aero, max_dic=max_dic, max_fe =max_fe, & +< nit =nit(i), amm=amm(i), sil =sil(i), & +< dmsp=dmsp(i), dms=dms(i), algalN=algalN(i,:), & +< doc =doc(i,:), don=don(i,:), dic =dic(i,:), & +< fed =fed(i,:), fep=fep(i,:), zaeros=zaeros(i,:), & +< ocean_bio_all=ocean_bio_all(i,:), hum=hum(i)) +--- +> call icepack_init_OceanConcArray(max_nbtrcr, & +> max_algae, max_don, max_doc, & +> max_dic, max_aero, max_fe, & +> nit(i), amm(i), sil(i), & +> dmsp(i), dms(i), algalN(i,:), & +> doc(i,:), don(i,:), dic(i,:), & +> fed(i,:), fep(i,:), zaeros(i,:), & +> ocean_bio_all(i,:), hum(i)) +497,500c478,481 +< call icepack_init_bgc(ncat=ncat, nblyr=nblyr, nilyr=nilyr, ntrcr_o=ntrcr_o, & +< cgrid=cgrid, igrid=igrid, ntrcr=ntrcr, nbtrcr=nbtrcr, & +< sicen=sicen(:,:), trcrn=trcrn_bgc(:,:), & +< sss=sss(i), ocean_bio_all=ocean_bio_all(i,:)) +--- +> call icepack_init_bgc(ncat, nblyr, nilyr, ntrcr_o, & +> cgrid, igrid, ntrcr, nbtrcr, & +> sicen(:,:), trcrn_bgc(:,:), & +> sss(i), ocean_bio_all(i,:)) +536,537c517,518 +< call icepack_init_hbrine(bgrid=bgrid, igrid=igrid, cgrid=cgrid, icgrid=icgrid, & +< swgrid=swgrid, nblyr=nblyr, nilyr=nilyr, phi_snow=phi_snow) +--- +> call icepack_init_hbrine(bgrid, igrid, cgrid, icgrid, & +> swgrid, nblyr, nilyr, phi_snow) +851,862c832,843 +< scale_bgc_out=scale_bgc, skl_bgc_out=skl_bgc, z_tracers_out=z_tracers, & +< dEdd_algae_out=dEdd_algae, solve_zbgc_out=solve_zbgc, phi_snow_out=phi_snow, & +< bgc_flux_type_out=bgc_flux_type, grid_o_out=grid_o, l_sk_out=l_sk, & +< initbio_frac_out=initbio_frac, frazil_scav_out=frazil_scav, & +< algal_vel_out=algal_vel, R_dFe2dust_out=R_dFe2dust, & +< dustFe_sol_out=dustFe_sol, T_max_out=T_max, fsal_out=fsal, & +< op_dep_min_out=op_dep_min, fr_graze_s_out=fr_graze_s, & +< fr_graze_e_out=fr_graze_e, fr_mort2min_out=fr_mort2min, & +< fr_dFe_out=fr_dFe, k_nitrif_out=k_nitrif, t_iron_conv_out=t_iron_conv, & +< max_loss_out=max_loss, max_dfe_doc1_out=max_dfe_doc1, & +< fr_resp_s_out=fr_resp_s, y_sk_DMS_out=y_sk_DMS, t_sk_conv_out=t_sk_conv, & +< t_sk_ox_out=t_sk_ox) +--- +> scale_bgc_out=scale_bgc, skl_bgc_out=skl_bgc, z_tracers_out=z_tracers, & +> dEdd_algae_out=dEdd_algae, solve_zbgc_out=solve_zbgc, phi_snow_out=phi_snow, & +> bgc_flux_type_out=bgc_flux_type, grid_o_out=grid_o, l_sk_out=l_sk, & +> initbio_frac_out=initbio_frac, frazil_scav_out=frazil_scav, & +> algal_vel_out=algal_vel, R_dFe2dust_out=R_dFe2dust, & +> dustFe_sol_out=dustFe_sol, T_max_out=T_max, fsal_out=fsal, & +> op_dep_min_out=op_dep_min, fr_graze_s_out=fr_graze_s, & +> fr_graze_e_out=fr_graze_e, fr_mort2min_out=fr_mort2min, & +> fr_dFe_out=fr_dFe, k_nitrif_out=k_nitrif, t_iron_conv_out=t_iron_conv, & +> max_loss_out=max_loss, max_dfe_doc1_out=max_dfe_doc1, & +> fr_resp_s_out=fr_resp_s, y_sk_DMS_out=y_sk_DMS, t_sk_conv_out=t_sk_conv, & +> t_sk_ox_out=t_sk_ox) +1206,1218c1187,1199 +< scale_bgc_in=scale_bgc, skl_bgc_in=skl_bgc, z_tracers_in=z_tracers, & +< dEdd_algae_in=dEdd_algae, solve_zbgc_in=solve_zbgc, & +< bgc_flux_type_in=bgc_flux_type, grid_o_in=grid_o, l_sk_in=l_sk, & +< initbio_frac_in=initbio_frac, frazil_scav_in=frazil_scav, & +< grid_oS_in=grid_oS, l_skS_in=l_skS, phi_snow_in=phi_snow, & +< algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & +< dustFe_sol_in=dustFe_sol, T_max_in=T_max, fsal_in=fsal, & +< op_dep_min_in=op_dep_min, fr_graze_s_in=fr_graze_s, & +< fr_graze_e_in=fr_graze_e, fr_mort2min_in=fr_mort2min, & +< fr_dFe_in=fr_dFe, k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & +< max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, fr_resp_in=fr_resp, & +< fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, t_sk_conv_in=t_sk_conv, & +< t_sk_ox_in=t_sk_ox, modal_aero_in=modal_aero) +--- +> scale_bgc_in=scale_bgc, skl_bgc_in=skl_bgc, z_tracers_in=z_tracers, & +> dEdd_algae_in=dEdd_algae, solve_zbgc_in=solve_zbgc, & +> bgc_flux_type_in=bgc_flux_type, grid_o_in=grid_o, l_sk_in=l_sk, & +> initbio_frac_in=initbio_frac, frazil_scav_in=frazil_scav, & +> grid_oS_in=grid_oS, l_skS_in=l_skS, phi_snow_in=phi_snow, & +> algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & +> dustFe_sol_in=dustFe_sol, T_max_in=T_max, fsal_in=fsal, & +> op_dep_min_in=op_dep_min, fr_graze_s_in=fr_graze_s, & +> fr_graze_e_in=fr_graze_e, fr_mort2min_in=fr_mort2min, & +> fr_dFe_in=fr_dFe, k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & +> max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, fr_resp_in=fr_resp, & +> fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, t_sk_conv_in=t_sk_conv, & +> t_sk_ox_in=t_sk_ox, modal_aero_in=modal_aero) +1440,1459c1421,1440 +< R_Si2N_in=R_Si2N, & +< R_S2N_in=R_S2N, R_Fe2C_in=R_Fe2C, R_Fe2N_in=R_Fe2N, R_C2N_in=R_C2N, & +< R_chl2N_in=R_chl2N, F_abs_chl_in=F_abs_chl, R_Fe2DON_in=R_Fe2DON, & +< R_C2N_DON_in=R_C2N_DON, & +< R_Fe2DOC_in=R_Fe2DOC, & +< chlabs_in=chlabs, alpha2max_low_in=alpha2max_low, beta2max_in=beta2max, & +< mu_max_in=mu_max, grow_Tdep_in=grow_Tdep, fr_graze_in=fr_graze, & +< mort_pre_in=mort_pre, & +< mort_Tdep_in=mort_Tdep, k_exude_in=k_exude, & +< K_Nit_in=K_Nit, K_Am_in=K_Am, K_sil_in=K_Sil, K_Fe_in=K_Fe, & +< f_don_in=f_don, kn_bac_in=kn_bac, f_don_Am_in=f_don_Am, f_exude_in=f_exude, & +< k_bac_in=k_bac, & +< fr_resp_in=fr_resp, algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & +< dustFe_sol_in=dustFe_sol, T_max_in=T_max, fr_mort2min_in=fr_mort2min, & +< fr_dFe_in=fr_dFe, op_dep_min_in=op_dep_min, & +< fr_graze_s_in=fr_graze_s, fr_graze_e_in=fr_graze_e, & +< k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & +< max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, & +< fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, & +< t_sk_conv_in=t_sk_conv, t_sk_ox_in=t_sk_ox, fsal_in=fsal) +--- +> R_Si2N_in=R_Si2N, & +> R_S2N_in=R_S2N, R_Fe2C_in=R_Fe2C, R_Fe2N_in=R_Fe2N, R_C2N_in=R_C2N, & +> R_chl2N_in=R_chl2N, F_abs_chl_in=F_abs_chl, R_Fe2DON_in=R_Fe2DON, & +> R_C2N_DON_in=R_C2N_DON, & +> R_Fe2DOC_in=R_Fe2DOC, & +> chlabs_in=chlabs, alpha2max_low_in=alpha2max_low, beta2max_in=beta2max, & +> mu_max_in=mu_max, grow_Tdep_in=grow_Tdep, fr_graze_in=fr_graze, & +> mort_pre_in=mort_pre, & +> mort_Tdep_in=mort_Tdep, k_exude_in=k_exude, & +> K_Nit_in=K_Nit, K_Am_in=K_Am, K_sil_in=K_Sil, K_Fe_in=K_Fe, & +> f_don_in=f_don, kn_bac_in=kn_bac, f_don_Am_in=f_don_Am, f_exude_in=f_exude, & +> k_bac_in=k_bac, & +> fr_resp_in=fr_resp, algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & +> dustFe_sol_in=dustFe_sol, T_max_in=T_max, fr_mort2min_in=fr_mort2min, & +> fr_dFe_in=fr_dFe, op_dep_min_in=op_dep_min, & +> fr_graze_s_in=fr_graze_s, fr_graze_e_in=fr_graze_e, & +> k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & +> max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, & +> fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, & +> t_sk_conv_in=t_sk_conv, t_sk_ox_in=t_sk_ox, fsal_in=fsal) +1753,1754c1734,1735 +< zbgc_init_frac_in=zbgc_init_frac, tau_ret_in=tau_ret, tau_rel_in=tau_rel, & +< zbgc_frac_init_in=zbgc_frac_init, bgc_tracer_type_in=bgc_tracer_type) +--- +> zbgc_init_frac_in=zbgc_init_frac, tau_ret_in=tau_ret, tau_rel_in=tau_rel, & +> zbgc_frac_init_in=zbgc_frac_init, bgc_tracer_type_in=bgc_tracer_type) +1760c1741 +< ntrcr_in=ntrcr, ntrcr_o_in=ntrcr_o, nbtrcr_in=nbtrcr, nbtrcr_sw_in=nbtrcr_sw) +--- +> ntrcr_in=ntrcr, ntrcr_o_in=ntrcr_o, nbtrcr_in=nbtrcr, nbtrcr_sw_in=nbtrcr_sw) +1766,1771c1747,1752 +< tr_brine_in =tr_brine, & +< tr_bgc_Nit_in=tr_bgc_Nit, tr_bgc_Am_in =tr_bgc_Am, tr_bgc_Sil_in=tr_bgc_Sil, & +< tr_bgc_DMS_in=tr_bgc_DMS, tr_bgc_PON_in=tr_bgc_PON, & +< tr_bgc_N_in =tr_bgc_N, tr_bgc_C_in =tr_bgc_C, tr_bgc_chl_in=tr_bgc_chl, & +< tr_bgc_DON_in=tr_bgc_DON, tr_bgc_Fe_in =tr_bgc_Fe, tr_zaero_in =tr_zaero, & +< tr_bgc_hum_in=tr_bgc_hum) +--- +> tr_brine_in =tr_brine, & +> tr_bgc_Nit_in=tr_bgc_Nit, tr_bgc_Am_in =tr_bgc_Am, tr_bgc_Sil_in=tr_bgc_Sil, & +> tr_bgc_DMS_in=tr_bgc_DMS, tr_bgc_PON_in=tr_bgc_PON, & +> tr_bgc_N_in =tr_bgc_N, tr_bgc_C_in =tr_bgc_C, tr_bgc_chl_in=tr_bgc_chl, & +> tr_bgc_DON_in=tr_bgc_DON, tr_bgc_Fe_in =tr_bgc_Fe, tr_zaero_in =tr_zaero, & +> tr_bgc_hum_in=tr_bgc_hum) +1777,1794c1758,1776 +< nbtrcr_in=nbtrcr, nt_fbri_in=nt_fbri, & +< nt_bgc_Nit_in=nt_bgc_Nit, nt_bgc_Am_in=nt_bgc_Am, nt_bgc_Sil_in=nt_bgc_Sil, & +< nt_bgc_DMS_in=nt_bgc_DMS, nt_bgc_PON_in=nt_bgc_PON, nt_bgc_S_in=nt_bgc_S, & +< nt_bgc_N_in=nt_bgc_N, nt_bgc_chl_in=nt_bgc_chl, nt_bgc_hum_in=nt_bgc_hum, & +< nt_bgc_DOC_in=nt_bgc_DOC, nt_bgc_DON_in=nt_bgc_DON, nt_bgc_DIC_in=nt_bgc_DIC, & +< nt_zaero_in=nt_zaero, nt_bgc_DMSPp_in=nt_bgc_DMSPp, nt_bgc_DMSPd_in=nt_bgc_DMSPd, & +< nt_bgc_Fed_in=nt_bgc_Fed, nt_bgc_Fep_in=nt_bgc_Fep, nt_zbgc_frac_in=nt_zbgc_frac, & +< nlt_chl_sw_in=nlt_chl_sw, nlt_bgc_Sil_in=nlt_bgc_Sil, nlt_zaero_sw_in=nlt_zaero_sw, & +< nlt_bgc_N_in=nlt_bgc_N, nlt_bgc_Nit_in=nlt_bgc_Nit, nlt_bgc_Am_in=nlt_bgc_Am, & +< nlt_bgc_DMS_in=nlt_bgc_DMS, nlt_bgc_DMSPp_in=nlt_bgc_DMSPp, & +< nlt_bgc_DMSPd_in=nlt_bgc_DMSPd, & +< nlt_bgc_DIC_in=nlt_bgc_DIC, nlt_bgc_DOC_in=nlt_bgc_DOC, nlt_bgc_PON_in=nlt_bgc_PON, & +< nlt_bgc_DON_in=nlt_bgc_DON, nlt_bgc_Fed_in=nlt_bgc_Fed, nlt_bgc_Fep_in=nlt_bgc_Fep, & +< nlt_bgc_chl_in=nlt_bgc_chl, nlt_bgc_hum_in=nlt_bgc_hum, nlt_zaero_in=nlt_zaero, & +< n_algae_in=n_algae, & +< n_DOC_in=n_DOC, n_DON_in=n_DON, n_DIC_in=n_DIC, & +< n_fed_in=n_fed, n_fep_in=n_fep, n_zaero_in=n_zaero, & +< bio_index_o_in=bio_index_o, bio_index_in=bio_index) +--- +> nbtrcr_in=nbtrcr, & +> nt_fbri_in=nt_fbri, & +> nt_bgc_Nit_in=nt_bgc_Nit, nt_bgc_Am_in=nt_bgc_Am, nt_bgc_Sil_in=nt_bgc_Sil, & +> nt_bgc_DMS_in=nt_bgc_DMS, nt_bgc_PON_in=nt_bgc_PON, nt_bgc_S_in=nt_bgc_S, & +> nt_bgc_N_in=nt_bgc_N, nt_bgc_chl_in=nt_bgc_chl, & +> nt_bgc_DOC_in=nt_bgc_DOC, nt_bgc_DON_in=nt_bgc_DON, nt_bgc_DIC_in=nt_bgc_DIC, & +> nt_zaero_in=nt_zaero, nt_bgc_DMSPp_in=nt_bgc_DMSPp, nt_bgc_DMSPd_in=nt_bgc_DMSPd, & +> nt_bgc_Fed_in=nt_bgc_Fed, nt_bgc_Fep_in=nt_bgc_Fep, nt_zbgc_frac_in=nt_zbgc_frac, & +> nlt_zaero_sw_in=nlt_zaero_sw, nlt_chl_sw_in=nlt_chl_sw, nlt_bgc_Sil_in=nlt_bgc_Sil, & +> nlt_bgc_N_in=nlt_bgc_N, nlt_bgc_Nit_in=nlt_bgc_Nit, nlt_bgc_Am_in=nlt_bgc_Am, & +> nlt_bgc_DMS_in=nlt_bgc_DMS, nlt_bgc_DMSPp_in=nlt_bgc_DMSPp, nlt_bgc_DMSPd_in=nlt_bgc_DMSPd, & +> nlt_bgc_chl_in=nlt_bgc_chl, nlt_zaero_in=nlt_zaero, & +> nlt_bgc_DIC_in=nlt_bgc_DIC, nlt_bgc_DOC_in=nlt_bgc_DOC, nlt_bgc_PON_in=nlt_bgc_PON, & +> nlt_bgc_DON_in=nlt_bgc_DON, nlt_bgc_Fed_in=nlt_bgc_Fed, nlt_bgc_Fep_in=nlt_bgc_Fep, & +> nt_bgc_hum_in=nt_bgc_hum, nlt_bgc_hum_in=nlt_bgc_hum, & +> n_algae_in=n_algae, & +> n_DOC_in=n_DOC, n_DON_in=n_DON, n_DIC_in=n_DIC, & +> n_fed_in=n_fed, n_fep_in=n_fep, n_zaero_in=n_zaero, & +> bio_index_o_in=bio_index_o, bio_index_in=bio_index) +diff -r ./Icepack/configuration/driver/icedrv_init.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_init.F90 +169,192c169,192 +< albicev_out=albicev, albicei_out=albicei, & +< albsnowv_out=albsnowv, albsnowi_out=albsnowi, & +< natmiter_out=natmiter, ahmax_out=ahmax, shortwave_out=shortwave, & +< albedo_type_out=albedo_type, R_ice_out=R_ice, R_pnd_out=R_pnd, & +< R_snw_out=R_snw, dT_mlt_out=dT_mlt, rsnw_mlt_out=rsnw_mlt, & +< kstrength_out=kstrength, krdg_partic_out=krdg_partic, & +< krdg_redist_out=krdg_redist, mu_rdg_out=mu_rdg, & +< atmbndy_out=atmbndy, calc_strair_out=calc_strair, & +< formdrag_out=formdrag, highfreq_out=highfreq, & +< emissivity_out=emissivity, & +< kitd_out=kitd, kcatbound_out=kcatbound, hs0_out=hs0, & +< dpscale_out=dpscale, frzpnd_out=frzpnd, & +< rfracmin_out=rfracmin, rfracmax_out=rfracmax, & +< pndaspect_out=pndaspect, hs1_out=hs1, hp1_out=hp1, & +< ktherm_out=ktherm, calc_Tsfc_out=calc_Tsfc, & +< update_ocn_f_out = update_ocn_f, & +< conduct_out=conduct, a_rapid_mode_out=a_rapid_mode, & +< Rac_rapid_mode_out=Rac_rapid_mode, & +< aspect_rapid_mode_out=aspect_rapid_mode, & +< dSdt_slow_mode_out=dSdt_slow_mode, & +< phi_c_slow_mode_out=phi_c_slow_mode, & +< phi_i_mushy_out=phi_i_mushy, & +< tfrz_option_out=tfrz_option, kalg_out=kalg, & +< fbot_xfer_type_out=fbot_xfer_type, puny_out=puny) +--- +> albicev_out=albicev, albicei_out=albicei, & +> albsnowv_out=albsnowv, albsnowi_out=albsnowi, & +> natmiter_out=natmiter, ahmax_out=ahmax, shortwave_out=shortwave, & +> albedo_type_out=albedo_type, R_ice_out=R_ice, R_pnd_out=R_pnd, & +> R_snw_out=R_snw, dT_mlt_out=dT_mlt, rsnw_mlt_out=rsnw_mlt, & +> kstrength_out=kstrength, krdg_partic_out=krdg_partic, & +> krdg_redist_out=krdg_redist, mu_rdg_out=mu_rdg, & +> atmbndy_out=atmbndy, calc_strair_out=calc_strair, & +> formdrag_out=formdrag, highfreq_out=highfreq, & +> emissivity_out=emissivity, & +> kitd_out=kitd, kcatbound_out=kcatbound, hs0_out=hs0, & +> dpscale_out=dpscale, frzpnd_out=frzpnd, & +> rfracmin_out=rfracmin, rfracmax_out=rfracmax, & +> pndaspect_out=pndaspect, hs1_out=hs1, hp1_out=hp1, & +> ktherm_out=ktherm, calc_Tsfc_out=calc_Tsfc, & +> update_ocn_f_out = update_ocn_f, & +> conduct_out=conduct, a_rapid_mode_out=a_rapid_mode, & +> Rac_rapid_mode_out=Rac_rapid_mode, & +> aspect_rapid_mode_out=aspect_rapid_mode, & +> dSdt_slow_mode_out=dSdt_slow_mode, & +> phi_c_slow_mode_out=phi_c_slow_mode, & +> phi_i_mushy_out=phi_i_mushy, & +> tfrz_option_out=tfrz_option, kalg_out=kalg, & +> fbot_xfer_type_out=fbot_xfer_type, puny_out=puny) +692,714c692,714 +< albicev_in=albicev, albicei_in=albicei, & +< albsnowv_in=albsnowv, albsnowi_in=albsnowi, & +< natmiter_in=natmiter, ahmax_in=ahmax, shortwave_in=shortwave, & +< albedo_type_in=albedo_type, R_ice_in=R_ice, R_pnd_in=R_pnd, & +< R_snw_in=R_snw, dT_mlt_in=dT_mlt, rsnw_mlt_in=rsnw_mlt, & +< kstrength_in=kstrength, krdg_partic_in=krdg_partic, & +< krdg_redist_in=krdg_redist, mu_rdg_in=mu_rdg, & +< atmbndy_in=atmbndy, calc_strair_in=calc_strair, & +< formdrag_in=formdrag, highfreq_in=highfreq, & +< emissivity_in=emissivity, & +< kitd_in=kitd, kcatbound_in=kcatbound, hs0_in=hs0, & +< dpscale_in=dpscale, frzpnd_in=frzpnd, & +< rfracmin_in=rfracmin, rfracmax_in=rfracmax, & +< pndaspect_in=pndaspect, hs1_in=hs1, hp1_in=hp1, & +< ktherm_in=ktherm, calc_Tsfc_in=calc_Tsfc, & +< conduct_in=conduct, a_rapid_mode_in=a_rapid_mode, & +< Rac_rapid_mode_in=Rac_rapid_mode, & +< aspect_rapid_mode_in=aspect_rapid_mode, & +< dSdt_slow_mode_in=dSdt_slow_mode, & +< phi_c_slow_mode_in=phi_c_slow_mode, & +< phi_i_mushy_in=phi_i_mushy, & +< tfrz_option_in=tfrz_option, kalg_in=kalg, & +< fbot_xfer_type_in=fbot_xfer_type) +--- +> albicev_in=albicev, albicei_in=albicei, & +> albsnowv_in=albsnowv, albsnowi_in=albsnowi, & +> natmiter_in=natmiter, ahmax_in=ahmax, shortwave_in=shortwave, & +> albedo_type_in=albedo_type, R_ice_in=R_ice, R_pnd_in=R_pnd, & +> R_snw_in=R_snw, dT_mlt_in=dT_mlt, rsnw_mlt_in=rsnw_mlt, & +> kstrength_in=kstrength, krdg_partic_in=krdg_partic, & +> krdg_redist_in=krdg_redist, mu_rdg_in=mu_rdg, & +> atmbndy_in=atmbndy, calc_strair_in=calc_strair, & +> formdrag_in=formdrag, highfreq_in=highfreq, & +> emissivity_in=emissivity, & +> kitd_in=kitd, kcatbound_in=kcatbound, hs0_in=hs0, & +> dpscale_in=dpscale, frzpnd_in=frzpnd, & +> rfracmin_in=rfracmin, rfracmax_in=rfracmax, & +> pndaspect_in=pndaspect, hs1_in=hs1, hp1_in=hp1, & +> ktherm_in=ktherm, calc_Tsfc_in=calc_Tsfc, & +> conduct_in=conduct, a_rapid_mode_in=a_rapid_mode, & +> Rac_rapid_mode_in=Rac_rapid_mode, & +> aspect_rapid_mode_in=aspect_rapid_mode, & +> dSdt_slow_mode_in=dSdt_slow_mode, & +> phi_c_slow_mode_in=phi_c_slow_mode, & +> phi_i_mushy_in=phi_i_mushy, & +> tfrz_option_in=tfrz_option, kalg_in=kalg, & +> fbot_xfer_type_in=fbot_xfer_type) +717,720c717,720 +< tr_FY_in=tr_FY, tr_lvl_in=tr_lvl, tr_aero_in=tr_aero, & +< tr_pond_in=tr_pond, tr_pond_cesm_in=tr_pond_cesm, & +< tr_pond_lvl_in=tr_pond_lvl, & +< tr_pond_topo_in=tr_pond_topo) +--- +> tr_FY_in=tr_FY, tr_lvl_in=tr_lvl, tr_aero_in=tr_aero, & +> tr_pond_in=tr_pond, tr_pond_cesm_in=tr_pond_cesm, & +> tr_pond_lvl_in=tr_pond_lvl, & +> tr_pond_topo_in=tr_pond_topo) +722,726c722,726 +< nt_sice_in=nt_sice, nt_qice_in=nt_qice, & +< nt_qsno_in=nt_qsno, nt_iage_in=nt_iage, & +< nt_fy_in=nt_fy, nt_alvl_in=nt_alvl, nt_vlvl_in=nt_vlvl, & +< nt_apnd_in=nt_apnd, nt_hpnd_in=nt_hpnd, nt_ipnd_in=nt_ipnd, & +< nt_aero_in=nt_aero) +--- +> nt_sice_in=nt_sice, nt_qice_in=nt_qice, & +> nt_qsno_in=nt_qsno, nt_iage_in=nt_iage, & +> nt_fy_in=nt_fy, nt_alvl_in=nt_alvl, nt_vlvl_in=nt_vlvl, & +> nt_apnd_in=nt_apnd, nt_hpnd_in=nt_hpnd, nt_ipnd_in=nt_ipnd, & +> nt_aero_in=nt_aero) +822,824c822,824 +< tr_FY_out=tr_FY, tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, & +< tr_pond_cesm_out=tr_pond_cesm, tr_pond_lvl_out=tr_pond_lvl, & +< tr_pond_topo_out=tr_pond_topo) +--- +> tr_FY_out=tr_FY, tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, & +> tr_pond_cesm_out=tr_pond_cesm, tr_pond_lvl_out=tr_pond_lvl, & +> tr_pond_topo_out=tr_pond_topo) +826,830c826,830 +< nt_sice_out=nt_sice, nt_qice_out=nt_qice, & +< nt_qsno_out=nt_qsno, nt_iage_out=nt_iage, nt_fy_out=nt_fy, & +< nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl, & +< nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & +< nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero) +--- +> nt_sice_out=nt_sice, nt_qice_out=nt_qice, & +> nt_qsno_out=nt_qsno, nt_iage_out=nt_iage, nt_fy_out=nt_fy, & +> nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl, & +> nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & +> nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero) +976,990c976,990 +< call icepack_aggregate(ncat=ncat, & +< trcrn=trcrn(i,1:ntrcr,:), & +< aicen=aicen(i,:), & +< vicen=vicen(i,:), & +< vsnon=vsnon(i,:), & +< trcr=trcr (i,1:ntrcr), & +< aice=aice (i), & +< vice=vice (i), & +< vsno=vsno (i), & +< aice0=aice0(i), & +< ntrcr=ntrcr, & +< trcr_depend=trcr_depend(1:ntrcr), & +< trcr_base=trcr_base (1:ntrcr,:), & +< n_trcr_strata=n_trcr_strata(1:ntrcr), & +< nt_strata=nt_strata (1:ntrcr,:)) +--- +> call icepack_aggregate (ncat, & +> aicen(i,:), & +> trcrn(i,1:ntrcr,:), & +> vicen(i,:), & +> vsnon(i,:), & +> aice (i), & +> trcr (i,1:ntrcr), & +> vice (i), & +> vsno (i), & +> aice0(i), & +> ntrcr, & +> trcr_depend (1:ntrcr), & +> trcr_base (1:ntrcr,:), & +> n_trcr_strata(1:ntrcr), & +> nt_strata (1:ntrcr,:)) +1082,1083c1082,1083 +< nt_qsno_out=nt_qsno, nt_sice_out=nt_sice, & +< nt_fbri_out=nt_fbri, nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl) +--- +> nt_qsno_out=nt_qsno, nt_sice_out=nt_sice, & +> nt_fbri_out=nt_fbri, nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl) +1146,1153c1146,1151 +< call icepack_init_trcr(Tair = Tair(i), & +< Tf = Tf(i), & +< Sprofile = salinz(i,:), & +< Tprofile = Tmltz(i,:), & +< Tsfc = Tsfc, & +< nilyr=nilyr, nslyr=nslyr, & +< qin=qin(:), qsn=qsn(:)) +< +--- +> call icepack_init_trcr(Tair (i ), Tf (i ), & +> salinz(i,:), Tmltz(i,:), & +> Tsfc, & +> nilyr, nslyr, & +> qin ( :), qsn ( :)) +> +1202,1209c1200,1205 +< call icepack_init_trcr(Tair = Tair(i), & +< Tf = Tf(i), & +< Sprofile = salinz(i,:), & +< Tprofile = Tmltz(i,:), & +< Tsfc = Tsfc, & +< nilyr=nilyr, nslyr=nslyr, & +< qin=qin(:), qsn=qsn(:)) +< +--- +> call icepack_init_trcr(Tair (i ), Tf (i ), & +> salinz(i,:), Tmltz(i,:), & +> Tsfc, & +> nilyr, nslyr, & +> qin ( :), qsn ( :)) +> +diff -r ./Icepack/configuration/driver/icedrv_InitMod.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_InitMod.F90 +66c66 +< call icepack_init_itd(ncat=ncat, hin_max=hin_max) +--- +> call icepack_init_itd(ncat, hin_max) +73c73 +< call icepack_init_itd_hist(ncat=ncat, c_hi_range=c_hi_range, hin_max=hin_max) ! output +--- +> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output +181,195c181,195 +< call icepack_aggregate(ncat=ncat, & +< aicen=aicen(i,:), & +< vicen=vicen(i,:), & +< vsnon=vsnon(i,:), & +< trcrn=trcrn(i,:,:), & +< aice=aice (i), & +< vice=vice (i), & +< vsno=vsno (i), & +< trcr=trcr (i,:), & +< aice0=aice0(i), & +< ntrcr=max_ntrcr, & +< trcr_depend=trcr_depend, & +< trcr_base=trcr_base, & +< n_trcr_strata=n_trcr_strata, & +< nt_strata=nt_strata) +--- +> call icepack_aggregate(ncat, & +> aicen(i,:), & +> trcrn(i,:,:), & +> vicen(i,:), & +> vsnon(i,:), & +> aice (i), & +> trcr (i,:), & +> vice (i), & +> vsno (i), & +> aice0(i), & +> max_ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./Icepack/configuration/driver/icedrv_restart.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_restart.F90 +79c79 +< nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) +--- +> nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) +81,83c81,83 +< tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & +< tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & +< tr_pond_lvl_out=tr_pond_lvl) +--- +> tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & +> tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & +> tr_pond_lvl_out=tr_pond_lvl) +195c195 +< nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) +--- +> nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) +197,199c197,199 +< tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & +< tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & +< tr_pond_lvl_out=tr_pond_lvl) +--- +> tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & +> tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & +> tr_pond_lvl_out=tr_pond_lvl) +280,294c280,294 +< call icepack_aggregate (ncat=ncat, & +< aicen=aicen(i,:), & +< trcrn=trcrn(i,:,:), & +< vicen=vicen(i,:), & +< vsnon=vsnon(i,:), & +< aice=aice (i), & +< trcr=trcr (i,:), & +< vice=vice (i), & +< vsno=vsno (i), & +< aice0=aice0(i), & +< ntrcr=max_ntrcr, & +< trcr_depend=trcr_depend, & +< trcr_base=trcr_base, & +< n_trcr_strata=n_trcr_strata, & +< nt_strata=nt_strata) +--- +> call icepack_aggregate (ncat, & +> aicen(i,:), & +> trcrn(i,:,:),& +> vicen(i,:), & +> vsnon(i,:), & +> aice (i), & +> trcr (i,:), & +> vice (i), & +> vsno (i), & +> aice0(i), & +> max_ntrcr, & +> trcr_depend, & +> trcr_base, & +> n_trcr_strata, & +> nt_strata) +diff -r ./Icepack/configuration/driver/icedrv_step.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_step.F90 +70,79c70,79 +< call icepack_prep_radiation(ncat=ncat, nilyr=nilyr, nslyr=nslyr, & +< aice=aice(i), aicen=aicen(i,:), & +< swvdr=swvdr(i), swvdf=swvdf(i), & +< swidr=swidr(i), swidf=swidf(i), & +< alvdr_ai=alvdr_ai(i), alvdf_ai=alvdf_ai(i), & +< alidr_ai=alidr_ai(i), alidf_ai=alidf_ai(i), & +< scale_factor=scale_factor(i), & +< fswsfcn=fswsfcn(i,:), fswintn=fswintn(i,:), & +< fswthrun=fswthrun(i,:), fswpenln=fswpenln(i,:,:), & +< Sswabsn=Sswabsn(i,:,:), Iswabsn=Iswabsn(i,:,:)) +--- +> call icepack_prep_radiation (ncat, nilyr, nslyr, & +> aice (i), aicen (i,:), & +> swvdr (i), swvdf (i), & +> swidr (i), swidf (i), & +> alvdr_ai(i), alvdf_ai(i), & +> alidr_ai(i), alidf_ai(i), & +> scale_factor(i), & +> fswsfcn (i,:), fswintn (i,:), & +> fswthrun(i,:), fswpenln(i,:,:), & +> Sswabsn (i,:,:), Iswabsn (i,:,:)) +165c165 +< ntrcr_out=ntrcr) +--- +> ntrcr_out=ntrcr) +171,173c171,173 +< tr_iage_out=tr_iage, tr_FY_out=tr_FY, & +< tr_aero_out=tr_aero, tr_pond_out=tr_pond, tr_pond_cesm_out=tr_pond_cesm, & +< tr_pond_lvl_out=tr_pond_lvl, tr_pond_topo_out=tr_pond_topo) +--- +> tr_iage_out=tr_iage, tr_FY_out=tr_FY, & +> tr_aero_out=tr_aero, tr_pond_out=tr_pond, tr_pond_cesm_out=tr_pond_cesm, & +> tr_pond_lvl_out=tr_pond_lvl, tr_pond_topo_out=tr_pond_topo) +179,183c179,183 +< 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_qice_out=nt_qice, nt_sice_out=nt_sice, & +< nt_aero_out=nt_aero, nt_qsno_out=nt_qsno) +--- +> 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_qice_out=nt_qice, nt_sice_out=nt_sice, & +> nt_aero_out=nt_aero, nt_qsno_out=nt_qsno) +226,303c226,298 +< +< call icepack_step_therm1(dt=dt, ncat=ncat, nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & +< aicen_init = aicen_init(i,:), & +< vicen_init = vicen_init(i,:), & +< vsnon_init = vsnon_init(i,:), & +< aice = aice(i), aicen = aicen(i,:), & +< vice = vice(i), vicen = vicen(i,:), & +< vsno = vsno(i), vsnon = vsnon(i,:), & +< uvel = uvel(i), vvel = vvel(i), & +< Tsfc = trcrn(i,nt_Tsfc,:), & +< zqsn = trcrn(i,nt_qsno:nt_qsno+nslyr-1,:), & +< zqin = trcrn(i,nt_qice:nt_qice+nilyr-1,:), & +< zSin = trcrn(i,nt_sice:nt_sice+nilyr-1,:), & +< alvl = trcrn(i,nt_alvl,:), & +< vlvl = trcrn(i,nt_vlvl,:), & +< apnd = trcrn(i,nt_apnd,:), & +< hpnd = trcrn(i,nt_hpnd,:), & +< ipnd = trcrn(i,nt_ipnd,:), & +< iage = trcrn(i,nt_iage,:), & +< FY = trcrn(i,nt_FY,:), & +< aerosno = aerosno(:,:,:), & +< aeroice = aeroice(:,:,:), & +< uatm = uatm(i), vatm = vatm(i), & +< wind = wind(i), zlvl = zlvl(i), & +< Qa = Qa(i), rhoa = rhoa(i), & +< Tair = Tair(i), Tref = Tref(i), & +< Qref = Qref(i), Uref = Uref(i), & +< Cdn_atm_ratio = Cdn_atm_ratio(i),& +< Cdn_ocn = Cdn_ocn(i), & +< Cdn_ocn_skin = Cdn_ocn_skin(i), & +< Cdn_ocn_floe = Cdn_ocn_floe(i), & +< Cdn_ocn_keel = Cdn_ocn_keel(i), & +< Cdn_atm = Cdn_atm(i), & +< Cdn_atm_skin = Cdn_atm_skin(i), & +< Cdn_atm_floe = Cdn_atm_floe(i), & +< Cdn_atm_pond = Cdn_atm_pond(i), & +< Cdn_atm_rdg = Cdn_atm_rdg(i), & +< hfreebd = hfreebd(i), hkeel = hkeel(i), & +< hdraft = hdraft(i), hridge = hridge(i), & +< distrdg = distrdg(i), dkeel = dkeel(i), & +< lfloe = lfloe(i), dfloe = dfloe(i), & +< strax = strax(i), stray = stray(i), & +< strairxT = strairxT(i), strairyT = strairyT(i), & +< potT = potT(i), sst = sst(i), & +< sss = sss(i), Tf = Tf(i), & +< strocnxT = strocnxT(i), strocnyT = strocnyT(i), & +< fbot = fbot(i), frzmlt = frzmlt(i), & +< Tbot = Tbot(i), Tsnice = Tsnice(i), & +< rside = rside(i), & +< fsnow = fsnow(i), frain = frain(i), & +< fpond = fpond(i), & +< fsurf = fsurf(i), fsurfn = fsurfn(i,:), & +< fcondtop = fcondtop(i), fcondtopn = fcondtopn(i,:), & +< fcondbot = fcondbot(i), fcondbotn = fcondbotn(i,:), & +< fswsfcn = fswsfcn(i,:), fswintn = fswintn(i,:), & +< fswthrun = fswthrun(i,:), fswabs = fswabs(i), & +< flwout = flwout(i), flw = flw(i), & +< fsens = fsens(i), fsensn = fsensn(i,:), & +< flat = flat(i), flatn = flatn(i,:), & +< fresh = fresh(i), fsalt = fsalt(i), & +< fhocn = fhocn(i), fswthru = fswthru(i), & +< flatn_f = flatn_f(i,:), fsensn_f = fsensn_f(i,:), & +< fsurfn_f = fsurfn_f(i,:), & +< fcondtopn_f = fcondtopn_f(i,:), & +< faero_atm = faero_atm(i,1:n_aero), & +< faero_ocn = faero_ocn(i,1:n_aero), & +< Sswabsn = Sswabsn(i,:,:),Iswabsn = Iswabsn(i,:,:), & +< evap = evap(i), evaps = evaps(i), evapi = evapi(i), & +< dhsn = dhsn(i,:), ffracn = ffracn(i,:), & +< meltt = meltt(i), melttn = melttn(i,:), & +< meltb = meltb(i), meltbn = meltbn(i,:), & +< melts = melts(i), meltsn = meltsn(i,:), & +< congel = congel(i), congeln = congeln(i,:), & +< snoice = snoice(i), snoicen = snoicen(i,:), & +< dsnown = dsnown(i,:), & +< lmask_n = lmask_n(i), lmask_s = lmask_s(i), & +< mlt_onset=mlt_onset(i), frz_onset = frz_onset(i), & +< yday = yday, prescribed_ice = prescribed_ice) +--- +> +> call icepack_step_therm1(dt, ncat, nilyr, nslyr, n_aero, & +> aicen_init (i,:), & +> vicen_init (i,:), vsnon_init (i,:), & +> aice (i), aicen (i,:), & +> vice (i), vicen (i,:), & +> vsno (i), vsnon (i,:), & +> uvel (i), vvel (i), & +> trcrn (i,nt_Tsfc,:), & +> trcrn (i,nt_qsno:nt_qsno+nslyr-1,:), & +> trcrn (i,nt_qice:nt_qice+nilyr-1,:), & +> trcrn (i,nt_sice:nt_sice+nilyr-1,:), & +> trcrn (i,nt_alvl,:), & +> trcrn (i,nt_vlvl,:), & +> trcrn (i,nt_apnd,:), & +> trcrn (i,nt_hpnd,:), & +> trcrn (i,nt_ipnd,:), & +> trcrn (i,nt_iage,:), & +> trcrn (i,nt_FY ,:), & +> aerosno (:,:,:), aeroice (:,:,:), & +> uatm (i), vatm (i), & +> wind (i), zlvl (i), & +> Qa (i), rhoa (i), & +> Tair (i), Tref (i), & +> Qref (i), Uref (i), & +> Cdn_atm_ratio(i), & +> Cdn_ocn (i), Cdn_ocn_skin(i), & +> Cdn_ocn_floe(i), Cdn_ocn_keel(i), & +> Cdn_atm (i), Cdn_atm_skin(i), & +> Cdn_atm_floe(i), Cdn_atm_pond(i), & +> Cdn_atm_rdg (i), hfreebd (i), & +> hdraft (i), hridge (i), & +> distrdg (i), hkeel (i), & +> dkeel (i), lfloe (i), & +> dfloe (i), & +> strax (i), stray (i), & +> strairxT (i), strairyT (i), & +> potT (i), sst (i), & +> sss (i), Tf (i), & +> strocnxT (i), strocnyT (i), & +> fbot (i), & +> Tbot (i), Tsnice (i), & +> frzmlt (i), rside (i), & +> fsnow (i), frain (i), & +> fpond (i), & +> fsurf (i), fsurfn (i,:), & +> fcondtop (i), fcondtopn (i,:), & +> fcondbot (i), fcondbotn (i,:), & +> fswsfcn (i,:), fswintn (i,:), & +> fswthrun (i,:), fswabs (i), & +> flwout (i), & +> Sswabsn (i,:,:), Iswabsn (i,:,:), & +> flw (i), & +> fsens (i), fsensn (i,:), & +> flat (i), flatn (i,:), & +> evap (i), & +> evaps (i), evapi (i), & +> fresh (i), fsalt (i), & +> fhocn (i), fswthru (i), & +> flatn_f (i,:), fsensn_f (i,:), & +> fsurfn_f (i,:), fcondtopn_f (i,:), & +> faero_atm (i,1:n_aero), & +> faero_ocn (i,1:n_aero), & +> dhsn (i,:), ffracn (i,:), & +> meltt (i), melttn (i,:), & +> meltb (i), meltbn (i,:), & +> melts (i), meltsn (i,:), & +> congel (i), congeln (i,:), & +> snoice (i), snoicen (i,:), & +> dsnown (i,:), & +> lmask_n (i), lmask_s (i), & +> mlt_onset (i), frz_onset (i), & +> yday, prescribed_ice) +379,409c374,397 +< call icepack_step_therm2(dt=dt, ncat=ncat, n_aero=n_aero, & +< nltrcr=nltrcr, nilyr=nilyr, nslyr=nslyr, & +< hin_max=hin_max(:), nblyr=nblyr, & +< aicen=aicen(i,:), & +< vicen=vicen(i,:), & +< vsnon=vsnon(i,:), & +< aicen_init=aicen_init(i,:), & +< vicen_init=vicen_init(i,:), & +< trcrn=trcrn(i,1:ntrcr,:), & +< aice0=aice0(i), & +< aice =aice(i), & +< trcr_depend=trcr_depend(1:ntrcr), & +< trcr_base=trcr_base(1:ntrcr,:), & +< n_trcr_strata=n_trcr_strata(1:ntrcr), & +< nt_strata=nt_strata(1:ntrcr,:), & +< Tf=Tf(i), sss=sss(i), & +< salinz=salinz(i,:), & +< rside=rside(i), meltl=meltl(i), & +< frzmlt=frzmlt(i), frazil=frazil(i), & +< frain=frain(i), fpond=fpond(i), & +< fresh=fresh(i), fsalt=fsalt(i), & +< fhocn=fhocn(i), update_ocn_f=update_ocn_f, & +< bgrid=bgrid, cgrid=cgrid, & +< igrid=igrid, faero_ocn=faero_ocn(i,:), & +< first_ice=first_ice(i,:), & +< fzsal=fzsal(i), & +< flux_bio=flux_bio(i,1:nbtrcr), & +< ocean_bio=ocean_bio(i,1:nbtrcr), & +< frazil_diag=frazil_diag(i), & +< frz_onset=frz_onset(i), & +< yday=yday) +--- +> call icepack_step_therm2(dt, ncat, n_aero, nltrcr, & +> nilyr, nslyr, & +> hin_max (:), nblyr, & +> aicen (i,:), & +> vicen (i,:), vsnon (i,:), & +> aicen_init(i,:), vicen_init(i,:), & +> trcrn (i,1:ntrcr,:), & +> aice0 (i), aice (i), & +> trcr_depend(1:ntrcr), trcr_base(1:ntrcr,:), & +> n_trcr_strata(1:ntrcr), nt_strata(1:ntrcr,:), & +> Tf (i), sss (i), & +> salinz (i,:), & +> rside (i), meltl (i), & +> frzmlt (i), frazil (i), & +> frain (i), fpond (i), & +> fresh (i), fsalt (i), & +> fhocn (i), update_ocn_f, & +> bgrid, cgrid, & +> igrid, faero_ocn (i,:), & +> first_ice (i,:), fzsal (i), & +> flux_bio (i,1:nbtrcr), & +> ocean_bio (i,1:nbtrcr), & +> frazil_diag(i), & +> frz_onset (i), yday) +483,493c471,482 +< call icepack_aggregate (ncat=ncat, & +< aicen=aicen(i,:), trcrn=trcrn(i,1:ntrcr,:), & +< vicen=vicen(i,:), vsnon=vsnon(i,:), & +< aice =aice (i), trcr =trcr (i,1:ntrcr), & +< vice =vice (i), vsno =vsno (i), & +< aice0=aice0(i), & +< ntrcr=ntrcr, & +< trcr_depend=trcr_depend (1:ntrcr), & +< trcr_base=trcr_base (1:ntrcr,:), & +< n_trcr_strata=n_trcr_strata(1:ntrcr), & +< nt_strata=nt_strata (1:ntrcr,:)) +--- +> call icepack_aggregate (ncat, aicen(i,:), & +> trcrn(i,1:ntrcr,:), & +> vicen(i,:), vsnon(i,:), & +> aice (i), & +> trcr (i,1:ntrcr), & +> vice (i), vsno (i), & +> aice0(i), & +> ntrcr, & +> trcr_depend(1:ntrcr), & +> trcr_base (1:ntrcr,:), & +> n_trcr_strata(1:ntrcr), & +> nt_strata (1:ntrcr,:)) +582,609c571,596 +< call icepack_step_ridge(dt=dt, ndtd=ndtd, & +< nilyr=nilyr, nslyr=nslyr, & +< nblyr=nblyr, & +< ncat=ncat, hin_max=hin_max(:), & +< rdg_conv=rdg_conv(i), rdg_shear=rdg_shear(i), & +< aicen=aicen(i,:), & +< trcrn=trcrn(i,1:ntrcr,:), & +< vicen=vicen(i,:), vsnon=vsnon(i,:), & +< aice0=aice0(i), & +< trcr_depend=trcr_depend(1:ntrcr), & +< trcr_base=trcr_base(1:ntrcr,:), & +< n_trcr_strata=n_trcr_strata(1:ntrcr), & +< nt_strata=nt_strata(1:ntrcr,:), & +< dardg1dt=dardg1dt(i), dardg2dt=dardg2dt(i), & +< dvirdgdt=dvirdgdt(i), opening=opening(i), & +< fpond=fpond(i), & +< fresh=fresh(i), fhocn=fhocn(i), & +< n_aero=n_aero, & +< faero_ocn=faero_ocn(i,:), & +< aparticn=aparticn(i,:), krdgn=krdgn(i,:), & +< aredistn=aredistn(i,:), vredistn=vredistn(i,:), & +< dardg1ndt=dardg1ndt(i,:), dardg2ndt=dardg2ndt(i,:), & +< dvirdgndt=dvirdgndt(i,:), & +< araftn=araftn(i,:), vraftn=vraftn(i,:), & +< aice=aice(i), fsalt=fsalt(i), & +< first_ice=first_ice(i,:), fzsal=fzsal(i), & +< flux_bio=flux_bio(i,1:nbtrcr), & +< closing=closing(i) ) +--- +> call icepack_step_ridge (dt, ndtd, & +> nilyr, nslyr, & +> nblyr, & +> ncat, hin_max (:), & +> rdg_conv (i), rdg_shear(i), & +> aicen (i,:), & +> trcrn (i,1:ntrcr,:), & +> vicen (i,:), vsnon (i,:), & +> aice0 (i), trcr_depend(1:ntrcr), & +> trcr_base(1:ntrcr,:), n_trcr_strata(1:ntrcr),& +> nt_strata(1:ntrcr,:), & +> dardg1dt (i), dardg2dt (i), & +> dvirdgdt (i), opening (i), & +> fpond (i), & +> fresh (i), fhocn (i), & +> n_aero, & +> faero_ocn(i,:), & +> aparticn (i,:), krdgn (i,:), & +> aredistn (i,:), vredistn (i,:), & +> dardg1ndt(i,:), dardg2ndt(i,:), & +> dvirdgndt(i,:), & +> araftn (i,:), vraftn (i,:), & +> aice (i), fsalt (i), & +> first_ice(i,:), fzsal (i), & +> flux_bio (i,1:nbtrcr), & +> closing(i) ) +625,651c612,636 +< call icepack_step_ridge (dt=dt, ndtd=ndtd, & +< nilyr=nilyr, nslyr=nslyr, & +< nblyr=nblyr, & +< ncat=ncat, hin_max=hin_max(:), & +< rdg_conv=rdg_conv(i), rdg_shear=rdg_shear(i), & +< aicen=aicen(i,:), & +< trcrn=trcrn(i,1:ntrcr,:), & +< vicen=vicen(i,:), vsnon=vsnon(i,:), & +< aice0=aice0(i), & +< trcr_depend=trcr_depend(1:ntrcr), & +< trcr_base=trcr_base(1:ntrcr,:), & +< n_trcr_strata=n_trcr_strata(1:ntrcr), & +< nt_strata=nt_strata(1:ntrcr,:), & +< dardg1dt=dardg1dt(i), dardg2dt=dardg2dt(i), & +< dvirdgdt=dvirdgdt(i), opening=opening(i), & +< fpond=fpond(i), & +< fresh=fresh(i), fhocn=fhocn(i), & +< n_aero=n_aero, & +< faero_ocn=faero_ocn(i,:), & +< aparticn=aparticn(i,:), krdgn=krdgn(i,:), & +< aredistn=aredistn(i,:), vredistn=vredistn(i,:), & +< dardg1ndt=dardg1ndt(i,:), dardg2ndt=dardg2ndt(i,:), & +< dvirdgndt=dvirdgndt(i,:), & +< araftn=araftn(i,:), vraftn=vraftn(i,:), & +< aice=aice(i), fsalt=fsalt(i), & +< first_ice=first_ice(i,:), fzsal=fzsal(i), & +< flux_bio=flux_bio(i,1:nbtrcr)) +--- +> call icepack_step_ridge (dt, ndtd, & +> nilyr, nslyr, & +> nblyr, & +> ncat, hin_max (:), & +> rdg_conv (i), rdg_shear(i), & +> aicen (i,:), & +> trcrn (i,1:ntrcr,:), & +> vicen (i,:), vsnon (i,:), & +> aice0 (i), trcr_depend(1:ntrcr), & +> trcr_base(1:ntrcr,:), n_trcr_strata(1:ntrcr),& +> nt_strata(1:ntrcr,:), & +> dardg1dt (i), dardg2dt (i), & +> dvirdgdt (i), opening (i), & +> fpond (i), & +> fresh (i), fhocn (i), & +> n_aero, & +> faero_ocn(i,:), & +> aparticn (i,:), krdgn (i,:), & +> aredistn (i,:), vredistn (i,:), & +> dardg1ndt(i,:), dardg2ndt(i,:), & +> dvirdgndt(i,:), & +> araftn (i,:), vraftn (i,:), & +> aice (i), fsalt (i), & +> first_ice(i,:), fzsal (i), & +> flux_bio (i,1:nbtrcr)) +725c710 +< max_aero_out=max_aero) +--- +> max_aero_out=max_aero) +738c723 +< tr_brine_out=tr_brine, tr_bgc_N_out=tr_bgc_N, tr_zaero_out=tr_zaero) +--- +> tr_brine_out=tr_brine, tr_bgc_N_out=tr_bgc_N, tr_zaero_out=tr_zaero) +744,747c729,732 +< nt_Tsfc_out=nt_Tsfc, nt_alvl_out=nt_alvl, & +< nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & +< nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw, & +< nt_fbri_out=nt_fbri, nt_zaero_out=nt_zaero) +--- +> nt_Tsfc_out=nt_Tsfc, nt_alvl_out=nt_alvl, & +> nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & +> nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw, & +> nt_fbri_out=nt_fbri, nt_zaero_out=nt_zaero) +777,815c762,800 +< call icepack_step_radiation(dt=dt, ncat=ncat, & +< n_algae=n_algae, tr_zaero=tr_zaero, & +< nblyr=nblyr, ntrcr=ntrcr, & +< nbtrcr_sw=nbtrcr_sw, nilyr=nilyr, & +< nslyr=nslyr, n_aero=n_aero, & +< n_zaero=n_zaero, dEdd_algae=dEdd_algae, & +< nlt_chl_sw=nlt_chl_sw, nlt_zaero_sw=nlt_zaero_sw(:), & +< swgrid=swgrid(:), igrid=igrid(:), & +< fbri=fbri(:), & +< aicen=aicen(i,:), vicen=vicen(i,:), & +< vsnon=vsnon(i,:), & +< Tsfcn=trcrn(i,nt_Tsfc,:), & +< alvln=trcrn(i,nt_alvl,:), & +< apndn=trcrn(i,nt_apnd,:), & +< hpndn=trcrn(i,nt_hpnd,:), & +< ipndn=trcrn(i,nt_ipnd,:), & +< aeron=trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & +< zbion=ztrcr_sw, trcrn=ztrcr, & +< TLAT=TLAT(i), TLON=TLON(i), & +< calendar_type=calendar_type, & +< days_per_year=days_per_year, sec=sec, & +< nextsw_cday=nextsw_cday, yday=yday, & +< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & +< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & +< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & +< bcenh=bcenh(:,:,:), modal_aero=modal_aero, & +< swvdr=swvdr(i), swvdf=swvdf(i), & +< swidr=swidr(i), swidf=swidf(i), & +< coszen=coszen(i), fsnow=fsnow(i), & +< alvdrn=alvdrn(i,:), alvdfn=alvdfn(i,:), & +< alidrn=alidrn(i,:), alidfn=alidfn(i,:), & +< fswsfcn=fswsfcn(i,:), fswintn=fswintn(i,:), & +< fswthrun=fswthrun(i,:), fswpenln=fswpenln(i,:,:), & +< Sswabsn=Sswabsn(i,:,:), Iswabsn=Iswabsn(i,:,:), & +< albicen=albicen(i,:), albsnon=albsnon(i,:), & +< albpndn=albpndn(i,:), apeffn=apeffn(i,:), & +< snowfracn=snowfracn(i,:), & +< dhsn=dhsn(i,:), ffracn=ffracn(i,:), & +< l_print_point=l_print_point) +--- +> call icepack_step_radiation (dt, ncat, & +> n_algae, tr_zaero, & +> nblyr, ntrcr, & +> nbtrcr_sw, nilyr, & +> nslyr, n_aero, & +> n_zaero, dEdd_algae, & +> nlt_chl_sw, nlt_zaero_sw(:), & +> swgrid(:), igrid(:), & +> fbri(:), & +> aicen(i,:), vicen(i,:), & +> vsnon(i,:), & +> trcrn(i,nt_Tsfc,:), & +> trcrn(i,nt_alvl,:), & +> trcrn(i,nt_apnd,:), & +> trcrn(i,nt_hpnd,:), & +> trcrn(i,nt_ipnd,:), & +> trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & +> ztrcr_sw, ztrcr, & +> TLAT(i), TLON(i), & +> calendar_type, days_per_year, & +> nextsw_cday, yday, & +> sec, kaer_tab, & +> waer_tab, gaer_tab, & +> kaer_bc_tab(:,:), waer_bc_tab(:,:), & +> gaer_bc_tab(:,:), bcenh(:,:,:), & +> modal_aero, & +> swvdr(i), swvdf(i), & +> swidr(i), swidf(i), & +> coszen(i), fsnow(i), & +> alvdrn(i,:), alvdfn(i,:), & +> alidrn(i,:), alidfn(i,:), & +> fswsfcn(i,:), fswintn(i,:), & +> fswthrun(i,:), fswpenln(i,:,:), & +> Sswabsn(i,:,:), Iswabsn(i,:,:), & +> albicen(i,:), albsnon(i,:), & +> albpndn(i,:), apeffn(i,:), & +> snowfracn(i,:), & +> dhsn(i,:), ffracn(i,:), & +> l_print_point) +911,929c896,914 +< call icepack_atm_boundary(sfctype = 'ocn', & +< Tsf = sst(i), & +< potT = potT(i), & +< uatm = uatm(i), & +< vatm = vatm(i), & +< wind = wind(i), & +< zlvl = zlvl(i), & +< Qa = Qa(i), & +< rhoa = rhoa(i), & +< strx = strairx_ocn(i), & +< stry = strairy_ocn(i), & +< Tref = Tref_ocn(i), & +< Qref = Qref_ocn(i), & +< delt = delt(i), & +< delq = delq(i), & +< lhcoef = lhcoef(i), & +< shcoef = shcoef(i), & +< Cdn_atm = Cdn_atm(i), & +< Cdn_atm_ratio_n = Cdn_atm_ratio(i)) +--- +> call icepack_atm_boundary( 'ocn', & +> sst (i), & +> potT (i), & +> uatm (i), & +> vatm (i), & +> wind (i), & +> zlvl (i), & +> Qa (i), & +> rhoa (i), & +> strairx_ocn(i), & +> strairy_ocn(i), & +> Tref_ocn (i), & +> Qref_ocn (i), & +> delt (i), & +> delq (i), & +> lhcoef (i), & +> shcoef (i), & +> Cdn_atm (i), & +> Cdn_atm_ratio(i)) +951,963c936,948 +< call icepack_ocn_mixed_layer(alvdr_ocn=alvdr_ocn(i), swvdr=swvdr(i), & +< alidr_ocn=alidr_ocn(i), swidr=swidr(i), & +< alvdf_ocn=alvdf_ocn(i), swvdf=swvdf(i), & +< alidf_ocn=alidf_ocn(i), swidf=swidf(i), & +< flwout_ocn=flwout_ocn(i),sst=sst(i), & +< fsens_ocn=fsens_ocn(i), shcoef=shcoef(i), & +< flat_ocn=flat_ocn(i), lhcoef=lhcoef(i), & +< evap_ocn=evap_ocn(i), flw=flw(i), & +< delt=delt(i), delq=delq(i), & +< aice=aice(i), fhocn=fhocn(i), & +< fswthru=fswthru(i), hmix=hmix(i), & +< Tf=Tf(i), qdp=qdp(i), & +< frzmlt=frzmlt(i), dt=dt) +--- +> call icepack_ocn_mixed_layer (alvdr_ocn(i), swvdr (i), & +> alidr_ocn(i), swidr (i), & +> alvdf_ocn(i), swvdf (i), & +> alidf_ocn(i), swidf (i), & +> sst (i), flwout_ocn(i), & +> fsens_ocn(i), shcoef (i), & +> flat_ocn (i), lhcoef (i), & +> evap_ocn (i), flw (i), & +> delt (i), delq (i), & +> aice (i), fhocn (i), & +> fswthru (i), hmix (i), & +> Tf (i), qdp (i), & +> frzmlt (i), dt) +1040,1041c1025,1026 +< max_algae_out=max_algae, max_nbtrcr_out=max_nbtrcr, max_don_out=max_don, & +< max_doc_out=max_doc, max_dic_out=max_dic, max_aero_out=max_aero, max_fe_out=max_fe) +--- +> max_algae_out=max_algae, max_nbtrcr_out=max_nbtrcr, max_don_out=max_don, & +> max_doc_out=max_doc, max_dic_out=max_dic, max_aero_out=max_aero, max_fe_out=max_fe) +1066,1077c1051,1061 +< call icepack_init_OceanConcArray(max_nbtrcr=max_nbtrcr, & +< max_algae = max_algae, max_don = max_don, & +< max_doc = max_doc, max_dic = max_dic, & +< max_aero = max_aero, max_fe = max_fe, & +< nit = nit(i), amm = amm(i), & +< sil = sil(i), dmsp = dmsp(i), & +< dms = dms(i), algalN = algalN(i,:), & +< doc = doc(i,:), don = don(i,:), & +< dic = dic(i,:), fed = fed(i,:), & +< fep = fep(i,:), zaeros = zaeros(i,:), & +< ocean_bio_all=ocean_bio_all(i,:), & +< hum=hum(i)) +--- +> call icepack_init_OceanConcArray(max_nbtrcr, & +> max_algae, max_don, max_doc, & +> max_dic, max_aero, max_fe, & +> nit(i), amm (i), & +> sil(i), dmsp (i), & +> dms(i), algalN(i,:), & +> doc(i,:), don (i,:), & +> dic(i,:), fed (i,:), & +> fep(i,:), zaeros(i,:), & +> ocean_bio_all(i,:), & +> hum(i)) +1091,1143c1075,1125 +< call icepack_biogeochemistry(dt=dt, ntrcr=ntrcr, nbtrcr=nbtrcr, & +< ncat=ncat, nblyr=nblyr, nilyr=nilyr, nslyr=nslyr, & +< n_algae=n_algae, n_zaero=n_zaero, & +< n_doc=n_doc, n_dic=n_dic, n_don=n_don, & +< n_fed=n_fed, n_fep=n_fep, & +< bgrid=bgrid, igrid=igrid, icgrid=icgrid, cgrid=cgrid, & +< upNO = upNO(i), & +< upNH = upNH(i), & +< iDi = iDi(i,:,:), & +< iki = iki(i,:,:), & +< zfswin = zfswin(i,:,:), & +< zsal_tot = zsal_tot(i), & +< darcy_V = darcy_V(i,:), & +< grow_net = grow_net(i), & +< PP_net = PP_net(i), & +< hbri = hbri(i), & +< dhbr_bot = dhbr_bot(i,:), & +< dhbr_top = dhbr_top(i,:), & +< Zoo = Zoo(i,:,:), & +< fbio_snoice = fbio_snoice(i,:), & +< fbio_atmice = fbio_atmice(i,:), & +< ocean_bio = ocean_bio(i,1:nbtrcr), & +< first_ice = first_ice(i,:), & +< fswpenln = fswpenln(i,:,:), & +< bphi = bphi(i,:,:), & +< bTiz = bTiz(i,:,:), & +< ice_bio_net = ice_bio_net(i,1:nbtrcr), & +< snow_bio_net = snow_bio_net(i,1:nbtrcr), & +< fswthrun = fswthrun(i,:), & +< Rayleigh_criteria = Rayleigh_criteria(i), & +< sice_rho = sice_rho(i,:), & +< fzsal = fzsal(i), & +< fzsal_g = fzsal_g(i), & +< meltbn = meltbn(i,:), & +< melttn = melttn(i,:), & +< congeln = congeln(i,:), & +< snoicen = snoicen(i,:), & +< sst = sst(i), & +< sss = sss(i), & +< fsnow = fsnow(i), & +< meltsn = meltsn(i,:), & +< hin_old = hin_old(i,:), & +< flux_bio = flux_bio(i,1:nbtrcr), & +< flux_bio_atm = flux_bio_atm(i,1:nbtrcr), & +< aicen_init = aicen_init(i,:), & +< vicen_init = vicen_init(i,:), & +< aicen = aicen(i,:), & +< vicen = vicen(i,:), & +< vsnon = vsnon(i,:), & +< aice0 = aice0(i), & +< trcrn = trcrn(i,1:ntrcr,:), & +< vsnon_init = vsnon_init(i,:), & +< skl_bgc = skl_bgc) +--- +> call icepack_biogeochemistry(dt, ntrcr, nbtrcr,& +> upNO (i), & +> upNH (i), & +> iDi (i,:,:), & +> iki (i,:,:), & +> zfswin (i,:,:), & +> zsal_tot (i), & +> darcy_V (i,:), & +> grow_net (i), & +> PP_net (i), & +> hbri (i), & +> dhbr_bot (i,:), & +> dhbr_top (i,:), & +> Zoo (i,:,:), & +> fbio_snoice (i,:), & +> fbio_atmice (i,:), & +> ocean_bio (i,1:nbtrcr), & +> first_ice (i,:), & +> fswpenln (i,:,:), & +> bphi (i,:,:), & +> bTiz (i,:,:), & +> ice_bio_net (i,1:nbtrcr), & +> snow_bio_net(i,1:nbtrcr), & +> fswthrun (i,:), & +> Rayleigh_criteria(i), & +> sice_rho (i,:), & +> fzsal (i), & +> fzsal_g (i), & +> bgrid, igrid, icgrid, cgrid, & +> nblyr, nilyr, nslyr, n_algae, n_zaero, & +> ncat, n_doc, n_dic, n_don, n_fed, n_fep, & +> meltbn (i,:), & +> melttn (i,:), & +> congeln (i,:), & +> snoicen (i,:), & +> sst (i), & +> sss (i), & +> fsnow (i), & +> meltsn (i,:), & +> hin_old (i,:), & +> flux_bio (i,1:nbtrcr), & +> flux_bio_atm(i,1:nbtrcr), & +> aicen_init (i,:), & +> vicen_init (i,:), & +> aicen (i,:), & +> vicen (i,:), & +> vsnon (i,:), & +> aice0 (i), & +> trcrn (i,1:ntrcr,:), & +> vsnon_init (i,:), & +> skl_bgc) +diff -r ./Icepack/configuration/scripts/icepack.batch.csh /data/tar/git_cice/CICE/Icepack/configuration/scripts/icepack.batch.csh +45c45 +< #PBS -q ${ICE_MACHINE_QUEUE} +--- +> #PBS -q share +67c67 +< #PBS -q ${ICE_MACHINE_QUEUE} +--- +> #PBS -q short +70d69 +< #PBS -l walltime=${ICE_RUNLENGTH} +76c75 +< #PBS -q ${ICE_MACHINE_QUEUE} +--- +> #PBS -q debug +88c87 +< #PBS -q ${ICE_MACHINE_QUEUE} +--- +> #PBS -q debug +diff -r ./Icepack/configuration/scripts/icepack.launch.csh /data/tar/git_cice/CICE/Icepack/configuration/scripts/icepack.launch.csh +12,18d11 +< if (${ICE_MACHINE} =~ gordon* || ${ICE_MACHINE} =~ conrad* || ${ICE_MACHINE} =~ onyx* ) then +< cat >> ${jobfile} << EOFR +< aprun -n 1 -N 1 -d 1 ./icepack >&! \$ICE_RUNLOG_FILE +< EOFR +< +< #========================================== +< else +22,23d14 +< +< endif +diff -r ./Icepack/configuration/scripts/machines/env.cheyenne_intel /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/env.cheyenne_intel +20c20 +< setenv ICE_MACHINE_QUEUE "share" +--- +> setenv ICE_MACHINE_QUEUE "regular" +Only in ./Icepack/configuration/scripts/machines: env.izumi_gnu +diff -r ./Icepack/configuration/scripts/machines/env.izumi_intel /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/env.izumi_intel +5d4 +< module purge +8,9d6 +< setenv OMP_STACKSIZE 64M +< +17,18d13 +< setenv ICE_MACHINE_QSTAT "qstat " +< setenv ICE_MACHINE_QUEUE "short" +20c15,16 +< setenv ICE_MACHINE_TPNODE 48 +--- +> setenv ICE_MACHINE_QUEUE "debug" +> setenv ICE_MACHINE_TPNODE 24 +diff -r ./Icepack/configuration/scripts/machines/env.izumi_nag /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/env.izumi_nag +8,9d7 +< setenv OMP_STACKSIZE 64M +< +18c16 +< setenv ICE_MACHINE_QUEUE "short" +--- +> setenv ICE_MACHINE_QUEUE "debug" +20c18 +< setenv ICE_MACHINE_TPNODE 48 +--- +> setenv ICE_MACHINE_TPNODE 24 +Only in ./Icepack/configuration/scripts/machines: env.izumi_pgi +Only in ./Icepack/configuration/scripts/machines: Macros.izumi_gnu +diff -r ./Icepack/configuration/scripts/machines/Macros.izumi_intel /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/Macros.izumi_intel +2c2 +< # Makefile macros for NCAR izumi, intel compiler +--- +> # Makefile macros for NCAR cheyenne, intel compiler +12a13 +> FC_AUTO_R8 := -r8 +25,30d25 +< +< ifeq ($(ICE_THREADED), true) +< LDFLAGS += -qopenmp +< CFLAGS += -qopenmp +< FFLAGS += -qopenmp +< endif +diff -r ./Icepack/configuration/scripts/machines/Macros.izumi_nag /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/Macros.izumi_nag +2c2 +< # Makefile macros for NCAR izumi, nag compiler +--- +> # Makefile macros for NCAR cheyenne, nag compiler +13a14 +> FC_AUTO_R8 := -r8 +27,31c28 +< ifeq ($(ICE_THREADED), true) +< LDFLAGS += -openmp +< CFLAGS += -openmp +< FFLAGS += -openmp +< endif +--- +> SLIBS := -L$(COMPILER_PATH)/lib/NAG_Fortran +Only in ./Icepack/configuration/scripts/machines: Macros.izumi_pgi +diff -r ./Icepack/configuration/scripts/tests/report_results.csh /data/tar/git_cice/CICE/Icepack/configuration/scripts/tests/report_results.csh +10c10,11 +< set wikirepo = "https://github.com/CICE-Consortium/Test-Results.wiki.git" +--- +> set gh_repository = "CICE-Consortium/Test-Results.wiki.git" +> set wikirepo = "https://github.com/${gh_repository}" +14c15,25 +< git clone ${wikirepo} ${wikiname} +--- +> +> # If command line argument "--travisCI" is set when running this script, clone +> # the wiki repository using Github access token for the 'ciceconsortium' user. +> if ( "$1" == "--travisCI" ) then +> git clone "https://ciceconsortium:${GH_TOKEN}@github.com/${gh_repository}" ${wikiname} +> set res = $status +> else +> git clone ${wikirepo} ${wikiname} +> set res = $status +> endif +> +55c66 +< set xcdat = `echo $cdat | cut -c 3-` +--- +> set xcdat = `echo $cdat | sed 's|-||g' | cut -c 3-` +61a73,74 +> set vfile = "icepack_by_vers" +> set bfile = "icepack_by_bran" +65a79,80 +> set vfile = {$vfile}_forks +> set bfile = {$bfile}_forks +98d112 +< @ tunkn = 0 +117c131 +< set fcomp = `grep " ${case} bfbcomp " results.log | cut -c 1-4` +--- +> set fcomp = `grep " ${case} " results.log | grep " bfbcomp" | cut -c 1-4` +122c136 +< set vcomp = `grep " ${case} bfbcomp " results.log | cut -d " " -f 4` +--- +> set vcomp = `grep " ${case} " results.log | grep " bfbcomp" | cut -d " " -f 4` +162,165d175 +< if (${rbuild} == ${yellow}) set tchkpass = 2 +< if (${rrun} == ${yellow}) set tchkpass = 2 +< if (${rtest} == ${yellow}) set tchkpass = 2 +< +173,178c183 +< else +< if (${tchkpass} == 2) then +< @ tunkn = $tunkn + 1 +< else +< @ tfail = $tfail + 1 +< endif +--- +> @ tfail = $tfail + 1 +236a242,251 +> +> # If command line argument "--travisCI" is set when running this script, add +> # links to Travis build page and the raw build log. +> if ( "$1" == "--travisCI" ) then +> cat >> ${outfile} << EOF +> - Travis-CI build page: https://travis-ci.org/${TRAVIS_REPO_SLUG}/builds/${TRAVIS_BUILD_ID} +> - Travis-CI raw log: https://api.travis-ci.org/v3/job/${TRAVIS_JOB_ID}/log.txt +> EOF +> endif +> +246a262,263 +> set versfile = "${wikiname}/${tsubdir}/${vfile}.md" +> set branfile = "${wikiname}/${tsubdir}/${bfile}.md" +248c265 +< foreach xfile ($hashfile $machfile) +--- +> foreach xfile ($hashfile $machfile $versfile $branfile) +266c283 +< | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | +--- +> | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | +274c291,314 +< sed -i "$nline a | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${hashfile} +--- +> sed -i "$nline a | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${hashfile} +> endif +> +> #===================== +> # update versfile +> #===================== +> +> set chk = 0 +> if (-e ${versfile}) set chk = `grep "\*\*${vers}" ${versfile} | wc -l` +> if ($chk == 0) then +> cat >! ${versfile} << EOF +> **${vers}** : +> +> | machine | compiler | hash | date | test fail | comp fail | total | +> | ------ | ------ | ------ | ------ | ------ | ------ | ------ | +> | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | +> +> EOF +> if (-e ${versfile}.prev) cat ${versfile}.prev >> ${versfile} +> +> else +> set oline = `grep -n "\*\*${vers}" ${versfile} | head -1 | cut -d : -f 1` +> @ nline = ${oline} + 3 +> sed -i "$nline a | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${versfile} +289c329 +< | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | +--- +> | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | +297c337 +< sed -i "$nline a | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${machfile} +--- +> sed -i "$nline a | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${machfile} +299a340,361 +> #===================== +> # update branfile +> #===================== +> +> set chk = 0 +> if (-e ${branfile}) set chk = `grep "\*\*${bran}" ${branfile} | wc -l` +> if ($chk == 0) then +> cat >! ${branfile} << EOF +> **${bran}** **${repo}**: +> +> | machine | compiler | hash | date | test fail | comp fail | total | +> | ------ | ------ | ------ | ------ | ------ | ------ | ------ | +> | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | +> +> EOF +> if (-e ${branfile}.prev) cat ${branfile}.prev >> ${branfile} +> +> else +> set oline = `grep -n "\*\*${bran}" ${branfile} | head -1 | cut -d : -f 1` +> @ nline = ${oline} + 3 +> sed -i "$nline a | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${branfile} +> endif +312a375,376 +> git add ${tsubdir}/${vfile}.md +> git add ${tsubdir}/${bfile}.md +Only in ./Icepack/doc: generate_interfaces.sh +diff -r ./Icepack/doc/source/conf.py /data/tar/git_cice/CICE/Icepack/doc/source/conf.py +65c65 +< version = u'1.1.2' +--- +> version = u'1.1.1' +67c67 +< version = u'1.1.2' +--- +> version = u'1.1.1' +diff -r ./Icepack/doc/source/developer_guide/dg_about.rst /data/tar/git_cice/CICE/Icepack/doc/source/developer_guide/dg_about.rst +38c38,39 +< See https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers for information on: +--- +> See https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers +> for information on: +41,42c42 +< - git Workflow Guide - including extensive information about the Pull Request +< process and requirements +--- +> - git Workflow Guide - including extensive information about the Pull Request process and requirements +diff -r ./Icepack/doc/source/user_guide/index.rst /data/tar/git_cice/CICE/Icepack/doc/source/user_guide/index.rst +18d17 +< ug_library.rst +Only in ./Icepack/doc/source/user_guide: interfaces.rst +Only in ./Icepack/doc/source/user_guide: ug_library.rst +diff -r ./Icepack/doc/source/user_guide/ug_running.rst /data/tar/git_cice/CICE/Icepack/doc/source/user_guide/ug_running.rst +110,113c110 +< Updates the stored value of the Icepack version in the sandbox and exits See :ref:`version` for more information. +< +< ``--docintfc`` +< Runs a script that updates the public interfaces in the documentation. This script parses the source code directly. See :ref:`docintfc` for more information. +--- +> Updates the stored value of the Icepack version in the sandbox and exits See :ref:`version` for more information +File ./Icepack/.git is a regular file while file /data/tar/git_cice/CICE/Icepack/.git is a directory +diff -r ./Icepack/.gitignore /data/tar/git_cice/CICE/Icepack/.gitignore +13d12 +< caselist* +diff -r ./Icepack/icepack.setup /data/tar/git_cice/CICE/Icepack/icepack.setup +71,72d70 +< --docintfc +< +89d86 +< --docintfc : update the public interface documentation +203,221d199 +< exit -1 +< endif +< shift argv +< end +< +< set argv = ( $initargv[*] ) +< # check for --docintfc +< while (1) +< if ($#argv < 1) break; +< if ("$argv[1]" =~ "--docintfc" ) then +< echo "${0}: Running docintfc" +< echo " " +< cd ${ICE_SANDBOX}/doc +< ./generate_interfaces.sh +< cd ${ICE_SANDBOX} +< echo " " +< echo "${0}: docintfc complete, exiting" +< echo "${0}: remember to add and commit any updated documentation files" +< echo " " +diff -r ./Icepack/.zenodo.json /data/tar/git_cice/CICE/Icepack/.zenodo.json +4c4 +< "language": "eng", +--- +> "language": "English", +40c40 +< "name": "Anthony Craig" +--- +> "name": "Tony Craig" +83c83 +< "affiliation": "Los Alamos National Laboratory", +--- +> "affiliation": "Naval Research Laboratory Stennis Space Center", +93a94 +> "scheme": "url", +97a99 +> "scheme": "doi", +99c101 +< "relation": "isNewVersionOf" +--- +> "relation": "isVersionOf" +102c104 +< } +--- +> } +\ No newline at end of file +Only in .: lal.dat From eceee39c9e8c96b12b51ccddcf6a76da109e142c Mon Sep 17 00:00:00 2001 From: TRasmussen <33480590+TillRasmussen@users.noreply.github.com> Date: Wed, 4 Dec 2019 07:49:02 +0100 Subject: [PATCH 02/14] Update CICE_RunMod.F90 --- cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 b/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 index a71708b21..44f30f2ef 100644 --- a/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 +++ b/cicecore/drivers/nuopc/dmi/CICE_RunMod.F90 @@ -39,7 +39,7 @@ module CICE_RunMod ! ! author Elizabeth C. Hunke, LANL ! Philip W. Jones, LANL - William H. Lipscomb, LANL +! William H. Lipscomb, LANL subroutine CICE_Run From 6c1e6f0bb832f9dcde4a2777c3f2075b7512818b Mon Sep 17 00:00:00 2001 From: TRasmussen <33480590+TillRasmussen@users.noreply.github.com> Date: Wed, 4 Dec 2019 07:49:40 +0100 Subject: [PATCH 03/14] Delete lal.dat --- lal.dat | 3445 ------------------------------------------------------- 1 file changed, 3445 deletions(-) delete mode 100644 lal.dat diff --git a/lal.dat b/lal.dat deleted file mode 100644 index ae4aa959e..000000000 --- a/lal.dat +++ /dev/null @@ -1,3445 +0,0 @@ -diff -r ./cicecore/cicedynB/dynamics/ice_dyn_eap.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/dynamics/ice_dyn_eap.F90 -349,355c349,355 -< call icepack_ice_strength(ncat=ncat, & -< aice = aice (i,j, iblk), & -< vice = vice (i,j, iblk), & -< aice0 = aice0 (i,j, iblk), & -< aicen = aicen (i,j,:,iblk), & -< vicen = vicen (i,j,:,iblk), & -< strength = strength(i,j, iblk) ) ---- -> call icepack_ice_strength (ncat, & -> aice (i,j, iblk), & -> vice (i,j, iblk), & -> aice0 (i,j, iblk), & -> aicen (i,j,:,iblk), & -> vicen (i,j,:,iblk), & -> strength(i,j, iblk) ) -diff -r ./cicecore/cicedynB/dynamics/ice_dyn_evp.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 -289,295c289,295 -< call icepack_ice_strength(ncat = ncat, & -< aice = aice (i,j, iblk), & -< vice = vice (i,j, iblk), & -< aice0 = aice0 (i,j, iblk), & -< aicen = aicen (i,j,:,iblk), & -< vicen = vicen (i,j,:,iblk), & -< strength = strength(i,j, iblk) ) ---- -> call icepack_ice_strength (ncat, & -> aice (i,j, iblk), & -> vice (i,j, iblk), & -> aice0 (i,j, iblk), & -> aicen (i,j,:,iblk), & -> vicen (i,j,:,iblk), & -> strength(i,j, iblk) ) -diff -r ./cicecore/cicedynB/dynamics/ice_transport_driver.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/dynamics/ice_transport_driver.F90 -1682,1690c1682,1688 -< call icepack_compute_tracers(ntrcr=ntrcr, trcr_depend=trcr_depend(:), & -< atrcrn = work (ij,narrays+1:narrays+ntrcr), & -< aicen = aicen(i,j,n), & -< vicen = vicen(i,j,n), & -< vsnon = vsnon(i,j,n), & -< trcr_base = trcr_base(:,:), & -< n_trcr_strata = n_trcr_strata(:), & -< nt_strata = nt_strata(:,:), & -< trcrn = trcrn(i,j,:,n)) ---- -> call icepack_compute_tracers (ntrcr, trcr_depend(:), & -> work (ij,narrays+1:narrays+ntrcr), & -> aicen(i,j,n), & -> vicen(i,j,n), vsnon(i,j,n), & -> trcr_base(:,:), n_trcr_strata(:), & -> nt_strata(:,:), & -> trcrn(i,j,:,n)) -diff -r ./cicecore/cicedynB/general/ice_forcing.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/general/ice_forcing.F90 -242a243 -> trim(atm_data_type) /= 'hycom' .and. & -2322c2323 -< if(use_leap_years) days_per_year = 366 !overrides setting of 365 in ice_calendar ---- -> if (use_leap_years) days_per_year = 366 !overrides setting of 365 in ice_calendar -diff -r ./cicecore/cicedynB/general/ice_init.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/general/ice_init.F90 -1484,1498c1484,1498 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend(:), & -< trcr_base = trcr_base(:,:), & -< n_trcr_strata = n_trcr_strata(:), & -< nt_strata = nt_strata(:,:)) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk), & -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend (:), & -> trcr_base (:,:), & -> n_trcr_strata(:), & -> nt_strata (:,:)) -1800,1805c1800,1804 -< call icepack_init_trcr(Tair = Tair(i,j), Tf = Tf(i,j), & -< Sprofile = salinz(i,j,:), & -< Tprofile = Tmltz(i,j,:), & -< Tsfc = Tsfc, & -< nilyr = nilyr, nslyr = nslyr, & -< qin = qin(:), qsn = qsn(:)) ---- -> call icepack_init_trcr(Tair(i,j), Tf(i,j), & -> salinz(i,j,:), Tmltz(i,j,:), & -> Tsfc, & -> nilyr, nslyr, & -> qin(:), qsn(:)) -diff -r ./cicecore/cicedynB/general/ice_step_mod.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/general/ice_step_mod.F90 -124,133c124,133 -< call icepack_prep_radiation (ncat=ncat, nilyr=nilyr, nslyr=nslyr, & -< scale_factor=scale_factor(i,j,iblk), & -< aice = aice (i,j, iblk), aicen = aicen (i,j, :,iblk), & -< swvdr = swvdr (i,j, iblk), swvdf = swvdf (i,j, iblk), & -< swidr = swidr (i,j, iblk), swidf = swidf (i,j, iblk), & -< alvdr_ai = alvdr_ai(i,j, iblk), alvdf_ai = alvdf_ai(i,j, iblk), & -< alidr_ai = alidr_ai(i,j, iblk), alidf_ai = alidf_ai(i,j, iblk), & -< fswsfcn = fswsfcn (i,j, :,iblk), fswintn = fswintn (i,j, :,iblk), & -< fswthrun = fswthrun(i,j, :,iblk), fswpenln = fswpenln(i,j,:,:,iblk), & -< Sswabsn = Sswabsn (i,j,:,:,iblk), Iswabsn = Iswabsn (i,j,:,:,iblk)) ---- -> call icepack_prep_radiation (ncat, nilyr, nslyr, & -> aice (i,j, iblk), aicen (i,j, :,iblk), & -> swvdr (i,j, iblk), swvdf (i,j, iblk), & -> swidr (i,j, iblk), swidf (i,j, iblk), & -> alvdr_ai(i,j, iblk), alvdf_ai(i,j, iblk), & -> alidr_ai(i,j, iblk), alidf_ai(i,j, iblk), & -> scale_factor(i,j,iblk), & -> fswsfcn (i,j, :,iblk), fswintn (i,j, :,iblk), & -> fswthrun(i,j, :,iblk), fswpenln(i,j,:,:,iblk), & -> Sswabsn (i,j,:,:,iblk), Iswabsn (i,j,:,:,iblk)) -287,407c287,358 -< call icepack_step_therm1(dt=dt, ncat=ncat, & -< nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & -< aicen_init = aicen_init (i,j,:,iblk), & -< vicen_init = vicen_init (i,j,:,iblk), & -< vsnon_init = vsnon_init (i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< aicen = aicen (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vicen = vicen (i,j,:,iblk), & -< vsno = vsno (i,j, iblk), & -< vsnon = vsnon (i,j,:,iblk), & -< uvel = uvel (i,j, iblk), & -< vvel = vvel (i,j, iblk), & -< Tsfc = trcrn (i,j,nt_Tsfc,:,iblk), & -< zqsn = trcrn (i,j,nt_qsno:nt_qsno+nslyr-1,:,iblk), & -< zqin = trcrn (i,j,nt_qice:nt_qice+nilyr-1,:,iblk), & -< zSin = trcrn (i,j,nt_sice:nt_sice+nilyr-1,:,iblk), & -< alvl = trcrn (i,j,nt_alvl,:,iblk), & -< vlvl = trcrn (i,j,nt_vlvl,:,iblk), & -< apnd = trcrn (i,j,nt_apnd,:,iblk), & -< hpnd = trcrn (i,j,nt_hpnd,:,iblk), & -< ipnd = trcrn (i,j,nt_ipnd,:,iblk), & -< iage = trcrn (i,j,nt_iage,:,iblk), & -< FY = trcrn (i,j,nt_FY ,:,iblk), & -< aerosno = aerosno (:,:,:), & -< aeroice = aeroice (:,:,:), & -< uatm = uatm (i,j, iblk), & -< vatm = vatm (i,j, iblk), & -< wind = wind (i,j, iblk), & -< zlvl = zlvl (i,j, iblk), & -< Qa = Qa (i,j, iblk), & -< rhoa = rhoa (i,j, iblk), & -< Tair = Tair (i,j, iblk), & -< Tref = Tref (i,j, iblk), & -< Qref = Qref (i,j, iblk), & -< Uref = Uref (i,j, iblk), & -< Cdn_atm_ratio= Cdn_atm_ratio(i,j, iblk), & -< Cdn_ocn = Cdn_ocn (i,j, iblk), & -< Cdn_ocn_skin = Cdn_ocn_skin(i,j, iblk), & -< Cdn_ocn_floe = Cdn_ocn_floe(i,j, iblk), & -< Cdn_ocn_keel = Cdn_ocn_keel(i,j, iblk), & -< Cdn_atm = Cdn_atm (i,j, iblk), & -< Cdn_atm_skin = Cdn_atm_skin(i,j, iblk), & -< Cdn_atm_floe = Cdn_atm_floe(i,j, iblk), & -< Cdn_atm_pond = Cdn_atm_pond(i,j, iblk), & -< Cdn_atm_rdg = Cdn_atm_rdg (i,j, iblk), & -< hfreebd = hfreebd (i,j, iblk), & -< hdraft = hdraft (i,j, iblk), & -< hridge = hridge (i,j, iblk), & -< distrdg = distrdg (i,j, iblk), & -< hkeel = hkeel (i,j, iblk), & -< dkeel = dkeel (i,j, iblk), & -< lfloe = lfloe (i,j, iblk), & -< dfloe = dfloe (i,j, iblk), & -< strax = strax (i,j, iblk), & -< stray = stray (i,j, iblk), & -< strairxT = strairxT (i,j, iblk), & -< strairyT = strairyT (i,j, iblk), & -< potT = potT (i,j, iblk), & -< sst = sst (i,j, iblk), & -< sss = sss (i,j, iblk), & -< Tf = Tf (i,j, iblk), & -< strocnxT = strocnxT (i,j, iblk), & -< strocnyT = strocnyT (i,j, iblk), & -< fbot = fbot (i,j, iblk), & -< Tbot = Tbot (i,j, iblk), & -< Tsnice = Tsnice (i,j, iblk), & -< frzmlt = frzmlt (i,j, iblk), & -< rside = rside (i,j, iblk), & -< fsnow = fsnow (i,j, iblk), & -< frain = frain (i,j, iblk), & -< fpond = fpond (i,j, iblk), & -< fsurf = fsurf (i,j, iblk), & -< fsurfn = fsurfn (i,j,:,iblk), & -< fcondtop = fcondtop (i,j, iblk), & -< fcondtopn = fcondtopn (i,j,:,iblk), & -< fcondbot = fcondbot (i,j, iblk), & -< fcondbotn = fcondbotn (i,j,:,iblk), & -< fswsfcn = fswsfcn (i,j,:,iblk), & -< fswintn = fswintn (i,j,:,iblk), & -< fswthrun = fswthrun (i,j,:,iblk), & -< fswabs = fswabs (i,j, iblk), & -< flwout = flwout (i,j, iblk), & -< Sswabsn = Sswabsn (i,j,:,:,iblk), & -< Iswabsn = Iswabsn (i,j,:,:,iblk), & -< flw = flw (i,j, iblk), & -< fsens = fsens (i,j, iblk), & -< fsensn = fsensn (i,j,:,iblk), & -< flat = flat (i,j, iblk), & -< flatn = flatn (i,j,:,iblk), & -< evap = evap (i,j, iblk), & -< evaps = evaps (i,j, iblk), & -< evapi = evapi (i,j, iblk), & -< fresh = fresh (i,j, iblk), & -< fsalt = fsalt (i,j, iblk), & -< fhocn = fhocn (i,j, iblk), & -< fswthru = fswthru (i,j, iblk), & -< flatn_f = flatn_f (i,j,:,iblk), & -< fsensn_f = fsensn_f (i,j,:,iblk), & -< fsurfn_f = fsurfn_f (i,j,:,iblk), & -< fcondtopn_f = fcondtopn_f (i,j,:,iblk), & -< faero_atm = faero_atm (i,j,1:n_aero,iblk), & -< faero_ocn = faero_ocn (i,j,1:n_aero,iblk), & -< dhsn = dhsn (i,j,:,iblk), & -< ffracn = ffracn (i,j,:,iblk), & -< meltt = meltt (i,j, iblk), & -< melttn = melttn (i,j,:,iblk), & -< meltb = meltb (i,j, iblk), & -< meltbn = meltbn (i,j,:,iblk), & -< melts = melts (i,j, iblk), & -< meltsn = meltsn (i,j,:,iblk), & -< congel = congel (i,j, iblk), & -< congeln = congeln (i,j,:,iblk), & -< snoice = snoice (i,j, iblk), & -< snoicen = snoicen (i,j,:,iblk), & -< dsnown = dsnown (i,j,:,iblk), & -< lmask_n = lmask_n (i,j, iblk), & -< lmask_s = lmask_s (i,j, iblk), & -< mlt_onset = mlt_onset (i,j, iblk), & -< frz_onset = frz_onset (i,j, iblk), & -< yday=yday, prescribed_ice=prescribed_ice) ---- -> call icepack_step_therm1(dt, ncat, nilyr, nslyr, n_aero, & -> aicen_init (i,j,:,iblk), & -> vicen_init (i,j,:,iblk), vsnon_init (i,j,:,iblk), & -> aice (i,j, iblk), aicen (i,j,:,iblk), & -> vice (i,j, iblk), vicen (i,j,:,iblk), & -> vsno (i,j, iblk), vsnon (i,j,:,iblk), & -> uvel (i,j, iblk), vvel (i,j, iblk), & -> trcrn (i,j,nt_Tsfc,:,iblk), & -> trcrn (i,j,nt_qsno:nt_qsno+nslyr-1,:,iblk), & -> trcrn (i,j,nt_qice:nt_qice+nilyr-1,:,iblk), & -> trcrn (i,j,nt_sice:nt_sice+nilyr-1,:,iblk), & -> trcrn (i,j,nt_alvl,:,iblk), & -> trcrn (i,j,nt_vlvl,:,iblk), & -> trcrn (i,j,nt_apnd,:,iblk), & -> trcrn (i,j,nt_hpnd,:,iblk), & -> trcrn (i,j,nt_ipnd,:,iblk), & -> trcrn (i,j,nt_iage,:,iblk), & -> trcrn (i,j,nt_FY ,:,iblk), & -> aerosno (:,:,:), aeroice (:,:,:), & -> uatm (i,j, iblk), vatm (i,j, iblk), & -> wind (i,j, iblk), zlvl (i,j, iblk), & -> Qa (i,j, iblk), rhoa (i,j, iblk), & -> Tair (i,j, iblk), Tref (i,j, iblk), & -> Qref (i,j, iblk), Uref (i,j, iblk), & -> Cdn_atm_ratio(i,j, iblk), & -> Cdn_ocn (i,j, iblk), Cdn_ocn_skin(i,j, iblk), & -> Cdn_ocn_floe(i,j, iblk), Cdn_ocn_keel(i,j, iblk), & -> Cdn_atm (i,j, iblk), Cdn_atm_skin(i,j, iblk), & -> Cdn_atm_floe(i,j, iblk), Cdn_atm_pond(i,j, iblk), & -> Cdn_atm_rdg (i,j, iblk), hfreebd (i,j, iblk), & -> hdraft (i,j, iblk), hridge (i,j, iblk), & -> distrdg (i,j, iblk), hkeel (i,j, iblk), & -> dkeel (i,j, iblk), lfloe (i,j, iblk), & -> dfloe (i,j, iblk), & -> strax (i,j, iblk), stray (i,j, iblk), & -> strairxT (i,j, iblk), strairyT (i,j, iblk), & -> potT (i,j, iblk), sst (i,j, iblk), & -> sss (i,j, iblk), Tf (i,j, iblk), & -> strocnxT (i,j, iblk), strocnyT (i,j, iblk), & -> fbot (i,j, iblk), & -> Tbot (i,j, iblk), Tsnice (i,j, iblk), & -> frzmlt (i,j, iblk), rside (i,j, iblk), & -> fsnow (i,j, iblk), frain (i,j, iblk), & -> fpond (i,j, iblk), & -> fsurf (i,j, iblk), fsurfn (i,j,:,iblk), & -> fcondtop (i,j, iblk), fcondtopn (i,j,:,iblk), & -> fcondbot (i,j, iblk), fcondbotn (i,j,:,iblk), & -> fswsfcn (i,j,:,iblk), fswintn (i,j,:,iblk), & -> fswthrun (i,j,:,iblk), fswabs (i,j, iblk), & -> flwout (i,j, iblk), & -> Sswabsn (i,j,:,:,iblk), Iswabsn (i,j,:,:,iblk), & -> flw (i,j, iblk), & -> fsens (i,j, iblk), fsensn (i,j,:,iblk), & -> flat (i,j, iblk), flatn (i,j,:,iblk), & -> evap (i,j, iblk), & -> evaps (i,j, iblk), evapi (i,j, iblk), & -> fresh (i,j, iblk), fsalt (i,j, iblk), & -> fhocn (i,j, iblk), fswthru (i,j, iblk), & -> flatn_f (i,j,:,iblk), fsensn_f (i,j,:,iblk), & -> fsurfn_f (i,j,:,iblk), fcondtopn_f (i,j,:,iblk), & -> faero_atm (i,j,1:n_aero,iblk), & -> faero_ocn (i,j,1:n_aero,iblk), & -> dhsn (i,j,:,iblk), ffracn (i,j,:,iblk), & -> meltt (i,j, iblk), melttn (i,j,:,iblk), & -> meltb (i,j, iblk), meltbn (i,j,:,iblk), & -> melts (i,j, iblk), meltsn (i,j,:,iblk), & -> congel (i,j, iblk), congeln (i,j,:,iblk), & -> snoice (i,j, iblk), snoicen (i,j,:,iblk), & -> dsnown (i,j,:,iblk), & -> lmask_n (i,j, iblk), lmask_s (i,j, iblk), & -> mlt_onset (i,j, iblk), frz_onset (i,j, iblk), & -> yday, prescribed_ice) -504,542c455,478 -< call icepack_step_therm2(dt=dt, ncat=ncat, n_aero=n_aero, & -< nltrcr=nltrcr, nilyr=nilyr, nslyr=nslyr, nblyr=nblyr, & -< hin_max = hin_max (:), & -< aicen = aicen (i,j,:,iblk), & -< vicen = vicen (i,j,:,iblk), & -< vsnon = vsnon (i,j,:,iblk), & -< aicen_init = aicen_init(i,j,:,iblk), & -< vicen_init = vicen_init(i,j,:,iblk), & -< trcrn = trcrn (i,j,:,:,iblk), & -< aice0 = aice0 (i,j, iblk), & -< aice = aice (i,j, iblk), & -< trcr_depend= trcr_depend(:), & -< trcr_base = trcr_base(:,:), & -< n_trcr_strata = n_trcr_strata(:), & -< nt_strata = nt_strata(:,:), & -< Tf = Tf (i,j, iblk), & -< sss = sss (i,j, iblk), & -< salinz = salinz (i,j,:,iblk), & -< rside = rside (i,j, iblk), & -< meltl = meltl (i,j, iblk), & -< frzmlt = frzmlt (i,j, iblk), & -< frazil = frazil (i,j, iblk), & -< frain = frain (i,j, iblk), & -< fpond = fpond (i,j, iblk), & -< fresh = fresh (i,j, iblk), & -< fsalt = fsalt (i,j, iblk), & -< fhocn = fhocn (i,j, iblk), & -< update_ocn_f = update_ocn_f, & -< bgrid = bgrid, & -< cgrid = cgrid, & -< igrid = igrid, & -< faero_ocn = faero_ocn (i,j,:,iblk), & -< first_ice = first_ice (i,j,:,iblk), & -< fzsal = fzsal (i,j, iblk), & -< flux_bio = flux_bio (i,j,1:nbtrcr,iblk), & -< ocean_bio = ocean_bio (i,j,1:nbtrcr,iblk), & -< frazil_diag = frazil_diag(i,j,iblk), & -< frz_onset = frz_onset (i,j, iblk), & -< yday = yday) ---- -> call icepack_step_therm2(dt, ncat, n_aero, nltrcr, & -> nilyr, nslyr, & -> hin_max (:), nblyr, & -> aicen (i,j,:,iblk), & -> vicen (i,j,:,iblk), vsnon (i,j,:,iblk), & -> aicen_init(i,j,:,iblk), vicen_init(i,j,:,iblk), & -> trcrn (i,j,:,:,iblk), & -> aice0 (i,j, iblk), aice (i,j, iblk), & -> trcr_depend(:), trcr_base(:,:), & -> n_trcr_strata(:), nt_strata(:,:), & -> Tf (i,j, iblk), sss (i,j, iblk), & -> salinz (i,j,:,iblk), & -> rside (i,j, iblk), meltl (i,j, iblk), & -> frzmlt (i,j, iblk), frazil (i,j, iblk), & -> frain (i,j, iblk), fpond (i,j, iblk), & -> fresh (i,j, iblk), fsalt (i,j, iblk), & -> fhocn (i,j, iblk), update_ocn_f, & -> bgrid, cgrid, & -> igrid, faero_ocn (i,j,:,iblk), & -> first_ice (i,j,:,iblk), fzsal (i,j, iblk), & -> flux_bio (i,j,1:nbtrcr,iblk), & -> ocean_bio (i,j,1:nbtrcr,iblk), & -> frazil_diag(i,j, iblk), & -> frz_onset (i,j, iblk), yday) -548c484 -< ---- -> -619,633c555,566 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend(:), & -< trcr_base = trcr_base(:,:), & -< n_trcr_strata = n_trcr_strata(:), & -< nt_strata = nt_strata(:,:)) ---- -> call icepack_aggregate (ncat, aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk), & -> vicen(i,j,:,iblk), vsnon(i,j, :,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:, iblk), & -> vice (i,j, iblk), vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend(:), & -> trcr_base (:,:), & -> n_trcr_strata(:), & -> nt_strata (:,:)) -781,816c714,738 -< call icepack_step_ridge (dt=dt, ndtd=ndtd, & -< nilyr=nilyr, nslyr=nslyr, nblyr=nblyr, & -< ncat=ncat, n_aero=n_aero, hin_max=hin_max(:), & -< trcr_depend = trcr_depend (:), & -< trcr_base = trcr_base (:,:), & -< n_trcr_strata = n_trcr_strata(:), & -< nt_strata = nt_strata (:,:), & -< trcrn = trcrn (i,j,:,:,iblk), & -< rdg_conv = rdg_conv (i,j, iblk), & -< rdg_shear = rdg_shear(i,j, iblk), & -< aicen = aicen (i,j,:,iblk), & -< vicen = vicen (i,j,:,iblk), & -< vsnon = vsnon (i,j,:,iblk), & -< aice0 = aice0 (i,j, iblk), & -< dardg1dt = dardg1dt (i,j, iblk), & -< dardg2dt = dardg2dt (i,j, iblk), & -< dvirdgdt = dvirdgdt (i,j, iblk), & -< opening = opening (i,j, iblk), & -< fpond = fpond (i,j, iblk), & -< fresh = fresh (i,j, iblk), & -< fhocn = fhocn (i,j, iblk), & -< faero_ocn = faero_ocn(i,j,:,iblk), & -< aparticn = aparticn (i,j,:,iblk), & -< krdgn = krdgn (i,j,:,iblk), & -< aredistn = aredistn (i,j,:,iblk), & -< vredistn = vredistn (i,j,:,iblk), & -< dardg1ndt = dardg1ndt(i,j,:,iblk), & -< dardg2ndt = dardg2ndt(i,j,:,iblk), & -< dvirdgndt = dvirdgndt(i,j,:,iblk), & -< araftn = araftn (i,j,:,iblk), & -< vraftn = vraftn (i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< fsalt = fsalt (i,j, iblk), & -< first_ice = first_ice(i,j,:,iblk), & -< fzsal = fzsal (i,j, iblk), & -< flux_bio = flux_bio (i,j,1:nbtrcr,iblk)) ---- -> call icepack_step_ridge (dt, ndtd, & -> nilyr, nslyr, & -> nblyr, & -> ncat, hin_max (:), & -> rdg_conv (i,j, iblk), rdg_shear(i,j, iblk), & -> aicen (i,j,:,iblk), & -> trcrn (i,j,:,:,iblk), & -> vicen (i,j,:,iblk), vsnon (i,j,:,iblk), & -> aice0 (i,j, iblk), trcr_depend(:), & -> trcr_base(:,:), n_trcr_strata(:), & -> nt_strata(:,:), & -> dardg1dt (i,j, iblk), dardg2dt (i,j, iblk), & -> dvirdgdt (i,j, iblk), opening (i,j, iblk), & -> fpond (i,j, iblk), & -> fresh (i,j, iblk), fhocn (i,j, iblk), & -> n_aero, & -> faero_ocn(i,j,:,iblk), & -> aparticn (i,j,:,iblk), krdgn (i,j,:,iblk), & -> aredistn (i,j,:,iblk), vredistn (i,j,:,iblk), & -> dardg1ndt(i,j,:,iblk), dardg2ndt(i,j,:,iblk), & -> dvirdgndt(i,j,:,iblk), & -> araftn (i,j,:,iblk), vraftn (i,j,:,iblk), & -> aice (i,j, iblk), fsalt (i,j, iblk), & -> first_ice(i,j,:,iblk), fzsal (i,j, iblk), & -> flux_bio (i,j,1:nbtrcr,iblk) ) -949,991c871,910 -< call icepack_step_radiation (dt=dt, ncat=ncat, & -< n_algae=n_algae, tr_zaero=tr_zaero, nblyr=nblyr, & -< ntrcr=ntrcr, nbtrcr_sw=nbtrcr_sw, & -< nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & -< n_zaero=n_zaero, nlt_chl_sw=nlt_chl_sw, & -< nlt_zaero_sw=nlt_zaero_sw(:), & -< dEdd_algae=dEdd_algae, & -< swgrid=swgrid(:), igrid=igrid(:), & -< fbri=fbri(:), & -< aicen=aicen(i,j, :,iblk), & -< vicen=vicen(i,j, :,iblk), & -< vsnon=vsnon(i,j, :,iblk), & -< Tsfcn=trcrn(i,j,nt_Tsfc,:,iblk), & -< alvln=trcrn(i,j,nt_alvl,:,iblk), & -< apndn=trcrn(i,j,nt_apnd,:,iblk), & -< hpndn=trcrn(i,j,nt_hpnd,:,iblk), & -< ipndn=trcrn(i,j,nt_ipnd,:,iblk), & -< aeron=trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & -< zbion=ztrcr_sw, & -< trcrn=ztrcr, & -< TLAT=TLAT(i,j,iblk), TLON=TLON(i,j,iblk), & -< calendar_type=calendar_type, & -< days_per_year=days_per_year, & -< nextsw_cday=nextsw_cday, yday=yday, & -< sec=sec, & -< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & -< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & -< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & -< bcenh=bcenh(:,:,:), & -< modal_aero=modal_aero, & -< swvdr =swvdr (i,j ,iblk), swvdf =swvdf (i,j ,iblk), & -< swidr =swidr (i,j ,iblk), swidf =swidf (i,j ,iblk), & -< coszen =coszen (i,j ,iblk), fsnow =fsnow (i,j ,iblk), & -< alvdrn =alvdrn (i,j,: ,iblk), alvdfn =alvdfn (i,j,: ,iblk), & -< alidrn =alidrn (i,j,: ,iblk), alidfn =alidfn (i,j,: ,iblk), & -< fswsfcn =fswsfcn (i,j,: ,iblk), fswintn =fswintn (i,j,: ,iblk), & -< fswthrun =fswthrun (i,j,: ,iblk), fswpenln=fswpenln(i,j,:,:,iblk), & -< Sswabsn =Sswabsn (i,j,:,:,iblk), Iswabsn =Iswabsn (i,j,:,:,iblk), & -< albicen =albicen (i,j,: ,iblk), albsnon =albsnon (i,j,: ,iblk), & -< albpndn =albpndn (i,j,: ,iblk), apeffn =apeffn (i,j,: ,iblk), & -< snowfracn=snowfracn(i,j,: ,iblk), & -< dhsn =dhsn (i,j,: ,iblk), ffracn =ffracn(i,j,:,iblk), & -< l_print_point=l_print_point) ---- -> call icepack_step_radiation (dt, ncat, & -> n_algae, tr_zaero, nblyr, & -> ntrcr, nbtrcr_sw, & -> nilyr, nslyr, n_aero, & -> n_zaero, dEdd_algae, nlt_chl_sw, & -> nlt_zaero_sw(:), & -> swgrid(:), igrid(:), & -> fbri(:), & -> aicen(i,j,:,iblk), vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> trcrn(i,j,nt_Tsfc,:,iblk), & -> trcrn(i,j,nt_alvl,:,iblk), & -> trcrn(i,j,nt_apnd,:,iblk), & -> trcrn(i,j,nt_hpnd,:,iblk), & -> trcrn(i,j,nt_ipnd,:,iblk), & -> trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & -> ztrcr_sw, & -> ztrcr, & -> TLAT(i,j,iblk), TLON(i,j,iblk), & -> calendar_type, days_per_year, & -> nextsw_cday, yday, & -> sec, & -> kaer_tab, waer_tab, & -> gaer_tab, & -> kaer_bc_tab(:,:), waer_bc_tab(:,:), & -> gaer_bc_tab(:,:), bcenh(:,:,:), & -> modal_aero, & -> swvdr(i,j,iblk), swvdf(i,j,iblk), & -> swidr(i,j,iblk), swidf(i,j,iblk), & -> coszen(i,j,iblk), fsnow(i,j,iblk), & -> alvdrn(i,j,:,iblk), alvdfn(i,j,:,iblk), & -> alidrn(i,j,:,iblk), alidfn(i,j,:,iblk), & -> fswsfcn(i,j,:,iblk), fswintn(i,j,:,iblk), & -> fswthrun(i,j,:,iblk), fswpenln(i,j,:,:,iblk), & -> Sswabsn(i,j,:,:,iblk), Iswabsn(i,j,:,:,iblk), & -> albicen(i,j,:,iblk), albsnon(i,j,:,iblk), & -> albpndn(i,j,:,iblk), apeffn(i,j,:,iblk), & -> snowfracn(i,j,:,iblk), & -> dhsn(i,j,:,iblk), ffracn(i,j,:,iblk), & -> l_print_point) -1111,1129c1030,1048 -< call icepack_atm_boundary(sfctype = 'ocn', & -< Tsf = sst (i,j,iblk), & -< potT = potT (i,j,iblk), & -< uatm = uatm (i,j,iblk), & -< vatm = vatm (i,j,iblk), & -< wind = wind (i,j,iblk), & -< zlvl = zlvl (i,j,iblk), & -< Qa = Qa (i,j,iblk), & -< rhoa = rhoa (i,j,iblk), & -< strx = strairx_ocn(i,j,iblk), & -< stry = strairy_ocn(i,j,iblk), & -< Tref = Tref_ocn (i,j,iblk), & -< Qref = Qref_ocn (i,j,iblk), & -< delt = delt (i,j), & -< delq = delq (i,j), & -< lhcoef = lhcoef (i,j), & -< shcoef = shcoef (i,j), & -< Cdn_atm = Cdn_atm (i,j,iblk), & -< Cdn_atm_ratio_n = Cdn_atm_ratio(i,j,iblk)) ---- -> call icepack_atm_boundary( 'ocn', & -> sst (i,j,iblk), & -> potT (i,j,iblk), & -> uatm (i,j,iblk), & -> vatm (i,j,iblk), & -> wind (i,j,iblk), & -> zlvl (i,j,iblk), & -> Qa (i,j,iblk), & -> rhoa (i,j,iblk), & -> strairx_ocn(i,j,iblk), & -> strairy_ocn(i,j,iblk), & -> Tref_ocn (i,j,iblk), & -> Qref_ocn (i,j,iblk), & -> delt (i,j), & -> delq (i,j), & -> lhcoef (i,j), & -> shcoef (i,j), & -> Cdn_atm (i,j,iblk), & -> Cdn_atm_ratio(i,j,iblk)) -1157,1169c1076,1088 -< call icepack_ocn_mixed_layer(alvdr_ocn=alvdr_ocn(i,j,iblk), swvdr =swvdr (i,j,iblk), & -< alidr_ocn=alidr_ocn(i,j,iblk), swidr =swidr (i,j,iblk), & -< alvdf_ocn=alvdf_ocn(i,j,iblk), swvdf =swvdf (i,j,iblk), & -< alidf_ocn=alidf_ocn(i,j,iblk), swidf =swidf (i,j,iblk), & -< sst =sst (i,j,iblk), flwout_ocn=flwout_ocn(i,j,iblk), & -< fsens_ocn=fsens_ocn(i,j,iblk), shcoef=shcoef(i,j), & -< flat_ocn =flat_ocn (i,j,iblk), lhcoef=lhcoef(i,j), & -< evap_ocn =evap_ocn (i,j,iblk), flw =flw (i,j,iblk), & -< delt =delt (i,j), delq =delq (i,j), & -< aice =aice (i,j,iblk), fhocn =fhocn (i,j,iblk), & -< fswthru =fswthru (i,j,iblk), hmix =hmix (i,j,iblk), & -< Tf =Tf (i,j,iblk), qdp =qdp (i,j,iblk), & -< frzmlt =frzmlt (i,j,iblk), dt =dt) ---- -> call icepack_ocn_mixed_layer (alvdr_ocn(i,j,iblk), swvdr (i,j,iblk), & -> alidr_ocn(i,j,iblk), swidr (i,j,iblk), & -> alvdf_ocn(i,j,iblk), swvdf (i,j,iblk), & -> alidf_ocn(i,j,iblk), swidf (i,j,iblk), & -> sst (i,j,iblk), flwout_ocn(i,j,iblk), & -> fsens_ocn(i,j,iblk), shcoef (i,j), & -> flat_ocn (i,j,iblk), lhcoef (i,j), & -> evap_ocn (i,j,iblk), flw (i,j,iblk), & -> delt (i,j), delq (i,j), & -> aice (i,j,iblk), fhocn (i,j,iblk), & -> fswthru (i,j,iblk), hmix (i,j,iblk), & -> Tf (i,j,iblk), qdp (i,j,iblk), & -> frzmlt (i,j,iblk), dt) -1256,1267c1175,1185 -< call icepack_init_OceanConcArray(max_nbtrcr = icepack_max_nbtrcr, & -< max_algae = icepack_max_algae, max_don = icepack_max_don, & -< max_doc = icepack_max_doc, max_dic = icepack_max_dic, & -< max_aero = icepack_max_aero, max_fe = icepack_max_fe, & -< nit = nit(i,j, iblk), amm = amm (i,j, iblk), & -< sil = sil(i,j, iblk), dmsp = dmsp (i,j, iblk), & -< dms = dms(i,j, iblk), algalN = algalN(i,j,:,iblk), & -< doc = doc(i,j,:,iblk), don = don (i,j,:,iblk), & -< dic = dic(i,j,:,iblk), fed = fed (i,j,:,iblk), & -< fep = fep(i,j,:,iblk), zaeros = zaeros(i,j,:,iblk), & -< hum = hum(i,j, iblk), & -< ocean_bio_all = ocean_bio_all(i,j,:,iblk)) ---- -> call icepack_init_OceanConcArray(icepack_max_nbtrcr, & -> icepack_max_algae, icepack_max_don, icepack_max_doc, & -> icepack_max_dic, icepack_max_aero, icepack_max_fe, & -> nit(i,j, iblk), amm (i,j, iblk), & -> sil(i,j, iblk), dmsp (i,j, iblk), & -> dms(i,j, iblk), algalN(i,j,:,iblk), & -> doc(i,j,:,iblk), don (i,j,:,iblk), & -> dic(i,j,:,iblk), fed (i,j,:,iblk), & -> fep(i,j,:,iblk), zaeros(i,j,:,iblk), & -> ocean_bio_all(i,j,:,iblk), & -> hum(i,j, iblk)) -1278,1328c1196,1246 -< call icepack_biogeochemistry(dt=dt, ntrcr=ntrcr, nbtrcr=nbtrcr,& -< bgrid=bgrid, igrid=igrid, icgrid=icgrid, cgrid=cgrid, & -< nblyr=nblyr, nilyr=nilyr, nslyr=nslyr, n_algae=n_algae, n_zaero=n_zaero, & -< ncat=ncat, n_doc=n_doc, n_dic=n_dic, n_don=n_don, n_fed=n_fed, n_fep=n_fep, & -< upNO = upNO (i,j, iblk), & -< upNH = upNH (i,j, iblk), & -< iDi = iDi (i,j,:,:, iblk), & -< iki = iki (i,j,:,:, iblk), & -< zfswin = zfswin (i,j,:,:, iblk), & -< zsal_tot = zsal_tot (i,j, iblk), & -< darcy_V = darcy_V (i,j,:, iblk), & -< grow_net = grow_net (i,j, iblk), & -< PP_net = PP_net (i,j, iblk), & -< hbri = hbri (i,j, iblk), & -< dhbr_bot = dhbr_bot (i,j,:, iblk), & -< dhbr_top = dhbr_top (i,j,:, iblk), & -< Zoo = Zoo (i,j,:,:, iblk), & -< fbio_snoice = fbio_snoice (i,j,:, iblk), & -< fbio_atmice = fbio_atmice (i,j,:, iblk), & -< ocean_bio = ocean_bio (i,j,1:nbtrcr, iblk), & -< first_ice = first_ice (i,j,:, iblk), & -< fswpenln = fswpenln (i,j,:,:, iblk), & -< bphi = bphi (i,j,:,:, iblk), & -< bTiz = bTiz (i,j,:,:, iblk), & -< ice_bio_net = ice_bio_net (i,j,1:nbtrcr, iblk), & -< snow_bio_net = snow_bio_net(i,j,1:nbtrcr, iblk), & -< fswthrun = fswthrun (i,j,:, iblk), & -< sice_rho = sice_rho (i,j,:, iblk), & -< fzsal = fzsal (i,j, iblk), & -< fzsal_g = fzsal_g (i,j, iblk), & -< meltbn = meltbn (i,j,:, iblk), & -< melttn = melttn (i,j,:, iblk), & -< congeln = congeln (i,j,:, iblk), & -< snoicen = snoicen (i,j,:, iblk), & -< sst = sst (i,j, iblk), & -< sss = sss (i,j, iblk), & -< fsnow = fsnow (i,j, iblk), & -< meltsn = meltsn (i,j,:, iblk), & -< hin_old = hin_old (i,j,:, iblk), & -< flux_bio = flux_bio (i,j,1:nbtrcr, iblk), & -< flux_bio_atm = flux_bio_atm(i,j,1:nbtrcr, iblk), & -< aicen_init = aicen_init (i,j,:, iblk), & -< vicen_init = vicen_init (i,j,:, iblk), & -< aicen = aicen (i,j,:, iblk), & -< vicen = vicen (i,j,:, iblk), & -< vsnon = vsnon (i,j,:, iblk), & -< aice0 = aice0 (i,j, iblk), & -< trcrn = trcrn (i,j,:,:, iblk), & -< vsnon_init = vsnon_init (i,j,:, iblk), & -< Rayleigh_criteria = Rayleigh_criteria(i,j,iblk), & -< skl_bgc = skl_bgc) ---- -> call icepack_biogeochemistry(dt, ntrcr, nbtrcr,& -> upNO (i,j, iblk), & -> upNH (i,j, iblk), & -> iDi (i,j,:,:, iblk), & -> iki (i,j,:,:, iblk), & -> zfswin (i,j,:,:, iblk), & -> zsal_tot (i,j, iblk), & -> darcy_V (i,j,:, iblk), & -> grow_net (i,j, iblk), & -> PP_net (i,j, iblk), & -> hbri (i,j, iblk), & -> dhbr_bot (i,j,:, iblk), & -> dhbr_top (i,j,:, iblk), & -> Zoo (i,j,:,:, iblk), & -> fbio_snoice (i,j,:, iblk), & -> fbio_atmice (i,j,:, iblk), & -> ocean_bio (i,j,1:nbtrcr, iblk), & -> first_ice (i,j,:, iblk), & -> fswpenln (i,j,:,:, iblk), & -> bphi (i,j,:,:, iblk), & -> bTiz (i,j,:,:, iblk), & -> ice_bio_net (i,j,1:nbtrcr, iblk), & -> snow_bio_net(i,j,1:nbtrcr, iblk), & -> fswthrun (i,j,:, iblk), & -> Rayleigh_criteria(i,j, iblk), & -> sice_rho (i,j,:, iblk), & -> fzsal (i,j, iblk), & -> fzsal_g (i,j, iblk), & -> bgrid, igrid, icgrid, cgrid, & -> nblyr, nilyr, nslyr, n_algae, n_zaero, & -> ncat, n_doc, n_dic, n_don, n_fed, n_fep, & -> meltbn (i,j,:, iblk), & -> melttn (i,j,:, iblk), & -> congeln (i,j,:, iblk), & -> snoicen (i,j,:, iblk), & -> sst (i,j, iblk), & -> sss (i,j, iblk), & -> fsnow (i,j, iblk), & -> meltsn (i,j,:, iblk), & -> hin_old (i,j,:, iblk), & -> flux_bio (i,j,1:nbtrcr, iblk), & -> flux_bio_atm(i,j,1:nbtrcr, iblk), & -> aicen_init (i,j,:, iblk), & -> vicen_init (i,j,:, iblk), & -> aicen (i,j,:, iblk), & -> vicen (i,j,:, iblk), & -> vsnon (i,j,:, iblk), & -> aice0 (i,j, iblk), & -> trcrn (i,j,:,:,iblk), & -> vsnon_init (i,j,:, iblk), & -> skl_bgc) -diff -r ./cicecore/cicedynB/infrastructure/ice_restart_driver.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/infrastructure/ice_restart_driver.F90 -496,510c496,510 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend, & -< trcr_base = trcr_base, & -< n_trcr_strata = n_trcr_strata, & -< nt_strata = nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk),& -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -859,873c859,873 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend, & -< trcr_base = trcr_base, & -< n_trcr_strata = n_trcr_strata, & -< nt_strata = nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk),& -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./cicecore/cicedynB/infrastructure/ice_restoring.F90 /data/tar/git_cice/CICE/cicecore/cicedynB/infrastructure/ice_restoring.F90 -514,519c514,518 -< call icepack_init_trcr(Tair=Tair(i,j), Tf=Tf(i,j), & -< Sprofile=salinz(i,j,:), & -< Tprofile=Tmltz(i,j,:), & -< Tsfc=Tsfc, & -< nilyr=nilyr, nslyr=nslyr, & -< qin=qin(:), qsn=qsn(:)) ---- -> call icepack_init_trcr(Tair(i,j), Tf(i,j), & -> salinz(i,j,:), Tmltz(i,j,:), & -> Tsfc, & -> nilyr, nslyr, & -> qin(:), qsn(:)) -diff -r ./cicecore/drivers/direct/hadgem3/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/direct/hadgem3/CICE_InitMod.F90 -135c135 -< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution ---- -> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution -137c137 -< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output ---- -> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output -398,412c398,412 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend, & -< trcr_base = trcr_base, & -< n_trcr_strata = n_trcr_strata, & -< nt_strata = nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk),& -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./cicecore/drivers/mct/cesm1/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/mct/cesm1/CICE_InitMod.F90 -139c139 -< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution ---- -> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution -141c141 -< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output ---- -> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output -398,412c398,412 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend, & -< trcr_base = trcr_base, & -< n_trcr_strata = n_trcr_strata, & -< nt_strata = nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk),& -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./cicecore/drivers/mct/cesm1/ice_prescribed_mod.F90 /data/tar/git_cice/CICE/cicecore/drivers/mct/cesm1/ice_prescribed_mod.F90 -547,561c547,557 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,1:ntrcr,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,1:ntrcr,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend(1:ntrcr), & -< trcr_base = trcr_base(1:ntrcr,:), & -< n_trcr_strata = n_trcr_strata(1:ntrcr), & -< nt_strata = nt_strata(1:ntrcr,:)) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), trcrn(i,j,1:ntrcr,:,iblk), & -> vicen(i,j,:,iblk), vsnon(i,j, :,iblk), & -> aice (i,j, iblk), trcr (i,j,1:ntrcr, iblk), & -> vice (i,j, iblk), vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend(1:ntrcr), & -> trcr_base(1:ntrcr,:), & -> n_trcr_strata(1:ntrcr), & -> nt_strata(1:ntrcr,:)) -diff -r ./cicecore/drivers/nuopc/cmeps/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/nuopc/cmeps/CICE_InitMod.F90 -139c139 -< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution ---- -> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution -141c141 -< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output ---- -> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output -398,412c398,412 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend, & -< trcr_base = trcr_base, & -< n_trcr_strata = n_trcr_strata, & -< nt_strata = nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk),& -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./cicecore/drivers/nuopc/cmeps/ice_prescribed_mod.F90 /data/tar/git_cice/CICE/cicecore/drivers/nuopc/cmeps/ice_prescribed_mod.F90 -495,509c495,508 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,1:ntrcr,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,1:ntrcr,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend(1:ntrcr), & -< trcr_base = trcr_base(1:ntrcr,:), & -< n_trcr_strata = n_trcr_strata(1:ntrcr), & -< nt_strata = nt_strata(1:ntrcr,:)) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,1:ntrcr,:,iblk), & -> vicen(i,j,:,iblk), vsnon(i,j, :,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,1:ntrcr, iblk), & -> vice (i,j, iblk), vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend(1:ntrcr), & -> trcr_base(1:ntrcr,:), & -> n_trcr_strata(1:ntrcr), & -> nt_strata(1:ntrcr,:)) -> -Only in /data/tar/git_cice/CICE/cicecore/drivers/nuopc/dmi: cice_cap.F90_info -diff -r ./cicecore/drivers/standalone/cice/CICE_InitMod.F90 /data/tar/git_cice/CICE/cicecore/drivers/standalone/cice/CICE_InitMod.F90 -138c138 -< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ! ice thickness distribution ---- -> call icepack_init_itd(ncat, hin_max) ! ice thickness distribution -140c140 -< call icepack_init_itd_hist(ncat=ncat, hin_max=hin_max, c_hi_range=c_hi_range) ! output ---- -> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output -402,416c402,416 -< call icepack_aggregate(ncat = ncat, & -< aicen = aicen(i,j,:,iblk), & -< trcrn = trcrn(i,j,:,:,iblk), & -< vicen = vicen(i,j,:,iblk), & -< vsnon = vsnon(i,j,:,iblk), & -< aice = aice (i,j, iblk), & -< trcr = trcr (i,j,:,iblk), & -< vice = vice (i,j, iblk), & -< vsno = vsno (i,j, iblk), & -< aice0 = aice0(i,j, iblk), & -< ntrcr = ntrcr, & -< trcr_depend = trcr_depend, & -< trcr_base = trcr_base, & -< n_trcr_strata = n_trcr_strata, & -< nt_strata = nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,j,:,iblk), & -> trcrn(i,j,:,:,iblk),& -> vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> aice (i,j, iblk), & -> trcr (i,j,:,iblk), & -> vice (i,j, iblk), & -> vsno (i,j, iblk), & -> aice0(i,j, iblk), & -> ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./cicecore/shared/ice_init_column.F90 /data/tar/git_cice/CICE/cicecore/shared/ice_init_column.F90 -149c149 -< call icepack_init_thermo(nilyr=nilyr, sprofile=sprofile) ---- -> call icepack_init_thermo(nilyr, sprofile) -334,376c334,373 -< call icepack_step_radiation (dt=dt, ncat=ncat, & -< n_algae=n_algae, tr_zaero=tr_zaero, nblyr=nblyr, & -< ntrcr=ntrcr, nbtrcr_sw=nbtrcr_sw, & -< nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & -< n_zaero=n_zaero, nlt_chl_sw=nlt_chl_sw, & -< nlt_zaero_sw=nlt_zaero_sw(:), & -< dEdd_algae=dEdd_algae, & -< swgrid=swgrid(:), igrid=igrid(:), & -< fbri=fbri(:), & -< aicen=aicen(i,j,:,iblk), & -< vicen=vicen(i,j,:,iblk), & -< vsnon=vsnon(i,j,:,iblk), & -< Tsfcn=trcrn(i,j,nt_Tsfc,:,iblk), & -< alvln=trcrn(i,j,nt_alvl,:,iblk), & -< apndn=trcrn(i,j,nt_apnd,:,iblk), & -< hpndn=trcrn(i,j,nt_hpnd,:,iblk), & -< ipndn=trcrn(i,j,nt_ipnd,:,iblk), & -< aeron=trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & -< zbion=ztrcr_sw, & -< trcrn=ztrcr, & -< TLAT=TLAT(i,j,iblk), TLON=TLON(i,j,iblk), & -< calendar_type=calendar_type, & -< days_per_year=days_per_year, & -< nextsw_cday=nextsw_cday, yday=yday, & -< sec=sec, & -< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & -< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & -< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & -< bcenh=bcenh(:,:,:), & -< modal_aero=modal_aero, & -< swvdr=swvdr(i,j,iblk), swvdf=swvdf(i,j,iblk),& -< swidr=swidr(i,j,iblk), swidf=swidf(i,j,iblk),& -< coszen=coszen(i,j,iblk), fsnow=fsnow(i,j,iblk),& -< alvdrn=alvdrn(i,j,:,iblk), alvdfn=alvdfn(i,j,:,iblk), & -< alidrn=alidrn(i,j,:,iblk), alidfn=alidfn(i,j,:,iblk), & -< fswsfcn=fswsfcn(i,j,:,iblk), fswintn=fswintn(i,j,:,iblk), & -< fswthrun=fswthrun(i,j,:,iblk), fswpenln=fswpenln(i,j,:,:,iblk), & -< Sswabsn=Sswabsn(i,j,:,:,iblk), Iswabsn=Iswabsn(i,j,:,:,iblk), & -< albicen=albicen(i,j,:,iblk), albsnon=albsnon(i,j,:,iblk), & -< albpndn=albpndn(i,j,:,iblk), apeffn=apeffn(i,j,:,iblk), & -< snowfracn=snowfracn(i,j,:,iblk), & -< dhsn=dhsn(i,j,:,iblk), ffracn=ffracn(i,j,:,iblk), & -< l_print_point=l_print_point, & ---- -> call icepack_step_radiation (dt, ncat, & -> n_algae, tr_zaero, nblyr, & -> ntrcr, nbtrcr_sw, & -> nilyr, nslyr, n_aero, & -> n_zaero, dEdd_algae, nlt_chl_sw, & -> nlt_zaero_sw(:), & -> swgrid(:), igrid(:), & -> fbri(:), & -> aicen(i,j,:,iblk), vicen(i,j,:,iblk), & -> vsnon(i,j,:,iblk), & -> trcrn(i,j,nt_Tsfc,:,iblk), & -> trcrn(i,j,nt_alvl,:,iblk), & -> trcrn(i,j,nt_apnd,:,iblk), & -> trcrn(i,j,nt_hpnd,:,iblk), & -> trcrn(i,j,nt_ipnd,:,iblk), & -> trcrn(i,j,nt_aero:nt_aero+4*n_aero-1,:,iblk), & -> ztrcr_sw, & -> ztrcr, & -> TLAT(i,j,iblk), TLON(i,j,iblk), & -> calendar_type, days_per_year, & -> nextsw_cday, yday, & -> sec, & -> kaer_tab, waer_tab, & -> gaer_tab, & -> kaer_bc_tab(:,:), waer_bc_tab(:,:), & -> gaer_bc_tab(:,:), bcenh(:,:,:), & -> modal_aero, & -> swvdr(i,j,iblk), swvdf(i,j,iblk), & -> swidr(i,j,iblk), swidf(i,j,iblk), & -> coszen(i,j,iblk), fsnow(i,j,iblk), & -> alvdrn(i,j,:,iblk), alvdfn(i,j,:,iblk), & -> alidrn(i,j,:,iblk), alidfn(i,j,:,iblk), & -> fswsfcn(i,j,:,iblk), fswintn(i,j,:,iblk), & -> fswthrun(i,j,:,iblk), fswpenln(i,j,:,:,iblk), & -> Sswabsn(i,j,:,:,iblk), Iswabsn(i,j,:,:,iblk), & -> albicen(i,j,:,iblk), albsnon(i,j,:,iblk), & -> albpndn(i,j,:,iblk), apeffn(i,j,:,iblk), & -> snowfracn(i,j,:,iblk), & -> dhsn(i,j,:,iblk), ffracn(i,j,:,iblk), & -> l_print_point, & -683,689c680,681 -< call icepack_init_zsalinity(nblyr=nblyr, ntrcr_o=ntrcr_o, & -< Rayleigh_criteria = RayleighC, & -< Rayleigh_real = RayleighR, & -< trcrn = trcrn_bgc, & -< nt_bgc_S = nt_bgc_S, & -< ncat = ncat, & -< sss = sss(i,j,iblk)) ---- -> call icepack_init_zsalinity(nblyr, ntrcr_o, RayleighC, & -> RayleighR, trcrn_bgc, nt_bgc_S, ncat, sss(i,j,iblk)) -731,737c723,727 -< amm=amm (i,j, iblk), dmsp=dmsp(i,j, iblk), dms=dms(i,j, iblk), & -< algalN=algalN(i,j,:,iblk), doc=doc (i,j,:,iblk), dic=dic(i,j,:,iblk), & -< don=don (i,j,:,iblk), fed=fed (i,j,:,iblk), fep=fep(i,j,:,iblk), & -< hum=hum (i,j, iblk), nit=nit (i,j, iblk), sil=sil(i,j, iblk), & -< zaeros=zaeros(i,j,:,iblk), & -< max_dic = icepack_max_dic, max_don = icepack_max_don, & -< max_fe = icepack_max_fe, max_aero = icepack_max_aero) ---- -> amm (i,j, iblk), dmsp(i,j, iblk), dms(i,j, iblk), & -> algalN(i,j,:,iblk), doc (i,j,:,iblk), dic(i,j,:,iblk), & -> don (i,j,:,iblk), fed (i,j,:,iblk), fep(i,j,:,iblk), & -> hum (i,j, iblk), nit (i,j, iblk), sil(i,j, iblk), & -> zaeros(i,j,:,iblk), icepack_max_dic, icepack_max_don, icepack_max_fe, icepack_max_aero) -773,781c763,770 -< call icepack_init_OceanConcArray(max_nbtrcr=icepack_max_nbtrcr, & -< max_algae=icepack_max_algae, max_don=icepack_max_don, & -< max_doc=icepack_max_doc, max_fe=icepack_max_fe, & -< max_dic=icepack_max_dic, max_aero=icepack_max_aero, & -< nit =nit (i,j, iblk), amm=amm(i,j, iblk), sil =sil (i,j, iblk), & -< dmsp=dmsp(i,j, iblk), dms=dms(i,j, iblk), algalN=algalN(i,j,:,iblk), & -< doc =doc (i,j,:,iblk), don=don(i,j,:,iblk), dic =dic (i,j,:,iblk), & -< fed =fed (i,j,:,iblk), fep=fep(i,j,:,iblk), zaeros=zaeros(i,j,:,iblk), & -< hum=hum (i,j, iblk), ocean_bio_all=ocean_bio_all(i,j,:,iblk)) ---- -> call icepack_init_OceanConcArray(icepack_max_nbtrcr, & -> icepack_max_algae, icepack_max_don, icepack_max_doc, & -> icepack_max_dic, icepack_max_aero, icepack_max_fe, & -> nit (i,j, iblk), amm(i,j, iblk), sil (i,j, iblk), & -> dmsp(i,j, iblk), dms(i,j, iblk), algalN(i,j,:,iblk), & -> doc (i,j,:,iblk), don(i,j,:,iblk), dic (i,j,:,iblk), & -> fed (i,j,:,iblk), fep(i,j,:,iblk), zaeros(i,j,:,iblk), & -> ocean_bio_all(i,j,:,iblk), hum (i,j, iblk)) -805,808c794,797 -< call icepack_init_bgc(ncat=ncat, nblyr=nblyr, nilyr=nilyr, ntrcr_o=ntrcr_o, & -< cgrid=cgrid, igrid=igrid, ntrcr=ntrcr, nbtrcr=nbtrcr, & -< sicen=sicen(:,:), trcrn=trcrn_bgc(:,:), sss=sss(i,j, iblk), & -< ocean_bio_all=ocean_bio_all(i,j,:,iblk)) ---- -> call icepack_init_bgc(ncat, nblyr, nilyr, ntrcr_o, & -> cgrid, igrid, ntrcr, nbtrcr, & -> sicen(:,:), trcrn_bgc(:,:), sss(i,j, iblk), & -> ocean_bio_all(i,j,:,iblk)) -849,850c838,839 -< call icepack_init_hbrine(bgrid=bgrid, igrid=igrid, cgrid=cgrid, icgrid=icgrid, & -< swgrid=swgrid, nblyr=nblyr, nilyr=nilyr, phi_snow=phi_snow) ---- -> call icepack_init_hbrine(bgrid, igrid, cgrid, icgrid, & -> swgrid, nblyr, nilyr, phi_snow) -Only in ./configuration/scripts/tests: nothread_quicksuite.ts -diff -r ./.git/COMMIT_EDITMSG /data/tar/git_cice/CICE/.git/COMMIT_EDITMSG -1c1 -< remove dum.dat ---- -> Added a cice cap for info. It is not desirable for DMI in the current setup to put the cice nuopc cap here as it requires building of esmf at the same time -diff -r ./.git/config /data/tar/git_cice/CICE/.git/config -12,16d11 -< [submodule "Icepack"] -< url = https://github.com/TillRasmussen/Icepack -< [remote "upstream"] -< url = https://github.com/CICE-Consortium/CICE.git -< fetch = +refs/heads/*:refs/remotes/upstream/* -diff -r ./.git/FETCH_HEAD /data/tar/git_cice/CICE/.git/FETCH_HEAD -1,2c1 -< 333a5a28ccd0bfc3059a1b35a290509ee6513102 not-for-merge branch 'cice6.0' of https://github.com/CICE-Consortium/CICE -< 38816bac934df4582ed21fc7cb0fcb7dd57773f5 not-for-merge branch 'master' of https://github.com/CICE-Consortium/CICE ---- -> c4bccda069cf600dd1a94f649601ff55ff213abc branch 'master' of github.com:TillRasmussen/CICE -Binary files ./.git/index and /data/tar/git_cice/CICE/.git/index differ -diff -r ./.git/logs/HEAD /data/tar/git_cice/CICE/.git/logs/HEAD -1,6c1,13 -< 0000000000000000000000000000000000000000 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575069727 +0000 clone: from git@github.com:TillRasmussen/CICE.git -< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575070183 +0000 checkout: moving from master to master -< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 451d91addd6ffaff3bf60167748b79d710dea52e TillRasmussen 1575072239 +0000 commit (merge): test -< 451d91addd6ffaff3bf60167748b79d710dea52e 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575072420 +0000 commit: remove dum.dat -< 98df1b2ca479e562eacf9968565f2271aae197da 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575109106 +0000 checkout: moving from master to master -< 98df1b2ca479e562eacf9968565f2271aae197da 38816bac934df4582ed21fc7cb0fcb7dd57773f5 TillRasmussen 1575109179 +0000 reset: moving to upstream/master ---- -> 0000000000000000000000000000000000000000 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 TillRasmussen 1566829468 +0000 clone: from git@github.com:TillRasmussen/CICE.git -> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566829964 +0000 pull origin master: Fast-forward -> 3fbb2cd308be4555767367d5c40b8fd980c4c080 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566889393 +0000 checkout: moving from master to coupled -> 3fbb2cd308be4555767367d5c40b8fd980c4c080 bca1df5c4950db0b08bf887ef5e9a2c5181b13a6 TillRasmussen 1566889716 +0000 commit: added driver_dmi -> bca1df5c4950db0b08bf887ef5e9a2c5181b13a6 33594a5ed37d4beb3fdc2677b7115c2c8430d46b TillRasmussen 1566996437 +0000 commit: added CICE.F90 -> 33594a5ed37d4beb3fdc2677b7115c2c8430d46b 8eca24bc6805c2ddb6ab0611758cee22c9b56d9c TillRasmussen 1573046975 +0000 commit: correct integer division and message spaces -> 8eca24bc6805c2ddb6ab0611758cee22c9b56d9c 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1573047044 +0000 checkout: moving from coupled to master -> 3fbb2cd308be4555767367d5c40b8fd980c4c080 74a6b63a23a06d4127e502a82e7da854ebb16070 TillRasmussen 1573047704 +0000 pull: Fast-forward -> 74a6b63a23a06d4127e502a82e7da854ebb16070 bb3673e5273b5759911e67cbb4eb7308b1059d8e TillRasmussen 1573229522 +0000 commit: Fix for bug in ice_Grid and anglet -> bb3673e5273b5759911e67cbb4eb7308b1059d8e 506642e6f4e827c59a3fed2684e0163d5bc1d5ea TillRasmussen 1573230789 +0000 pull: Merge made by the 'recursive' strategy. -> 506642e6f4e827c59a3fed2684e0163d5bc1d5ea cf012428173d99654eefe37777d52326edb68e5d TillRasmussen 1573233532 +0000 commit: merged changes from branch (coupled) -> cf012428173d99654eefe37777d52326edb68e5d c4bccda069cf600dd1a94f649601ff55ff213abc TillRasmussen 1574327995 +0000 pull origin master: Fast-forward -> c4bccda069cf600dd1a94f649601ff55ff213abc fcae2e828ad137e22d27a5ba1e76635810622f27 TillRasmussen 1574328442 +0000 commit: Added a cice cap for info. It is not desirable for DMI in the current setup to put the cice nuopc cap here as it requires building of esmf at the same time -Only in /data/tar/git_cice/CICE/.git/logs/refs/heads: coupled -diff -r ./.git/logs/refs/heads/master /data/tar/git_cice/CICE/.git/logs/refs/heads/master -1,4c1,8 -< 0000000000000000000000000000000000000000 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575069727 +0000 clone: from git@github.com:TillRasmussen/CICE.git -< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 451d91addd6ffaff3bf60167748b79d710dea52e TillRasmussen 1575072239 +0000 commit (merge): test -< 451d91addd6ffaff3bf60167748b79d710dea52e 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575072420 +0000 commit: remove dum.dat -< 98df1b2ca479e562eacf9968565f2271aae197da 38816bac934df4582ed21fc7cb0fcb7dd57773f5 TillRasmussen 1575109179 +0000 reset: moving to upstream/master ---- -> 0000000000000000000000000000000000000000 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 TillRasmussen 1566829468 +0000 clone: from git@github.com:TillRasmussen/CICE.git -> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566829964 +0000 pull origin master: Fast-forward -> 3fbb2cd308be4555767367d5c40b8fd980c4c080 74a6b63a23a06d4127e502a82e7da854ebb16070 TillRasmussen 1573047704 +0000 pull: Fast-forward -> 74a6b63a23a06d4127e502a82e7da854ebb16070 bb3673e5273b5759911e67cbb4eb7308b1059d8e TillRasmussen 1573229522 +0000 commit: Fix for bug in ice_Grid and anglet -> bb3673e5273b5759911e67cbb4eb7308b1059d8e 506642e6f4e827c59a3fed2684e0163d5bc1d5ea TillRasmussen 1573230789 +0000 pull: Merge made by the 'recursive' strategy. -> 506642e6f4e827c59a3fed2684e0163d5bc1d5ea cf012428173d99654eefe37777d52326edb68e5d TillRasmussen 1573233532 +0000 commit: merged changes from branch (coupled) -> cf012428173d99654eefe37777d52326edb68e5d c4bccda069cf600dd1a94f649601ff55ff213abc TillRasmussen 1574327995 +0000 pull origin master: Fast-forward -> c4bccda069cf600dd1a94f649601ff55ff213abc fcae2e828ad137e22d27a5ba1e76635810622f27 TillRasmussen 1574328442 +0000 commit: Added a cice cap for info. It is not desirable for DMI in the current setup to put the cice nuopc cap here as it requires building of esmf at the same time -Only in /data/tar/git_cice/CICE/.git/logs/refs/remotes/origin: coupled -diff -r ./.git/logs/refs/remotes/origin/HEAD /data/tar/git_cice/CICE/.git/logs/refs/remotes/origin/HEAD -1c1 -< 0000000000000000000000000000000000000000 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 TillRasmussen 1575069727 +0000 clone: from git@github.com:TillRasmussen/CICE.git ---- -> 0000000000000000000000000000000000000000 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 TillRasmussen 1566829468 +0000 clone: from git@github.com:TillRasmussen/CICE.git -diff -r ./.git/logs/refs/remotes/origin/master /data/tar/git_cice/CICE/.git/logs/refs/remotes/origin/master -1,3c1,6 -< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 451d91addd6ffaff3bf60167748b79d710dea52e TillRasmussen 1575072319 +0000 update by push -< 451d91addd6ffaff3bf60167748b79d710dea52e 98df1b2ca479e562eacf9968565f2271aae197da TillRasmussen 1575072434 +0000 update by push -< 98df1b2ca479e562eacf9968565f2271aae197da 38816bac934df4582ed21fc7cb0fcb7dd57773f5 TillRasmussen 1575109230 +0000 update by push ---- -> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 3fbb2cd308be4555767367d5c40b8fd980c4c080 TillRasmussen 1566829963 +0000 pull origin master: fast-forward -> 3fbb2cd308be4555767367d5c40b8fd980c4c080 74a6b63a23a06d4127e502a82e7da854ebb16070 TillRasmussen 1573047681 +0000 pull: fast-forward -> 74a6b63a23a06d4127e502a82e7da854ebb16070 d1927fd4632e9750019bf72f84172f79e3d706ba TillRasmussen 1573230764 +0000 fetch: fast-forward -> d1927fd4632e9750019bf72f84172f79e3d706ba 506642e6f4e827c59a3fed2684e0163d5bc1d5ea TillRasmussen 1573231244 +0000 update by push -> 506642e6f4e827c59a3fed2684e0163d5bc1d5ea cf012428173d99654eefe37777d52326edb68e5d TillRasmussen 1573233540 +0000 update by push -> cf012428173d99654eefe37777d52326edb68e5d c4bccda069cf600dd1a94f649601ff55ff213abc TillRasmussen 1574327994 +0000 pull origin master: fast-forward -Only in ./.git/logs/refs/remotes: upstream -Only in ./.git: modules -Only in ./.git/objects: 00 -Only in /data/tar/git_cice/CICE/.git/objects: 02 -Only in ./.git/objects/03: 8e76bbe70944f8de41c0e52d8cf6eedb5bd8fe -Only in /data/tar/git_cice/CICE/.git/objects/03: 911d68d064460d2edf7f7aed609b503d7af829 -Only in /data/tar/git_cice/CICE/.git/objects: 04 -Only in ./.git/objects: 08 -Only in /data/tar/git_cice/CICE/.git/objects/0c: 0ea6f7b7649072b941f236af25468e0c2b64ff -Only in ./.git/objects/0c: ce18f21810331b542e147389d267bdebdc2b5e -Only in /data/tar/git_cice/CICE/.git/objects: 0d -Only in /data/tar/git_cice/CICE/.git/objects: 10 -Only in ./.git/objects: 15 -Only in /data/tar/git_cice/CICE/.git/objects: 17 -Only in /data/tar/git_cice/CICE/.git/objects: 1d -Only in /data/tar/git_cice/CICE/.git/objects: 21 -Only in /data/tar/git_cice/CICE/.git/objects: 26 -Only in /data/tar/git_cice/CICE/.git/objects: 27 -Only in ./.git/objects: 29 -Only in /data/tar/git_cice/CICE/.git/objects/2d: 99a64761439dad1ef78abc08dc6063cb8cb9e6 -Only in ./.git/objects/2d: b47fae76194aff50d4f21818c2298e78e3d5f6 -Only in /data/tar/git_cice/CICE/.git/objects: 2e -Only in /data/tar/git_cice/CICE/.git/objects: 30 -Only in /data/tar/git_cice/CICE/.git/objects: 33 -Only in /data/tar/git_cice/CICE/.git/objects: 36 -Only in ./.git/objects: 38 -Only in ./.git/objects: 3a -Only in /data/tar/git_cice/CICE/.git/objects: 44 -Only in ./.git/objects: 45 -Only in /data/tar/git_cice/CICE/.git/objects: 47 -Only in ./.git/objects: 4b -Only in /data/tar/git_cice/CICE/.git/objects: 4e -Only in /data/tar/git_cice/CICE/.git/objects: 4f -Only in /data/tar/git_cice/CICE/.git/objects: 50 -Only in /data/tar/git_cice/CICE/.git/objects: 51 -Only in ./.git/objects: 53 -Only in ./.git/objects: 54 -Only in ./.git/objects: 60 -Only in ./.git/objects/61: 89a1fb297709f8897640cd353bf50a00fd3bf6 -Only in /data/tar/git_cice/CICE/.git/objects/61: dd66fb0e4db34c79b7fb5e8aeee14e8d9d597b -Only in /data/tar/git_cice/CICE/.git/objects: 66 -Only in /data/tar/git_cice/CICE/.git/objects: 67 -Only in /data/tar/git_cice/CICE/.git/objects: 6a -Only in ./.git/objects: 6d -Only in /data/tar/git_cice/CICE/.git/objects: 70 -Only in /data/tar/git_cice/CICE/.git/objects: 78 -Only in /data/tar/git_cice/CICE/.git/objects: 7e -Only in /data/tar/git_cice/CICE/.git/objects: 80 -Only in ./.git/objects: 82 -Only in /data/tar/git_cice/CICE/.git/objects: 85 -Only in ./.git/objects: 87 -Only in ./.git/objects: 8a -Only in /data/tar/git_cice/CICE/.git/objects: 8e -Only in /data/tar/git_cice/CICE/.git/objects: 8f -Only in ./.git/objects: 92 -Only in /data/tar/git_cice/CICE/.git/objects: 95 -Only in ./.git/objects: 98 -Only in /data/tar/git_cice/CICE/.git/objects: 9b -Only in ./.git/objects/9d: 6deac3df97bada538718584b34d0fe23021536 -Only in /data/tar/git_cice/CICE/.git/objects/9d: ef9fb46b383634d4508e546394abbca517e411 -Only in ./.git/objects: 9e -Only in ./.git/objects: a1 -Only in ./.git/objects: af -Only in /data/tar/git_cice/CICE/.git/objects: b2 -Only in /data/tar/git_cice/CICE/.git/objects: b5 -Only in /data/tar/git_cice/CICE/.git/objects/b7: 4d7faef3de192f2ef5a6e2edec69b42c6647f2 -Only in ./.git/objects/b7: fb0f4b879d6504769759684d46e5d40b4960de -Only in /data/tar/git_cice/CICE/.git/objects: b8 -Only in ./.git/objects/b9: 45feeb6779303c590ebfb84b43ed332905224e -Only in ./.git/objects/b9: c797a9fae16c9c4a3fc34ae403ceabb0378283 -Only in /data/tar/git_cice/CICE/.git/objects/b9: e0032e19d541e0dea4313ab58fdcd9fdbb5b07 -Only in ./.git/objects: ba -Only in /data/tar/git_cice/CICE/.git/objects: bb -Only in /data/tar/git_cice/CICE/.git/objects/bc: a1df5c4950db0b08bf887ef5e9a2c5181b13a6 -Only in ./.git/objects/bc: a8c7ab7304313a12732c2acde176e4aad7857e -Only in /data/tar/git_cice/CICE/.git/objects: bd -Only in ./.git/objects/bf: 12157bac41edd4a9c877d489f795cca8c113a5 -Only in /data/tar/git_cice/CICE/.git/objects/bf: e506c332e1ef05660d639db4b49d571f1adccb -Only in /data/tar/git_cice/CICE/.git/objects: c0 -Only in ./.git/objects/c4: 715fa61bae455fca02c117e8cb8062ed1b9b2e -Only in /data/tar/git_cice/CICE/.git/objects/c4: bccda069cf600dd1a94f649601ff55ff213abc -Only in /data/tar/git_cice/CICE/.git/objects: c5 -Only in ./.git/objects/c6: 9f70d6043bc0b37f6173fb1277a344488914b2 -Only in /data/tar/git_cice/CICE/.git/objects/c6: f6f20c2554214e1e230829f47ffe6fc81bd9d7 -Only in ./.git/objects: ca -Only in /data/tar/git_cice/CICE/.git/objects: cb -Only in /data/tar/git_cice/CICE/.git/objects: cc -Only in /data/tar/git_cice/CICE/.git/objects: cf -Only in /data/tar/git_cice/CICE/.git/objects: d1 -Only in /data/tar/git_cice/CICE/.git/objects: d3 -Only in ./.git/objects: d6 -Only in /data/tar/git_cice/CICE/.git/objects: d9 -Only in ./.git/objects: dc -Only in /data/tar/git_cice/CICE/.git/objects: dd -Only in /data/tar/git_cice/CICE/.git/objects: e6 -Only in ./.git/objects: e7 -Only in /data/tar/git_cice/CICE/.git/objects: e8 -Only in /data/tar/git_cice/CICE/.git/objects: e9 -Only in /data/tar/git_cice/CICE/.git/objects: eb -Only in ./.git/objects: ee -Only in /data/tar/git_cice/CICE/.git/objects: ef -Only in /data/tar/git_cice/CICE/.git/objects/fc: ae2e828ad137e22d27a5ba1e76635810622f27 -Only in ./.git/objects/fc: bea1debf77c0442f5ed6e91036bf301089f33d -Only in ./.git/objects/ff: 3909107b41dcb7032956d12da0b1f8b5878225 -Only in /data/tar/git_cice/CICE/.git/objects/ff: ef0b615bcfc035ac2b38a15b03b88cfbbe40a8 -Only in ./.git/objects/pack: pack-4c722f8c542ad03655ba1bd53c7e38fd8e5f4a71.idx -Only in ./.git/objects/pack: pack-4c722f8c542ad03655ba1bd53c7e38fd8e5f4a71.pack -Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-82a1cb39120044f6ac0fc88e03ddee85730daacb.idx -Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-82a1cb39120044f6ac0fc88e03ddee85730daacb.pack -Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-a42829fda20506953f90d0a5ba43c6bdee0420df.idx -Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-a42829fda20506953f90d0a5ba43c6bdee0420df.pack -Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-e699070aa71de864c72892fb7465e1fe58cc0742.idx -Only in /data/tar/git_cice/CICE/.git/objects/pack: pack-e699070aa71de864c72892fb7465e1fe58cc0742.pack -diff -r ./.git/ORIG_HEAD /data/tar/git_cice/CICE/.git/ORIG_HEAD -1c1 -< 98df1b2ca479e562eacf9968565f2271aae197da ---- -> cf012428173d99654eefe37777d52326edb68e5d -diff -r ./.git/packed-refs /data/tar/git_cice/CICE/.git/packed-refs -3,4c3 -< b554968d8aa2456bdabb8a953f4b5efb68453189 refs/remotes/origin/coupled -< 0fea6c427ffc4dd3071ddab4ed527e14ecb24c11 refs/remotes/origin/master ---- -> 6fa1cbb33699738d63dc0bbdd555a69e6940f5c1 refs/remotes/origin/master -Only in /data/tar/git_cice/CICE/.git/refs/heads: coupled -diff -r ./.git/refs/heads/master /data/tar/git_cice/CICE/.git/refs/heads/master -1c1 -< 38816bac934df4582ed21fc7cb0fcb7dd57773f5 ---- -> fcae2e828ad137e22d27a5ba1e76635810622f27 -Only in /data/tar/git_cice/CICE/.git/refs/remotes/origin: coupled -diff -r ./.git/refs/remotes/origin/master /data/tar/git_cice/CICE/.git/refs/remotes/origin/master -1c1 -< 38816bac934df4582ed21fc7cb0fcb7dd57773f5 ---- -> c4bccda069cf600dd1a94f649601ff55ff213abc -Only in ./.git/refs/remotes: upstream -Only in ./.git/refs/tags: CICE6.0.0 -Only in ./.git/refs/tags: CICE6.0.1 -Only in ./.git/refs/tags: CICE6.0.2 -diff -r ./.gitmodules /data/tar/git_cice/CICE/.gitmodules -1,4d0 -< [submodule "icepack"] -< path = icepack -< url = https://github.com/cice-consortium/icepack.git -< branch = master -Only in .: icepack -diff -r ./Icepack/columnphysics/icepack_atmo.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_atmo.F90 -800,801d799 -< !autodocument_start icepack_atm_boundary -< ! -854,857d851 -< !autodocument_end -< -< ! local variables -< -910,912c904,906 -< !------------------------------------------------------------ -< ! Define functions -< !------------------------------------------------------------ ---- -> !------------------------------------------------------------ -> ! Define functions -> !------------------------------------------------------------ -diff -r ./Icepack/columnphysics/icepack_brine.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_brine.F90 -913c913 -< !autodocument_start icepack_init_hbrine ---- -> -937,940d936 -< !autodocument_end -< -< ! local variables -< -1009c1005 -< !autodocument_start icepack_init_zsalinity ---- -> -1032,1035d1027 -< -< !autodocument_end -< -< ! local variables -diff -r ./Icepack/columnphysics/icepack_itd.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_itd.F90 -819c819 -< logical (kind=log_kind), dimension(ncat), intent(inout) :: & ---- -> logical (kind=log_kind), dimension(ncat),intent(inout) :: & -834c834,835 -< real (kind=dbl_kind), dimension (:), intent(inout), optional :: & ---- -> real (kind=dbl_kind), dimension (:), & -> intent(inout), optional :: & -1075c1076 -< logical (kind=log_kind), dimension (:), intent(inout) :: & ---- -> logical (kind=log_kind), dimension (:),intent(inout) :: & -1441c1442 -< real (kind=dbl_kind), dimension (:), intent(inout) :: & ---- -> real (kind=dbl_kind), dimension (:),intent(inout) :: & -1672d1672 -< !autodocument_start icepack_init_itd -1686,1687d1685 -< !autodocument_end -< -1853c1851 -< !autodocument_start icepack_init_itd_hist ---- -> -1870,1871d1867 -< !autodocument_end -< -1908c1904 -< !autodocument_start icepack_aggregate ---- -> -1935c1931,1932 -< real (kind=dbl_kind), dimension (:,:), intent(inout) :: & ---- -> real (kind=dbl_kind), dimension (:,:), & -> intent(inout) :: & -1955c1952,1953 -< real (kind=dbl_kind), dimension (:), intent(out) :: & ---- -> real (kind=dbl_kind), dimension (:), & -> intent(out) :: & -1957,1958d1954 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_mechred.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_mechred.F90 -1561c1561 -< !autodocument_start icepack_ice_strength ---- -> -1597,1598d1596 -< !autodocument_end -< -1693c1691 -< !autodocument_start icepack_step_ridge ---- -> ! -1795,1796d1792 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_ocean.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_ocean.F90 -24d23 -< !autodocument_start icepack_ocn_mixed_layer -73,74d71 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_orbital.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_orbital.F90 -42d41 -< !autodocument_start icepack_init_orbit -62,63d60 -< !autodocument_end -< -91d87 -< !autodocument_start icepack_query_orbit -110,111d105 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_parameters.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_parameters.F90 -344d343 -< !autodocument_start icepack_init_parameters -648,649d646 -< !autodocument_end -< -798d794 -< !autodocument_start icepack_query_parameters -1116,1117d1111 -< !autodocument_end -< -1310d1303 -< !autodocument_start icepack_write_parameters -1318,1319d1310 -< !autodocument_end -< -1473,1475d1463 -< !autodocument_start icepack_recompute_constants -< ! subroutine to reinitialize some derived constants -< -1477,1478d1464 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_shortwave.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_shortwave.F90 -3735c3735 -< !autodocument_start icepack_prep_radiation ---- -> ! -3784,3785d3783 -< !autodocument_end -< -3837c3835 -< !autodocument_start icepack_step_radiation ---- -> ! -3994,3995d3991 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_therm_itd.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_therm_itd.F90 -1496d1495 -< !autodocument_start icepack_step_therm2 -1606,1607d1604 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_therm_shared.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_therm_shared.F90 -218c218 -< !autodocument_start icepack_init_thermo ---- -> ! -232,233d231 -< !autodocument_end -< -279,280c277 -< !autodocument_start icepack_init_trcr -< ! ---- -> -306,307d302 -< !autodocument_end -< -356,357d350 -< !autodocument_start icepack_liquidus_temperature -< ! compute liquidus temperature -364,365d356 -< !autodocument_end -< -381,382d371 -< !autodocument_start icepack_sea_freezing_temperature -< ! compute ocean freezing temperature -389,390d377 -< !autodocument_end -< -410,411d396 -< !autodocument_start icepack_ice_temperature -< ! compute ice temperature -418,419d402 -< !autodocument_end -< -438,439d420 -< !autodocument_start icepack_snow_temperature -< ! compute snow temperature -446,447d426 -< !autodocument_end -< -463,464d441 -< !autodocument_start icepack_enthalpy_snow -< ! compute snow enthalpy -470,471d446 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_therm_vertical.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_therm_vertical.F90 -2011c2011 -< !autodocument_start icepack_step_therm1 ---- -> -2225,2226d2224 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_tracers.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_tracers.F90 -189d188 -< !autodocument_start icepack_query_tracer_sizes -208,209d206 -< !autodocument_end -< -223d219 -< !autodocument_start icepack_write_tracer_sizes -230,231d225 -< !autodocument_end -< -246d239 -< !autodocument_start icepack_init_tracer_flags -280,281d272 -< !autodocument_end -< -307d297 -< !autodocument_start icepack_query_tracer_flags -341,342d330 -< !autodocument_end -< -368d355 -< !autodocument_start icepack_write_tracer_flags -375,376d361 -< !autodocument_end -< -403d387 -< !autodocument_start icepack_init_tracer_indices -502,503d485 -< !autodocument_end -< -619d600 -< !autodocument_start icepack_query_tracer_indices -707,708d687 -< !autodocument_end -< -767d745 -< !autodocument_start icepack_write_tracer_indices -774,775d751 -< !autodocument_end -< -865d840 -< !autodocument_start icepack_init_tracer_numbers -877,878d851 -< !autodocument_end -< -887d859 -< !autodocument_start icepack_query_tracer_numbers -899,900d870 -< !autodocument_end -< -909d878 -< !autodocument_start icepack_write_tracer_numbers -916,917d884 -< !autodocument_end -< -926c893 -< !autodocument_start icepack_compute_tracers ---- -> -928a896,897 -> ! -> ! author: William H. Lipscomb, LANL -960,961d928 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_warnings.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_warnings.F90 -38,40d37 -< !autodocument_start icepack_warnings_aborted -< ! turn on the abort flag in the icepack warnings package -< ! pass in an optional error message -45,47d41 -< -< !autodocument_end -< -81,82d74 -< !autodocument_start icepack_warnings_clear -< ! clear all warning messages from the icepack warning buffer -86,87d77 -< !autodocument_end -< -114,115d103 -< !autodocument_start icepack_warnings_print -< ! print all warning messages from the icepack warning buffer -121,122d108 -< !autodocument_end -< -138,139d123 -< !autodocument_start icepack_warnings_flush -< ! print and clear all warning messages from the icepack warning buffer -144,145d127 -< -< !autodocument_end -diff -r ./Icepack/columnphysics/icepack_zbgc.F90 /data/tar/git_cice/CICE/Icepack/columnphysics/icepack_zbgc.F90 -538,539d537 -< !autodocument_start icepack_init_bgc -< ! -571,572d568 -< !autodocument_end -< -666,667d661 -< !autodocument_start icepack_init_zbgc -< ! -740,741d733 -< !autodocument_end -< -807,808d798 -< !autodocument_start icepack_biogeochemistry -< ! -914,915d903 -< !autodocument_end -< -1162c1150 -< !autodocument_start icepack_init_OceanConcArray ---- -> -1208,1209d1195 -< !autodocument_end -< -1274c1260 -< !autodocument_start icepack_init_ocean_conc ---- -> -1307,1310d1292 -< -< !autodocument_end -< -< ! local variables -diff -r ./Icepack/columnphysics/version.txt /data/tar/git_cice/CICE/Icepack/columnphysics/version.txt -1c1 -< ICEPACK 1.1.2 ---- -> ICEPACK 1.1.1 -diff -r ./Icepack/configuration/driver/icedrv_init_column.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_init_column.F90 -72c72 -< call icepack_init_thermo(nilyr=nilyr, sprofile=sprofile) ---- -> call icepack_init_thermo(nilyr, sprofile) -156c156 -< nbtrcr_sw_out=nbtrcr_sw) ---- -> nbtrcr_sw_out=nbtrcr_sw) -158c158 -< tr_zaero_out=tr_zaero, tr_bgc_n_out=tr_bgc_n) ---- -> tr_zaero_out=tr_zaero, tr_bgc_n_out=tr_bgc_n) -160,163c160,163 -< nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & -< nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & -< nt_fbri_out=nt_fbri, nt_tsfc_out=nt_tsfc, & -< nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw) ---- -> nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & -> nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & -> nt_fbri_out=nt_fbri, nt_tsfc_out=nt_tsfc, & -> nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw) -231,277c231,266 -< call icepack_step_radiation ( & -< dt=dt, ncat=ncat, & -< n_algae=n_algae, nblyr=nblyr, & -< ntrcr=ntrcr, nbtrcr_sw=nbtrcr_sw, & -< nilyr=nilyr, nslyr=nslyr, & -< n_aero=n_aero, n_zaero=n_zaero, & -< tr_zaero=tr_zaero, & -< dEdd_algae=dEdd_algae, & -< nlt_chl_sw=nlt_chl_sw, & -< nlt_zaero_sw=nlt_zaero_sw(:), & -< swgrid=swgrid(:), & -< igrid=igrid(:), & -< fbri=fbri(:), & -< aicen=aicen(i,:), & -< vicen=vicen(i,:), & -< vsnon=vsnon(i,:), & -< Tsfcn=trcrn(i,nt_Tsfc,:), & -< alvln=trcrn(i,nt_alvl,:), & -< apndn=trcrn(i,nt_apnd,:), & -< hpndn=trcrn(i,nt_hpnd,:), & -< ipndn=trcrn(i,nt_ipnd,:), & -< aeron=trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & -< zbion=ztrcr_sw, & -< trcrn=ztrcr, & -< TLAT=TLAT(i), TLON=TLON(i), & -< calendar_type=calendar_type, & -< days_per_year=days_per_year, & -< nextsw_cday=nextsw_cday, yday=yday, sec=sec, & -< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & -< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & -< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & -< bcenh=bcenh(:,:,:), & -< modal_aero=modal_aero, & -< swvdr=swvdr(i), swvdf=swvdf(i), & -< swidr=swidr(i), swidf=swidf(i), & -< coszen=coszen(i), fsnow=fsnow(i), & -< alvdrn=alvdrn(i,:), alvdfn=alvdfn(i,:), & -< alidrn=alidrn(i,:), alidfn=alidfn(i,:), & -< fswsfcn=fswsfcn(i,:), fswintn=fswintn(i,:), & -< fswthrun=fswthrun(i,:), fswpenln=fswpenln(i,:,:), & -< Sswabsn=Sswabsn(i,:,:), Iswabsn=Iswabsn(i,:,:), & -< albicen=albicen(i,:), albsnon=albsnon(i,:), & -< albpndn=albpndn(i,:), apeffn=apeffn(i,:), & -< snowfracn=snowfracn(i,:), & -< dhsn=dhsn(i,:), ffracn=ffracn(i,:), & -< l_print_point=l_print_point, & -< initonly = .true.) ---- -> call icepack_step_radiation ( dt, ncat, & -> n_algae, tr_zaero, nblyr, & -> ntrcr, nbtrcr_sw, & -> nilyr, nslyr, n_aero, & -> n_zaero, dEdd_algae, nlt_chl_sw, & -> nlt_zaero_sw(:), & -> swgrid(:), igrid(:), fbri(:), & -> aicen(i,:), vicen(i,:), & -> vsnon(i,:), & -> trcrn(i,nt_Tsfc,:), & -> trcrn(i,nt_alvl,:), & -> trcrn(i,nt_apnd,:), & -> trcrn(i,nt_hpnd,:), & -> trcrn(i,nt_ipnd,:), & -> trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & -> ztrcr_sw, ztrcr, & -> TLAT(i), TLON(i), & -> calendar_type, days_per_year, & -> nextsw_cday, yday, sec, & -> kaer_tab, waer_tab, gaer_tab, & -> kaer_bc_tab(:,:), waer_bc_tab(:,:), & -> gaer_bc_tab(:,:), bcenh(:,:,:), & -> modal_aero, & -> swvdr(i), swvdf(i), & -> swidr(i), swidf(i), & -> coszen(i), fsnow(i), & -> alvdrn(i,:), alvdfn(i,:), & -> alidrn(i,:), alidfn(i,:), & -> fswsfcn(i,:), fswintn(i,:), & -> fswthrun(i,:), fswpenln(i,:,:), & -> Sswabsn(i,:,:), Iswabsn(i,:,:), & -> albicen(i,:), albsnon(i,:), & -> albpndn(i,:), apeffn(i,:), & -> snowfracn(i,:), & -> dhsn(i,:), ffracn(i,:), & -> l_print_point, initonly = .true.) -427,433c416,417 -< call icepack_init_zsalinity(ncat=ncat, nblyr=nblyr, & -< ntrcr_o = ntrcr_o, & -< Rayleigh_criteria = RayleighC, & -< Rayleigh_real = RayleighR, & -< trcrn = trcrn_bgc, & -< nt_bgc_S = nt_bgc_S, & -< sss = sss(i)) ---- -> call icepack_init_zsalinity(nblyr, ntrcr_o, RayleighC, & -> RayleighR, trcrn_bgc, nt_bgc_S, ncat, sss(i)) -456,463c440,444 -< amm=amm(i), dmsp=dmsp(i), dms=dms(i), & -< doc=doc(i,:), dic =dic(i,:), don=don(i,:), & -< fed=fed(i,:), fep =fep(i,:), hum=hum(i), & -< nit=nit(i), sil =sil(i), & -< zaeros=zaeros(i,:), & -< algalN=algalN(i,:), & -< max_dic=max_dic, max_don =max_don, & -< max_fe =max_fe, max_aero=max_aero) ---- -> amm (i ), dmsp(i ), dms(i ), & -> algalN(i,:), doc (i,:), dic(i,:), & -> don (i,:), fed (i,:), fep(i,:), & -> hum (i ), nit (i ), sil(i ), & -> zaeros(i,:), max_dic, max_don, max_fe, max_aero) -482,489c463,470 -< call icepack_init_OceanConcArray(max_nbtrcr=max_nbtrcr, & -< max_algae=max_algae, max_don=max_don, max_doc=max_doc, & -< max_aero =max_aero, max_dic=max_dic, max_fe =max_fe, & -< nit =nit(i), amm=amm(i), sil =sil(i), & -< dmsp=dmsp(i), dms=dms(i), algalN=algalN(i,:), & -< doc =doc(i,:), don=don(i,:), dic =dic(i,:), & -< fed =fed(i,:), fep=fep(i,:), zaeros=zaeros(i,:), & -< ocean_bio_all=ocean_bio_all(i,:), hum=hum(i)) ---- -> call icepack_init_OceanConcArray(max_nbtrcr, & -> max_algae, max_don, max_doc, & -> max_dic, max_aero, max_fe, & -> nit(i), amm(i), sil(i), & -> dmsp(i), dms(i), algalN(i,:), & -> doc(i,:), don(i,:), dic(i,:), & -> fed(i,:), fep(i,:), zaeros(i,:), & -> ocean_bio_all(i,:), hum(i)) -497,500c478,481 -< call icepack_init_bgc(ncat=ncat, nblyr=nblyr, nilyr=nilyr, ntrcr_o=ntrcr_o, & -< cgrid=cgrid, igrid=igrid, ntrcr=ntrcr, nbtrcr=nbtrcr, & -< sicen=sicen(:,:), trcrn=trcrn_bgc(:,:), & -< sss=sss(i), ocean_bio_all=ocean_bio_all(i,:)) ---- -> call icepack_init_bgc(ncat, nblyr, nilyr, ntrcr_o, & -> cgrid, igrid, ntrcr, nbtrcr, & -> sicen(:,:), trcrn_bgc(:,:), & -> sss(i), ocean_bio_all(i,:)) -536,537c517,518 -< call icepack_init_hbrine(bgrid=bgrid, igrid=igrid, cgrid=cgrid, icgrid=icgrid, & -< swgrid=swgrid, nblyr=nblyr, nilyr=nilyr, phi_snow=phi_snow) ---- -> call icepack_init_hbrine(bgrid, igrid, cgrid, icgrid, & -> swgrid, nblyr, nilyr, phi_snow) -851,862c832,843 -< scale_bgc_out=scale_bgc, skl_bgc_out=skl_bgc, z_tracers_out=z_tracers, & -< dEdd_algae_out=dEdd_algae, solve_zbgc_out=solve_zbgc, phi_snow_out=phi_snow, & -< bgc_flux_type_out=bgc_flux_type, grid_o_out=grid_o, l_sk_out=l_sk, & -< initbio_frac_out=initbio_frac, frazil_scav_out=frazil_scav, & -< algal_vel_out=algal_vel, R_dFe2dust_out=R_dFe2dust, & -< dustFe_sol_out=dustFe_sol, T_max_out=T_max, fsal_out=fsal, & -< op_dep_min_out=op_dep_min, fr_graze_s_out=fr_graze_s, & -< fr_graze_e_out=fr_graze_e, fr_mort2min_out=fr_mort2min, & -< fr_dFe_out=fr_dFe, k_nitrif_out=k_nitrif, t_iron_conv_out=t_iron_conv, & -< max_loss_out=max_loss, max_dfe_doc1_out=max_dfe_doc1, & -< fr_resp_s_out=fr_resp_s, y_sk_DMS_out=y_sk_DMS, t_sk_conv_out=t_sk_conv, & -< t_sk_ox_out=t_sk_ox) ---- -> scale_bgc_out=scale_bgc, skl_bgc_out=skl_bgc, z_tracers_out=z_tracers, & -> dEdd_algae_out=dEdd_algae, solve_zbgc_out=solve_zbgc, phi_snow_out=phi_snow, & -> bgc_flux_type_out=bgc_flux_type, grid_o_out=grid_o, l_sk_out=l_sk, & -> initbio_frac_out=initbio_frac, frazil_scav_out=frazil_scav, & -> algal_vel_out=algal_vel, R_dFe2dust_out=R_dFe2dust, & -> dustFe_sol_out=dustFe_sol, T_max_out=T_max, fsal_out=fsal, & -> op_dep_min_out=op_dep_min, fr_graze_s_out=fr_graze_s, & -> fr_graze_e_out=fr_graze_e, fr_mort2min_out=fr_mort2min, & -> fr_dFe_out=fr_dFe, k_nitrif_out=k_nitrif, t_iron_conv_out=t_iron_conv, & -> max_loss_out=max_loss, max_dfe_doc1_out=max_dfe_doc1, & -> fr_resp_s_out=fr_resp_s, y_sk_DMS_out=y_sk_DMS, t_sk_conv_out=t_sk_conv, & -> t_sk_ox_out=t_sk_ox) -1206,1218c1187,1199 -< scale_bgc_in=scale_bgc, skl_bgc_in=skl_bgc, z_tracers_in=z_tracers, & -< dEdd_algae_in=dEdd_algae, solve_zbgc_in=solve_zbgc, & -< bgc_flux_type_in=bgc_flux_type, grid_o_in=grid_o, l_sk_in=l_sk, & -< initbio_frac_in=initbio_frac, frazil_scav_in=frazil_scav, & -< grid_oS_in=grid_oS, l_skS_in=l_skS, phi_snow_in=phi_snow, & -< algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & -< dustFe_sol_in=dustFe_sol, T_max_in=T_max, fsal_in=fsal, & -< op_dep_min_in=op_dep_min, fr_graze_s_in=fr_graze_s, & -< fr_graze_e_in=fr_graze_e, fr_mort2min_in=fr_mort2min, & -< fr_dFe_in=fr_dFe, k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & -< max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, fr_resp_in=fr_resp, & -< fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, t_sk_conv_in=t_sk_conv, & -< t_sk_ox_in=t_sk_ox, modal_aero_in=modal_aero) ---- -> scale_bgc_in=scale_bgc, skl_bgc_in=skl_bgc, z_tracers_in=z_tracers, & -> dEdd_algae_in=dEdd_algae, solve_zbgc_in=solve_zbgc, & -> bgc_flux_type_in=bgc_flux_type, grid_o_in=grid_o, l_sk_in=l_sk, & -> initbio_frac_in=initbio_frac, frazil_scav_in=frazil_scav, & -> grid_oS_in=grid_oS, l_skS_in=l_skS, phi_snow_in=phi_snow, & -> algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & -> dustFe_sol_in=dustFe_sol, T_max_in=T_max, fsal_in=fsal, & -> op_dep_min_in=op_dep_min, fr_graze_s_in=fr_graze_s, & -> fr_graze_e_in=fr_graze_e, fr_mort2min_in=fr_mort2min, & -> fr_dFe_in=fr_dFe, k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & -> max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, fr_resp_in=fr_resp, & -> fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, t_sk_conv_in=t_sk_conv, & -> t_sk_ox_in=t_sk_ox, modal_aero_in=modal_aero) -1440,1459c1421,1440 -< R_Si2N_in=R_Si2N, & -< R_S2N_in=R_S2N, R_Fe2C_in=R_Fe2C, R_Fe2N_in=R_Fe2N, R_C2N_in=R_C2N, & -< R_chl2N_in=R_chl2N, F_abs_chl_in=F_abs_chl, R_Fe2DON_in=R_Fe2DON, & -< R_C2N_DON_in=R_C2N_DON, & -< R_Fe2DOC_in=R_Fe2DOC, & -< chlabs_in=chlabs, alpha2max_low_in=alpha2max_low, beta2max_in=beta2max, & -< mu_max_in=mu_max, grow_Tdep_in=grow_Tdep, fr_graze_in=fr_graze, & -< mort_pre_in=mort_pre, & -< mort_Tdep_in=mort_Tdep, k_exude_in=k_exude, & -< K_Nit_in=K_Nit, K_Am_in=K_Am, K_sil_in=K_Sil, K_Fe_in=K_Fe, & -< f_don_in=f_don, kn_bac_in=kn_bac, f_don_Am_in=f_don_Am, f_exude_in=f_exude, & -< k_bac_in=k_bac, & -< fr_resp_in=fr_resp, algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & -< dustFe_sol_in=dustFe_sol, T_max_in=T_max, fr_mort2min_in=fr_mort2min, & -< fr_dFe_in=fr_dFe, op_dep_min_in=op_dep_min, & -< fr_graze_s_in=fr_graze_s, fr_graze_e_in=fr_graze_e, & -< k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & -< max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, & -< fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, & -< t_sk_conv_in=t_sk_conv, t_sk_ox_in=t_sk_ox, fsal_in=fsal) ---- -> R_Si2N_in=R_Si2N, & -> R_S2N_in=R_S2N, R_Fe2C_in=R_Fe2C, R_Fe2N_in=R_Fe2N, R_C2N_in=R_C2N, & -> R_chl2N_in=R_chl2N, F_abs_chl_in=F_abs_chl, R_Fe2DON_in=R_Fe2DON, & -> R_C2N_DON_in=R_C2N_DON, & -> R_Fe2DOC_in=R_Fe2DOC, & -> chlabs_in=chlabs, alpha2max_low_in=alpha2max_low, beta2max_in=beta2max, & -> mu_max_in=mu_max, grow_Tdep_in=grow_Tdep, fr_graze_in=fr_graze, & -> mort_pre_in=mort_pre, & -> mort_Tdep_in=mort_Tdep, k_exude_in=k_exude, & -> K_Nit_in=K_Nit, K_Am_in=K_Am, K_sil_in=K_Sil, K_Fe_in=K_Fe, & -> f_don_in=f_don, kn_bac_in=kn_bac, f_don_Am_in=f_don_Am, f_exude_in=f_exude, & -> k_bac_in=k_bac, & -> fr_resp_in=fr_resp, algal_vel_in=algal_vel, R_dFe2dust_in=R_dFe2dust, & -> dustFe_sol_in=dustFe_sol, T_max_in=T_max, fr_mort2min_in=fr_mort2min, & -> fr_dFe_in=fr_dFe, op_dep_min_in=op_dep_min, & -> fr_graze_s_in=fr_graze_s, fr_graze_e_in=fr_graze_e, & -> k_nitrif_in=k_nitrif, t_iron_conv_in=t_iron_conv, & -> max_loss_in=max_loss, max_dfe_doc1_in=max_dfe_doc1, & -> fr_resp_s_in=fr_resp_s, y_sk_DMS_in=y_sk_DMS, & -> t_sk_conv_in=t_sk_conv, t_sk_ox_in=t_sk_ox, fsal_in=fsal) -1753,1754c1734,1735 -< zbgc_init_frac_in=zbgc_init_frac, tau_ret_in=tau_ret, tau_rel_in=tau_rel, & -< zbgc_frac_init_in=zbgc_frac_init, bgc_tracer_type_in=bgc_tracer_type) ---- -> zbgc_init_frac_in=zbgc_init_frac, tau_ret_in=tau_ret, tau_rel_in=tau_rel, & -> zbgc_frac_init_in=zbgc_frac_init, bgc_tracer_type_in=bgc_tracer_type) -1760c1741 -< ntrcr_in=ntrcr, ntrcr_o_in=ntrcr_o, nbtrcr_in=nbtrcr, nbtrcr_sw_in=nbtrcr_sw) ---- -> ntrcr_in=ntrcr, ntrcr_o_in=ntrcr_o, nbtrcr_in=nbtrcr, nbtrcr_sw_in=nbtrcr_sw) -1766,1771c1747,1752 -< tr_brine_in =tr_brine, & -< tr_bgc_Nit_in=tr_bgc_Nit, tr_bgc_Am_in =tr_bgc_Am, tr_bgc_Sil_in=tr_bgc_Sil, & -< tr_bgc_DMS_in=tr_bgc_DMS, tr_bgc_PON_in=tr_bgc_PON, & -< tr_bgc_N_in =tr_bgc_N, tr_bgc_C_in =tr_bgc_C, tr_bgc_chl_in=tr_bgc_chl, & -< tr_bgc_DON_in=tr_bgc_DON, tr_bgc_Fe_in =tr_bgc_Fe, tr_zaero_in =tr_zaero, & -< tr_bgc_hum_in=tr_bgc_hum) ---- -> tr_brine_in =tr_brine, & -> tr_bgc_Nit_in=tr_bgc_Nit, tr_bgc_Am_in =tr_bgc_Am, tr_bgc_Sil_in=tr_bgc_Sil, & -> tr_bgc_DMS_in=tr_bgc_DMS, tr_bgc_PON_in=tr_bgc_PON, & -> tr_bgc_N_in =tr_bgc_N, tr_bgc_C_in =tr_bgc_C, tr_bgc_chl_in=tr_bgc_chl, & -> tr_bgc_DON_in=tr_bgc_DON, tr_bgc_Fe_in =tr_bgc_Fe, tr_zaero_in =tr_zaero, & -> tr_bgc_hum_in=tr_bgc_hum) -1777,1794c1758,1776 -< nbtrcr_in=nbtrcr, nt_fbri_in=nt_fbri, & -< nt_bgc_Nit_in=nt_bgc_Nit, nt_bgc_Am_in=nt_bgc_Am, nt_bgc_Sil_in=nt_bgc_Sil, & -< nt_bgc_DMS_in=nt_bgc_DMS, nt_bgc_PON_in=nt_bgc_PON, nt_bgc_S_in=nt_bgc_S, & -< nt_bgc_N_in=nt_bgc_N, nt_bgc_chl_in=nt_bgc_chl, nt_bgc_hum_in=nt_bgc_hum, & -< nt_bgc_DOC_in=nt_bgc_DOC, nt_bgc_DON_in=nt_bgc_DON, nt_bgc_DIC_in=nt_bgc_DIC, & -< nt_zaero_in=nt_zaero, nt_bgc_DMSPp_in=nt_bgc_DMSPp, nt_bgc_DMSPd_in=nt_bgc_DMSPd, & -< nt_bgc_Fed_in=nt_bgc_Fed, nt_bgc_Fep_in=nt_bgc_Fep, nt_zbgc_frac_in=nt_zbgc_frac, & -< nlt_chl_sw_in=nlt_chl_sw, nlt_bgc_Sil_in=nlt_bgc_Sil, nlt_zaero_sw_in=nlt_zaero_sw, & -< nlt_bgc_N_in=nlt_bgc_N, nlt_bgc_Nit_in=nlt_bgc_Nit, nlt_bgc_Am_in=nlt_bgc_Am, & -< nlt_bgc_DMS_in=nlt_bgc_DMS, nlt_bgc_DMSPp_in=nlt_bgc_DMSPp, & -< nlt_bgc_DMSPd_in=nlt_bgc_DMSPd, & -< nlt_bgc_DIC_in=nlt_bgc_DIC, nlt_bgc_DOC_in=nlt_bgc_DOC, nlt_bgc_PON_in=nlt_bgc_PON, & -< nlt_bgc_DON_in=nlt_bgc_DON, nlt_bgc_Fed_in=nlt_bgc_Fed, nlt_bgc_Fep_in=nlt_bgc_Fep, & -< nlt_bgc_chl_in=nlt_bgc_chl, nlt_bgc_hum_in=nlt_bgc_hum, nlt_zaero_in=nlt_zaero, & -< n_algae_in=n_algae, & -< n_DOC_in=n_DOC, n_DON_in=n_DON, n_DIC_in=n_DIC, & -< n_fed_in=n_fed, n_fep_in=n_fep, n_zaero_in=n_zaero, & -< bio_index_o_in=bio_index_o, bio_index_in=bio_index) ---- -> nbtrcr_in=nbtrcr, & -> nt_fbri_in=nt_fbri, & -> nt_bgc_Nit_in=nt_bgc_Nit, nt_bgc_Am_in=nt_bgc_Am, nt_bgc_Sil_in=nt_bgc_Sil, & -> nt_bgc_DMS_in=nt_bgc_DMS, nt_bgc_PON_in=nt_bgc_PON, nt_bgc_S_in=nt_bgc_S, & -> nt_bgc_N_in=nt_bgc_N, nt_bgc_chl_in=nt_bgc_chl, & -> nt_bgc_DOC_in=nt_bgc_DOC, nt_bgc_DON_in=nt_bgc_DON, nt_bgc_DIC_in=nt_bgc_DIC, & -> nt_zaero_in=nt_zaero, nt_bgc_DMSPp_in=nt_bgc_DMSPp, nt_bgc_DMSPd_in=nt_bgc_DMSPd, & -> nt_bgc_Fed_in=nt_bgc_Fed, nt_bgc_Fep_in=nt_bgc_Fep, nt_zbgc_frac_in=nt_zbgc_frac, & -> nlt_zaero_sw_in=nlt_zaero_sw, nlt_chl_sw_in=nlt_chl_sw, nlt_bgc_Sil_in=nlt_bgc_Sil, & -> nlt_bgc_N_in=nlt_bgc_N, nlt_bgc_Nit_in=nlt_bgc_Nit, nlt_bgc_Am_in=nlt_bgc_Am, & -> nlt_bgc_DMS_in=nlt_bgc_DMS, nlt_bgc_DMSPp_in=nlt_bgc_DMSPp, nlt_bgc_DMSPd_in=nlt_bgc_DMSPd, & -> nlt_bgc_chl_in=nlt_bgc_chl, nlt_zaero_in=nlt_zaero, & -> nlt_bgc_DIC_in=nlt_bgc_DIC, nlt_bgc_DOC_in=nlt_bgc_DOC, nlt_bgc_PON_in=nlt_bgc_PON, & -> nlt_bgc_DON_in=nlt_bgc_DON, nlt_bgc_Fed_in=nlt_bgc_Fed, nlt_bgc_Fep_in=nlt_bgc_Fep, & -> nt_bgc_hum_in=nt_bgc_hum, nlt_bgc_hum_in=nlt_bgc_hum, & -> n_algae_in=n_algae, & -> n_DOC_in=n_DOC, n_DON_in=n_DON, n_DIC_in=n_DIC, & -> n_fed_in=n_fed, n_fep_in=n_fep, n_zaero_in=n_zaero, & -> bio_index_o_in=bio_index_o, bio_index_in=bio_index) -diff -r ./Icepack/configuration/driver/icedrv_init.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_init.F90 -169,192c169,192 -< albicev_out=albicev, albicei_out=albicei, & -< albsnowv_out=albsnowv, albsnowi_out=albsnowi, & -< natmiter_out=natmiter, ahmax_out=ahmax, shortwave_out=shortwave, & -< albedo_type_out=albedo_type, R_ice_out=R_ice, R_pnd_out=R_pnd, & -< R_snw_out=R_snw, dT_mlt_out=dT_mlt, rsnw_mlt_out=rsnw_mlt, & -< kstrength_out=kstrength, krdg_partic_out=krdg_partic, & -< krdg_redist_out=krdg_redist, mu_rdg_out=mu_rdg, & -< atmbndy_out=atmbndy, calc_strair_out=calc_strair, & -< formdrag_out=formdrag, highfreq_out=highfreq, & -< emissivity_out=emissivity, & -< kitd_out=kitd, kcatbound_out=kcatbound, hs0_out=hs0, & -< dpscale_out=dpscale, frzpnd_out=frzpnd, & -< rfracmin_out=rfracmin, rfracmax_out=rfracmax, & -< pndaspect_out=pndaspect, hs1_out=hs1, hp1_out=hp1, & -< ktherm_out=ktherm, calc_Tsfc_out=calc_Tsfc, & -< update_ocn_f_out = update_ocn_f, & -< conduct_out=conduct, a_rapid_mode_out=a_rapid_mode, & -< Rac_rapid_mode_out=Rac_rapid_mode, & -< aspect_rapid_mode_out=aspect_rapid_mode, & -< dSdt_slow_mode_out=dSdt_slow_mode, & -< phi_c_slow_mode_out=phi_c_slow_mode, & -< phi_i_mushy_out=phi_i_mushy, & -< tfrz_option_out=tfrz_option, kalg_out=kalg, & -< fbot_xfer_type_out=fbot_xfer_type, puny_out=puny) ---- -> albicev_out=albicev, albicei_out=albicei, & -> albsnowv_out=albsnowv, albsnowi_out=albsnowi, & -> natmiter_out=natmiter, ahmax_out=ahmax, shortwave_out=shortwave, & -> albedo_type_out=albedo_type, R_ice_out=R_ice, R_pnd_out=R_pnd, & -> R_snw_out=R_snw, dT_mlt_out=dT_mlt, rsnw_mlt_out=rsnw_mlt, & -> kstrength_out=kstrength, krdg_partic_out=krdg_partic, & -> krdg_redist_out=krdg_redist, mu_rdg_out=mu_rdg, & -> atmbndy_out=atmbndy, calc_strair_out=calc_strair, & -> formdrag_out=formdrag, highfreq_out=highfreq, & -> emissivity_out=emissivity, & -> kitd_out=kitd, kcatbound_out=kcatbound, hs0_out=hs0, & -> dpscale_out=dpscale, frzpnd_out=frzpnd, & -> rfracmin_out=rfracmin, rfracmax_out=rfracmax, & -> pndaspect_out=pndaspect, hs1_out=hs1, hp1_out=hp1, & -> ktherm_out=ktherm, calc_Tsfc_out=calc_Tsfc, & -> update_ocn_f_out = update_ocn_f, & -> conduct_out=conduct, a_rapid_mode_out=a_rapid_mode, & -> Rac_rapid_mode_out=Rac_rapid_mode, & -> aspect_rapid_mode_out=aspect_rapid_mode, & -> dSdt_slow_mode_out=dSdt_slow_mode, & -> phi_c_slow_mode_out=phi_c_slow_mode, & -> phi_i_mushy_out=phi_i_mushy, & -> tfrz_option_out=tfrz_option, kalg_out=kalg, & -> fbot_xfer_type_out=fbot_xfer_type, puny_out=puny) -692,714c692,714 -< albicev_in=albicev, albicei_in=albicei, & -< albsnowv_in=albsnowv, albsnowi_in=albsnowi, & -< natmiter_in=natmiter, ahmax_in=ahmax, shortwave_in=shortwave, & -< albedo_type_in=albedo_type, R_ice_in=R_ice, R_pnd_in=R_pnd, & -< R_snw_in=R_snw, dT_mlt_in=dT_mlt, rsnw_mlt_in=rsnw_mlt, & -< kstrength_in=kstrength, krdg_partic_in=krdg_partic, & -< krdg_redist_in=krdg_redist, mu_rdg_in=mu_rdg, & -< atmbndy_in=atmbndy, calc_strair_in=calc_strair, & -< formdrag_in=formdrag, highfreq_in=highfreq, & -< emissivity_in=emissivity, & -< kitd_in=kitd, kcatbound_in=kcatbound, hs0_in=hs0, & -< dpscale_in=dpscale, frzpnd_in=frzpnd, & -< rfracmin_in=rfracmin, rfracmax_in=rfracmax, & -< pndaspect_in=pndaspect, hs1_in=hs1, hp1_in=hp1, & -< ktherm_in=ktherm, calc_Tsfc_in=calc_Tsfc, & -< conduct_in=conduct, a_rapid_mode_in=a_rapid_mode, & -< Rac_rapid_mode_in=Rac_rapid_mode, & -< aspect_rapid_mode_in=aspect_rapid_mode, & -< dSdt_slow_mode_in=dSdt_slow_mode, & -< phi_c_slow_mode_in=phi_c_slow_mode, & -< phi_i_mushy_in=phi_i_mushy, & -< tfrz_option_in=tfrz_option, kalg_in=kalg, & -< fbot_xfer_type_in=fbot_xfer_type) ---- -> albicev_in=albicev, albicei_in=albicei, & -> albsnowv_in=albsnowv, albsnowi_in=albsnowi, & -> natmiter_in=natmiter, ahmax_in=ahmax, shortwave_in=shortwave, & -> albedo_type_in=albedo_type, R_ice_in=R_ice, R_pnd_in=R_pnd, & -> R_snw_in=R_snw, dT_mlt_in=dT_mlt, rsnw_mlt_in=rsnw_mlt, & -> kstrength_in=kstrength, krdg_partic_in=krdg_partic, & -> krdg_redist_in=krdg_redist, mu_rdg_in=mu_rdg, & -> atmbndy_in=atmbndy, calc_strair_in=calc_strair, & -> formdrag_in=formdrag, highfreq_in=highfreq, & -> emissivity_in=emissivity, & -> kitd_in=kitd, kcatbound_in=kcatbound, hs0_in=hs0, & -> dpscale_in=dpscale, frzpnd_in=frzpnd, & -> rfracmin_in=rfracmin, rfracmax_in=rfracmax, & -> pndaspect_in=pndaspect, hs1_in=hs1, hp1_in=hp1, & -> ktherm_in=ktherm, calc_Tsfc_in=calc_Tsfc, & -> conduct_in=conduct, a_rapid_mode_in=a_rapid_mode, & -> Rac_rapid_mode_in=Rac_rapid_mode, & -> aspect_rapid_mode_in=aspect_rapid_mode, & -> dSdt_slow_mode_in=dSdt_slow_mode, & -> phi_c_slow_mode_in=phi_c_slow_mode, & -> phi_i_mushy_in=phi_i_mushy, & -> tfrz_option_in=tfrz_option, kalg_in=kalg, & -> fbot_xfer_type_in=fbot_xfer_type) -717,720c717,720 -< tr_FY_in=tr_FY, tr_lvl_in=tr_lvl, tr_aero_in=tr_aero, & -< tr_pond_in=tr_pond, tr_pond_cesm_in=tr_pond_cesm, & -< tr_pond_lvl_in=tr_pond_lvl, & -< tr_pond_topo_in=tr_pond_topo) ---- -> tr_FY_in=tr_FY, tr_lvl_in=tr_lvl, tr_aero_in=tr_aero, & -> tr_pond_in=tr_pond, tr_pond_cesm_in=tr_pond_cesm, & -> tr_pond_lvl_in=tr_pond_lvl, & -> tr_pond_topo_in=tr_pond_topo) -722,726c722,726 -< nt_sice_in=nt_sice, nt_qice_in=nt_qice, & -< nt_qsno_in=nt_qsno, nt_iage_in=nt_iage, & -< nt_fy_in=nt_fy, nt_alvl_in=nt_alvl, nt_vlvl_in=nt_vlvl, & -< nt_apnd_in=nt_apnd, nt_hpnd_in=nt_hpnd, nt_ipnd_in=nt_ipnd, & -< nt_aero_in=nt_aero) ---- -> nt_sice_in=nt_sice, nt_qice_in=nt_qice, & -> nt_qsno_in=nt_qsno, nt_iage_in=nt_iage, & -> nt_fy_in=nt_fy, nt_alvl_in=nt_alvl, nt_vlvl_in=nt_vlvl, & -> nt_apnd_in=nt_apnd, nt_hpnd_in=nt_hpnd, nt_ipnd_in=nt_ipnd, & -> nt_aero_in=nt_aero) -822,824c822,824 -< tr_FY_out=tr_FY, tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, & -< tr_pond_cesm_out=tr_pond_cesm, tr_pond_lvl_out=tr_pond_lvl, & -< tr_pond_topo_out=tr_pond_topo) ---- -> tr_FY_out=tr_FY, tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, & -> tr_pond_cesm_out=tr_pond_cesm, tr_pond_lvl_out=tr_pond_lvl, & -> tr_pond_topo_out=tr_pond_topo) -826,830c826,830 -< nt_sice_out=nt_sice, nt_qice_out=nt_qice, & -< nt_qsno_out=nt_qsno, nt_iage_out=nt_iage, nt_fy_out=nt_fy, & -< nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl, & -< nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & -< nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero) ---- -> nt_sice_out=nt_sice, nt_qice_out=nt_qice, & -> nt_qsno_out=nt_qsno, nt_iage_out=nt_iage, nt_fy_out=nt_fy, & -> nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl, & -> nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, & -> nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero) -976,990c976,990 -< call icepack_aggregate(ncat=ncat, & -< trcrn=trcrn(i,1:ntrcr,:), & -< aicen=aicen(i,:), & -< vicen=vicen(i,:), & -< vsnon=vsnon(i,:), & -< trcr=trcr (i,1:ntrcr), & -< aice=aice (i), & -< vice=vice (i), & -< vsno=vsno (i), & -< aice0=aice0(i), & -< ntrcr=ntrcr, & -< trcr_depend=trcr_depend(1:ntrcr), & -< trcr_base=trcr_base (1:ntrcr,:), & -< n_trcr_strata=n_trcr_strata(1:ntrcr), & -< nt_strata=nt_strata (1:ntrcr,:)) ---- -> call icepack_aggregate (ncat, & -> aicen(i,:), & -> trcrn(i,1:ntrcr,:), & -> vicen(i,:), & -> vsnon(i,:), & -> aice (i), & -> trcr (i,1:ntrcr), & -> vice (i), & -> vsno (i), & -> aice0(i), & -> ntrcr, & -> trcr_depend (1:ntrcr), & -> trcr_base (1:ntrcr,:), & -> n_trcr_strata(1:ntrcr), & -> nt_strata (1:ntrcr,:)) -1082,1083c1082,1083 -< nt_qsno_out=nt_qsno, nt_sice_out=nt_sice, & -< nt_fbri_out=nt_fbri, nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl) ---- -> nt_qsno_out=nt_qsno, nt_sice_out=nt_sice, & -> nt_fbri_out=nt_fbri, nt_alvl_out=nt_alvl, nt_vlvl_out=nt_vlvl) -1146,1153c1146,1151 -< call icepack_init_trcr(Tair = Tair(i), & -< Tf = Tf(i), & -< Sprofile = salinz(i,:), & -< Tprofile = Tmltz(i,:), & -< Tsfc = Tsfc, & -< nilyr=nilyr, nslyr=nslyr, & -< qin=qin(:), qsn=qsn(:)) -< ---- -> call icepack_init_trcr(Tair (i ), Tf (i ), & -> salinz(i,:), Tmltz(i,:), & -> Tsfc, & -> nilyr, nslyr, & -> qin ( :), qsn ( :)) -> -1202,1209c1200,1205 -< call icepack_init_trcr(Tair = Tair(i), & -< Tf = Tf(i), & -< Sprofile = salinz(i,:), & -< Tprofile = Tmltz(i,:), & -< Tsfc = Tsfc, & -< nilyr=nilyr, nslyr=nslyr, & -< qin=qin(:), qsn=qsn(:)) -< ---- -> call icepack_init_trcr(Tair (i ), Tf (i ), & -> salinz(i,:), Tmltz(i,:), & -> Tsfc, & -> nilyr, nslyr, & -> qin ( :), qsn ( :)) -> -diff -r ./Icepack/configuration/driver/icedrv_InitMod.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_InitMod.F90 -66c66 -< call icepack_init_itd(ncat=ncat, hin_max=hin_max) ---- -> call icepack_init_itd(ncat, hin_max) -73c73 -< call icepack_init_itd_hist(ncat=ncat, c_hi_range=c_hi_range, hin_max=hin_max) ! output ---- -> call icepack_init_itd_hist(ncat, hin_max, c_hi_range) ! output -181,195c181,195 -< call icepack_aggregate(ncat=ncat, & -< aicen=aicen(i,:), & -< vicen=vicen(i,:), & -< vsnon=vsnon(i,:), & -< trcrn=trcrn(i,:,:), & -< aice=aice (i), & -< vice=vice (i), & -< vsno=vsno (i), & -< trcr=trcr (i,:), & -< aice0=aice0(i), & -< ntrcr=max_ntrcr, & -< trcr_depend=trcr_depend, & -< trcr_base=trcr_base, & -< n_trcr_strata=n_trcr_strata, & -< nt_strata=nt_strata) ---- -> call icepack_aggregate(ncat, & -> aicen(i,:), & -> trcrn(i,:,:), & -> vicen(i,:), & -> vsnon(i,:), & -> aice (i), & -> trcr (i,:), & -> vice (i), & -> vsno (i), & -> aice0(i), & -> max_ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./Icepack/configuration/driver/icedrv_restart.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_restart.F90 -79c79 -< nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) ---- -> nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) -81,83c81,83 -< tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & -< tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & -< tr_pond_lvl_out=tr_pond_lvl) ---- -> tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & -> tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & -> tr_pond_lvl_out=tr_pond_lvl) -195c195 -< nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) ---- -> nt_qice_out=nt_qice, nt_qsno_out=nt_qsno) -197,199c197,199 -< tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & -< tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & -< tr_pond_lvl_out=tr_pond_lvl) ---- -> tr_lvl_out=tr_lvl, tr_aero_out=tr_aero, tr_brine_out=tr_brine, & -> tr_pond_topo_out=tr_pond_topo, tr_pond_cesm_out=tr_pond_cesm, & -> tr_pond_lvl_out=tr_pond_lvl) -280,294c280,294 -< call icepack_aggregate (ncat=ncat, & -< aicen=aicen(i,:), & -< trcrn=trcrn(i,:,:), & -< vicen=vicen(i,:), & -< vsnon=vsnon(i,:), & -< aice=aice (i), & -< trcr=trcr (i,:), & -< vice=vice (i), & -< vsno=vsno (i), & -< aice0=aice0(i), & -< ntrcr=max_ntrcr, & -< trcr_depend=trcr_depend, & -< trcr_base=trcr_base, & -< n_trcr_strata=n_trcr_strata, & -< nt_strata=nt_strata) ---- -> call icepack_aggregate (ncat, & -> aicen(i,:), & -> trcrn(i,:,:),& -> vicen(i,:), & -> vsnon(i,:), & -> aice (i), & -> trcr (i,:), & -> vice (i), & -> vsno (i), & -> aice0(i), & -> max_ntrcr, & -> trcr_depend, & -> trcr_base, & -> n_trcr_strata, & -> nt_strata) -diff -r ./Icepack/configuration/driver/icedrv_step.F90 /data/tar/git_cice/CICE/Icepack/configuration/driver/icedrv_step.F90 -70,79c70,79 -< call icepack_prep_radiation(ncat=ncat, nilyr=nilyr, nslyr=nslyr, & -< aice=aice(i), aicen=aicen(i,:), & -< swvdr=swvdr(i), swvdf=swvdf(i), & -< swidr=swidr(i), swidf=swidf(i), & -< alvdr_ai=alvdr_ai(i), alvdf_ai=alvdf_ai(i), & -< alidr_ai=alidr_ai(i), alidf_ai=alidf_ai(i), & -< scale_factor=scale_factor(i), & -< fswsfcn=fswsfcn(i,:), fswintn=fswintn(i,:), & -< fswthrun=fswthrun(i,:), fswpenln=fswpenln(i,:,:), & -< Sswabsn=Sswabsn(i,:,:), Iswabsn=Iswabsn(i,:,:)) ---- -> call icepack_prep_radiation (ncat, nilyr, nslyr, & -> aice (i), aicen (i,:), & -> swvdr (i), swvdf (i), & -> swidr (i), swidf (i), & -> alvdr_ai(i), alvdf_ai(i), & -> alidr_ai(i), alidf_ai(i), & -> scale_factor(i), & -> fswsfcn (i,:), fswintn (i,:), & -> fswthrun(i,:), fswpenln(i,:,:), & -> Sswabsn (i,:,:), Iswabsn (i,:,:)) -165c165 -< ntrcr_out=ntrcr) ---- -> ntrcr_out=ntrcr) -171,173c171,173 -< tr_iage_out=tr_iage, tr_FY_out=tr_FY, & -< tr_aero_out=tr_aero, tr_pond_out=tr_pond, tr_pond_cesm_out=tr_pond_cesm, & -< tr_pond_lvl_out=tr_pond_lvl, tr_pond_topo_out=tr_pond_topo) ---- -> tr_iage_out=tr_iage, tr_FY_out=tr_FY, & -> tr_aero_out=tr_aero, tr_pond_out=tr_pond, tr_pond_cesm_out=tr_pond_cesm, & -> tr_pond_lvl_out=tr_pond_lvl, tr_pond_topo_out=tr_pond_topo) -179,183c179,183 -< 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_qice_out=nt_qice, nt_sice_out=nt_sice, & -< nt_aero_out=nt_aero, nt_qsno_out=nt_qsno) ---- -> 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_qice_out=nt_qice, nt_sice_out=nt_sice, & -> nt_aero_out=nt_aero, nt_qsno_out=nt_qsno) -226,303c226,298 -< -< call icepack_step_therm1(dt=dt, ncat=ncat, nilyr=nilyr, nslyr=nslyr, n_aero=n_aero, & -< aicen_init = aicen_init(i,:), & -< vicen_init = vicen_init(i,:), & -< vsnon_init = vsnon_init(i,:), & -< aice = aice(i), aicen = aicen(i,:), & -< vice = vice(i), vicen = vicen(i,:), & -< vsno = vsno(i), vsnon = vsnon(i,:), & -< uvel = uvel(i), vvel = vvel(i), & -< Tsfc = trcrn(i,nt_Tsfc,:), & -< zqsn = trcrn(i,nt_qsno:nt_qsno+nslyr-1,:), & -< zqin = trcrn(i,nt_qice:nt_qice+nilyr-1,:), & -< zSin = trcrn(i,nt_sice:nt_sice+nilyr-1,:), & -< alvl = trcrn(i,nt_alvl,:), & -< vlvl = trcrn(i,nt_vlvl,:), & -< apnd = trcrn(i,nt_apnd,:), & -< hpnd = trcrn(i,nt_hpnd,:), & -< ipnd = trcrn(i,nt_ipnd,:), & -< iage = trcrn(i,nt_iage,:), & -< FY = trcrn(i,nt_FY,:), & -< aerosno = aerosno(:,:,:), & -< aeroice = aeroice(:,:,:), & -< uatm = uatm(i), vatm = vatm(i), & -< wind = wind(i), zlvl = zlvl(i), & -< Qa = Qa(i), rhoa = rhoa(i), & -< Tair = Tair(i), Tref = Tref(i), & -< Qref = Qref(i), Uref = Uref(i), & -< Cdn_atm_ratio = Cdn_atm_ratio(i),& -< Cdn_ocn = Cdn_ocn(i), & -< Cdn_ocn_skin = Cdn_ocn_skin(i), & -< Cdn_ocn_floe = Cdn_ocn_floe(i), & -< Cdn_ocn_keel = Cdn_ocn_keel(i), & -< Cdn_atm = Cdn_atm(i), & -< Cdn_atm_skin = Cdn_atm_skin(i), & -< Cdn_atm_floe = Cdn_atm_floe(i), & -< Cdn_atm_pond = Cdn_atm_pond(i), & -< Cdn_atm_rdg = Cdn_atm_rdg(i), & -< hfreebd = hfreebd(i), hkeel = hkeel(i), & -< hdraft = hdraft(i), hridge = hridge(i), & -< distrdg = distrdg(i), dkeel = dkeel(i), & -< lfloe = lfloe(i), dfloe = dfloe(i), & -< strax = strax(i), stray = stray(i), & -< strairxT = strairxT(i), strairyT = strairyT(i), & -< potT = potT(i), sst = sst(i), & -< sss = sss(i), Tf = Tf(i), & -< strocnxT = strocnxT(i), strocnyT = strocnyT(i), & -< fbot = fbot(i), frzmlt = frzmlt(i), & -< Tbot = Tbot(i), Tsnice = Tsnice(i), & -< rside = rside(i), & -< fsnow = fsnow(i), frain = frain(i), & -< fpond = fpond(i), & -< fsurf = fsurf(i), fsurfn = fsurfn(i,:), & -< fcondtop = fcondtop(i), fcondtopn = fcondtopn(i,:), & -< fcondbot = fcondbot(i), fcondbotn = fcondbotn(i,:), & -< fswsfcn = fswsfcn(i,:), fswintn = fswintn(i,:), & -< fswthrun = fswthrun(i,:), fswabs = fswabs(i), & -< flwout = flwout(i), flw = flw(i), & -< fsens = fsens(i), fsensn = fsensn(i,:), & -< flat = flat(i), flatn = flatn(i,:), & -< fresh = fresh(i), fsalt = fsalt(i), & -< fhocn = fhocn(i), fswthru = fswthru(i), & -< flatn_f = flatn_f(i,:), fsensn_f = fsensn_f(i,:), & -< fsurfn_f = fsurfn_f(i,:), & -< fcondtopn_f = fcondtopn_f(i,:), & -< faero_atm = faero_atm(i,1:n_aero), & -< faero_ocn = faero_ocn(i,1:n_aero), & -< Sswabsn = Sswabsn(i,:,:),Iswabsn = Iswabsn(i,:,:), & -< evap = evap(i), evaps = evaps(i), evapi = evapi(i), & -< dhsn = dhsn(i,:), ffracn = ffracn(i,:), & -< meltt = meltt(i), melttn = melttn(i,:), & -< meltb = meltb(i), meltbn = meltbn(i,:), & -< melts = melts(i), meltsn = meltsn(i,:), & -< congel = congel(i), congeln = congeln(i,:), & -< snoice = snoice(i), snoicen = snoicen(i,:), & -< dsnown = dsnown(i,:), & -< lmask_n = lmask_n(i), lmask_s = lmask_s(i), & -< mlt_onset=mlt_onset(i), frz_onset = frz_onset(i), & -< yday = yday, prescribed_ice = prescribed_ice) ---- -> -> call icepack_step_therm1(dt, ncat, nilyr, nslyr, n_aero, & -> aicen_init (i,:), & -> vicen_init (i,:), vsnon_init (i,:), & -> aice (i), aicen (i,:), & -> vice (i), vicen (i,:), & -> vsno (i), vsnon (i,:), & -> uvel (i), vvel (i), & -> trcrn (i,nt_Tsfc,:), & -> trcrn (i,nt_qsno:nt_qsno+nslyr-1,:), & -> trcrn (i,nt_qice:nt_qice+nilyr-1,:), & -> trcrn (i,nt_sice:nt_sice+nilyr-1,:), & -> trcrn (i,nt_alvl,:), & -> trcrn (i,nt_vlvl,:), & -> trcrn (i,nt_apnd,:), & -> trcrn (i,nt_hpnd,:), & -> trcrn (i,nt_ipnd,:), & -> trcrn (i,nt_iage,:), & -> trcrn (i,nt_FY ,:), & -> aerosno (:,:,:), aeroice (:,:,:), & -> uatm (i), vatm (i), & -> wind (i), zlvl (i), & -> Qa (i), rhoa (i), & -> Tair (i), Tref (i), & -> Qref (i), Uref (i), & -> Cdn_atm_ratio(i), & -> Cdn_ocn (i), Cdn_ocn_skin(i), & -> Cdn_ocn_floe(i), Cdn_ocn_keel(i), & -> Cdn_atm (i), Cdn_atm_skin(i), & -> Cdn_atm_floe(i), Cdn_atm_pond(i), & -> Cdn_atm_rdg (i), hfreebd (i), & -> hdraft (i), hridge (i), & -> distrdg (i), hkeel (i), & -> dkeel (i), lfloe (i), & -> dfloe (i), & -> strax (i), stray (i), & -> strairxT (i), strairyT (i), & -> potT (i), sst (i), & -> sss (i), Tf (i), & -> strocnxT (i), strocnyT (i), & -> fbot (i), & -> Tbot (i), Tsnice (i), & -> frzmlt (i), rside (i), & -> fsnow (i), frain (i), & -> fpond (i), & -> fsurf (i), fsurfn (i,:), & -> fcondtop (i), fcondtopn (i,:), & -> fcondbot (i), fcondbotn (i,:), & -> fswsfcn (i,:), fswintn (i,:), & -> fswthrun (i,:), fswabs (i), & -> flwout (i), & -> Sswabsn (i,:,:), Iswabsn (i,:,:), & -> flw (i), & -> fsens (i), fsensn (i,:), & -> flat (i), flatn (i,:), & -> evap (i), & -> evaps (i), evapi (i), & -> fresh (i), fsalt (i), & -> fhocn (i), fswthru (i), & -> flatn_f (i,:), fsensn_f (i,:), & -> fsurfn_f (i,:), fcondtopn_f (i,:), & -> faero_atm (i,1:n_aero), & -> faero_ocn (i,1:n_aero), & -> dhsn (i,:), ffracn (i,:), & -> meltt (i), melttn (i,:), & -> meltb (i), meltbn (i,:), & -> melts (i), meltsn (i,:), & -> congel (i), congeln (i,:), & -> snoice (i), snoicen (i,:), & -> dsnown (i,:), & -> lmask_n (i), lmask_s (i), & -> mlt_onset (i), frz_onset (i), & -> yday, prescribed_ice) -379,409c374,397 -< call icepack_step_therm2(dt=dt, ncat=ncat, n_aero=n_aero, & -< nltrcr=nltrcr, nilyr=nilyr, nslyr=nslyr, & -< hin_max=hin_max(:), nblyr=nblyr, & -< aicen=aicen(i,:), & -< vicen=vicen(i,:), & -< vsnon=vsnon(i,:), & -< aicen_init=aicen_init(i,:), & -< vicen_init=vicen_init(i,:), & -< trcrn=trcrn(i,1:ntrcr,:), & -< aice0=aice0(i), & -< aice =aice(i), & -< trcr_depend=trcr_depend(1:ntrcr), & -< trcr_base=trcr_base(1:ntrcr,:), & -< n_trcr_strata=n_trcr_strata(1:ntrcr), & -< nt_strata=nt_strata(1:ntrcr,:), & -< Tf=Tf(i), sss=sss(i), & -< salinz=salinz(i,:), & -< rside=rside(i), meltl=meltl(i), & -< frzmlt=frzmlt(i), frazil=frazil(i), & -< frain=frain(i), fpond=fpond(i), & -< fresh=fresh(i), fsalt=fsalt(i), & -< fhocn=fhocn(i), update_ocn_f=update_ocn_f, & -< bgrid=bgrid, cgrid=cgrid, & -< igrid=igrid, faero_ocn=faero_ocn(i,:), & -< first_ice=first_ice(i,:), & -< fzsal=fzsal(i), & -< flux_bio=flux_bio(i,1:nbtrcr), & -< ocean_bio=ocean_bio(i,1:nbtrcr), & -< frazil_diag=frazil_diag(i), & -< frz_onset=frz_onset(i), & -< yday=yday) ---- -> call icepack_step_therm2(dt, ncat, n_aero, nltrcr, & -> nilyr, nslyr, & -> hin_max (:), nblyr, & -> aicen (i,:), & -> vicen (i,:), vsnon (i,:), & -> aicen_init(i,:), vicen_init(i,:), & -> trcrn (i,1:ntrcr,:), & -> aice0 (i), aice (i), & -> trcr_depend(1:ntrcr), trcr_base(1:ntrcr,:), & -> n_trcr_strata(1:ntrcr), nt_strata(1:ntrcr,:), & -> Tf (i), sss (i), & -> salinz (i,:), & -> rside (i), meltl (i), & -> frzmlt (i), frazil (i), & -> frain (i), fpond (i), & -> fresh (i), fsalt (i), & -> fhocn (i), update_ocn_f, & -> bgrid, cgrid, & -> igrid, faero_ocn (i,:), & -> first_ice (i,:), fzsal (i), & -> flux_bio (i,1:nbtrcr), & -> ocean_bio (i,1:nbtrcr), & -> frazil_diag(i), & -> frz_onset (i), yday) -483,493c471,482 -< call icepack_aggregate (ncat=ncat, & -< aicen=aicen(i,:), trcrn=trcrn(i,1:ntrcr,:), & -< vicen=vicen(i,:), vsnon=vsnon(i,:), & -< aice =aice (i), trcr =trcr (i,1:ntrcr), & -< vice =vice (i), vsno =vsno (i), & -< aice0=aice0(i), & -< ntrcr=ntrcr, & -< trcr_depend=trcr_depend (1:ntrcr), & -< trcr_base=trcr_base (1:ntrcr,:), & -< n_trcr_strata=n_trcr_strata(1:ntrcr), & -< nt_strata=nt_strata (1:ntrcr,:)) ---- -> call icepack_aggregate (ncat, aicen(i,:), & -> trcrn(i,1:ntrcr,:), & -> vicen(i,:), vsnon(i,:), & -> aice (i), & -> trcr (i,1:ntrcr), & -> vice (i), vsno (i), & -> aice0(i), & -> ntrcr, & -> trcr_depend(1:ntrcr), & -> trcr_base (1:ntrcr,:), & -> n_trcr_strata(1:ntrcr), & -> nt_strata (1:ntrcr,:)) -582,609c571,596 -< call icepack_step_ridge(dt=dt, ndtd=ndtd, & -< nilyr=nilyr, nslyr=nslyr, & -< nblyr=nblyr, & -< ncat=ncat, hin_max=hin_max(:), & -< rdg_conv=rdg_conv(i), rdg_shear=rdg_shear(i), & -< aicen=aicen(i,:), & -< trcrn=trcrn(i,1:ntrcr,:), & -< vicen=vicen(i,:), vsnon=vsnon(i,:), & -< aice0=aice0(i), & -< trcr_depend=trcr_depend(1:ntrcr), & -< trcr_base=trcr_base(1:ntrcr,:), & -< n_trcr_strata=n_trcr_strata(1:ntrcr), & -< nt_strata=nt_strata(1:ntrcr,:), & -< dardg1dt=dardg1dt(i), dardg2dt=dardg2dt(i), & -< dvirdgdt=dvirdgdt(i), opening=opening(i), & -< fpond=fpond(i), & -< fresh=fresh(i), fhocn=fhocn(i), & -< n_aero=n_aero, & -< faero_ocn=faero_ocn(i,:), & -< aparticn=aparticn(i,:), krdgn=krdgn(i,:), & -< aredistn=aredistn(i,:), vredistn=vredistn(i,:), & -< dardg1ndt=dardg1ndt(i,:), dardg2ndt=dardg2ndt(i,:), & -< dvirdgndt=dvirdgndt(i,:), & -< araftn=araftn(i,:), vraftn=vraftn(i,:), & -< aice=aice(i), fsalt=fsalt(i), & -< first_ice=first_ice(i,:), fzsal=fzsal(i), & -< flux_bio=flux_bio(i,1:nbtrcr), & -< closing=closing(i) ) ---- -> call icepack_step_ridge (dt, ndtd, & -> nilyr, nslyr, & -> nblyr, & -> ncat, hin_max (:), & -> rdg_conv (i), rdg_shear(i), & -> aicen (i,:), & -> trcrn (i,1:ntrcr,:), & -> vicen (i,:), vsnon (i,:), & -> aice0 (i), trcr_depend(1:ntrcr), & -> trcr_base(1:ntrcr,:), n_trcr_strata(1:ntrcr),& -> nt_strata(1:ntrcr,:), & -> dardg1dt (i), dardg2dt (i), & -> dvirdgdt (i), opening (i), & -> fpond (i), & -> fresh (i), fhocn (i), & -> n_aero, & -> faero_ocn(i,:), & -> aparticn (i,:), krdgn (i,:), & -> aredistn (i,:), vredistn (i,:), & -> dardg1ndt(i,:), dardg2ndt(i,:), & -> dvirdgndt(i,:), & -> araftn (i,:), vraftn (i,:), & -> aice (i), fsalt (i), & -> first_ice(i,:), fzsal (i), & -> flux_bio (i,1:nbtrcr), & -> closing(i) ) -625,651c612,636 -< call icepack_step_ridge (dt=dt, ndtd=ndtd, & -< nilyr=nilyr, nslyr=nslyr, & -< nblyr=nblyr, & -< ncat=ncat, hin_max=hin_max(:), & -< rdg_conv=rdg_conv(i), rdg_shear=rdg_shear(i), & -< aicen=aicen(i,:), & -< trcrn=trcrn(i,1:ntrcr,:), & -< vicen=vicen(i,:), vsnon=vsnon(i,:), & -< aice0=aice0(i), & -< trcr_depend=trcr_depend(1:ntrcr), & -< trcr_base=trcr_base(1:ntrcr,:), & -< n_trcr_strata=n_trcr_strata(1:ntrcr), & -< nt_strata=nt_strata(1:ntrcr,:), & -< dardg1dt=dardg1dt(i), dardg2dt=dardg2dt(i), & -< dvirdgdt=dvirdgdt(i), opening=opening(i), & -< fpond=fpond(i), & -< fresh=fresh(i), fhocn=fhocn(i), & -< n_aero=n_aero, & -< faero_ocn=faero_ocn(i,:), & -< aparticn=aparticn(i,:), krdgn=krdgn(i,:), & -< aredistn=aredistn(i,:), vredistn=vredistn(i,:), & -< dardg1ndt=dardg1ndt(i,:), dardg2ndt=dardg2ndt(i,:), & -< dvirdgndt=dvirdgndt(i,:), & -< araftn=araftn(i,:), vraftn=vraftn(i,:), & -< aice=aice(i), fsalt=fsalt(i), & -< first_ice=first_ice(i,:), fzsal=fzsal(i), & -< flux_bio=flux_bio(i,1:nbtrcr)) ---- -> call icepack_step_ridge (dt, ndtd, & -> nilyr, nslyr, & -> nblyr, & -> ncat, hin_max (:), & -> rdg_conv (i), rdg_shear(i), & -> aicen (i,:), & -> trcrn (i,1:ntrcr,:), & -> vicen (i,:), vsnon (i,:), & -> aice0 (i), trcr_depend(1:ntrcr), & -> trcr_base(1:ntrcr,:), n_trcr_strata(1:ntrcr),& -> nt_strata(1:ntrcr,:), & -> dardg1dt (i), dardg2dt (i), & -> dvirdgdt (i), opening (i), & -> fpond (i), & -> fresh (i), fhocn (i), & -> n_aero, & -> faero_ocn(i,:), & -> aparticn (i,:), krdgn (i,:), & -> aredistn (i,:), vredistn (i,:), & -> dardg1ndt(i,:), dardg2ndt(i,:), & -> dvirdgndt(i,:), & -> araftn (i,:), vraftn (i,:), & -> aice (i), fsalt (i), & -> first_ice(i,:), fzsal (i), & -> flux_bio (i,1:nbtrcr)) -725c710 -< max_aero_out=max_aero) ---- -> max_aero_out=max_aero) -738c723 -< tr_brine_out=tr_brine, tr_bgc_N_out=tr_bgc_N, tr_zaero_out=tr_zaero) ---- -> tr_brine_out=tr_brine, tr_bgc_N_out=tr_bgc_N, tr_zaero_out=tr_zaero) -744,747c729,732 -< nt_Tsfc_out=nt_Tsfc, nt_alvl_out=nt_alvl, & -< nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & -< nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw, & -< nt_fbri_out=nt_fbri, nt_zaero_out=nt_zaero) ---- -> nt_Tsfc_out=nt_Tsfc, nt_alvl_out=nt_alvl, & -> nt_apnd_out=nt_apnd, nt_hpnd_out=nt_hpnd, nt_ipnd_out=nt_ipnd, nt_aero_out=nt_aero, & -> nlt_chl_sw_out=nlt_chl_sw, nlt_zaero_sw_out=nlt_zaero_sw, & -> nt_fbri_out=nt_fbri, nt_zaero_out=nt_zaero) -777,815c762,800 -< call icepack_step_radiation(dt=dt, ncat=ncat, & -< n_algae=n_algae, tr_zaero=tr_zaero, & -< nblyr=nblyr, ntrcr=ntrcr, & -< nbtrcr_sw=nbtrcr_sw, nilyr=nilyr, & -< nslyr=nslyr, n_aero=n_aero, & -< n_zaero=n_zaero, dEdd_algae=dEdd_algae, & -< nlt_chl_sw=nlt_chl_sw, nlt_zaero_sw=nlt_zaero_sw(:), & -< swgrid=swgrid(:), igrid=igrid(:), & -< fbri=fbri(:), & -< aicen=aicen(i,:), vicen=vicen(i,:), & -< vsnon=vsnon(i,:), & -< Tsfcn=trcrn(i,nt_Tsfc,:), & -< alvln=trcrn(i,nt_alvl,:), & -< apndn=trcrn(i,nt_apnd,:), & -< hpndn=trcrn(i,nt_hpnd,:), & -< ipndn=trcrn(i,nt_ipnd,:), & -< aeron=trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & -< zbion=ztrcr_sw, trcrn=ztrcr, & -< TLAT=TLAT(i), TLON=TLON(i), & -< calendar_type=calendar_type, & -< days_per_year=days_per_year, sec=sec, & -< nextsw_cday=nextsw_cday, yday=yday, & -< kaer_tab=kaer_tab, kaer_bc_tab=kaer_bc_tab(:,:), & -< waer_tab=waer_tab, waer_bc_tab=waer_bc_tab(:,:), & -< gaer_tab=gaer_tab, gaer_bc_tab=gaer_bc_tab(:,:), & -< bcenh=bcenh(:,:,:), modal_aero=modal_aero, & -< swvdr=swvdr(i), swvdf=swvdf(i), & -< swidr=swidr(i), swidf=swidf(i), & -< coszen=coszen(i), fsnow=fsnow(i), & -< alvdrn=alvdrn(i,:), alvdfn=alvdfn(i,:), & -< alidrn=alidrn(i,:), alidfn=alidfn(i,:), & -< fswsfcn=fswsfcn(i,:), fswintn=fswintn(i,:), & -< fswthrun=fswthrun(i,:), fswpenln=fswpenln(i,:,:), & -< Sswabsn=Sswabsn(i,:,:), Iswabsn=Iswabsn(i,:,:), & -< albicen=albicen(i,:), albsnon=albsnon(i,:), & -< albpndn=albpndn(i,:), apeffn=apeffn(i,:), & -< snowfracn=snowfracn(i,:), & -< dhsn=dhsn(i,:), ffracn=ffracn(i,:), & -< l_print_point=l_print_point) ---- -> call icepack_step_radiation (dt, ncat, & -> n_algae, tr_zaero, & -> nblyr, ntrcr, & -> nbtrcr_sw, nilyr, & -> nslyr, n_aero, & -> n_zaero, dEdd_algae, & -> nlt_chl_sw, nlt_zaero_sw(:), & -> swgrid(:), igrid(:), & -> fbri(:), & -> aicen(i,:), vicen(i,:), & -> vsnon(i,:), & -> trcrn(i,nt_Tsfc,:), & -> trcrn(i,nt_alvl,:), & -> trcrn(i,nt_apnd,:), & -> trcrn(i,nt_hpnd,:), & -> trcrn(i,nt_ipnd,:), & -> trcrn(i,nt_aero:nt_aero+4*n_aero-1,:), & -> ztrcr_sw, ztrcr, & -> TLAT(i), TLON(i), & -> calendar_type, days_per_year, & -> nextsw_cday, yday, & -> sec, kaer_tab, & -> waer_tab, gaer_tab, & -> kaer_bc_tab(:,:), waer_bc_tab(:,:), & -> gaer_bc_tab(:,:), bcenh(:,:,:), & -> modal_aero, & -> swvdr(i), swvdf(i), & -> swidr(i), swidf(i), & -> coszen(i), fsnow(i), & -> alvdrn(i,:), alvdfn(i,:), & -> alidrn(i,:), alidfn(i,:), & -> fswsfcn(i,:), fswintn(i,:), & -> fswthrun(i,:), fswpenln(i,:,:), & -> Sswabsn(i,:,:), Iswabsn(i,:,:), & -> albicen(i,:), albsnon(i,:), & -> albpndn(i,:), apeffn(i,:), & -> snowfracn(i,:), & -> dhsn(i,:), ffracn(i,:), & -> l_print_point) -911,929c896,914 -< call icepack_atm_boundary(sfctype = 'ocn', & -< Tsf = sst(i), & -< potT = potT(i), & -< uatm = uatm(i), & -< vatm = vatm(i), & -< wind = wind(i), & -< zlvl = zlvl(i), & -< Qa = Qa(i), & -< rhoa = rhoa(i), & -< strx = strairx_ocn(i), & -< stry = strairy_ocn(i), & -< Tref = Tref_ocn(i), & -< Qref = Qref_ocn(i), & -< delt = delt(i), & -< delq = delq(i), & -< lhcoef = lhcoef(i), & -< shcoef = shcoef(i), & -< Cdn_atm = Cdn_atm(i), & -< Cdn_atm_ratio_n = Cdn_atm_ratio(i)) ---- -> call icepack_atm_boundary( 'ocn', & -> sst (i), & -> potT (i), & -> uatm (i), & -> vatm (i), & -> wind (i), & -> zlvl (i), & -> Qa (i), & -> rhoa (i), & -> strairx_ocn(i), & -> strairy_ocn(i), & -> Tref_ocn (i), & -> Qref_ocn (i), & -> delt (i), & -> delq (i), & -> lhcoef (i), & -> shcoef (i), & -> Cdn_atm (i), & -> Cdn_atm_ratio(i)) -951,963c936,948 -< call icepack_ocn_mixed_layer(alvdr_ocn=alvdr_ocn(i), swvdr=swvdr(i), & -< alidr_ocn=alidr_ocn(i), swidr=swidr(i), & -< alvdf_ocn=alvdf_ocn(i), swvdf=swvdf(i), & -< alidf_ocn=alidf_ocn(i), swidf=swidf(i), & -< flwout_ocn=flwout_ocn(i),sst=sst(i), & -< fsens_ocn=fsens_ocn(i), shcoef=shcoef(i), & -< flat_ocn=flat_ocn(i), lhcoef=lhcoef(i), & -< evap_ocn=evap_ocn(i), flw=flw(i), & -< delt=delt(i), delq=delq(i), & -< aice=aice(i), fhocn=fhocn(i), & -< fswthru=fswthru(i), hmix=hmix(i), & -< Tf=Tf(i), qdp=qdp(i), & -< frzmlt=frzmlt(i), dt=dt) ---- -> call icepack_ocn_mixed_layer (alvdr_ocn(i), swvdr (i), & -> alidr_ocn(i), swidr (i), & -> alvdf_ocn(i), swvdf (i), & -> alidf_ocn(i), swidf (i), & -> sst (i), flwout_ocn(i), & -> fsens_ocn(i), shcoef (i), & -> flat_ocn (i), lhcoef (i), & -> evap_ocn (i), flw (i), & -> delt (i), delq (i), & -> aice (i), fhocn (i), & -> fswthru (i), hmix (i), & -> Tf (i), qdp (i), & -> frzmlt (i), dt) -1040,1041c1025,1026 -< max_algae_out=max_algae, max_nbtrcr_out=max_nbtrcr, max_don_out=max_don, & -< max_doc_out=max_doc, max_dic_out=max_dic, max_aero_out=max_aero, max_fe_out=max_fe) ---- -> max_algae_out=max_algae, max_nbtrcr_out=max_nbtrcr, max_don_out=max_don, & -> max_doc_out=max_doc, max_dic_out=max_dic, max_aero_out=max_aero, max_fe_out=max_fe) -1066,1077c1051,1061 -< call icepack_init_OceanConcArray(max_nbtrcr=max_nbtrcr, & -< max_algae = max_algae, max_don = max_don, & -< max_doc = max_doc, max_dic = max_dic, & -< max_aero = max_aero, max_fe = max_fe, & -< nit = nit(i), amm = amm(i), & -< sil = sil(i), dmsp = dmsp(i), & -< dms = dms(i), algalN = algalN(i,:), & -< doc = doc(i,:), don = don(i,:), & -< dic = dic(i,:), fed = fed(i,:), & -< fep = fep(i,:), zaeros = zaeros(i,:), & -< ocean_bio_all=ocean_bio_all(i,:), & -< hum=hum(i)) ---- -> call icepack_init_OceanConcArray(max_nbtrcr, & -> max_algae, max_don, max_doc, & -> max_dic, max_aero, max_fe, & -> nit(i), amm (i), & -> sil(i), dmsp (i), & -> dms(i), algalN(i,:), & -> doc(i,:), don (i,:), & -> dic(i,:), fed (i,:), & -> fep(i,:), zaeros(i,:), & -> ocean_bio_all(i,:), & -> hum(i)) -1091,1143c1075,1125 -< call icepack_biogeochemistry(dt=dt, ntrcr=ntrcr, nbtrcr=nbtrcr, & -< ncat=ncat, nblyr=nblyr, nilyr=nilyr, nslyr=nslyr, & -< n_algae=n_algae, n_zaero=n_zaero, & -< n_doc=n_doc, n_dic=n_dic, n_don=n_don, & -< n_fed=n_fed, n_fep=n_fep, & -< bgrid=bgrid, igrid=igrid, icgrid=icgrid, cgrid=cgrid, & -< upNO = upNO(i), & -< upNH = upNH(i), & -< iDi = iDi(i,:,:), & -< iki = iki(i,:,:), & -< zfswin = zfswin(i,:,:), & -< zsal_tot = zsal_tot(i), & -< darcy_V = darcy_V(i,:), & -< grow_net = grow_net(i), & -< PP_net = PP_net(i), & -< hbri = hbri(i), & -< dhbr_bot = dhbr_bot(i,:), & -< dhbr_top = dhbr_top(i,:), & -< Zoo = Zoo(i,:,:), & -< fbio_snoice = fbio_snoice(i,:), & -< fbio_atmice = fbio_atmice(i,:), & -< ocean_bio = ocean_bio(i,1:nbtrcr), & -< first_ice = first_ice(i,:), & -< fswpenln = fswpenln(i,:,:), & -< bphi = bphi(i,:,:), & -< bTiz = bTiz(i,:,:), & -< ice_bio_net = ice_bio_net(i,1:nbtrcr), & -< snow_bio_net = snow_bio_net(i,1:nbtrcr), & -< fswthrun = fswthrun(i,:), & -< Rayleigh_criteria = Rayleigh_criteria(i), & -< sice_rho = sice_rho(i,:), & -< fzsal = fzsal(i), & -< fzsal_g = fzsal_g(i), & -< meltbn = meltbn(i,:), & -< melttn = melttn(i,:), & -< congeln = congeln(i,:), & -< snoicen = snoicen(i,:), & -< sst = sst(i), & -< sss = sss(i), & -< fsnow = fsnow(i), & -< meltsn = meltsn(i,:), & -< hin_old = hin_old(i,:), & -< flux_bio = flux_bio(i,1:nbtrcr), & -< flux_bio_atm = flux_bio_atm(i,1:nbtrcr), & -< aicen_init = aicen_init(i,:), & -< vicen_init = vicen_init(i,:), & -< aicen = aicen(i,:), & -< vicen = vicen(i,:), & -< vsnon = vsnon(i,:), & -< aice0 = aice0(i), & -< trcrn = trcrn(i,1:ntrcr,:), & -< vsnon_init = vsnon_init(i,:), & -< skl_bgc = skl_bgc) ---- -> call icepack_biogeochemistry(dt, ntrcr, nbtrcr,& -> upNO (i), & -> upNH (i), & -> iDi (i,:,:), & -> iki (i,:,:), & -> zfswin (i,:,:), & -> zsal_tot (i), & -> darcy_V (i,:), & -> grow_net (i), & -> PP_net (i), & -> hbri (i), & -> dhbr_bot (i,:), & -> dhbr_top (i,:), & -> Zoo (i,:,:), & -> fbio_snoice (i,:), & -> fbio_atmice (i,:), & -> ocean_bio (i,1:nbtrcr), & -> first_ice (i,:), & -> fswpenln (i,:,:), & -> bphi (i,:,:), & -> bTiz (i,:,:), & -> ice_bio_net (i,1:nbtrcr), & -> snow_bio_net(i,1:nbtrcr), & -> fswthrun (i,:), & -> Rayleigh_criteria(i), & -> sice_rho (i,:), & -> fzsal (i), & -> fzsal_g (i), & -> bgrid, igrid, icgrid, cgrid, & -> nblyr, nilyr, nslyr, n_algae, n_zaero, & -> ncat, n_doc, n_dic, n_don, n_fed, n_fep, & -> meltbn (i,:), & -> melttn (i,:), & -> congeln (i,:), & -> snoicen (i,:), & -> sst (i), & -> sss (i), & -> fsnow (i), & -> meltsn (i,:), & -> hin_old (i,:), & -> flux_bio (i,1:nbtrcr), & -> flux_bio_atm(i,1:nbtrcr), & -> aicen_init (i,:), & -> vicen_init (i,:), & -> aicen (i,:), & -> vicen (i,:), & -> vsnon (i,:), & -> aice0 (i), & -> trcrn (i,1:ntrcr,:), & -> vsnon_init (i,:), & -> skl_bgc) -diff -r ./Icepack/configuration/scripts/icepack.batch.csh /data/tar/git_cice/CICE/Icepack/configuration/scripts/icepack.batch.csh -45c45 -< #PBS -q ${ICE_MACHINE_QUEUE} ---- -> #PBS -q share -67c67 -< #PBS -q ${ICE_MACHINE_QUEUE} ---- -> #PBS -q short -70d69 -< #PBS -l walltime=${ICE_RUNLENGTH} -76c75 -< #PBS -q ${ICE_MACHINE_QUEUE} ---- -> #PBS -q debug -88c87 -< #PBS -q ${ICE_MACHINE_QUEUE} ---- -> #PBS -q debug -diff -r ./Icepack/configuration/scripts/icepack.launch.csh /data/tar/git_cice/CICE/Icepack/configuration/scripts/icepack.launch.csh -12,18d11 -< if (${ICE_MACHINE} =~ gordon* || ${ICE_MACHINE} =~ conrad* || ${ICE_MACHINE} =~ onyx* ) then -< cat >> ${jobfile} << EOFR -< aprun -n 1 -N 1 -d 1 ./icepack >&! \$ICE_RUNLOG_FILE -< EOFR -< -< #========================================== -< else -22,23d14 -< -< endif -diff -r ./Icepack/configuration/scripts/machines/env.cheyenne_intel /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/env.cheyenne_intel -20c20 -< setenv ICE_MACHINE_QUEUE "share" ---- -> setenv ICE_MACHINE_QUEUE "regular" -Only in ./Icepack/configuration/scripts/machines: env.izumi_gnu -diff -r ./Icepack/configuration/scripts/machines/env.izumi_intel /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/env.izumi_intel -5d4 -< module purge -8,9d6 -< setenv OMP_STACKSIZE 64M -< -17,18d13 -< setenv ICE_MACHINE_QSTAT "qstat " -< setenv ICE_MACHINE_QUEUE "short" -20c15,16 -< setenv ICE_MACHINE_TPNODE 48 ---- -> setenv ICE_MACHINE_QUEUE "debug" -> setenv ICE_MACHINE_TPNODE 24 -diff -r ./Icepack/configuration/scripts/machines/env.izumi_nag /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/env.izumi_nag -8,9d7 -< setenv OMP_STACKSIZE 64M -< -18c16 -< setenv ICE_MACHINE_QUEUE "short" ---- -> setenv ICE_MACHINE_QUEUE "debug" -20c18 -< setenv ICE_MACHINE_TPNODE 48 ---- -> setenv ICE_MACHINE_TPNODE 24 -Only in ./Icepack/configuration/scripts/machines: env.izumi_pgi -Only in ./Icepack/configuration/scripts/machines: Macros.izumi_gnu -diff -r ./Icepack/configuration/scripts/machines/Macros.izumi_intel /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/Macros.izumi_intel -2c2 -< # Makefile macros for NCAR izumi, intel compiler ---- -> # Makefile macros for NCAR cheyenne, intel compiler -12a13 -> FC_AUTO_R8 := -r8 -25,30d25 -< -< ifeq ($(ICE_THREADED), true) -< LDFLAGS += -qopenmp -< CFLAGS += -qopenmp -< FFLAGS += -qopenmp -< endif -diff -r ./Icepack/configuration/scripts/machines/Macros.izumi_nag /data/tar/git_cice/CICE/Icepack/configuration/scripts/machines/Macros.izumi_nag -2c2 -< # Makefile macros for NCAR izumi, nag compiler ---- -> # Makefile macros for NCAR cheyenne, nag compiler -13a14 -> FC_AUTO_R8 := -r8 -27,31c28 -< ifeq ($(ICE_THREADED), true) -< LDFLAGS += -openmp -< CFLAGS += -openmp -< FFLAGS += -openmp -< endif ---- -> SLIBS := -L$(COMPILER_PATH)/lib/NAG_Fortran -Only in ./Icepack/configuration/scripts/machines: Macros.izumi_pgi -diff -r ./Icepack/configuration/scripts/tests/report_results.csh /data/tar/git_cice/CICE/Icepack/configuration/scripts/tests/report_results.csh -10c10,11 -< set wikirepo = "https://github.com/CICE-Consortium/Test-Results.wiki.git" ---- -> set gh_repository = "CICE-Consortium/Test-Results.wiki.git" -> set wikirepo = "https://github.com/${gh_repository}" -14c15,25 -< git clone ${wikirepo} ${wikiname} ---- -> -> # If command line argument "--travisCI" is set when running this script, clone -> # the wiki repository using Github access token for the 'ciceconsortium' user. -> if ( "$1" == "--travisCI" ) then -> git clone "https://ciceconsortium:${GH_TOKEN}@github.com/${gh_repository}" ${wikiname} -> set res = $status -> else -> git clone ${wikirepo} ${wikiname} -> set res = $status -> endif -> -55c66 -< set xcdat = `echo $cdat | cut -c 3-` ---- -> set xcdat = `echo $cdat | sed 's|-||g' | cut -c 3-` -61a73,74 -> set vfile = "icepack_by_vers" -> set bfile = "icepack_by_bran" -65a79,80 -> set vfile = {$vfile}_forks -> set bfile = {$bfile}_forks -98d112 -< @ tunkn = 0 -117c131 -< set fcomp = `grep " ${case} bfbcomp " results.log | cut -c 1-4` ---- -> set fcomp = `grep " ${case} " results.log | grep " bfbcomp" | cut -c 1-4` -122c136 -< set vcomp = `grep " ${case} bfbcomp " results.log | cut -d " " -f 4` ---- -> set vcomp = `grep " ${case} " results.log | grep " bfbcomp" | cut -d " " -f 4` -162,165d175 -< if (${rbuild} == ${yellow}) set tchkpass = 2 -< if (${rrun} == ${yellow}) set tchkpass = 2 -< if (${rtest} == ${yellow}) set tchkpass = 2 -< -173,178c183 -< else -< if (${tchkpass} == 2) then -< @ tunkn = $tunkn + 1 -< else -< @ tfail = $tfail + 1 -< endif ---- -> @ tfail = $tfail + 1 -236a242,251 -> -> # If command line argument "--travisCI" is set when running this script, add -> # links to Travis build page and the raw build log. -> if ( "$1" == "--travisCI" ) then -> cat >> ${outfile} << EOF -> - Travis-CI build page: https://travis-ci.org/${TRAVIS_REPO_SLUG}/builds/${TRAVIS_BUILD_ID} -> - Travis-CI raw log: https://api.travis-ci.org/v3/job/${TRAVIS_JOB_ID}/log.txt -> EOF -> endif -> -246a262,263 -> set versfile = "${wikiname}/${tsubdir}/${vfile}.md" -> set branfile = "${wikiname}/${tsubdir}/${bfile}.md" -248c265 -< foreach xfile ($hashfile $machfile) ---- -> foreach xfile ($hashfile $machfile $versfile $branfile) -266c283 -< | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | ---- -> | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | -274c291,314 -< sed -i "$nline a | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${hashfile} ---- -> sed -i "$nline a | ${mach} | ${compiler} | ${vers} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${hashfile} -> endif -> -> #===================== -> # update versfile -> #===================== -> -> set chk = 0 -> if (-e ${versfile}) set chk = `grep "\*\*${vers}" ${versfile} | wc -l` -> if ($chk == 0) then -> cat >! ${versfile} << EOF -> **${vers}** : -> -> | machine | compiler | hash | date | test fail | comp fail | total | -> | ------ | ------ | ------ | ------ | ------ | ------ | ------ | -> | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | -> -> EOF -> if (-e ${versfile}.prev) cat ${versfile}.prev >> ${versfile} -> -> else -> set oline = `grep -n "\*\*${vers}" ${versfile} | head -1 | cut -d : -f 1` -> @ nline = ${oline} + 3 -> sed -i "$nline a | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${versfile} -289c329 -< | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | ---- -> | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | -297c337 -< sed -i "$nline a | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail}, ${tunkn} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${machfile} ---- -> sed -i "$nline a | ${vers} | ${shhash} | ${compiler} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${machfile} -299a340,361 -> #===================== -> # update branfile -> #===================== -> -> set chk = 0 -> if (-e ${branfile}) set chk = `grep "\*\*${bran}" ${branfile} | wc -l` -> if ($chk == 0) then -> cat >! ${branfile} << EOF -> **${bran}** **${repo}**: -> -> | machine | compiler | hash | date | test fail | comp fail | total | -> | ------ | ------ | ------ | ------ | ------ | ------ | ------ | -> | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | -> -> EOF -> if (-e ${branfile}.prev) cat ${branfile}.prev >> ${branfile} -> -> else -> set oline = `grep -n "\*\*${bran}" ${branfile} | head -1 | cut -d : -f 1` -> @ nline = ${oline} + 3 -> sed -i "$nline a | ${mach} | ${compiler} | ${shhash} | ${cdat} | ${tcolor} ${tfail} | ${rcolor} ${rfail}, ${rothr} | [${ttotl}](${ofile}) | " ${branfile} -> endif -312a375,376 -> git add ${tsubdir}/${vfile}.md -> git add ${tsubdir}/${bfile}.md -Only in ./Icepack/doc: generate_interfaces.sh -diff -r ./Icepack/doc/source/conf.py /data/tar/git_cice/CICE/Icepack/doc/source/conf.py -65c65 -< version = u'1.1.2' ---- -> version = u'1.1.1' -67c67 -< version = u'1.1.2' ---- -> version = u'1.1.1' -diff -r ./Icepack/doc/source/developer_guide/dg_about.rst /data/tar/git_cice/CICE/Icepack/doc/source/developer_guide/dg_about.rst -38c38,39 -< See https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers for information on: ---- -> See https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers -> for information on: -41,42c42 -< - git Workflow Guide - including extensive information about the Pull Request -< process and requirements ---- -> - git Workflow Guide - including extensive information about the Pull Request process and requirements -diff -r ./Icepack/doc/source/user_guide/index.rst /data/tar/git_cice/CICE/Icepack/doc/source/user_guide/index.rst -18d17 -< ug_library.rst -Only in ./Icepack/doc/source/user_guide: interfaces.rst -Only in ./Icepack/doc/source/user_guide: ug_library.rst -diff -r ./Icepack/doc/source/user_guide/ug_running.rst /data/tar/git_cice/CICE/Icepack/doc/source/user_guide/ug_running.rst -110,113c110 -< Updates the stored value of the Icepack version in the sandbox and exits See :ref:`version` for more information. -< -< ``--docintfc`` -< Runs a script that updates the public interfaces in the documentation. This script parses the source code directly. See :ref:`docintfc` for more information. ---- -> Updates the stored value of the Icepack version in the sandbox and exits See :ref:`version` for more information -File ./Icepack/.git is a regular file while file /data/tar/git_cice/CICE/Icepack/.git is a directory -diff -r ./Icepack/.gitignore /data/tar/git_cice/CICE/Icepack/.gitignore -13d12 -< caselist* -diff -r ./Icepack/icepack.setup /data/tar/git_cice/CICE/Icepack/icepack.setup -71,72d70 -< --docintfc -< -89d86 -< --docintfc : update the public interface documentation -203,221d199 -< exit -1 -< endif -< shift argv -< end -< -< set argv = ( $initargv[*] ) -< # check for --docintfc -< while (1) -< if ($#argv < 1) break; -< if ("$argv[1]" =~ "--docintfc" ) then -< echo "${0}: Running docintfc" -< echo " " -< cd ${ICE_SANDBOX}/doc -< ./generate_interfaces.sh -< cd ${ICE_SANDBOX} -< echo " " -< echo "${0}: docintfc complete, exiting" -< echo "${0}: remember to add and commit any updated documentation files" -< echo " " -diff -r ./Icepack/.zenodo.json /data/tar/git_cice/CICE/Icepack/.zenodo.json -4c4 -< "language": "eng", ---- -> "language": "English", -40c40 -< "name": "Anthony Craig" ---- -> "name": "Tony Craig" -83c83 -< "affiliation": "Los Alamos National Laboratory", ---- -> "affiliation": "Naval Research Laboratory Stennis Space Center", -93a94 -> "scheme": "url", -97a99 -> "scheme": "doi", -99c101 -< "relation": "isNewVersionOf" ---- -> "relation": "isVersionOf" -102c104 -< } ---- -> } -\ No newline at end of file -Only in .: lal.dat From 39611f307553581eb2b7876ce4a76ddf9fb3bfbe Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Wed, 4 Dec 2019 11:13:21 +0000 Subject: [PATCH 04/14] fix of icepack issues --- Icepack | 1 - 1 file changed, 1 deletion(-) delete mode 160000 Icepack diff --git a/Icepack b/Icepack deleted file mode 160000 index 245fcaa64..000000000 --- a/Icepack +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 245fcaa64bd310837e1b9ac6d6c2ce4c5c674164 From 9015d4c8ba68b90ae8066614717c343a3abf409e Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Wed, 25 Dec 2019 22:22:59 +0000 Subject: [PATCH 05/14] cosmetic change to alin dmi/nuopc with standalone --- cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 b/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 index bd434dd80..04c628e57 100644 --- a/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 +++ b/cicecore/drivers/nuopc/dmi/CICE_InitMod.F90 @@ -16,8 +16,8 @@ module CICE_InitMod use ice_exit, only: abort_ice use ice_fileunits, only: init_fileunits, nu_diag use icepack_intfc, only: icepack_aggregate - use icepack_intfc, only: icepack_init_fsd_bounds, icepack_init_wave use icepack_intfc, only: icepack_init_itd, icepack_init_itd_hist + use icepack_intfc, only: icepack_init_fsd_bounds, icepack_init_wave use icepack_intfc, only: icepack_configure use icepack_intfc, only: icepack_warnings_flush, icepack_warnings_aborted use icepack_intfc, only: icepack_query_parameters, icepack_query_tracer_flags, & From 7be12ead3e5329ff6e94405e3e3d4646a92394fd Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Wed, 22 Jan 2020 08:54:20 +0000 Subject: [PATCH 06/14] Allow for read in of tlon, tlat and anglet in order to avoid differences between values in coupled setups based on different methods for calculating these --- cicecore/cicedynB/general/ice_init.F90 | 1 + cicecore/cicedynB/infrastructure/ice_grid.F90 | 35 ++++++++++++++----- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index c0cc1d6fe..0e794c282 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -1213,6 +1213,7 @@ subroutine input_data grid_type /= 'rectangular' .and. & grid_type /= 'cpom_grid' .and. & grid_type /= 'regional' .and. & + grid_type /= 'reg_dmi' .and. & grid_type /= 'latlon' ) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: unknown grid_type=',trim(grid_type) abort_flag = 20 diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index 20df6b236..a5b4f7df7 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -241,6 +241,7 @@ subroutine init_grid1 if (trim(grid_type) == 'displaced_pole' .or. & trim(grid_type) == 'tripole' .or. & + trim(grid_type) == 'reg_dmi' .or. & trim(grid_type) == 'regional' ) then if (trim(grid_format) == 'nc') then @@ -332,7 +333,6 @@ subroutine init_grid2 real (kind=dbl_kind) :: & angle_0, angle_w, angle_s, angle_sw, & pi, pi2, puny -! real (kind=dbl_kind) :: ANGLET_dum logical (kind=log_kind), dimension(nx_block,ny_block,max_blocks):: & out_of_range @@ -355,6 +355,7 @@ subroutine init_grid2 if (trim(grid_type) == 'displaced_pole' .or. & trim(grid_type) == 'tripole' .or. & + trim(grid_type) == 'reg_dmi' .or. & trim(grid_type) == 'regional' ) then if (trim(grid_format) == 'nc') then call popgrid_nc ! read POP grid lengths from nc file @@ -470,10 +471,13 @@ subroutine init_grid2 !----------------------------------------------------------------- ! Compute ANGLE on T-grid !----------------------------------------------------------------- - ANGLET = c0 - + if (.not. (trim(grid_type) == 'reg_dmi')) then + ANGLET = c0 + endif if (trim(grid_type) == 'cpom_grid') then ANGLET(:,:,:) = ANGLE(:,:,:) + elseif (trim(grid_type) == 'reg_dmi') then + ! nothing done here as anglet is read else !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block, & @@ -531,9 +535,9 @@ subroutine init_grid2 call ice_timer_stop(timer_bound) call makemask ! velocity mask, hemisphere masks - - call Tlatlon ! get lat, lon on the T grid - + if (.not. (trim(grid_type) == 'reg_dmi')) then + call Tlatlon ! get lat, lon on the T grid + endif !----------------------------------------------------------------- ! bathymetry !----------------------------------------------------------------- @@ -806,7 +810,22 @@ subroutine popgrid_nc call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! ANGLE call scatter_global(ANGLE, work_g1, master_task, distrb_info, & field_loc_NEcorner, field_type_angle) - + if (trim(grid_type) == 'reg_dmi') then + fieldname='anglet' + call ice_read_nc(fid_grid,1,fieldname,anglet,diag, & + field_loc=field_loc_center, & + field_type=field_type_angle) + where (ANGLET > pi) ANGLET = pi + where (ANGLET < -pi) ANGLET = -pi + fieldname="tlon" + call ice_read_nc(fid_grid,1,fieldname,tlon,diag, & + field_loc=field_loc_center, & + field_type=field_type_scalar) + fieldname="tlat" + call ice_read_nc(fid_grid,1,fieldname,TLAT,diag, & + field_loc=field_loc_center, & + field_type=field_type_scalar) + endif ! fix ANGLE: roundoff error due to single precision where (ANGLE > pi) ANGLE = pi where (ANGLE < -pi) ANGLE = -pi @@ -820,7 +839,6 @@ subroutine popgrid_nc fieldname='htn' call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTN call primary_grid_lengths_HTN(work_g1) ! dxu, dxt - fieldname='hte' call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTE call primary_grid_lengths_HTE(work_g1) ! dyu, dyt @@ -1737,7 +1755,6 @@ subroutine Tlatlon enddo ! j enddo ! iblk !$OMP END PARALLEL DO - if (trim(grid_type) == 'regional') then ! for W boundary extrapolate from interior !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) From 8b108741258becd4038ca928aabafdfbcbd631d6 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Wed, 5 Feb 2020 18:50:28 +0000 Subject: [PATCH 07/14] cice cap. DMI --- cicecore/drivers/nuopc/dmi/cice_cap.info | 1031 ++++++++++++++++++++++ 1 file changed, 1031 insertions(+) create mode 100644 cicecore/drivers/nuopc/dmi/cice_cap.info diff --git a/cicecore/drivers/nuopc/dmi/cice_cap.info b/cicecore/drivers/nuopc/dmi/cice_cap.info new file mode 100644 index 000000000..49127cc15 --- /dev/null +++ b/cicecore/drivers/nuopc/dmi/cice_cap.info @@ -0,0 +1,1031 @@ +module cice_cap +!--------------- LANL CICE NUOPC CAP ----------------- +! This is the DMI CICE model cap component that is NUOPC compliant. +! Author: Fei.Liu@gmail.com +! 5/10/13 +! This is now acting as a cap/connector between NUOPC driver and LANL CICE code. +! Author: Anthony.Craig@gmail.com +! Added cice grid code to match internal grid representation +! Updated by Till Rasmussen, DMI + +! cice specific + use ice_blocks, only: nx_block, ny_block, nblocks_tot, block, get_block, & + get_block_parameter + use ice_domain_size, only: max_blocks, nx_global, ny_global + use ice_domain, only: nblocks, blocks_ice, distrb_info + use ice_distribution, only: ice_distributiongetblockloc + use icepack_parameters, only: Tffresh, rad_to_deg + use ice_calendar, only: dt + use ice_flux + use ice_grid, only: TLAT, TLON, ULAT, ULON, hm, tarea, ANGLET, ANGLE, & + dxt, dyt, t2ugrid_vector + use ice_state + use CICE_RunMod + use CICE_InitMod + use CICE_FinalMod +!end cice specific + use ESMF + use NUOPC + use mod_nuopc_options, only: esmf_write_diagnostics + use NUOPC_Model, & + model_routine_SS => SetServices, & + model_label_SetClock => label_SetClock, & + model_label_Advance => label_Advance, & + model_label_Finalize => label_Finalize + + implicit none + + private + + public SetServices + +! type cice_internalstate_type +! end type + +! type cice_internalstate_wrapper +! type(cice_internalstate_type), pointer :: ptr +! end type + + integer :: import_slice = 0 + integer :: export_slice = 0 + + type fld_list_type + character(len=64) :: stdname + character(len=64) :: shortname + character(len=64) :: canonicalUnits + character(len=64) :: transferOffer + logical :: assoc ! is the farrayPtr associated with internal data + real(ESMF_KIND_R8), dimension(:,:,:), pointer :: farrayPtr + end type fld_list_type + + integer,parameter :: fldsMax = 50 + integer :: fldsToIce_num = 0 + type (fld_list_type) :: fldsToIce(fldsMax) + integer :: fldsFrIce_num = 0 + type (fld_list_type) :: fldsFrIce(fldsMax) + +!tarnotused integer :: lsize ! local number of gridcells for coupling + character(len=256) :: tmpstr + character(len=2048):: info + logical :: isPresent + integer :: dbrc ! temporary debug rc value + + logical :: profile_memory = .true. + + contains + !----------------------------------------------------------------------------- + subroutine SetServices(gcomp, rc) + type(ESMF_GridComp) :: gcomp + integer, intent(out) :: rc + character(len=*),parameter :: subname='(cice:SetServices)' + rc = ESMF_SUCCESS + + ! the NUOPC model component will register the generic methods + call NUOPC_CompDerive(gcomp, model_routine_SS, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + ! set entry point for methods that require specific implementation + call NUOPC_CompSetEntryPoint(gcomp, ESMF_METHOD_INITIALIZE, & + phaseLabelList=(/"IPDv00p1"/), userRoutine=InitializeAdvertise, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call NUOPC_CompSetEntryPoint(gcomp, ESMF_METHOD_INITIALIZE, & + phaseLabelList=(/"IPDv00p2"/), userRoutine=InitializeRealize, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + ! attach specializing method(s) + call NUOPC_CompSpecialize(gcomp, specLabel=model_label_SetClock, & + specRoutine=SetClock, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call NUOPC_CompSpecialize(gcomp, specLabel=model_label_Advance, & + specRoutine=ModelAdvance, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + + call NUOPC_CompSpecialize(gcomp, specLabel=model_label_Finalize, & + specRoutine=cice_model_finalize, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + end subroutine + + !----------------------------------------------------------------------------- + + subroutine InitializeAdvertise(gcomp, importState, exportState, clock, rc) + type(ESMF_GridComp) :: gcomp + type(ESMF_State) :: importState, exportState + type(ESMF_Clock) :: clock + integer, intent(out) :: rc + ! Local Variables + type(ESMF_VM) :: vm + integer :: mpi_comm + character(len=*),parameter :: subname='(cice_cap:InitializeAdvertise)' + rc = ESMF_SUCCESS + call ESMF_VMGetCurrent(vm, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call ESMF_VMGet(vm, mpiCommunicator=mpi_comm, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call CICE_FieldsSetup() + call CICE_Initialize(mpi_comm) + + call CICE_AdvertiseFields(importState, fldsToIce_num, fldsToIce, rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call CICE_AdvertiseFields(exportState, fldsFrIce_num, fldsFrIce, rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + write(info,*) subname,' --- initialization phase 1 completed --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + + end subroutine + + !----------------------------------------------------------------------------- + + subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) + type(ESMF_GridComp) :: gcomp + type(ESMF_State) :: importState, exportState + type(ESMF_Clock) :: clock + integer, intent(out) :: rc + + ! Local Variables + type(ESMF_VM) :: vm + type(ESMF_Grid) :: gridIn + type(ESMF_Grid) :: gridOut + type(ESMF_DistGrid) :: distgrid + type(ESMF_DistGridConnection), allocatable :: connectionList(:) + integer :: npet + integer :: i,j,iblk, n, i1,j1, DE + integer :: ilo,ihi,jlo,jhi + integer :: ig,jg,cnt + integer :: peID,locID + integer :: peIDCount + integer, pointer :: indexList(:) + integer, pointer :: deLabelList(:) + integer, pointer :: deBlockList(:,:,:) + integer, pointer :: petMap(:) + integer, pointer :: i_glob(:),j_glob(:) + integer :: lbnd(2),ubnd(2) + type(block) :: this_block + type(ESMF_DELayout) :: delayout + real(ESMF_KIND_R8), pointer :: tarray(:,:) + real(ESMF_KIND_R8), pointer :: coordXcenter(:,:) + real(ESMF_KIND_R8), pointer :: coordYcenter(:,:) + real(ESMF_KIND_R8), pointer :: coordXcorner(:,:) + real(ESMF_KIND_R8), pointer :: coordYcorner(:,:) + integer(ESMF_KIND_I4), pointer :: gridmask(:,:) + real(ESMF_KIND_R8), pointer :: gridarea(:,:) + character(len=*),parameter :: subname='(cice_cap:InitializeRealize)' + rc = ESMF_SUCCESS + + ! We can check if npet is 4 or some other value to make sure + ! CICE is configured to run on the correct number of processors. + + ! create a Grid object for Fields + ! we are going to create a single tile displaced pole grid from a gridspec + ! file. We also use the exact decomposition in CICE so that the Fields + ! created can wrap on the data pointers in internal part of CICE + write(tmpstr,'(a,2i8)') subname//' ice nx,ny = ',nx_global,ny_global + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + +! distgrid = ESMF_DistGridCreate(minIndex=(/1,1/), maxIndex=(/nx_global,ny_global/), & +! regDecomp=(/2,2/), rc=rc) + + allocate(deBlockList(2,2,nblocks_tot)) + allocate(petMap(nblocks_tot)) + allocate(deLabelList(nblocks_tot)) + + write(tmpstr,'(a,2i8)') subname//' nblocks = ',nblocks_tot, nblocks + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + peIDCount = 0 + do n = 1, nblocks_tot + deLabelList(n) = n-1 + call get_block_parameter(n,ilo=ilo,ihi=ihi,jlo=jlo,jhi=jhi, & + i_glob=i_glob,j_glob=j_glob) +! deBlockList(1,1,n) = i_glob(ilo) +! deBlockList(1,2,n) = i_glob(ihi) +! deBlockList(2,1,n) = j_glob(jlo) +! deBlockList(2,2,n) = j_glob(jhi) + call ice_distributionGetBlockLoc(distrb_info,n,peID,locID) + if (peID > 0) then + peIDCount = peIDCount+1 + petMap(peIDCount) = peID-1 + deBlockList(1,1,peIDCount) = i_glob(ilo) + deBlockList(1,2,peIDCount) = i_glob(ihi) + deBlockList(2,1,peIDCount) = j_glob(jlo) + deBlockList(2,2,PeIDCount) = j_glob(jhi) + write(tmpstr,'(a,4i8)') subname//' ID2s = ',n,peID, locID, nblocks + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + !reducepetmappetMap(n) = max(0,peID - 1) + write(tmpstr,'(a,4i8)') subname//' IDs = ',n,peID, locID, nblocks + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + write(tmpstr,'(a,3i8)') subname//' iglo = ',n,deBlockList(1,1,peIDCount),deBlockList(1,2,peIDCount) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + write(tmpstr,'(a,3i8)') subname//' jglo = ',n,deBlockList(2,1,peIDCount),deBlockList(2,2,peIDCount) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + endif + enddo + write(tmpstr,'(a,1i8)') subname//' npeID ',peIDCount + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) +!!!TAR ADDED 141119 + delayout = ESMF_DELayoutCreate(petMap(1:peIDCount), rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + +!tarnotglobal allocate(connectionList(2)) + ! bipolar boundary condition at top row: nyg +!tarnotglobal call ESMF_DistGridConnectionSet(connectionList(1), tileIndexA=1, & +!tarnotglobal tileIndexB=1, positionVector=(/nx_global+1, 2*ny_global+1/), & +!tarnotglobal orientationVector=(/-1, -2/), rc=rc) +!tarnotglobal if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & +!tarnotglobal line=__LINE__, & +!tarnotglobal file=__FILE__)) & +!tarnotglobal return ! bail out + ! periodic boundary condition along first dimension +!tarnotglobal call ESMF_DistGridConnectionSet(connectionList(2), tileIndexA=1, & +!tarnotglobal tileIndexB=1, positionVector=(/nx_global, 0/), rc=rc) +!tarnotglobal if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & +!tarnotglobal line=__LINE__, & +!tarnotglobal file=__FILE__)) & +!tarnotglobal return ! bail out + + distgrid = ESMF_DistGridCreate(minIndex=(/1,1/), maxIndex=(/nx_global,ny_global/), & +! indexflag = ESMF_INDEX_DELOCAL, & + deBlockList=deBlockList(:,:,1:peIDCount), & +! deLabelList=deLabelList, & + delayout=delayout, & +!tarnotglobal connectionList=connectionList, & + rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + deallocate(deLabelList) + deallocate(deBlockList) + deallocate(petMap) +!tarnotglobal deallocate(connectionList) + + call ESMF_DistGridGet(distgrid=distgrid, localDE=0, elementCount=cnt, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + allocate(indexList(cnt)) + write(tmpstr,'(a,i8)') subname//' distgrid cnt= ',cnt + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + call ESMF_DistGridGet(distgrid=distgrid, localDE=0, seqIndexList=indexList, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + write(tmpstr,'(a,4i8)') subname//' distgrid list= ',indexList(1),indexList(cnt),minval(indexList), maxval(indexList) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + deallocate(IndexList) + + gridIn = ESMF_GridCreate(distgrid=distgrid, & + coordSys = ESMF_COORDSYS_SPH_DEG, & + gridEdgeLWidth=(/0,0/), gridEdgeUWidth=(/0,1/), & + rc = rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + call ESMF_GridAddCoord(gridIn, staggerLoc=ESMF_STAGGERLOC_CENTER, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_GridAddCoord(gridIn, staggerLoc=ESMF_STAGGERLOC_CORNER, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_GridAddItem(gridIn, itemFlag=ESMF_GRIDITEM_MASK, itemTypeKind=ESMF_TYPEKIND_I4, & + staggerLoc=ESMF_STAGGERLOC_CENTER, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_GridAddItem(gridIn, itemFlag=ESMF_GRIDITEM_AREA, itemTypeKind=ESMF_TYPEKIND_R8, & + staggerLoc=ESMF_STAGGERLOC_CENTER, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + do iblk = 1,nblocks + DE = iblk-1 + this_block = get_block(blocks_ice(iblk),iblk) + ilo = this_block%ilo + ihi = this_block%ihi + jlo = this_block%jlo + jhi = this_block%jhi + + call ESMF_GridGetCoord(gridIn, coordDim=1, localDE=DE, & + staggerloc=ESMF_STAGGERLOC_CENTER, & + computationalLBound=lbnd, computationalUBound=ubnd, & + farrayPtr=coordXcenter, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_GridGetCoord(gridIn, coordDim=2, localDE=DE, & + staggerloc=ESMF_STAGGERLOC_CENTER, & + farrayPtr=coordYcenter, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + write(tmpstr,'(a,5i8)') subname//' iblk center bnds ',iblk,lbnd,ubnd + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + if (lbnd(1) /= 1 .or. lbnd(2) /= 1 .or. ubnd(1) /= ihi-ilo+1 .or. ubnd(2) /= jhi-jlo+1) then + write(tmpstr,'(a,5i8)') subname//' iblk bnds ERROR ' + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, line=__LINE__, file=__FILE__, rc=dbrc) + write(tmpstr,'(a,4i8)') subname//' iblk center bnds 2',ihi, ilo, jhi,jlo + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, line=__LINE__, file=__FILE__, rc=dbrc) + rc = ESMF_FAILURE + return + endif + + call ESMF_GridGetItem(gridIn, itemflag=ESMF_GRIDITEM_MASK, localDE=DE, & + staggerloc=ESMF_STAGGERLOC_CENTER, & + farrayPtr=gridmask, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_GridGetItem(gridIn, itemflag=ESMF_GRIDITEM_AREA, localDE=DE, & + staggerloc=ESMF_STAGGERLOC_CENTER, & + farrayPtr=gridarea, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + do j1 = lbnd(2),ubnd(2) + do i1 = lbnd(1),ubnd(1) + i = i1 + ilo - lbnd(1) + j = j1 + jlo - lbnd(2) + coordXcenter(i1,j1) = TLON(i,j,iblk) * rad_to_deg + coordYcenter(i1,j1) = TLAT(i,j,iblk) * rad_to_deg + gridmask(i1,j1) = nint(hm(i,j,iblk)) + gridarea(i1,j1) = tarea(i,j,iblk) + enddo + enddo + + call ESMF_GridGetCoord(gridIn, coordDim=1, localDE=DE, & + staggerloc=ESMF_STAGGERLOC_CORNER, & + computationalLBound=lbnd, computationalUBound=ubnd, & + farrayPtr=coordXcorner, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_GridGetCoord(gridIn, coordDim=2, localDE=DE, & + staggerloc=ESMF_STAGGERLOC_CORNER, & + farrayPtr=coordYcorner, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + write(tmpstr,'(a,5i8)') subname//' iblk corner bnds ',iblk,lbnd,ubnd + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + + ! ULON and ULAT are upper right hand corner from TLON and TLAT + ! corners in ESMF need to be defined lon lower left corner from center + ! ULON and ULAT have ghost cells, leverage that to fill corner arrays + do j1 = lbnd(2),ubnd(2) + do i1 = lbnd(1),ubnd(1) + i = i1 + ilo - lbnd(1) + j = j1 + jlo - lbnd(2) + coordXcorner(i1,j1) = ULON(i-1,j-1,iblk) * rad_to_deg + coordYcorner(i1,j1) = ULAT(i-1,j-1,iblk) * rad_to_deg + enddo + enddo + + enddo + + call ESMF_GridGetCoord(gridIn, coordDim=1, localDE=0, & + staggerLoc=ESMF_STAGGERLOC_CENTER, farrayPtr=tarray, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + write(tmpstr,'(a,2g15.7)') subname//' gridIn center1 = ',minval(tarray),maxval(tarray) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + + call ESMF_GridGetCoord(gridIn, coordDim=2, localDE=0, & + staggerLoc=ESMF_STAGGERLOC_CENTER, farrayPtr=tarray, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + write(tmpstr,'(a,2g15.7)') subname//' gridIn center2 = ',minval(tarray),maxval(tarray) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + + call ESMF_GridGetCoord(gridIn, coordDim=1, localDE=0, & + staggerLoc=ESMF_STAGGERLOC_CORNER, farrayPtr=tarray, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + write(tmpstr,'(a,2g15.7)') subname//' gridIn corner1 = ',minval(tarray),maxval(tarray) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + + call ESMF_GridGetCoord(gridIn, coordDim=2, localDE=0, & + staggerLoc=ESMF_STAGGERLOC_CORNER, farrayPtr=tarray, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + write(tmpstr,'(a,2g15.7)') subname//' gridIn corner2 = ',minval(tarray),maxval(tarray) + call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + !TAR FOR NOW GRIDS ARE ASSUMED IDENTICAL. THIS MAY change at a later state. Not necessary + gridOut = gridIn ! for now out same as in +! ice_grid_i = gridIn + + call CICE_RealizeFields(importState, gridIn , fldsToIce_num, fldsToIce, "Ice import", rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call CICE_RealizeFields(exportState, gridOut, fldsFrIce_num, fldsFrIce, "Ice export", rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + ! Import data to CICE native structures through glue fields. + call CICE_Import(importState,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + ! Export CICE native structures to data through glue fields. + CALL CICE_export(exportState, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + write(info,*) subname,' --- initialization phase 2 completed --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, line=__LINE__, file=__FILE__, rc=dbrc) + + end subroutine + + !----------------------------------------------------------------------------- + + ! CICE model uses same clock as parent gridComp + subroutine SetClock(gcomp, rc) + type(ESMF_GridComp) :: gcomp + integer, intent(out) :: rc + + ! local variables + type(ESMF_Clock) :: clock + type(ESMF_TimeInterval) :: stabilityTimeStep, timestep + character(len=*),parameter :: subname='(cice_cap:SetClock)' + + rc = ESMF_SUCCESS + ! query the Component for its clock, importState and exportState + call ESMF_GridCompGet(gcomp, clock=clock, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + ! tcraig: dt is the cice thermodynamic timestep in seconds + call ESMF_TimeIntervalSet(timestep, s=nint(dt), rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call ESMF_ClockSet(clock, timestep=timestep, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + ! initialize internal clock + ! here: parent Clock and stability timeStep determine actual model timeStep + call ESMF_TimeIntervalSet(stabilityTimeStep, s=nint(dt), rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call NUOPC_CompSetClock(gcomp, clock, stabilityTimeStep, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + end subroutine + + !----------------------------------------------------------------------------- + + subroutine ModelAdvance(gcomp, rc) + type(ESMF_GridComp) :: gcomp + integer, intent(out) :: rc + + ! local variables + type(ESMF_Clock) :: clock + type(ESMF_State) :: importState, exportState + type(ESMF_Time) :: currTime + type(ESMF_TimeInterval) :: timeStep + type(ESMF_Field) :: lfield,lfield2d + type(ESMF_Grid) :: grid + real(ESMF_KIND_R8), pointer :: fldptr(:,:,:) + real(ESMF_KIND_R8), pointer :: fldptr2d(:,:) + type(block) :: this_block + character(len=64) :: fldname + integer :: i,j,iblk,n,i1,i2,j1,j2 + integer :: ilo,ihi,jlo,jhi + real(ESMF_KIND_R8) :: ue, vn, ui, vj +! real(ESMF_KIND_R8) :: sigma_r, sigma_l, sigma_c + type(ESMF_StateItem_Flag) :: itemType + character(240) :: msgString + character(len=*),parameter :: subname='(cice_cap:ModelAdvance)' + rc = ESMF_SUCCESS + if(profile_memory) call ESMF_VMLogMemInfo("Entering CICE Model_ADVANCE: ") + write(info,*) subname,' --- run phase 1 called --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + import_slice = import_slice + 1 + export_slice = export_slice + 1 + + ! query the Component for its clock, importState and exportState + call NUOPC_ModelGet(gcomp, modelClock=clock, importState=importState, & + exportState=exportState, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + ! HERE THE MODEL ADVANCES: currTime -> currTime + timeStep + + ! Because of the way that the internal Clock was set in SetClock(), + ! its timeStep is likely smaller than the parent timeStep. As a consequence + ! the time interval covered by a single parent timeStep will result in + ! multiple calls to the ModelAdvance() routine. Every time the currTime + ! will come in by one internal timeStep advanced. This goes until the + ! stopTime of the internal Clock has been reached. + + call ESMF_ClockPrint(clock, options="currTime", & + preString="------>Advancing CICE from: ", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call ESMF_ClockGet(clock, currTime=currTime, timeStep=timeStep, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call ESMF_TimePrint(currTime + timeStep, & + preString="--------------------------------> to: ", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out +!TODO ADD LOGFOUNDERROR + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call CICE_Import(importState,rc) + if (esmf_write_diagnostics >0) then + if (mod(import_slice,esmf_write_diagnostics)==0) then + call nuopc_write(state=importState,filenamePrefix='Import_CICE', & + timeslice=import_slice/esmf_write_diagnostics,rc=rc) + endif + endif ! write_diagnostics + write(info,*) subname,' --- run phase 2 called --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + if(profile_memory) call ESMF_VMLogMemInfo("Before CICE_Run") + call CICE_Run + + if(profile_memory) call ESMF_VMLogMemInfo("After CICE_Run") + write(info,*) subname,' --- run phase 3 called --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + + !---- local modifications to coupling fields ----- + call CICE_Export(exportState,rc=rc) + if (esmf_write_diagnostics >0) then + if (mod(export_slice,esmf_write_diagnostics)==0) then + call nuopc_write(state=exportState,filenamePrefix='Export_CICE', & + timeslice=export_slice/esmf_write_diagnostics,rc=rc) + endif + endif + !------------------------------------------------- + + !call state_diagnose(exportState, 'cice_export', rc) + write(info,*) subname,' --- run phase 4 called --- ',rc + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + if(profile_memory) call ESMF_VMLogMemInfo("Leaving CICE Model_ADVANCE: ") + end subroutine + + subroutine cice_model_finalize(gcomp, rc) + + ! input arguments + type(ESMF_GridComp) :: gcomp + integer, intent(out) :: rc + + ! local variables + type(ESMF_Clock) :: clock + type(ESMF_Time) :: currTime + character(len=*),parameter :: subname='(cice_cap:cice_model_finalize)' + + rc = ESMF_SUCCESS + + write(info,*) subname,' --- finalize called --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + + call NUOPC_ModelGet(gcomp, modelClock=clock, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call ESMF_ClockGet(clock, currTime=currTime, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call CICE_Finalize + + write(info,*) subname,' --- finalize completed --- ' + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + + end subroutine cice_model_finalize + + subroutine CICE_AdvertiseFields(state, nfields, field_defs, rc) + + type(ESMF_State), intent(inout) :: state + integer,intent(in) :: nfields + type(fld_list_type), intent(inout) :: field_defs(:) + integer, intent(inout) :: rc + + integer :: i + character(len=*),parameter :: subname='(cice_cap:CICE_AdvertiseFields)' + + rc = ESMF_SUCCESS + !write(6,*) nfields + do i = 1, nfields + if (.not. NUOPC_FieldDictionaryHasEntry(trim(field_defs(i)%stdname))) then + write(6,*) trim(field_defs(i)%stdname), trim(field_defs(i)%canonicalUnits) + call NUOPC_FieldDictionaryAddEntry( & + standardName=trim(field_defs(i)%stdname), & + canonicalUnits=trim(field_defs(i)%canonicalUnits), & + rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + endif + + call ESMF_LogWrite('Advertise: '//trim(field_defs(i)%stdname), ESMF_LOGMSG_INFO, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + call NUOPC_Advertise(state, & + standardName=field_defs(i)%stdname, & + name=field_defs(i)%shortname, & + rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + + enddo + call flush(6) + + end subroutine CICE_AdvertiseFields + + subroutine CICE_RealizeFields(state, grid, nfields, field_defs, tag, rc) + + type(ESMF_State), intent(inout) :: state + type(ESMF_Grid), intent(in) :: grid + integer, intent(in) :: nfields + type(fld_list_type), intent(inout) :: field_defs(:) + character(len=*), intent(in) :: tag + integer, intent(inout) :: rc + + integer :: i + type(ESMF_Field) :: field + integer :: npet, nx, ny, pet, elb(2), eub(2), clb(2), cub(2), tlb(2), tub(2) + type(ESMF_VM) :: vm + character(len=*),parameter :: subname='(cice_cap:CICE_RealizeFields)' + + rc = ESMF_SUCCESS + + do i = 1, nfields + if (field_defs(i)%assoc) then + write(info, *) subname, tag, ' Field ', field_defs(i)%shortname, ':', & + lbound(field_defs(i)%farrayPtr,1), ubound(field_defs(i)%farrayPtr,1), & + lbound(field_defs(i)%farrayPtr,2), ubound(field_defs(i)%farrayPtr,2), & + lbound(field_defs(i)%farrayPtr,3), ubound(field_defs(i)%farrayPtr,3) + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + field = ESMF_FieldCreate(grid=grid, & + farray=field_defs(i)%farrayPtr, indexflag=ESMF_INDEX_DELOCAL, & + ungriddedLBound=(/1/), ungriddedUBound=(/max_blocks/), & + name=field_defs(i)%shortname, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + else + field = ESMF_FieldCreate(grid, ESMF_TYPEKIND_R8, indexflag=ESMF_INDEX_DELOCAL, & + ungriddedLBound=(/1/), ungriddedUBound=(/max_blocks/), & + name=field_defs(i)%shortname, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + endif + + if (NUOPC_IsConnected(state, fieldName=field_defs(i)%shortname)) then + call NUOPC_Realize(state, field=field, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + call ESMF_LogWrite(subname // tag // " Field "// field_defs(i)%stdname // " is connected.", & + ESMF_LOGMSG_INFO, & + line=__LINE__, & + file=__FILE__, & + rc=dbrc) + else + call ESMF_LogWrite(subname // tag // " Field "// field_defs(i)%stdname // " is not connected.", & + ESMF_LOGMSG_INFO, & + line=__LINE__, & + file=__FILE__, & + rc=dbrc) + ! TODO: Initialize the value in the pointer to 0 after proper restart is setup + !if(associated(field_defs(i)%farrayPtr) ) field_defs(i)%farrayPtr = 0.0 + ! remove a not connected Field from State + call ESMF_StateRemove(state, (/field_defs(i)%shortname/), rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=__FILE__)) & + return ! bail out + endif + + enddo + + + end subroutine CICE_RealizeFields + + !----------------------------------------------------------------------------- + + + !----------------------------------------------------------------------------- + + + !----------------------------------------------------------------------------- + + subroutine State_GetFldPtr(ST, fldname, fldptr, rc) + type(ESMF_State), intent(in) :: ST + character(len=*), intent(in) :: fldname + real(ESMF_KIND_R8), pointer, intent(in) :: fldptr(:,:,:) + integer, intent(out), optional :: rc + + ! local variables + type(ESMF_Field) :: lfield + integer :: lrc + character(len=*),parameter :: subname='(cice_cap:State_GetFldPtr)' + + call ESMF_StateGet(ST, itemName=trim(fldname), field=lfield, rc=lrc) + if (ESMF_LogFoundError(rcToCheck=lrc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + call ESMF_FieldGet(lfield, farrayPtr=fldptr, rc=lrc) + if (ESMF_LogFoundError(rcToCheck=lrc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return + + if (present(rc)) rc = lrc + + end subroutine State_GetFldPtr + + subroutine CICE_FieldsSetup + character(len=*),parameter :: subname='(cice_cap:CICE_FieldsSetup)' + +!--------- import fields to Sea Ice ------------- + !tartmpwrite(6,*) subname +! tcraig, don't point directly into cice data YET (last field is optional in interface) +! instead, create space for the field when it's "realized". +!TODO REMOVE FIELDS NOT USED TAR +! WILL PROVIDE means that field has its own grid. Can be changed to accept grid from outside + call fld_list_add(fldsToIce_num, fldsToIce, "sea_surface_temperature" ,"K" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "sea_surface_salinity" ,"1" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "sea_level" ,"m" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "sea_surface_slope_zonal" ,"1" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "sea_surface_slope_merid" ,"1" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "ocn_current_zonal" ,"m/s" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "ocn_current_merid" ,"m/s" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "freezing_melting_potential" ,"1" , "will provide") + call fld_list_add(fldsToIce_num, fldsToIce, "mixed_layer_depth" ,"m" , "will provide") +! fields for export + call fld_list_add(fldsFrIce_num, fldsFrIce, "sea_ice_fraction" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "stress_on_ocn_ice_zonal" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "stress_on_ocn_ice_merid" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "sea_ice_temperature" ,"1" , "will provide") +! call fld_list_add(fldsFrIce_num, fldsFrIce, "ice_mask" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "mean_sw_pen_to_ocn" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "mean_fresh_water_to_ocean_rate" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "mean_salt_rate" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "net_heat_flx_to_ocn" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "mean_ice_volume" ,"1" , "will provide") + call fld_list_add(fldsFrIce_num, fldsFrIce, "mean_snow_volume" ,"1" , "will provide") + + end subroutine CICE_FieldsSetup + + !----------------------------------------------------------------------------- + + subroutine fld_list_add(num, fldlist, stdname, canonicalUnits, transferOffer, data, shortname) + ! ---------------------------------------------- + ! Set up a list of field information + ! ---------------------------------------------- + integer, intent(inout) :: num + type(fld_list_type), intent(inout) :: fldlist(:) + character(len=*), intent(in) :: stdname + character(len=*), intent(in) :: canonicalUnits + character(len=*), intent(in) :: transferOffer + real(ESMF_KIND_R8), dimension(:,:,:), optional, target :: data + character(len=*), intent(in),optional :: shortname + + ! local variables + integer :: rc + character(len=*), parameter :: subname='(cice_cap:fld_list_add)' + ! fill in the new entry + + num = num + 1 + if (num > fldsMax) then + call ESMF_LogWrite(trim(subname)//": ERROR num gt fldsMax "//trim(stdname), & + ESMF_LOGMSG_ERROR, line=__LINE__, file=__FILE__, rc=dbrc) + return + endif + + fldlist(num)%stdname = trim(stdname) + fldlist(num)%canonicalUnits = trim(canonicalUnits) + if (present(shortname)) then + fldlist(num)%shortname = trim(shortname) + else + fldlist(num)%shortname = trim(stdname) + endif + fldlist(num)%transferOffer = trim(transferOffer) + if (present(data)) then + fldlist(num)%assoc = .true. + fldlist(num)%farrayPtr => data + else + fldlist(num)%assoc = .false. + endif + + end subroutine fld_list_add + + !----------------------------------------------------------------------------- + subroutine CICE_Import(st,rc) + type(ESMF_State) :: st + logical :: initflag + integer, intent(out) :: rc + real(kind=ESMF_KIND_R8), pointer :: dataPtr_sst(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_sss(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_ssh(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_sssz(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_sssm(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_ocncz(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_ocncm(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_fmpot(:,:,:) + real(kind=ESMF_KIND_R8), pointer :: dataPtr_mld(:,:,:) + integer :: ilo,ihi,jlo,jhi + integer :: i,j,iblk,n,i1,i2,j1,j2 + real(kind=ESMF_KIND_R8) :: ue, vn, AngT_s + type(block) :: this_block + character(len=*),parameter :: subname='(cice_cap:CICE_Import)' + + call State_getFldPtr(st,'sea_surface_temperature',dataPtr_sst,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'sea_surface_salinity',dataPtr_sss,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'sea_level',dataPtr_ssh,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'sea_surface_slope_zonal',dataPtr_sssz,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'sea_surface_slope_merid',dataPtr_sssm,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'ocn_current_zonal',dataPtr_ocncz,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'ocn_current_merid',dataPtr_ocncm,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'freezing_melting_potential',dataPtr_fmpot,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'mixed_layer_depth',dataPtr_mld,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + do iblk = 1,nblocks + this_block = get_block(blocks_ice(iblk),iblk) + ilo = this_block%ilo + ihi = this_block%ihi + jlo = this_block%jlo + jhi = this_block%jhi + do j = jlo,jhi + do i = ilo,ihi + i1 = i - ilo + 1 + j1 = j - jlo + 1 + sss (i,j,iblk) = dataPtr_sss (i1,j1,iblk) ! sea surface salinity (maybe for mushy layer) + sst (i,j,iblk) = dataPtr_sst (i1,j1,iblk) - Tffresh ! sea surface temp (may not be needed?) + + frzmlt (i,j,iblk) = dataPtr_fmpot (i1,j1,iblk) + ue = dataPtr_ocncz (i1,j1,iblk) + vn = dataPtr_ocncm (i1,j1,iblk) + AngT_s = ANGLET(i,j,iblk) + uocn (i,j,iblk) = ue*cos(AngT_s) - vn*sin(AngT_s) + vocn (i,j,iblk) = ue*sin(AngT_s) + vn*cos(AngT_s) + ue = dataPtr_sssz (i1,j1,iblk) + vn = dataPtr_sssm (i1,j1,iblk) + ss_tltx(i,j,iblk) = ue*cos(AngT_s) - vn*sin(AngT_s) + ss_tlty(i,j,iblk) = ue*sin(AngT_s) + vn*cos(AngT_s) + enddo + enddo + call t2ugrid_vector(ss_tltx) + call t2ugrid_vector(ss_tlty) + call t2ugrid_vector(uocn) + call t2ugrid_vector(vocn) + enddo + + end subroutine + subroutine CICE_Export(st,rc) + type(ESMF_State) :: st + integer, intent(out) :: rc +! real(ESMF_KIND_R8), pointer :: dataPtr_mask(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_ifrac(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_itemp(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_strocnxT(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_strocnyT(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_fhocn(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_fresh(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_fsalt(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_vice(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_vsno(:,:,:) + real(ESMF_KIND_R8), pointer :: dataPtr_fswthru(:,:,:) + + integer :: ilo,ihi,jlo,jhi + integer :: i,j,iblk,n,i1,i2,j1,j2 + real(kind=ESMF_KIND_R8) :: ui, vj, angT + + type(block) :: this_block + character(len=*),parameter :: subname='(cice_cap:CICE_Export)' +!TODO clean up fields +! call State_getFldPtr(st,'ice_mask',dataPtr_mask,rc=rc) +! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'sea_ice_fraction',dataPtr_ifrac,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'sea_ice_temperature',dataPtr_itemp,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'stress_on_ocn_ice_zonal',dataPtr_strocnxT,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'stress_on_ocn_ice_merid',dataPtr_strocnyT,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'net_heat_flx_to_ocn',dataPtr_fhocn,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'mean_fresh_water_to_ocean_rate',dataPtr_fresh,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'mean_salt_rate',dataPtr_fsalt,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'mean_ice_volume',dataPtr_vice,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'mean_snow_volume',dataPtr_vsno,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + call State_getFldPtr(st,'mean_sw_pen_to_ocn',dataPtr_fswthru,rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU,line=__LINE__,file=__FILE__)) return + + write(info, *) subname//' ifrac size :', & + lbound(dataPtr_ifrac,1), ubound(dataPtr_ifrac,1), & + lbound(dataPtr_ifrac,2), ubound(dataPtr_ifrac,2), & + lbound(dataPtr_ifrac,3), ubound(dataPtr_ifrac,3) + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + dataPtr_ifrac = 0._ESMF_KIND_R8 + dataPtr_itemp = 0._ESMF_KIND_R8 +! dataPtr_mask = 0._ESMF_KIND_R8 + call ESMF_LogWrite(info, ESMF_LOGMSG_INFO, rc=dbrc) + do iblk = 1,nblocks + this_block = get_block(blocks_ice(iblk),iblk) + ilo = this_block%ilo + ihi = this_block%ihi + jlo = this_block%jlo + jhi = this_block%jhi + do j = jlo,jhi + do i = ilo,ihi + i1 = i - ilo + 1 + j1 = j - jlo + 1 +! if (hm(i,j,iblk) > 0.5) dataPtr_mask(i1,j1,iblk) = 1._ESMF_KIND_R8 + dataPtr_ifrac (i1,j1,iblk) = aice(i,j,iblk) ! ice fraction (0-1) + dataPtr_fhocn (i1,j1,iblk) = fhocn(i,j,iblk) ! heat exchange with ocean + dataPtr_fresh (i1,j1,iblk) = fresh(i,j,iblk) ! fresh water to ocean + dataPtr_fsalt (i1,j1,iblk) = fsalt(i,j,iblk) ! salt to ocean + dataPtr_vice (i1,j1,iblk) = vice(i,j,iblk) ! sea ice volume + dataPtr_vsno (i1,j1,iblk) = vsno(i,j,iblk) ! snow volume + dataPtr_fswthru (i1,j1,iblk) = fswthru(i,j,iblk) ! short wave penetration through ice + ui = strocnxT(i,j,iblk) + vj = strocnyT(i,j,iblk) + angT = ANGLET(i,j,iblk) + dataPtr_strocnxT(i1,j1,iblk) = ui*cos(-angT) + vj*sin(angT) ! ice ocean stress + dataPtr_strocnyT(i1,j1,iblk) = -ui*sin(angT) + vj*cos(-angT) ! ice ocean stress + enddo + enddo + enddo +! write(tmpstr,*) subname//' mask = ',minval(dataPtr_mask),maxval(dataPtr_mask) +! call ESMF_LogWrite(trim(tmpstr), ESMF_LOGMSG_INFO, rc=dbrc) + + + + end subroutine + +end module cice_cap From fddd22c381ba50ed537a8c5f7ecba1fc32757c5f Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Tue, 2 Jun 2020 21:54:19 +0000 Subject: [PATCH 08/14] ice_grid --- cicecore/cicedynB/infrastructure/ice_grid.F90 | 27 ++----------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index fd61e96fa..6f07a727e 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -241,7 +241,6 @@ subroutine init_grid1 if (trim(grid_type) == 'displaced_pole' .or. & trim(grid_type) == 'tripole' .or. & - trim(grid_type) == 'reg_dmi' .or. & trim(grid_type) == 'regional' ) then if (trim(grid_format) == 'nc') then @@ -355,7 +354,6 @@ subroutine init_grid2 if (trim(grid_type) == 'displaced_pole' .or. & trim(grid_type) == 'tripole' .or. & - trim(grid_type) == 'reg_dmi' .or. & trim(grid_type) == 'regional' ) then if (trim(grid_format) == 'nc') then call popgrid_nc ! read POP grid lengths from nc file @@ -471,15 +469,12 @@ subroutine init_grid2 !----------------------------------------------------------------- ! Compute ANGLE on T-grid !----------------------------------------------------------------- - if (.not. (trim(grid_type) == 'reg_dmi')) then - ANGLET = c0 - endif + ANGLET = c0 if (trim(grid_type) == 'cpom_grid') then ANGLET(:,:,:) = ANGLE(:,:,:) - elseif (trim(grid_type) == 'reg_dmi') then - ! nothing done here as anglet is read else + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block, & !$OMP angle_0,angle_w,angle_s,angle_sw) do iblk = 1, nblocks @@ -535,9 +530,7 @@ subroutine init_grid2 call ice_timer_stop(timer_bound) call makemask ! velocity mask, hemisphere masks - if (.not. (trim(grid_type) == 'reg_dmi')) then call Tlatlon ! get lat, lon on the T grid - endif !----------------------------------------------------------------- ! bathymetry !----------------------------------------------------------------- @@ -810,22 +803,6 @@ subroutine popgrid_nc call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! ANGLE call scatter_global(ANGLE, work_g1, master_task, distrb_info, & field_loc_NEcorner, field_type_angle) - if (trim(grid_type) == 'reg_dmi') then - fieldname='anglet' - call ice_read_nc(fid_grid,1,fieldname,anglet,diag, & - field_loc=field_loc_center, & - field_type=field_type_angle) - where (ANGLET > pi) ANGLET = pi - where (ANGLET < -pi) ANGLET = -pi - fieldname="tlon" - call ice_read_nc(fid_grid,1,fieldname,tlon,diag, & - field_loc=field_loc_center, & - field_type=field_type_scalar) - fieldname="tlat" - call ice_read_nc(fid_grid,1,fieldname,TLAT,diag, & - field_loc=field_loc_center, & - field_type=field_type_scalar) - endif ! fix ANGLE: roundoff error due to single precision where (ANGLE > pi) ANGLE = pi where (ANGLE < -pi) ANGLE = -pi From 901504dd928eddca60d022ad0114b94cb1125107 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Tue, 2 Jun 2020 21:58:10 +0000 Subject: [PATCH 09/14] old style ice_init --- cicecore/cicedynB/general/ice_init.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 06b2f97f1..e7820d0b7 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -1274,7 +1274,6 @@ subroutine input_data grid_type /= 'rectangular' .and. & grid_type /= 'cpom_grid' .and. & grid_type /= 'regional' .and. & - grid_type /= 'reg_dmi' .and. & grid_type /= 'latlon' ) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: unknown grid_type=',trim(grid_type) abort_flag = 20 From 903a8ef74325b01bda324e7245ab1917dbc2de16 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Thu, 4 Jun 2020 23:42:33 +0000 Subject: [PATCH 10/14] bugfix. not in loop that uses iblk --- cicecore/cicedynB/dynamics/ice_transport_driver.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cicecore/cicedynB/dynamics/ice_transport_driver.F90 b/cicecore/cicedynB/dynamics/ice_transport_driver.F90 index 037e40e04..c500e1631 100644 --- a/cicecore/cicedynB/dynamics/ice_transport_driver.F90 +++ b/cicecore/cicedynB/dynamics/ice_transport_driver.F90 @@ -609,8 +609,8 @@ subroutine transport_remap (dt) asum_init(0), asum_final(0)) if (l_stop) then - write (nu_diag,*) 'istep1, my_task, iblk =', & - istep1, my_task, iblk + write (nu_diag,*) 'istep1, my_task =', & + istep1, my_task write (nu_diag,*) 'transport: conservation error, cat 0' call abort_ice(subname//'ERROR: conservation error1') endif @@ -623,8 +623,8 @@ subroutine transport_remap (dt) atsum_init(:,n), atsum_final(:,n)) if (l_stop) then - write (nu_diag,*) 'istep1, my_task, iblk, cat =', & - istep1, my_task, iblk, n + write (nu_diag,*) 'istep1, my_task, cat =', & + istep1, my_task, n write (nu_diag,*) 'transport: conservation error, cat ',n call abort_ice(subname//'ERROR: conservation error2') endif From bd5df3c6ca0b661dafc74824325eafd336b8ea42 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Thu, 11 Jun 2020 19:08:22 +0000 Subject: [PATCH 11/14] Read angleT if it exist in grid file --- cicecore/cicedynB/infrastructure/ice_grid.F90 | 55 ++++++++++++++++--- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index 6f07a727e..48cae1ff8 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -133,6 +133,10 @@ module ice_grid real (kind=dbl_kind), dimension (:,:,:), allocatable, public :: & rndex_global ! global index for local subdomain (dbl) + logical (kind=log_kind), private :: & + l_readCenter ! If anglet exist in grid file read it otherwise calculate it + + !======================================================================= contains @@ -469,11 +473,10 @@ subroutine init_grid2 !----------------------------------------------------------------- ! Compute ANGLE on T-grid !----------------------------------------------------------------- - ANGLET = c0 if (trim(grid_type) == 'cpom_grid') then ANGLET(:,:,:) = ANGLE(:,:,:) - else - + else if (.not. (l_readCenter)) then + ANGLET = c0 !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block, & !$OMP angle_0,angle_w,angle_s,angle_sw) @@ -503,7 +506,8 @@ subroutine init_grid2 enddo !$OMP END PARALLEL DO endif ! cpom_grid - if (trim(grid_type) == 'regional') then + if (trim(grid_type) == 'regional' .and. & + (.not. (l_readCenter))) then ! for W boundary extrapolate from interior !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) do iblk = 1, nblocks @@ -530,7 +534,9 @@ subroutine init_grid2 call ice_timer_stop(timer_bound) call makemask ! velocity mask, hemisphere masks + if (.not. (l_readCenter)) then call Tlatlon ! get lat, lon on the T grid + endif !----------------------------------------------------------------- ! bathymetry !----------------------------------------------------------------- @@ -713,6 +719,8 @@ subroutine popgrid_nc field_loc_center, field_loc_NEcorner, & field_type_scalar, field_type_angle use ice_domain_size, only: max_blocks + use netcdf + use ice_communicate, only: ice_barrier integer (kind=int_kind) :: & i, j, iblk, & @@ -736,6 +744,12 @@ subroutine popgrid_nc type (block) :: & this_block ! block information for current block + + integer(kind=int_kind) :: & + varid + integer (kind=int_kind) :: & + status ! status flag + character(len=*), parameter :: subname = '(popgrid_nc)' @@ -748,7 +762,7 @@ subroutine popgrid_nc call ice_open_nc(kmt_file,fid_kmt) diag = .true. ! write diagnostic info - + l_readCenter = .false. !----------------------------------------------------------------- ! topography !----------------------------------------------------------------- @@ -820,13 +834,40 @@ subroutine popgrid_nc call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTE call primary_grid_lengths_HTE(work_g1) ! dyu, dyt + ! if grid file includes anglet then read instead + fieldname='anglet' + if (my_task == master_task) then + status = nf90_inq_varid(fid_grid, trim(fieldname) , varid) + if (status /= nf90_noerr) then + write(nu_diag,*) subname//' CICE will calculate angleT, TLON and TLAT' + else + write(nu_diag,*) subname//' angleT, TLON and TLAT is read from grid file' + l_readCenter = .true. + endif + endif + call broadcast_scalar(l_readCenter,master_task) + if (l_readCenter) then + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) + call scatter_global(ANGLET, work_g1, master_task, distrb_info, & + field_loc_center, field_type_angle) + where (ANGLET > pi) ANGLET = pi + where (ANGLET < -pi) ANGLET = -pi + fieldname="tlon" + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) + call scatter_global(TLON, work_g1, master_task, distrb_info, & + field_loc_center, field_type_scalar) + fieldname="tlat" + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) + call scatter_global(TLAT, work_g1, master_task, distrb_info, & + field_loc_center, field_type_scalar) + endif deallocate(work_g1) if (my_task == master_task) then call ice_close_nc(fid_grid) call ice_close_nc(fid_kmt) endif - + call ice_barrier() #endif end subroutine popgrid_nc @@ -2457,7 +2498,6 @@ subroutine read_basalstress_bathy ! use module use ice_read_write - use ice_communicate, only: my_task, master_task use ice_constants, only: field_loc_center, field_type_scalar ! local variables @@ -2485,7 +2525,6 @@ subroutine read_basalstress_bathy if (my_task == master_task) then write(nu_diag,*) 'reading ',TRIM(fieldname) - write(*,*) 'reading ',TRIM(fieldname) call icepack_warnings_flush(nu_diag) endif call ice_read_nc(fid_init,1,fieldname,bathymetry,diag, & From 54a136506fa09732099d469e8b32d0e07adfb9b3 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Sun, 21 Jun 2020 20:18:10 +0000 Subject: [PATCH 12/14] bug fix missing declaration in ice_step_mod.F90. Only relevant if NEMO_CICE flag is on --- cicecore/cicedynB/general/ice_step_mod.F90 | 6 ++++-- cicecore/cicedynB/infrastructure/ice_grid.F90 | 12 ++++++------ icepack | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cicecore/cicedynB/general/ice_step_mod.F90 b/cicecore/cicedynB/general/ice_step_mod.F90 index 7f9f316a3..2f1a1c75b 100644 --- a/cicecore/cicedynB/general/ice_step_mod.F90 +++ b/cicecore/cicedynB/general/ice_step_mod.F90 @@ -182,7 +182,6 @@ subroutine step_therm1 (dt, iblk) logical (kind=log_kind) :: & prescribed_ice ! if .true., use prescribed ice instead of computed #endif - real (kind=dbl_kind), intent(in) :: & dt ! time step @@ -190,7 +189,10 @@ subroutine step_therm1 (dt, iblk) iblk ! block index ! local variables - +#ifdef CICE_IN_NEMO + real (kind=dbl_kind) :: & + raice ! temporary reverse ice concentration +#endif integer (kind=int_kind) :: & ilo,ihi,jlo,jhi, & ! beginning and end of physical domain i, j , & ! horizontal indices diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index 48cae1ff8..09f00f30f 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -852,13 +852,13 @@ subroutine popgrid_nc field_loc_center, field_type_angle) where (ANGLET > pi) ANGLET = pi where (ANGLET < -pi) ANGLET = -pi - fieldname="tlon" - call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) - call scatter_global(TLON, work_g1, master_task, distrb_info, & + fieldname="tlon" + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) + call scatter_global(TLON, work_g1, master_task, distrb_info, & field_loc_center, field_type_scalar) - fieldname="tlat" - call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) - call scatter_global(TLAT, work_g1, master_task, distrb_info, & + fieldname="tlat" + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) + call scatter_global(TLAT, work_g1, master_task, distrb_info, & field_loc_center, field_type_scalar) endif deallocate(work_g1) diff --git a/icepack b/icepack index 2b27a78aa..09a5e19f0 160000 --- a/icepack +++ b/icepack @@ -1 +1 @@ -Subproject commit 2b27a78aaecb3635d14b94464d918a67df750ff0 +Subproject commit 09a5e19f006f62f60f6b940a4385feb47451368e From 57e934643c2017960656cca48a7acb7d4ae1436a Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Sun, 21 Jun 2020 21:59:46 +0000 Subject: [PATCH 13/14] remove icebarrier --- cicecore/cicedynB/infrastructure/ice_grid.F90 | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index 09f00f30f..f4b5fef6e 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -720,7 +720,6 @@ subroutine popgrid_nc field_type_scalar, field_type_angle use ice_domain_size, only: max_blocks use netcdf - use ice_communicate, only: ice_barrier integer (kind=int_kind) :: & i, j, iblk, & @@ -821,19 +820,6 @@ subroutine popgrid_nc where (ANGLE > pi) ANGLE = pi where (ANGLE < -pi) ANGLE = -pi - !----------------------------------------------------------------- - ! cell dimensions - ! calculate derived quantities from global arrays to preserve - ! information on boundaries - !----------------------------------------------------------------- - - fieldname='htn' - call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTN - call primary_grid_lengths_HTN(work_g1) ! dxu, dxt - fieldname='hte' - call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTE - call primary_grid_lengths_HTE(work_g1) ! dyu, dyt - ! if grid file includes anglet then read instead fieldname='anglet' if (my_task == master_task) then @@ -861,13 +847,25 @@ subroutine popgrid_nc call scatter_global(TLAT, work_g1, master_task, distrb_info, & field_loc_center, field_type_scalar) endif + !----------------------------------------------------------------- + ! cell dimensions + ! calculate derived quantities from global arrays to preserve + ! information on boundaries + !----------------------------------------------------------------- + + fieldname='htn' + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTN + call primary_grid_lengths_HTN(work_g1) ! dxu, dxt + fieldname='hte' + call ice_read_global_nc(fid_grid,1,fieldname,work_g1,diag) ! HTE + call primary_grid_lengths_HTE(work_g1) ! dyu, dyt + deallocate(work_g1) if (my_task == master_task) then call ice_close_nc(fid_grid) call ice_close_nc(fid_kmt) endif - call ice_barrier() #endif end subroutine popgrid_nc From bf78110e823100a05575e2108e3eb4b0dad0b480 Mon Sep 17 00:00:00 2001 From: TillRasmussen Date: Tue, 23 Jun 2020 07:10:07 +0000 Subject: [PATCH 14/14] update to latest --- icepack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/icepack b/icepack index 09a5e19f0..2b27a78aa 160000 --- a/icepack +++ b/icepack @@ -1 +1 @@ -Subproject commit 09a5e19f006f62f60f6b940a4385feb47451368e +Subproject commit 2b27a78aaecb3635d14b94464d918a67df750ff0