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 874 for branches – NEMO

Changeset 874 for branches


Ignore:
Timestamp:
2008-04-01T17:40:36+02:00 (16 years ago)
Author:
ctlod
Message:

dev_001_SBC: Bound the latent heat flux (over ocean & sea-ice) in CORE bulks and mask properly the wind stress over the ocean, see ticket:#99

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r810 r874  
    276276         &                   Cd, Ch, Ce ) 
    277277    
    278       ! ...  umasked Momentum : utau, vtau at U- and V_points, resp. 
    279       !      Note the use of 2-tmask in order to umask the stress along coastlines 
     278      ! ... utau, vtau at U- and V_points, resp. 
     279      !     Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 
    280280      zwnd_i(:,:) = rhoa * zwind_speed_t(:,:) * Cd(:,:) * zwnd_i(:,:) 
    281281      zwnd_j(:,:) = rhoa * zwind_speed_t(:,:) * Cd(:,:) * zwnd_j(:,:) 
    282282      DO jj = 1, jpjm1 
    283283         DO ji = 1, fs_jpim1 
    284             utau(ji,jj) = 0.5 * ( zwnd_i(ji,jj) + zwnd_i(ji+1,jj  ) ) * ( 2. - tmask(ji,jj,1) ) 
    285             vtau(ji,jj) = 0.5 * ( zwnd_j(ji,jj) + zwnd_j(ji  ,jj+1) ) * ( 2. - tmask(ji,jj,1) ) 
     284            utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zwnd_i(ji,jj) + zwnd_i(ji+1,jj  ) ) 
     285            vtau(ji,jj) = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( zwnd_j(ji,jj) + zwnd_j(ji  ,jj+1) ) 
    286286         END DO 
    287287      END DO 
     
    292292      ! ----------------------------- 
    293293!CDIR COLLAPSE 
    294       zevap(:,:) = rhoa    *Ce(:,:)*( zqsatw(:,:) - sf(jp_humi)%fnow(:,:) ) * zwind_speed_t(:,:)   ! Evaporation 
    295 !CDIR COLLAPSE 
    296       zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst   (:,:) - sf(jp_tair)%fnow(:,:) ) * zwind_speed_t(:,:)   ! Sensible Heat 
    297 !CDIR COLLAPSE 
    298       zqla (:,:) = Lv * zevap(:,:)                                                                 ! Latent Heat 
    299  
     294      zevap(:,:) = MAX( 0.e0, rhoa    *Ce(:,:)*( zqsatw(:,:) - sf(jp_humi)%fnow(:,:) ) * zwind_speed_t(:,:) )   ! Evaporation 
     295!CDIR COLLAPSE 
     296      zqsb (:,:) =            rhoa*cpa*Ch(:,:)*( zst   (:,:) - sf(jp_tair)%fnow(:,:) ) * zwind_speed_t(:,:)     ! Sensible Heat 
     297!CDIR COLLAPSE 
     298      zqla (:,:) = Lv * zevap(:,:)                                                              ! Latent Heat 
    300299        
    301300      ! ----------------------------------------------------------------------------- ! 
     
    305304!CDIR COLLAPSE 
    306305      qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:)      ! Downward Non Solar flux 
    307         
    308306!CDIR COLLAPSE 
    309307      emp (:,:) = zevap(:,:) - sf(jp_prec)%fnow(:,:) * tmask(:,:,1) 
     
    428426!CDIR NOVERRCHK 
    429427!CDIR COLLAPSE 
    430       p_qla(:,:) = rhoa * Ls  * Cice * z_wnds_t(:,:)   &                                    ! Latent Heat 
    431          &       * (  11637800. * EXP( -5897.8 / pst(:,:) ) / rhoa - sf(jp_humi)%fnow(:,:) ) 
     428      p_qla(:,:) = MAX( 0.e0, rhoa * Ls  * Cice * z_wnds_t(:,:)   &                           ! Latent Heat 
     429         &                    * (  11637800. * EXP( -5897.8 / pst(:,:) ) / rhoa - sf(jp_humi)%fnow(:,:)  ) ) 
    432430       
    433431      ! Latent heat sensitivity for ice (Dqla/Dt) 
Note: See TracChangeset for help on using the changeset viewer.