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 13226 for NEMO/trunk/src/OCE/ZDF – NEMO

Ignore:
Timestamp:
2020-07-02T16:24:31+02:00 (4 years ago)
Author:
orioltp
Message:

Merging dev_r12512_HPC-04_mcastril_Mixed_Precision_implementation into the trunk

Location:
NEMO/trunk/src/OCE/ZDF
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ZDF/zdfddm.F90

    r12377 r13226  
    7777      REAL(wp) ::   zaw, zbw, zrw   ! local scalars 
    7878      REAL(wp) ::   zdt, zds 
    79       REAL(wp) ::   zinr, zrr       !   -      - 
    80       REAL(wp) ::   zavft, zavfs    !   -      - 
     79      REAL(wp) ::   zinr            !   -      - 
     80      REAL(dp) ::         zrr       !   -      - 
     81      REAL(wp) ::   zavft           !   -      - 
     82      REAL(dp) ::          zavfs    !   -      - 
    8183      REAL(wp) ::   zavdt, zavds    !   -      - 
    8284      REAL(wp), DIMENSION(jpi,jpj) ::   zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 
  • NEMO/trunk/src/OCE/ZDF/zdfosm.F90

    r12489 r13226  
    12181218 
    12191219       ! Lateral boundary conditions on zvicos (sign unchanged), needed to caclulate viscosities on u and v grids 
    1220        CALL lbc_lnk( 'zdfosm', zviscos(:,:,:), 'W', 1. ) 
     1220       CALL lbc_lnk( 'zdfosm', zviscos(:,:,:), 'W', 1.0_wp ) 
    12211221 
    12221222       ! GN 25/8: need to change tmask --> wmask 
     
    12271227     END_3D 
    12281228      ! Lateral boundary conditions on ghamu and ghamv, currently on W-grid  (sign unchanged), needed to caclulate gham[uv] on u and v grids 
    1229      CALL lbc_lnk_multi( 'zdfosm', p_avt, 'W', 1. , p_avm, 'W', 1.,   & 
    1230       &                  ghamu, 'W', 1. , ghamv, 'W', 1. ) 
     1229     CALL lbc_lnk_multi( 'zdfosm', p_avt, 'W', 1.0_wp , p_avm, 'W', 1.0_wp,   & 
     1230      &                  ghamu, 'W', 1.0_wp , ghamv, 'W', 1.0_wp ) 
    12311231       DO_3D_00_00( 2, jpkm1 ) 
    12321232            ghamu(ji,jj,jk) = ( ghamu(ji,jj,jk) + ghamu(ji+1,jj,jk) ) & 
     
    12411241        ! Lateral boundary conditions on final outputs for gham[ts],  on W-grid  (sign unchanged) 
    12421242        ! Lateral boundary conditions on final outputs for gham[uv],  on [UV]-grid  (sign unchanged) 
    1243         CALL lbc_lnk_multi( 'zdfosm', ghamt, 'W', 1. , ghams, 'W', 1.,   & 
    1244          &                  ghamu, 'U', 1. , ghamv, 'V', 1. ) 
     1243        CALL lbc_lnk_multi( 'zdfosm', ghamt, 'W', 1.0_wp , ghams, 'W', 1.0_wp,   & 
     1244         &                  ghamu, 'U', 1.0_wp , ghamv, 'V', 1.0_wp ) 
    12451245 
    12461246       IF(ln_dia_osm) THEN 
     
    12821282      END IF 
    12831283      ! Lateral boundary conditions on p_avt  (sign unchanged) 
    1284       CALL lbc_lnk( 'zdfosm', p_avt(:,:,:), 'W', 1. ) 
     1284      CALL lbc_lnk( 'zdfosm', p_avt(:,:,:), 'W', 1.0_wp ) 
    12851285      ! 
    12861286   END SUBROUTINE zdf_osm 
  • NEMO/trunk/src/OCE/ZDF/zdfphy.F90

    r12377 r13226  
    302302      !                                         !* Lateral boundary conditions (sign unchanged) 
    303303      IF( l_zdfsh2 ) THEN 
    304          CALL lbc_lnk_multi( 'zdfphy', avm_k, 'W', 1. , avt_k, 'W', 1.,   & 
    305             &                avm  , 'W', 1. , avt  , 'W', 1. , avs , 'W', 1. ) 
     304         CALL lbc_lnk_multi( 'zdfphy', avm_k, 'W', 1.0_wp , avt_k, 'W', 1.0_wp,   & 
     305            &                avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    306306      ELSE 
    307          CALL lbc_lnk_multi( 'zdfphy', avm  , 'W', 1. , avt  , 'W', 1. , avs , 'W', 1. ) 
     307         CALL lbc_lnk_multi( 'zdfphy', avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    308308      ENDIF 
    309309      ! 
    310310      IF( l_zdfdrg ) THEN     ! drag  have been updated (non-linear cases) 
    311          IF( ln_isfcav ) THEN   ;  CALL lbc_lnk_multi( 'zdfphy', rCdU_top, 'T', 1. , rCdU_bot, 'T', 1. )   ! top & bot drag 
    312          ELSE                   ;  CALL lbc_lnk      ( 'zdfphy', rCdU_bot, 'T', 1. )                       ! bottom drag only 
     311         IF( ln_isfcav ) THEN   ;  CALL lbc_lnk_multi( 'zdfphy', rCdU_top, 'T', 1.0_wp , rCdU_bot, 'T', 1.0_wp )   ! top & bot drag 
     312         ELSE                   ;  CALL lbc_lnk      ( 'zdfphy', rCdU_bot, 'T', 1.0_wp )                       ! bottom drag only 
    313313         ENDIF 
    314314      ENDIF 
  • NEMO/trunk/src/OCE/ZDF/zdftke.F90

    r13012 r13226  
    310310         DO_3D_00_00( 2, jpkm1 ) 
    311311            !                             ! local Richardson number 
    312             zri = MAX( rn2b(ji,jj,jk), 0._wp ) * p_avm(ji,jj,jk) / ( p_sh2(ji,jj,jk) + rn_bshear ) 
     312            IF (rn2b(ji,jj,jk) <= 0.0_wp) then 
     313                zri = 0.0_wp 
     314            ELSE 
     315                zri = rn2b(ji,jj,jk) * p_avm(ji,jj,jk) / ( p_sh2(ji,jj,jk) + rn_bshear ) 
     316            ENDIF 
    313317            !                             ! inverse of Prandtl number 
    314318            apdlr(ji,jj,jk) = MAX(  0.1_wp,  ri_cri / MAX( ri_cri , zri )  ) 
Note: See TracChangeset for help on using the changeset viewer.