Changeset 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/DYN/wet_dry.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/DYN/wet_dry.F90
r14986 r15540 38 38 !! --------------------------------------------------------------------- 39 39 40 REAL( wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: wdmask !: u- and v- limiter40 REAL(dp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: wdmask !: u- and v- limiter 41 41 ! ! (can include negative depths) 42 REAL( wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: wdramp, wdrampu, wdrampv !: for hpg limiting42 REAL(dp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: wdramp, wdrampu, wdrampv !: for hpg limiting 43 43 44 44 LOGICAL, PUBLIC :: ln_wd_il !: Wetting/drying il activation switch (T:on,F:off) … … 46 46 REAL(wp), PUBLIC :: rn_wdmin0 !: depth at which wetting/drying starts 47 47 REAL(wp), PUBLIC :: rn_wdmin1 !: minimum water depth on dried cells 48 REAL( wp), PUBLIC :: r_rn_wdmin1 !: 1/minimum water depth on dried cells48 REAL(dp), PUBLIC :: r_rn_wdmin1 !: 1/minimum water depth on dried cells 49 49 REAL(wp), PUBLIC :: rn_wdmin2 !: tolerance of minimum water depth on dried cells 50 50 REAL(wp), PUBLIC :: rn_wd_sbcdep !: Depth at which to taper sbc fluxes … … 55 55 !: where the flow is from wet points on less than half the barotropic sub-steps 56 56 LOGICAL, PUBLIC :: ln_wd_dl_rmp !: use a ramp for the dl flux limiter between 2 rn_wdmin1 and rn_wdmin1 (rather than a cut-off at rn_wdmin1) 57 REAL( wp), PUBLIC :: ssh_ref !: height of z=0 with respect to the geoid;57 REAL(dp), PUBLIC :: ssh_ref !: height of z=0 with respect to the geoid; 58 58 59 59 LOGICAL, PUBLIC :: ll_wd = .FALSE. !: Wetting/drying activation switch (ln_wd_il or ln_wd_dl) <- default def if wad_init not called … … 134 134 !!---------------------------------------------------------------------- 135 135 REAL(dp), DIMENSION(:,:) , INTENT(inout) :: psshb1 136 REAL( wp), DIMENSION(:,:) , INTENT(in ) :: psshemp137 REAL( wp) , INTENT(in ) :: z2dt136 REAL(dp), DIMENSION(:,:) , INTENT(in ) :: psshemp 137 REAL(dp) , INTENT(in ) :: z2dt 138 138 INTEGER , INTENT(in ) :: Kmm ! time level index 139 139 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! velocity arrays … … 141 141 INTEGER :: ji, jj, jk, jk1 ! dummy loop indices 142 142 INTEGER :: jflag ! local scalar 143 REAL( wp) :: zcoef, zdep1, zdep2 ! local scalars144 REAL( wp) :: zzflxp, zzflxn ! local scalars145 REAL( wp) :: zdepwd ! local scalar, always wet cell depth146 REAL( wp) :: ztmp ! local scalars147 REAL( wp), DIMENSION(jpi,jpj) :: zwdlmtu, zwdlmtv ! W/D flux limiters148 REAL( wp), DIMENSION(jpi,jpj) :: zflxp , zflxn ! local 2D workspace149 REAL( wp), DIMENSION(jpi,jpj) :: zflxu , zflxv ! local 2D workspace150 REAL( wp), DIMENSION(jpi,jpj) :: zflxu1 , zflxv1 ! local 2D workspace143 REAL(dp) :: zcoef, zdep1, zdep2 ! local scalars 144 REAL(dp) :: zzflxp, zzflxn ! local scalars 145 REAL(dp) :: zdepwd ! local scalar, always wet cell depth 146 REAL(dp) :: ztmp ! local scalars 147 REAL(dp), DIMENSION(jpi,jpj) :: zwdlmtu, zwdlmtv ! W/D flux limiters 148 REAL(dp), DIMENSION(jpi,jpj) :: zflxp , zflxn ! local 2D workspace 149 REAL(dp), DIMENSION(jpi,jpj) :: zflxu , zflxv ! local 2D workspace 150 REAL(dp), DIMENSION(jpi,jpj) :: zflxu1 , zflxv1 ! local 2D workspace 151 151 !!---------------------------------------------------------------------- 152 152 IF( ln_timing ) CALL timing_start('wad_lmt') ! … … 282 282 !! ** Action : - calculate flux limiter and W/D flag 283 283 !!---------------------------------------------------------------------- 284 REAL( wp) , INTENT(in ) :: rDt_e ! ocean time-step index284 REAL(dp) , INTENT(in ) :: rDt_e ! ocean time-step index 285 285 REAL(dp), DIMENSION(:,:), INTENT(inout) :: sshn_e, zssh_frc 286 REAL( wp), DIMENSION(:,:), INTENT(inout) :: zflxu, zflxv286 REAL(dp), DIMENSION(:,:), INTENT(inout) :: zflxu, zflxv 287 287 ! 288 288 INTEGER :: ji, jj, jk, jk1 ! dummy loop indices 289 289 INTEGER :: jflag ! local integer 290 REAL( wp) :: z2dt291 REAL( wp) :: zcoef, zdep1, zdep2 ! local scalars292 REAL( wp) :: zzflxp, zzflxn ! local scalars293 REAL( wp) :: zdepwd ! local scalar, always wet cell depth294 REAL( wp) :: ztmp ! local scalars295 REAL( wp), DIMENSION(jpi,jpj) :: zwdlmtu, zwdlmtv !: W/D flux limiters296 REAL( wp), DIMENSION(jpi,jpj) :: zflxp, zflxn ! local 2D workspace297 REAL( wp), DIMENSION(jpi,jpj) :: zflxu1, zflxv1 ! local 2D workspace290 REAL(dp) :: z2dt 291 REAL(dp) :: zcoef, zdep1, zdep2 ! local scalars 292 REAL(dp) :: zzflxp, zzflxn ! local scalars 293 REAL(dp) :: zdepwd ! local scalar, always wet cell depth 294 REAL(dp) :: ztmp ! local scalars 295 REAL(dp), DIMENSION(jpi,jpj) :: zwdlmtu, zwdlmtv !: W/D flux limiters 296 REAL(dp), DIMENSION(jpi,jpj) :: zflxp, zflxn ! local 2D workspace 297 REAL(dp), DIMENSION(jpi,jpj) :: zflxu1, zflxv1 ! local 2D workspace 298 298 !!---------------------------------------------------------------------- 299 299 IF( ln_timing ) CALL timing_start('wad_lmt_bt') !
Note: See TracChangeset
for help on using the changeset viewer.