- Timestamp:
- 2021-03-05T17:03:57+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/ticket2632_r14588_theta_sbcblk/src/ABL/ablmod.F90
r14433 r14592 104 104 ! 105 105 REAL(wp), DIMENSION(1:jpi,1:jpj ) :: zwnd_i, zwnd_j 106 REAL(wp), DIMENSION(1:jpi,1:jpj ) :: zsspt 107 REAL(wp), DIMENSION(1:jpi,1:jpj ) :: ztabs, zpre 106 108 REAL(wp), DIMENSION(1:jpi ,2:jpka) :: zCF 107 109 ! … … 142 144 zrough(:,:) = z0_from_Cd( ght_abl(2), pCd_du(:,:) / MAX( pwndm(:,:), 0.5_wp ) ) ! #LB: z0_from_Cd is define in sbc_phy.F90... 143 145 146 ! sea surface potential temperature [K] 147 zsspt(:,:) = theta_exner( psst(:,:)+rt0, pslp_dta(:,:) ) 148 144 149 ! 145 150 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< … … 187 192 DO ji = 1,jpi ! surface boundary condition for temperature 188 193 zztmp1 = psen(ji, jj) 189 zztmp2 = psen(ji, jj) * ( psst(ji, jj) + rt0)194 zztmp2 = psen(ji, jj) * zsspt(ji, jj) 190 195 #if defined key_si3 191 196 zztmp1 = zztmp1 * pfrac_oce(ji,jj) + (1._wp - pfrac_oce(ji,jj)) * psen_ice(ji,jj) … … 495 500 zcff2 = jp_alp3_dyn * zsig**3 + jp_alp2_dyn * zsig**2 & 496 501 & + jp_alp1_dyn * zsig + jp_alp0_dyn 497 zcff = (1._wp-zmsk) + zmsk * zcff2 * rn_Dt ! zcff = 1 for masked points 498 ! rn_Dt = rDt_abl / nn_fsbc 502 zcff = (1._wp-zmsk) + zmsk * zcff2 * rDt_abl ! zcff = 1 for masked points 499 503 zcff = zcff * rest_eq(ji,jj) 500 504 u_abl( ji, jj, jk, nt_a ) = (1._wp - zcff ) * u_abl( ji, jj, jk, nt_a ) & … … 518 522 zcff2 = jp_alp3_tra * zsig**3 + jp_alp2_tra * zsig**2 & 519 523 & + jp_alp1_tra * zsig + jp_alp0_tra 520 zcff = (1._wp-zmsk) + zmsk * zcff2 * rn_Dt ! zcff = 1 for masked points 521 ! rn_Dt = rDt_abl / nn_fsbc 524 zcff = (1._wp-zmsk) + zmsk * zcff2 * rDt_abl ! zcff = 1 for masked points 522 525 tq_abl( ji, jj, jk, nt_a, jp_ta ) = (1._wp - zcff ) * tq_abl( ji, jj, jk, nt_a, jp_ta ) & 523 526 & + zcff * pt_dta( ji, jj, jk ) … … 586 589 ! 587 590 DO_2D( 1, 1, 1, 1 ) 588 ztemp = tq_abl( ji, jj, 2, nt_a, jp_ta ) 589 zhumi = tq_abl( ji, jj, 2, nt_a, jp_qa ) 590 zcff = rho_air( ztemp, zhumi, pslp_dta( ji, jj ) ) 591 psen( ji, jj ) = - cp_air(zhumi) * zcff * psen(ji,jj) * ( psst(ji,jj) + rt0 - ztemp ) !GS: negative sign to respect aerobulk convention 592 pevp( ji, jj ) = rn_efac*MAX( 0._wp, zcff * pevp(ji,jj) * ( pssq(ji,jj) - zhumi ) ) 591 ztemp = tq_abl( ji, jj, 2, nt_a, jp_ta ) 592 zhumi = tq_abl( ji, jj, 2, nt_a, jp_qa ) 593 zpre( ji, jj ) = pres_temp( zhumi, pslp_dta(ji,jj), ght_abl(2), ptpot=ztemp, pta=ztabs( ji, jj ) ) 594 zcff = rho_air( ztabs( ji, jj ), zhumi, zpre( ji, jj ) ) 595 psen( ji, jj ) = - cp_air(zhumi) * zcff * psen(ji,jj) * ( zsspt(ji,jj) - ztemp ) !GS: negative sign to respect aerobulk convention 596 pevp( ji, jj ) = rn_efac*MAX( 0._wp, zcff * pevp(ji,jj) * ( pssq(ji,jj) - zhumi ) ) 593 597 plat( ji, jj ) = - L_vap( psst(ji,jj) ) * pevp( ji, jj ) 594 598 rhoa( ji, jj ) = zcff 595 599 END_2D 600 !!GS: debug only; to be removed 601 CALL iom_put ( "pres_zu", zpre(:,:) ) 602 CALL iom_put ( "tabs_zu", ztabs(:,:) ) 596 603 597 604 DO_2D( 0, 1, 0, 1 ) … … 639 646 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 640 647 ! ------------------------------------------------------------ ! 641 DO_2D( 0, 0, 0, 0 ) 642 ptaui_ice(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj) + rhoa(ji,jj) * pCd_du_ice(ji,jj) ) & 643 & * ( 0.5_wp * ( u_abl(ji+1,jj,2,nt_a) + u_abl(ji,jj,2,nt_a) ) - pssu_ice(ji,jj) ) 644 ptauj_ice(ji,jj) = 0.5_wp * ( rhoa(ji,jj+1) * pCd_du_ice(ji,jj+1) + rhoa(ji,jj) * pCd_du_ice(ji,jj) ) & 645 & * ( 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) - pssv_ice(ji,jj) ) 646 END_2D 647 CALL lbc_lnk( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice, 'V', -1.0_wp ) 648 ! 649 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=ptaui_ice , clinfo1=' abl_stp: putaui : ' & 650 & , tab2d_2=ptauj_ice , clinfo2=' pvtaui : ' ) 648 !DO_2D( 0, 0, 0, 0 ) 649 ! ptaui_ice(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj) + rhoa(ji,jj) * pCd_du_ice(ji,jj) ) & 650 ! & * ( 0.5_wp * ( u_abl(ji+1,jj,2,nt_a) + u_abl(ji,jj,2,nt_a) ) - pssu_ice(ji,jj) ) 651 ! ptauj_ice(ji,jj) = 0.5_wp * ( rhoa(ji,jj+1) * pCd_du_ice(ji,jj+1) + rhoa(ji,jj) * pCd_du_ice(ji,jj) ) & 652 ! & * ( 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) - pssv_ice(ji,jj) ) 653 !END_2D 654 !CALL lbc_lnk( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice, 'V', -1.0_wp ) 655 !! 656 !IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=ptaui_ice , clinfo1=' abl_stp: putaui : ' & 657 ! & , tab2d_2=ptauj_ice , clinfo2=' pvtaui : ' ) 658 651 659 ! ------------------------------------------------------------ ! 652 660 ! Wind stress relative to the moving ice ( U10m - U_ice ) !
Note: See TracChangeset
for help on using the changeset viewer.