New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 4924 for branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90 – NEMO

Ignore:
Timestamp:
2014-11-28T18:24:01+01:00 (9 years ago)
Author:
mathiot
Message:

UKM02_ice_shelves merged and SETTE tested with revision 4879 of trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r4666 r4924  
    566566      zcoef_dqsb   = rhoa * cpa * Cice 
    567567      zcoef_frca   = 1.0  - 0.3 
     568      ! MV 2014 the proper cloud fraction (mean summer months from the CLIO climato, NH+SH) is 0.19 
     569      zcoef_frca   = 1.0  - 0.19 
    568570 
    569571!!gm brutal.... 
     
    651653               p_qsr(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr(ji,jj) 
    652654               ! Long  Wave (lw) 
    653                ! iovino 
    654                IF( ff(ji,jj) .GT. 0._wp ) THEN 
    655                   z_qlw(ji,jj,jl) = ( 0.95 * sf(jp_qlw)%fnow(ji,jj,1) - Stef * pst(ji,jj,jl) * zst3 ) * tmask(ji,jj,1) 
    656                ELSE 
    657                   z_qlw(ji,jj,jl) = 0.95 * ( sf(jp_qlw)%fnow(ji,jj,1) - Stef * pst(ji,jj,jl) * zst3 ) * tmask(ji,jj,1) 
    658                ENDIF 
     655               z_qlw(ji,jj,jl) = 0.95 * ( sf(jp_qlw)%fnow(ji,jj,1) - Stef * pst(ji,jj,jl) * zst3 ) * tmask(ji,jj,1) 
    659656               ! lw sensitivity 
    660657               z_dqlw(ji,jj,jl) = zcoef_dqlw * zst3                                                
     
    671668                  &                         * (  11637800. * EXP( -5897.8 / pst(ji,jj,jl) ) / rhoa - sf(jp_humi)%fnow(ji,jj,1)  ) ) 
    672669               ! Latent heat sensitivity for ice (Dqla/Dt) 
    673                p_dqla(ji,jj,jl) = rn_efac * zcoef_dqla * z_wnds_t(ji,jj) / ( zst2 ) * EXP( -5897.8 / pst(ji,jj,jl) ) 
     670               ! MV we also have to cap the sensitivity if the flux is zero 
     671               IF ( p_qla(ji,jj,jl) .GT. 0.0 ) THEN 
     672                  p_dqla(ji,jj,jl) = rn_efac * zcoef_dqla * z_wnds_t(ji,jj) / ( zst2 ) * EXP( -5897.8 / pst(ji,jj,jl) ) 
     673               ELSE 
     674                  p_dqla(ji,jj,jl) = 0.0 
     675               ENDIF 
     676                              
    674677               ! Sensible heat sensitivity (Dqsb_ice/Dtn_ice) 
    675678               z_dqsb(ji,jj,jl) = zcoef_dqsb * z_wnds_t(ji,jj) 
     
    823826           sqrt_Cd=kappa/((kappa/sqrt_Cd_n10) - zpsi_m) ; Cd=sqrt_Cd*sqrt_Cd; 
    824827         ELSE 
    825            !! Shifting the wind speed to 10m and neutral stability : 
    826            U_n10 = dU10*1./(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) !  L & Y eq. (9a) 
     828           !! Shifting the wind speed to 10m and neutral stability :  L & Y eq. (9a) 
     829           !   In very rare low-wind conditions, the old way of estimating the 
     830           !   neutral wind speed at 10m leads to a negative value that causes the code 
     831           !   to crash. To prevent this a threshold of 0.25m/s is now imposed. 
     832           U_n10 = MAX( 0.25 , dU10/(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) ) 
    827833 
    828834           !! Updating the neutral 10m transfer coefficients : 
     
    959965         zpsi_m  = psi_m(zeta_u) 
    960966         !! 
    961          !! Shifting the wind speed to 10m and neutral stability : (L & Y eq.(9a)) 
    962 !        U_n10 = dU10/(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - psi_m(zeta_u))) 
    963          U_n10 = dU10/(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) 
     967         !! Shifting the wind speed to 10m and neutral stability : L & Y eq.(9a) 
     968         !   In very rare low-wind conditions, the old way of estimating the 
     969         !   neutral wind speed at 10m leads to a negative value that causes the code 
     970         !   to crash. To prevent this a threshold of 0.25m/s is now imposed. 
     971         U_n10 = MAX( 0.25 , dU10/(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) ) 
    964972         !! 
    965973         !! Shifting temperature and humidity at zu :          (L & Y eq. (9b-9c)) 
Note: See TracChangeset for help on using the changeset viewer.