Changeset 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/SBC/sbcblk_skin_coare.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_skin_coare.F90
r14072 r15540 36 36 37 37 !! Cool-skin related parameters: 38 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: dT_cs !: dT due to cool-skin effect38 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: dT_cs !: dT due to cool-skin effect 39 39 ! ! => temperature difference between air-sea interface (z=0) 40 40 ! ! and right below viscous layer (z=delta) 41 41 42 42 !! Warm-layer related parameters: 43 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: dT_wl !: dT due to warm-layer effect43 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: dT_wl !: dT due to warm-layer effect 44 44 ! ! => difference between "almost surface (right below 45 45 ! ! viscous layer, z=delta) and depth of bulk SST (z=gdept_1d(1)) 46 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: Hz_wl !: depth (aka thickness) of warm-layer [m]47 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: Qnt_ac !: time integral / accumulated heat stored by the warm layer46 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: Hz_wl !: depth (aka thickness) of warm-layer [m] 47 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: Qnt_ac !: time integral / accumulated heat stored by the warm layer 48 48 ! ! Qxdt => [J/m^2] (reset to zero every midnight) 49 REAL( wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: Tau_ac !: time integral / accumulated momentum49 REAL(dp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: Tau_ac !: time integral / accumulated momentum 50 50 ! ! Tauxdt => [N.s/m^2] (reset to zero every midnight) 51 51 52 REAL( wp), PARAMETER, PUBLIC :: Hwl_max = 20._wp !: maximum depth of warm layer (adjustable)52 REAL(dp), PARAMETER, PUBLIC :: Hwl_max = 20._wp !: maximum depth of warm layer (adjustable) 53 53 ! 54 REAL( wp), PARAMETER :: rich = 0.65_wp !: critical Richardson number54 REAL(dp), PARAMETER :: rich = 0.65_wp !: critical Richardson number 55 55 ! 56 REAL( wp), PARAMETER :: zfr0 = 0.5_wp !: initial value of solar flux absorption56 REAL(dp), PARAMETER :: zfr0 = 0.5_wp !: initial value of solar flux absorption 57 57 ! 58 58 !!---------------------------------------------------------------------- … … 81 81 !!------------------------------------------------------------------ 82 82 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pQsw ! net solar a.k.a shortwave radiation into the ocean (after albedo) [W/m^2] 83 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pQnsol ! non-solar heat flux to the ocean [W/m^2]84 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pustar ! friction velocity, temperature and humidity (u*,t*,q*)85 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pSST ! bulk SST [K]86 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pQlat ! latent heat flux [W/m^2]83 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pQnsol ! non-solar heat flux to the ocean [W/m^2] 84 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pustar ! friction velocity, temperature and humidity (u*,t*,q*) 85 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pSST ! bulk SST [K] 86 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pQlat ! latent heat flux [W/m^2] 87 87 !!--------------------------------------------------------------------- 88 88 INTEGER :: ji, jj, jc 89 REAL( wp) :: zQabs, zdlt, zfr, zalfa, zqlat, zus89 REAL(dp) :: zQabs, zdlt, zfr, zalfa, zqlat, zus 90 90 !!--------------------------------------------------------------------- 91 91 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) … … 131 131 !!--------------------------------------------------------------------- 132 132 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pQsw ! surface net solar radiation into the ocean [W/m^2] => >= 0 ! 133 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pQnsol ! surface net non-solar heat flux into the ocean [W/m^2] => normally < 0 !134 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pTau ! wind stress [N/m^2]135 REAL( wp), DIMENSION(jpi,jpj), INTENT(in) :: pSST ! bulk SST at depth gdept_1d(1) [K]133 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pQnsol ! surface net non-solar heat flux into the ocean [W/m^2] => normally < 0 ! 134 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pTau ! wind stress [N/m^2] 135 REAL(dp), DIMENSION(jpi,jpj), INTENT(in) :: pSST ! bulk SST at depth gdept_1d(1) [K] 136 136 INTEGER , INTENT(in) :: iwait ! if /= 0 then wait before updating accumulated fluxes 137 137 !! 138 138 INTEGER :: ji,jj 139 139 ! 140 REAL( wp) :: zdTwl, zHwl, zQabs, zfr141 REAL( wp) :: zqac, ztac142 REAL( wp) :: zalfa, zcd1, zcd2, flg143 !!--------------------------------------------------------------------- 144 145 REAL( wp) :: ztime, znoon, zmidn140 REAL(dp) :: zdTwl, zHwl, zQabs, zfr 141 REAL(dp) :: zqac, ztac 142 REAL(dp) :: zalfa, zcd1, zcd2, flg 143 !!--------------------------------------------------------------------- 144 145 REAL(dp) :: ztime, znoon, zmidn 146 146 INTEGER :: jl 147 147 … … 271 271 !! L. Brodeau, october 2019 272 272 !!--------------------------------------------------------------------- 273 REAL( wp) :: delta_skin_layer274 REAL( wp), INTENT(in) :: palpha ! thermal expansion coefficient of sea-water (SST accurate enough!)275 REAL( wp), INTENT(in) :: pQd ! < 0 !!! part of the net heat flux actually absorbed in the WL [W/m^2]273 REAL(dp) :: delta_skin_layer 274 REAL(dp), INTENT(in) :: palpha ! thermal expansion coefficient of sea-water (SST accurate enough!) 275 REAL(dp), INTENT(in) :: pQd ! < 0 !!! part of the net heat flux actually absorbed in the WL [W/m^2] 276 276 ! ! => term "Q + Rs*fs" in eq.6 of Fairall et al. 1996 277 REAL( wp), INTENT(in) :: pQlat ! latent heat flux [W/m^2]278 REAL( wp), INTENT(in) :: pustar_a ! friction velocity in the air (u*) [m/s]279 !!--------------------------------------------------------------------- 280 REAL( wp) :: zusw, zusw2, zlamb, zQd, ztf, ztmp277 REAL(dp), INTENT(in) :: pQlat ! latent heat flux [W/m^2] 278 REAL(dp), INTENT(in) :: pustar_a ! friction velocity in the air (u*) [m/s] 279 !!--------------------------------------------------------------------- 280 REAL(dp) :: zusw, zusw2, zlamb, zQd, ztf, ztmp 281 281 !!--------------------------------------------------------------------- 282 282 … … 302 302 !! Fraction of solar heat flux absorbed inside warm layer 303 303 !!--------------------------------------------------------------------- 304 REAL( wp) :: frac_solar_abs305 REAL( wp), INTENT(in) :: pHwl ! thickness of warm-layer [m]304 REAL(dp) :: frac_solar_abs 305 REAL(dp), INTENT(in) :: pHwl ! thickness of warm-layer [m] 306 306 !!--------------------------------------------------------------------- 307 307 frac_solar_abs = 1._wp - ( 0.28*0.014 *(1._wp - EXP(-pHwl/0.014)) &
Note: See TracChangeset
for help on using the changeset viewer.