- Timestamp:
- 2019-12-10T15:44:23+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL
- Files:
-
- 2 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/ablmod.F90
r11937 r12154 17 17 USE phycst ! physical constants 18 18 USE dom_oce, ONLY : tmask 19 USE sbc_oce, ONLY : ght_abl, ghw_abl, e3t_abl, e3w_abl, jpka, jpkam1 20 USE sbcblk ! use some physical constants for flux computation 19 USE sbc_oce, ONLY : ght_abl, ghw_abl, e3t_abl, e3w_abl, jpka, jpkam1, rhoa 20 USE sbcblk ! use rn_?fac 21 USE sbcblk_phy ! use some physical constants for flux computation 21 22 ! 22 23 USE prtctl ! Print control (prt_ctl routine) … … 100 101 REAL(wp) , INTENT( out), DIMENSION(:,: ) :: ptauj_ice ! ice-surface tauy stress (V-point) 101 102 #endif 102 103 REAL(wp), DIMENSION(1:jpi,1:jpj ) :: z rhoa, zwnd_i, zwnd_j103 ! 104 REAL(wp), DIMENSION(1:jpi,1:jpj ) :: zwnd_i, zwnd_j 104 105 REAL(wp), DIMENSION(1:jpi,2:jpka ) :: zCF 105 106 REAL(wp), DIMENSION(1:jpi,1:jpj,1:jpka) :: z_cft !--FL--to be removed after the test phase … … 529 530 ztemp = tq_abl ( ji, jj, 2, nt_a, jp_ta ) 530 531 zhumi = tq_abl ( ji, jj, 2, nt_a, jp_qa ) 531 zcff = pslp_dta( ji, jj ) / & !<-- At this point ztemp and zhumi should not be zero ... 532 & ( R_dry*ztemp * ( 1._wp + rctv0*zhumi ) ) 532 !zcff = pslp_dta( ji, jj ) / & !<-- At this point ztemp and zhumi should not be zero ... 533 ! & ( R_dry*ztemp * ( 1._wp + rctv0*zhumi ) ) 534 zcff = rho_air( ztemp, zhumi, pslp_dta( ji, jj ) ) 533 535 psen ( ji, jj ) = cp_air(zhumi) * zcff * psen(ji,jj) * ( psst(ji,jj) + rt0 - ztemp ) 534 536 pevp ( ji, jj ) = rn_efac*MAX( 0._wp, zcff * pevp(ji,jj) * ( pssq(ji,jj) - zhumi ) ) 535 zrhoa( ji, jj ) = zcff537 rhoa( ji, jj ) = zcff 536 538 END DO 537 539 END DO … … 551 553 zcff = SQRT( zwnd_i(ji,jj) * zwnd_i(ji,jj) & 552 554 & + zwnd_j(ji,jj) * zwnd_j(ji,jj) ) ! * msk_abl(ji,jj) 553 zztmp = zrhoa(ji,jj) * pcd_du(ji,jj)555 zztmp = rhoa(ji,jj) * pcd_du(ji,jj) 554 556 555 557 pwndm (ji,jj) = zcff … … 593 595 zztmp2 = 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) 594 596 595 ptaui_ice(ji,jj) = 0.5_wp * ( zrhoa(ji+1,jj) * pCd_du_ice(ji+1,jj) &596 & + zrhoa(ji ,jj) * pCd_du_ice(ji ,jj) ) &597 ptaui_ice(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj) & 598 & + rhoa(ji ,jj) * pCd_du_ice(ji ,jj) ) & 597 599 & * ( zztmp1 - rn_vfac * pssu_ice(ji,jj) ) 598 ptauj_ice(ji,jj) = 0.5_wp * ( zrhoa(ji,jj+1) * pCd_du_ice(ji,jj+1) &599 & + zrhoa(ji,jj ) * pCd_du_ice(ji,jj ) ) &600 ptauj_ice(ji,jj) = 0.5_wp * ( rhoa(ji,jj+1) * pCd_du_ice(ji,jj+1) & 601 & + rhoa(ji,jj ) * pCd_du_ice(ji,jj ) ) & 600 602 & * ( zztmp2 - rn_vfac * pssv_ice(ji,jj) ) 601 603 END DO -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/sbcabl.F90
r11858 r12154 22 22 USE sbc_oce ! Surface boundary condition: ocean fields 23 23 USE sbcblk ! Surface boundary condition: bulk formulae 24 USE sbcblk_phy ! Surface boundary condition: bulk formulae 24 25 USE dom_oce, ONLY : tmask 25 26 ! … … 93 94 IF( nn_dyn_restore < 0 .OR. nn_dyn_restore > 2 ) & 94 95 & CALL ctl_stop( 'abl_init : bad flag, nn_dyn_restore must be 0, 1 or 2 ' ) 95 ! 96 96 97 !!--------------------------------------------------------------------- 97 98 !! Control prints … … 215 216 WRITE(numout,*) ' ABL Maximum value for dynamics restoring = ',zcff1 216 217 ! Check that restoring coefficients are between 0 and 1 217 !IF( zcff1 > 1._wp .OR. zcff1 < 0._wp ) &218 !IF( zcff1 > nn_fsbc .OR. zcff1 < 0._wp ) &219 218 IF( zcff1 - nn_fsbc > 0.001_wp .OR. zcff1 < 0._wp ) & 220 219 & CALL ctl_stop( 'abl_init : wrong value for rn_ldyn_max' ) 221 !IF( zcff > 1._wp .OR. zcff < 0._wp ) &222 220 IF( zcff - nn_fsbc > 0.001_wp .OR. zcff < 0._wp ) & 223 221 & CALL ctl_stop( 'abl_init : wrong value for rn_ldyn_min' ) … … 236 234 WRITE(numout,*) ' ABL Maximum value for tracers restoring = ',zcff1 237 235 ! Check that restoring coefficients are between 0 and 1 238 !IF( zcff1 > 1._wp .OR. zcff1 < 0._wp ) &239 236 IF( zcff1 - nn_fsbc > 0.001_wp .OR. zcff1 < 0._wp ) & 240 237 & CALL ctl_stop( 'abl_init : wrong value for rn_ltra_max' ) 241 !IF( zcff > 1._wp .OR. zcff < 0._wp ) &242 238 IF( zcff - nn_fsbc > 0.001_wp .OR. zcff < 0._wp ) & 243 239 & CALL ctl_stop( 'abl_init : wrong value for rn_ltra_min' ) … … 294 290 tke_abl(:,:,:,nt_a ) = 0._wp 295 291 ENDIF 292 293 rhoa(:,:) = rho_air( tq_abl(:,:,2,nt_n,jp_ta), tq_abl(:,:,2,nt_n,jp_qa), sf(jp_slp)%fnow(:,:,1) ) !!GS: rhoa must be (re)computed here here to avoid division by zero in blk_ice_1 (TBI) 296 294 297 295 END SUBROUTINE sbc_abl_init … … 341 339 & tq_abl(:,:,2,nt_n,jp_ta), tq_abl(:,:,2,nt_n,jp_qa), & ! <<= in 342 340 & sf(jp_slp )%fnow(:,:,1) , sst_m, ssu_m, ssv_m , & ! <<= in 341 & sf(jp_qsr )%fnow(:,:,1) , sf(jp_qlw )%fnow(:,:,1) , & ! <<= in 343 342 & zssq, zcd_du, zsen, zevp ) ! =>> out 344 343
Note: See TracChangeset
for help on using the changeset viewer.