Changeset 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/SBC/sbcblk_algo_ice_lg15.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/SBC/sbcblk_algo_ice_lg15.F90
r14072 r15540 31 31 PUBLIC :: turb_ice_lg15 32 32 33 REAL( wp), PARAMETER :: ralpha_0 = 0.2_wp ! (Eq.12) (ECHAM6 value)33 REAL(dp), PARAMETER :: ralpha_0 = 0.2_wp ! (Eq.12) (ECHAM6 value) 34 34 35 35 !! To be namelist parameters in NEMO: 36 REAL( wp), PARAMETER :: rz0_i_s_0 = 0.69e-3_wp ! Eq. 43 [m]37 REAL( wp), PARAMETER :: rz0_i_f_0 = 4.54e-4_wp ! bottom p.562 MIZ [m]36 REAL(dp), PARAMETER :: rz0_i_s_0 = 0.69e-3_wp ! Eq. 43 [m] 37 REAL(dp), PARAMETER :: rz0_i_f_0 = 4.54e-4_wp ! bottom p.562 MIZ [m] 38 38 39 39 LOGICAL, PARAMETER :: l_add_form_drag = .TRUE. … … 44 44 45 45 !!---------------------------------------------------------------------- 46 # include "single_precision_substitute.h90" 46 47 CONTAINS 47 48 … … 101 102 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: U_zu ! relative wind module at zu [m/s] 102 103 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj) :: frice ! sea-ice concentration (fraction) 103 REAL( wp), INTENT(out), DIMENSION(jpi,jpj) :: Cd_i ! drag coefficient over sea-ice104 REAL( wp), INTENT(out), DIMENSION(jpi,jpj) :: Ch_i ! transfert coefficient for heat over ice105 REAL( wp), INTENT(out), DIMENSION(jpi,jpj) :: Ce_i ! transfert coefficient for sublimation over ice106 REAL( wp), INTENT(out), DIMENSION(jpi,jpj) :: t_zu_i ! pot. air temp. adjusted at zu [K]107 REAL( wp), INTENT(out), DIMENSION(jpi,jpj) :: q_zu_i ! spec. humidity adjusted at zu [kg/kg]108 !!---------------------------------------------------------------------------------- 109 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: CdN110 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: ChN111 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: CeN112 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xz0 ! Aerodynamic roughness length [m]113 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xu_star ! u*, friction velocity114 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xL ! zeta (zu/L)115 REAL( wp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xUN10 ! Neutral wind at zu116 !!---------------------------------------------------------------------------------- 117 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: Ubzu118 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: ztmp1, ztmp2 ! temporary stuff119 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: dt_zu, dq_zu120 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: zz0_s, zz0_f, RiB ! third dimensions (size=2):121 REAL( wp), DIMENSION(:,:), ALLOCATABLE :: zCdN_s, zChN_s, zCdN_f, zChN_f104 REAL(dp), INTENT(out), DIMENSION(jpi,jpj) :: Cd_i ! drag coefficient over sea-ice 105 REAL(dp), INTENT(out), DIMENSION(jpi,jpj) :: Ch_i ! transfert coefficient for heat over ice 106 REAL(dp), INTENT(out), DIMENSION(jpi,jpj) :: Ce_i ! transfert coefficient for sublimation over ice 107 REAL(dp), INTENT(out), DIMENSION(jpi,jpj) :: t_zu_i ! pot. air temp. adjusted at zu [K] 108 REAL(dp), INTENT(out), DIMENSION(jpi,jpj) :: q_zu_i ! spec. humidity adjusted at zu [kg/kg] 109 !!---------------------------------------------------------------------------------- 110 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: CdN 111 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: ChN 112 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: CeN 113 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xz0 ! Aerodynamic roughness length [m] 114 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xu_star ! u*, friction velocity 115 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xL ! zeta (zu/L) 116 REAL(dp), INTENT(out), DIMENSION(jpi,jpj), OPTIONAL :: xUN10 ! Neutral wind at zu 117 !!---------------------------------------------------------------------------------- 118 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: Ubzu 119 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: ztmp1, ztmp2 ! temporary stuff 120 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: dt_zu, dq_zu 121 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: zz0_s, zz0_f, RiB ! third dimensions (size=2): 122 REAL(dp), DIMENSION(:,:), ALLOCATABLE :: zCdN_s, zChN_s, zCdN_f, zChN_f 122 123 !! 123 124 INTEGER :: jit … … 179 180 Cd_i(:,:) = zCdN_s(:,:) + zCdN_f(:,:) 180 181 Ch_i(:,:) = zChN_s(:,:) + zChN_f(:,:) 181 RiB(:,:) = Ri_bulk( zt, Ts_i(:,:), t_zt(:,:), qs_i(:,:), q_zt(:,:), Ubzu(:,:) ) ! over ice (index=1)182 RiB(:,:) =Ri_bulk( zt, CASTDP(Ts_i(:,:)), CASTDP(t_zt(:,:)), CASTDP(qs_i(:,:)), CASTDP(q_zt(:,:)), Ubzu(:,:) ) ! over ice (index=1) 182 183 183 184 … … 207 208 ztmp2(:,:) = Ubzu(:,:) 208 209 END IF 209 RiB(:,:) = Ri_bulk( zt, Ts_i(:,:), t_zt(:,:), qs_i(:,:), q_zt(:,:), ztmp2(:,:) ) ! over ice (index=1)210 RiB(:,:) =Ri_bulk( zt, CASTDP(Ts_i(:,:)), CASTDP(t_zt(:,:)), CASTDP(qs_i(:,:)), CASTDP(q_zt(:,:)), ztmp2(:,:) ) ! over ice (index=1) 210 211 IF(l_dbg_print) PRINT *, 'LOLO: RiB_zt =', RiB(:,:) 211 212
Note: See TracChangeset
for help on using the changeset viewer.