Changeset 11626
- Timestamp:
- 2019-10-01T15:25:19+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC
- Files:
-
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p0.F90
r11615 r11626 38 38 USE sbc_oce ! Surface boundary condition: ocean fields 39 39 USE sbcblk_phy ! all thermodynamics functions, rho_air, q_sat, etc... !LB 40 USE sbcblk_skin_coare 3p6! cool-skin/warm layer scheme (CSWL_ECMWF) !LB40 USE sbcblk_skin_coare ! cool-skin/warm layer scheme (CSWL_ECMWF) !LB 41 41 42 42 IMPLICIT NONE … … 348 348 & ztmp1, zeta_u, Qlat=ztmp2) ! Qnsol -> ztmp1 / Tau -> zeta_u 349 349 350 CALL CS_COARE 3P6( Qsw, ztmp1, u_star, zsst, ztmp2, pdTc ) ! ! Qnsol -> ztmp1 / Qlat -> ztmp2350 CALL CS_COARE( Qsw, ztmp1, u_star, zsst, ztmp2, pdTc ) ! ! Qnsol -> ztmp1 / Qlat -> ztmp2 351 351 352 352 T_s(:,:) = zsst(:,:) + pdTc(:,:)*tmask(:,:,1) … … 360 360 CALL UPDATE_QNSOL_TAU( T_s, q_s, t_zu, q_zu, u_star, t_star, q_star, U_blk, slp, rad_lw, & 361 361 & ztmp1, zeta_u) ! Qnsol -> ztmp1 / Tau -> zeta_u 362 !! In WL_COARE 3P6or , Tau_ac and Qnt_ac must be updated at the final itteration step => add a flag to do this!362 !! In WL_COARE or , Tau_ac and Qnt_ac must be updated at the final itteration step => add a flag to do this! 363 363 IF (PRESENT(Hwl)) THEN 364 CALL WL_COARE 3P6( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw, Hwl=zHwl )364 CALL WL_COARE( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw, Hwl=zHwl ) 365 365 ELSE 366 CALL WL_COARE 3P6( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw )366 CALL WL_COARE( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw ) 367 367 END IF 368 368 !! Updating T_s and q_s !!! -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p6.F90
r11618 r11626 38 38 USE sbc_oce ! Surface boundary condition: ocean fields 39 39 USE sbcblk_phy ! all thermodynamics functions, rho_air, q_sat, etc... !LB 40 USE sbcblk_skin_coare 3p6! cool-skin/warm layer scheme (CSWL_ECMWF) !LB40 USE sbcblk_skin_coare ! cool-skin/warm layer scheme (CSWL_ECMWF) !LB 41 41 42 42 IMPLICIT NONE … … 348 348 & ztmp1, zeta_u, Qlat=ztmp2) ! Qnsol -> ztmp1 / Tau -> zeta_u 349 349 350 CALL CS_COARE 3P6( Qsw, ztmp1, u_star, zsst, ztmp2, pdTc ) ! ! Qnsol -> ztmp1 / Qlat -> ztmp2350 CALL CS_COARE( Qsw, ztmp1, u_star, zsst, ztmp2, pdTc ) ! ! Qnsol -> ztmp1 / Qlat -> ztmp2 351 351 352 352 T_s(:,:) = zsst(:,:) + pdTc(:,:)*tmask(:,:,1) … … 360 360 CALL UPDATE_QNSOL_TAU( T_s, q_s, t_zu, q_zu, u_star, t_star, q_star, U_blk, slp, rad_lw, & 361 361 & ztmp1, zeta_u) ! Qnsol -> ztmp1 / Tau -> zeta_u 362 !! In WL_COARE 3P6or , Tau_ac and Qnt_ac must be updated at the final itteration step => add a flag to do this!362 !! In WL_COARE or , Tau_ac and Qnt_ac must be updated at the final itteration step => add a flag to do this! 363 363 IF (PRESENT(Hwl)) THEN 364 CALL WL_COARE 3P6( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw, Hwl=zHwl )364 CALL WL_COARE( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw, Hwl=zHwl ) 365 365 ELSE 366 CALL WL_COARE 3P6( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw )366 CALL WL_COARE( kt, Qsw, ztmp1, zeta_u, zsst, plong, isecday_utc, MOD(nb_itt,j_itt), pdTw ) 367 367 END IF 368 368 !! Updating T_s and q_s !!! -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_skin_coare.F90
r11625 r11626 1 MODULE sbcblk_skin_coare 3p61 MODULE sbcblk_skin_coare 2 2 !!====================================================================== 3 !! *** MODULE sbcblk_skin_coare 3p6***3 !! *** MODULE sbcblk_skin_coare *** 4 4 !! Computes: 5 5 !! * the surface skin temperature (aka SSST) based on the cool-skin/warm-layer … … 33 33 PRIVATE 34 34 35 PUBLIC :: CS_COARE 3P6, WL_COARE3P635 PUBLIC :: CS_COARE, WL_COARE 36 36 37 37 !! Cool-skin related parameters: … … 53 53 54 54 55 SUBROUTINE CS_COARE 3P6( pQsw, pQnsol, pustar, pSST, pQlat, pdT )55 SUBROUTINE CS_COARE( pQsw, pQnsol, pustar, pSST, pQlat, pdT ) 56 56 !!--------------------------------------------------------------------- 57 57 !! … … 130 130 END DO 131 131 132 END SUBROUTINE CS_COARE 3P6133 134 135 136 137 SUBROUTINE WL_COARE 3P6( kt, pQsw, pQnsol, pTau, pSST, plon, isd, iwait, pdT, &132 END SUBROUTINE CS_COARE 133 134 135 136 137 SUBROUTINE WL_COARE( kt, pQsw, pQnsol, pTau, pSST, plon, isd, iwait, pdT, & 138 138 & Hwl, mask_wl ) 139 139 !!--------------------------------------------------------------------- … … 222 222 !IF (isd_sol <= rdt ) THEN !re-zero at midnight ! LOLO improve: risky if real midnight (00:00:00) is not a time in vtime... 223 223 IF ( (rhr_sol > 23.5_wp).OR.(rhr_sol < 4._wp) ) THEN 224 !PRINT *, ' [WL_COARE 3P6] MIDNIGHT RESET !!!!, isd_sol =>', isd_sol224 !PRINT *, ' [WL_COARE] MIDNIGHT RESET !!!!, isd_sol =>', isd_sol 225 225 zdz = H_wl_max 226 226 Tau_ac(ji,jj) = 0._wp … … 230 230 IF ( rhr_sol > 5._wp ) THEN ! ( 5am) 231 231 232 !PRINT *, ' [WL_COARE 3P6] WE DO WL !'233 !PRINT *, ' [WL_COARE 3P6] isd_sol, pTau, pSST, pdT =', isd_sol, REAL(pTau(ji,jj),4), REAL(pSST(ji,jj),4), REAL(pdT(ji,jj),4)232 !PRINT *, ' [WL_COARE] WE DO WL !' 233 !PRINT *, ' [WL_COARE] isd_sol, pTau, pSST, pdT =', isd_sol, REAL(pTau(ji,jj),4), REAL(pSST(ji,jj),4), REAL(pdT(ji,jj),4) 234 234 235 235 !************************************ … … 239 239 zQabs = zfr*pQsw(ji,jj) + pQnsol(ji,jj) ! tot heat absorbed in warm layer 240 240 241 !PRINT *, ' [WL_COARE 3P6] rdt, pQsw, pQnsol, zQabs =', rdt, REAL(pQsw(ji,jj),4), REAL(pQnsol(ji,jj),4), REAL(zQabs,4)241 !PRINT *, ' [WL_COARE] rdt, pQsw, pQnsol, zQabs =', rdt, REAL(pQsw(ji,jj),4), REAL(pQnsol(ji,jj),4), REAL(zQabs,4) 242 242 243 243 IF ( zQabs >= Qabs_thr ) THEN ! Check for threshold 244 244 245 !PRINT *, ' [WL_COARE 3P6] Tau_ac, Qnt_ac =', REAL(Tau_ac(ji,jj),4), REAL(Qnt_ac(ji,jj),4)245 !PRINT *, ' [WL_COARE] Tau_ac, Qnt_ac =', REAL(Tau_ac(ji,jj),4), REAL(Qnt_ac(ji,jj),4) 246 246 247 247 !Tau_ac(ji,jj) = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*rdt ! momentum integral … … 281 281 IF ( iwait == 0 ) THEN 282 282 IF ( (zQabs >= Qabs_thr).AND.(rhr_sol >= 5._wp) ) THEN 283 !PRINT *, ' [WL_COARE 3P6] WE UPDATE ACCUMULATED FLUXES !!!'283 !PRINT *, ' [WL_COARE] WE UPDATE ACCUMULATED FLUXES !!!' 284 284 Qnt_ac(ji,jj) = zqac ! Updating Qnt_ac, heat integral 285 285 Tau_ac(ji,jj) = ztac ! … … 295 295 END DO 296 296 297 END SUBROUTINE WL_COARE 3P6297 END SUBROUTINE WL_COARE 298 298 299 299 300 300 !!====================================================================== 301 END MODULE sbcblk_skin_coare 3p6301 END MODULE sbcblk_skin_coare
Note: See TracChangeset
for help on using the changeset viewer.