From 9c777ac684fc190e210955caa13a153145c613b0 Mon Sep 17 00:00:00 2001 From: "David A. Bailey" Date: Mon, 16 Dec 2024 16:11:27 -0500 Subject: [PATCH] Fix outgoing lw for history and coupling. (#999) This is a two-line change in ice_flux.F90 (scale_fluxes) to check for the condition where aice > 0, but flwout > -puny (effectively zero). This means the cell was ice free at the beginning of the step, but non-zero at the end. It sets the outgoing longwave to the open ocean value based on the freezing temperature. This is bfb, but will change the history output of flwup and flwup_ai. Test results are coming. --- cicecore/cicedyn/general/ice_flux.F90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cicecore/cicedyn/general/ice_flux.F90 b/cicecore/cicedyn/general/ice_flux.F90 index f1c6c3be6..6378db6eb 100644 --- a/cicecore/cicedyn/general/ice_flux.F90 +++ b/cicecore/cicedyn/general/ice_flux.F90 @@ -1209,7 +1209,7 @@ subroutine scale_fluxes (nx_block, ny_block, & real (kind=dbl_kind) :: & ar, & ! 1/aice stefan_boltzmann, & - Tffresh + Tffresh, puny integer (kind=int_kind) :: & i, j ! horizontal indices @@ -1217,7 +1217,7 @@ subroutine scale_fluxes (nx_block, ny_block, & character(len=*), parameter :: subname = '(scale_fluxes)' call icepack_query_parameters(stefan_boltzmann_out=stefan_boltzmann, & - Tffresh_out=Tffresh) + Tffresh_out=Tffresh, puny_out=puny) call icepack_warnings_flush(nu_diag) if (icepack_warnings_aborted()) call abort_ice(error_message=subname, & file=__FILE__, line=__LINE__) @@ -1231,6 +1231,9 @@ subroutine scale_fluxes (nx_block, ny_block, & fsens (i,j) = fsens (i,j) * ar flat (i,j) = flat (i,j) * ar fswabs (i,j) = fswabs (i,j) * ar + ! Special case where aice_init was zero and aice > 0. + if (flwout(i,j) > -puny) & + flwout (i,j) = -stefan_boltzmann *(Tf(i,j) + Tffresh)**4 flwout (i,j) = flwout (i,j) * ar evap (i,j) = evap (i,j) * ar Tref (i,j) = Tref (i,j) * ar