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 14556 for NEMO/branches/2021 – NEMO

Changeset 14556 for NEMO/branches/2021


Ignore:
Timestamp:
2021-03-01T13:01:40+01:00 (3 years ago)
Author:
smueller
Message:

Synchronisation of the OSMOSIS boundary layer scheme with the version developed in branch /NEMO/branches/NERC/dev_r11078_OSMOSIS_IMMERSE_Nurser_4.0: transfer of changesets [14409,14517] (ticket #2353)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/OCE/ZDF/zdfosm.F90

    r14555 r14556  
    247247      REAL(wp), DIMENSION(jpi,jpj) :: zws0      ! Surface freshwater flux 
    248248      REAL(wp), DIMENSION(jpi,jpj) :: zwb0      ! Surface buoyancy flux 
     249      REAL(wp), DIMENSION(jpi,jpj) :: zwb0tot   ! Total surface buoyancy flux including insolation 
    249250      REAL(wp), DIMENSION(jpi,jpj) :: zwthav    ! Heat flux - bl average 
    250251      REAL(wp), DIMENSION(jpi,jpj) :: zwsav     ! freshwater flux - bl average 
     
    337338      zwthav(:,:) = 0._wp ; zwsav(:,:) = 0._wp ; zwbav(:,:)     = 0._wp ; zwb_ent(:,:)   = 0._wp 
    338339      zustke(:,:) = 0._wp ; zla(:,:)   = 0._wp ; zcos_wind(:,:) = 0._wp ; zsin_wind(:,:) = 0._wp 
    339       zhol(:,:)   = 0._wp 
     340      zhol(:,:)   = 0._wp ; zwb0tot(:,:) = 0.0_wp 
    340341      lconv(:,:)  = .FALSE.; lpyc(:,:) = .FALSE. ; lflux(:,:) = .FALSE. ;  lmle(:,:) = .FALSE. 
    341342      ! mixed layer 
     
    395396        zwb0(ji,jj)    = grav * zthermal * zwth0(ji,jj) -              &   ! Non radiative upwards surface buoyancy flux 
    396397           &             grav * zbeta * zws0(ji,jj) 
     398        zwb0tot(ji,jj) = zwb0(ji,jj) - grav * zthermal *               &   ! Total upwards surface buoyancy flux 
     399           &                           ( zrad0(ji,jj) - zradh(ji,j) ) 
    397400        zwsav(ji,jj)   = 0.5 * zws0(ji,jj)                                 ! Turbulent salinity flux averaged over depth of the OBSL 
    398401        zwbav(ji,jj)   = grav  * zthermal * zwthav(ji,jj) -            &   ! Turbulent buoyancy flux averaged over the depth of the 
     
    761764                DO jk = 1, ibld(ji,jj) 
    762765                  znd = gdepw(ji,jj,jk,Kmm) / MAX(zhbl(ji,jj),epsln) 
    763                   ghamt(ji,jj,jk) = ghamt(ji,jj,jk) - zwth0(ji,jj) * ( 1.0 - znd ) 
     766                  ghamt(ji,jj,jk) = ghamt(ji,jj,jk) - ( zwth0(ji,jj) - zrad0(ji,jj) + zradh(ji,jj) ) * ( 1.0 - znd ) 
    764767                  ghams(ji,jj,jk) = ghams(ji,jj,jk) - zws0(ji,jj) * ( 1.0 - znd ) 
    765768                 END DO 
    766769                 DO jk = 1, mld_prof(ji,jj) 
    767770                   znd = gdepw(ji,jj,jk,Kmm) / MAX(zhmle(ji,jj),epsln) 
    768                    ghamt(ji,jj,jk) = ghamt(ji,jj,jk) + zwth0(ji,jj) * ( 1.0 - znd ) 
     771                   ghamt(ji,jj,jk) = ghamt(ji,jj,jk) + ( zwth0(ji,jj) - zrad0(ji,jj) + zradh(ji,jj) ) * ( 1.0 - znd ) 
    769772                   ghams(ji,jj,jk) = ghams(ji,jj,jk) + zws0(ji,jj) * ( 1.0 -znd ) 
    770773                 END DO 
     
    11691172      IF ( lconv(ji,jj) ) THEN 
    11701173! Unstable OSBL 
    1171          zwb_min(ji,jj) = zwb_ent(ji,jj) + zdh(ji,jj) / zhbl(ji,jj) * zwb0(ji,jj) 
     1174         zwb_min(ji,jj) = zwb_ent(ji,jj) + zdh(ji,jj) / zhbl(ji,jj) * 2.0_wp * zwbav(ji,jj) 
    11721175      END IF  ! lconv 
    11731176     END_2D 
     
    19631966           zdb_mle = zb_bl(ji,jj) - zbuoy 
    19641967! Timestep hmle. 
    1965            hmle(ji,jj) = hmle(ji,jj) + zwb0(ji,jj) * rn_Dt / zdb_mle 
     1968           hmle(ji,jj) = hmle(ji,jj) + zwb0tot(ji,jj) * rn_Dt / zdb_mle 
    19661969        ELSE 
    19671970           IF ( zhmle(ji,jj) > zhbl(ji,jj) ) THEN 
Note: See TracChangeset for help on using the changeset viewer.