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 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2021-11-26T12:27:56+01:00 (3 years ago)
Author:
sparonuz
Message:

Mixed precision version, tested up to 30 years on ORCA2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/ZDF/zdftke.F90

    r14986 r15540  
    9292   INTEGER  ::   nn_eice   ! attenutaion of langmuir & surface wave breaking under ice (=0/1/2/3) 
    9393 
    94    REAL(wp) ::   ri_cri    ! critic Richardson number (deduced from rn_ediff and rn_ediss values) 
    95    REAL(wp) ::   rmxl_min  ! minimum mixing length value (deduced from rn_ediff and rn_emin values)  [m] 
    96    REAL(wp) ::   rhftau_add = 1.e-3_wp     ! add offset   applied to HF part of taum  (nn_etau=3) 
    97    REAL(wp) ::   rhftau_scl = 1.0_wp       ! scale factor applied to HF part of taum  (nn_etau=3) 
     94   REAL(dp) ::   ri_cri    ! critic Richardson number (deduced from rn_ediff and rn_ediss values) 
     95   REAL(dp) ::   rmxl_min  ! minimum mixing length value (deduced from rn_ediff and rn_emin values)  [m] 
     96   REAL(dp) ::   rhftau_add = 1.e-3_wp     ! add offset   applied to HF part of taum  (nn_etau=3) 
     97   REAL(dp) ::   rhftau_scl = 1.0_wp       ! scale factor applied to HF part of taum  (nn_etau=3) 
    9898 
    9999   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   htau    ! depth of tke penetration (nn_htau) 
    100    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dissl   ! now mixing lenght of dissipation 
     100   REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dissl   ! now mixing lenght of dissipation 
    101101   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   apdlr   ! now mixing lenght of dissipation 
    102102 
     
    170170      INTEGER                             , INTENT(in   ) ::   kt             ! ocean time step 
    171171      INTEGER                             , INTENT(in   ) ::   Kbb, Kmm       ! ocean time level indices 
    172       REAL(wp), DIMENSION(A2D(nn_hls),jpk), INTENT(in   ) ::   p_sh2          ! shear production term 
    173       REAL(wp), DIMENSION(:,:,:)          , INTENT(inout) ::   p_avm, p_avt   !  momentum and tracer Kz (w-points) 
     172      REAL(dp), DIMENSION(A2D(nn_hls),jpk), INTENT(in   ) ::   p_sh2          ! shear production term 
     173      REAL(dp), DIMENSION(:,:,:)          , INTENT(inout) ::   p_avm, p_avt   !  momentum and tracer Kz (w-points) 
    174174      !!---------------------------------------------------------------------- 
    175175      ! 
     
    202202      !! 
    203203      INTEGER                              , INTENT(in   ) ::   Kbb, Kmm       ! ocean time level indices 
    204       REAL(wp), DIMENSION(A2D(nn_hls),jpk) , INTENT(in   ) ::   p_sh2          ! shear production term 
    205       REAL(wp), DIMENSION(:,:,:)           , INTENT(in   ) ::   p_avm, p_avt   ! vertical eddy viscosity & diffusivity (w-points) 
     204      REAL(dp), DIMENSION(A2D(nn_hls),jpk) , INTENT(in   ) ::   p_sh2          ! shear production term 
     205      REAL(dp), DIMENSION(:,:,:)           , INTENT(in   ) ::   p_avm, p_avt   ! vertical eddy viscosity & diffusivity (w-points) 
    206206      ! 
    207207      INTEGER ::   ji, jj, jk                  ! dummy loop arguments 
     
    213213      REAL(wp) ::   ztx2  , zty2  , zcof       !   -      - 
    214214      REAL(wp) ::   ztau  , zdif               !   -      - 
    215       REAL(wp) ::   zus   , zwlc  , zind       !   -      - 
     215      REAL(wp) ::   zus, zwlc                  !   -      - 
     216      REAL(dp) ::   zind                       !   -      - 
    216217      REAL(wp) ::   zzd_up, zzd_lw             !   -      - 
    217218      REAL(wp) ::   ztaui, ztauj, z1_norm 
     
    219220      REAL(wp), DIMENSION(A2D(nn_hls))     ::   zice_fra, zhlc, zus3, zWlc2 
    220221      REAL(wp), DIMENSION(A2D(nn_hls),jpk) ::   zpelc, zdiag, zd_up, zd_lw 
    221       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztmp ! for diags 
     222      REAL(dp), DIMENSION(:,:,:), ALLOCATABLE ::   ztmp ! for diags 
    222223      !!-------------------------------------------------------------------- 
    223224      ! 
     
    530531      !! 
    531532      INTEGER                   , INTENT(in   ) ::   Kbb, Kmm       ! ocean time level indices 
    532       REAL(wp), DIMENSION(:,:,:), INTENT(  out) ::   p_avm, p_avt   ! vertical eddy viscosity & diffusivity (w-points) 
     533      REAL(dp), DIMENSION(:,:,:), INTENT(  out) ::   p_avm, p_avt   ! vertical eddy viscosity & diffusivity (w-points) 
    533534      ! 
    534535      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    535536      REAL(wp) ::   zrn2, zraug, zcoef, zav   ! local scalars 
    536       REAL(wp) ::   zdku,   zdkv, zsqen       !   -      - 
    537       REAL(wp) ::   zemxl, zemlm, zemlp, zmaxice       !   -      - 
     537      REAL(wp)  :: zsqen                      !   -      - 
     538      REAL(dp)  :: zdku, zdkv                 !   -      - 
     539      REAL(wp)  :: zemxl, zemlm, zemlp        !   -      - 
     540      REAL(dp)  :: zmaxice                    !   -      - 
    538541      REAL(wp), DIMENSION(A2D(nn_hls),jpk) ::   zmxlm, zmxld   ! 3D workspace 
    539542      !!-------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.