Changeset 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/LDF/ldfslp.F90
- Timestamp:
- 2021-11-26T12:27:56+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/LDF/ldfslp.F90
r14986 r15540 56 56 57 57 ! !! Classic operator (Madec) 58 REAL( wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp, wslpi !: i_slope at U- and W-points59 REAL( wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp, wslpj !: j-slope at V- and W-points58 REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp, wslpi !: i_slope at U- and W-points 59 REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp, wslpj !: j-slope at V- and W-points 60 60 ! !! triad operator (Griffies) 61 REAL( wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslp2 !: wslp**2 from Griffies quarter cells62 REAL( wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:) :: triadi_g, triadj_g !: skew flux slopes relative to geopotentials63 REAL( wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:) :: triadi , triadj !: isoneutral slopes relative to model-coordinate61 REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslp2 !: wslp**2 from Griffies quarter cells 62 REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:) :: triadi_g, triadj_g !: skew flux slopes relative to geopotentials 63 REAL(dp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:) :: triadi , triadj !: isoneutral slopes relative to model-coordinate 64 64 ! !! both operators 65 65 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ah_wslp2 !: ah * slope^2 at w-point … … 68 68 ! !! Madec operator 69 69 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: omlmask ! mask of the surface mixed layer at T-pt 70 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: uslpml, wslpiml ! i_slope at U- and W-points just below the mixed layer71 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: vslpml, wslpjml ! j_slope at V- and W-points just below the mixed layer72 73 REAL( wp) :: repsln = 1.e-25_wp ! tiny value used as minium of di(rho), dj(rho) and dk(rho)70 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: uslpml, wslpiml ! i_slope at U- and W-points just below the mixed layer 71 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: vslpml, wslpjml ! j_slope at V- and W-points just below the mixed layer 72 73 REAL(dp) :: repsln = 1.e-25_wp ! tiny value used as minium of di(rho), dj(rho) and dk(rho) 74 74 75 75 !! * Substitutions … … 110 110 INTEGER , INTENT(in) :: kt ! ocean time-step index 111 111 INTEGER , INTENT(in) :: Kbb, Kmm ! ocean time level indices 112 REAL( wp), INTENT(in), DIMENSION(:,:,:) :: prd ! in situ density113 REAL( wp), INTENT(in), DIMENSION(:,:,:) :: pn2 ! Brunt-Vaisala frequency (locally ref.)112 REAL(dp), INTENT(in), DIMENSION(:,:,:) :: prd ! in situ density 113 REAL(dp), INTENT(in), DIMENSION(:,:,:) :: pn2 ! Brunt-Vaisala frequency (locally ref.) 114 114 !! 115 115 INTEGER :: ji , jj , jk ! dummy loop indices … … 122 122 REAL(wp) :: zdepu, zdepv ! - - 123 123 REAL(wp), DIMENSION(jpi,jpj) :: zslpml_hmlpu, zslpml_hmlpv 124 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgru, zwz, zdzr 125 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrv, zww 124 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgru, zdzr 125 REAL(dp), DIMENSION(jpi,jpj,jpk) :: zwz 126 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrv 127 REAL(dp), DIMENSION(jpi,jpj,jpk) :: zww 126 128 !!---------------------------------------------------------------------- 127 129 ! … … 349 351 INTEGER :: ji, jj, jk, jl, ip, jp, kp ! dummy loop indices 350 352 INTEGER :: iku, ikv ! local integer 351 REAL( wp) :: zfacti, zfactj ! local scalars352 REAL( wp) :: znot_thru_surface ! local scalars353 REAL( wp) :: zdit, zdis, zdkt, zbu, zbti, zisw354 REAL( wp) :: zdjt, zdjs, zdks, zbv, zbtj, zjsw355 REAL( wp) :: zdxrho_raw, zti_coord, zti_raw, zti_lim, zti_g_raw, zti_g_lim356 REAL( wp) :: zdyrho_raw, ztj_coord, ztj_raw, ztj_lim, ztj_g_raw, ztj_g_lim357 REAL( wp) :: zdzrho_raw358 REAL( wp) :: zbeta0, ze3_e1, ze3_e2359 REAL( wp), DIMENSION(jpi,jpj) :: z1_mlbw360 REAL( wp), DIMENSION(jpi,jpj,jpk,0:1) :: zdxrho , zdyrho, zdzrho ! Horizontal and vertical density gradients361 REAL( wp), DIMENSION(jpi,jpj,0:1,0:1) :: zti_mlb, ztj_mlb ! for Griffies operator only353 REAL(dp) :: zfacti, zfactj ! local scalars 354 REAL(dp) :: znot_thru_surface ! local scalars 355 REAL(dp) :: zdit, zdis, zdkt, zbu, zbti, zisw 356 REAL(dp) :: zdjt, zdjs, zdks, zbv, zbtj, zjsw 357 REAL(dp) :: zdxrho_raw, zti_coord, zti_raw, zti_lim, zti_g_raw, zti_g_lim 358 REAL(dp) :: zdyrho_raw, ztj_coord, ztj_raw, ztj_lim, ztj_g_raw, ztj_g_lim 359 REAL(dp) :: zdzrho_raw 360 REAL(dp) :: zbeta0, ze3_e1, ze3_e2 361 REAL(dp), DIMENSION(jpi,jpj) :: z1_mlbw 362 REAL(dp), DIMENSION(jpi,jpj,jpk,0:1) :: zdxrho , zdyrho, zdzrho ! Horizontal and vertical density gradients 363 REAL(dp), DIMENSION(jpi,jpj,0:1,0:1) :: zti_mlb, ztj_mlb ! for Griffies operator only 362 364 !!---------------------------------------------------------------------- 363 365 ! … … 573 575 !! omlmask : mixed layer mask 574 576 !!---------------------------------------------------------------------- 575 REAL( wp), DIMENSION(:,:,:), INTENT(in) :: prd ! in situ density576 REAL( wp), DIMENSION(:,:,:), INTENT(in) :: pn2 ! Brunt-Vaisala frequency (locally ref.)577 REAL(dp), DIMENSION(:,:,:), INTENT(in) :: prd ! in situ density 578 REAL(dp), DIMENSION(:,:,:), INTENT(in) :: pn2 ! Brunt-Vaisala frequency (locally ref.) 577 579 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: p_gru, p_grv ! i- & j-gradient of density (u- & v-pts) 578 580 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: p_dzr ! z-gradient of density (T-point) … … 582 584 INTEGER :: iku, ikv, ik, ikm1 ! local integers 583 585 REAL(wp) :: zeps, zm1_g, zm1_2g, z1_slpmax ! local scalars 584 REAL(wp) :: zci, zfi, zau, zbu, zai, zbi ! - - 585 REAL(wp) :: zcj, zfj, zav, zbv, zaj, zbj ! - - 586 REAL(wp) :: zck, zfk, zbw ! - - 586 REAL(wp) :: zci, zau, zbu, zai, zbi! - - 587 REAL(dp) :: zfi ! - - 588 REAL(wp) :: zcj, zav, zbv, zaj, zbj! - - 589 REAL(dp) :: zfj ! - - 590 REAL(wp) :: zbw ! - - 591 REAL(dp) :: zck, zfk ! - - 587 592 !!---------------------------------------------------------------------- 588 593 !
Note: See TracChangeset
for help on using the changeset viewer.