Opened 10 years ago
Last modified 10 years ago
#669 closed upgrade
New option LIMIT_STFLX_COOLING — at Initial Version
Reported by: | arango | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.7 |
Component: | Nonlinear | Version: | 3.7 |
Keywords: | Cc: |
Description
A new option LIMIT_STFLX_COOLING is introduced in routine set_vbc to supress surface cooling if the model surface temperature is at freezing point (-2 Celsius) or below and the net heat flux is cooling. This can be used in the absent of a sea-ice model to limit cooling in shallow coastal areas, for example.
The following code is added to set_vbc.F:
# ifdef LIMIT_STFLX_COOLING ! !----------------------------------------------------------------------- ! If net heat flux is cooling and SST is at freezing point or below ! then suppress further cooling. Note: stflx sign convention is that ! positive means heating the ocean (J Wilkin). !----------------------------------------------------------------------- ! ! Below the surface heat flux stflx(:,:,itemp) is ZERO if cooling AND ! the SST is cooler that the threshold. The value is retained if ! warming. ! ! cff3 = 0 if SST warmer than threshold (cff1) - change nothing ! cff3 = 1 if SST colder than threshold (cff1) ! ! 0.5*(cff2-ABS(cff2)) = 0 if flux is warming ! = stflx(:,:,itemp) if flux is cooling ! cff1=-2.0_r8 ! nominal SST threshold to cease cooling DO j=JstrR,JendR DO i=IstrR,IendR cff2=stflx(i,j,itemp) cff3=0.5_r8*(1.0_r8+SIGN(1.0_r8,cff1-t(i,j,N(ng),nrhs,itemp))) stflx(i,j,itemp)=cff2-cff3*0.5_r8*(cff2-ABS(cff2)) END DO END DO # endif
This option is also added the the tangent linear, representer, and adjoint versions of set_vbc.F.
This option was requested bu our users at NOAA anf it working well in their coastal applications. Many thanks to John Wilkin for helping coding this limit in the surface net heat flux.