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