- Timestamp:
- 2020-03-23T18:21:59+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12563_ASINTER-06_ABL_improvement/src/OCE/SBC/sbcblk.F90
r12489 r12588 104 104 REAL(wp) :: rn_zu ! z(u) : height of wind measurements 105 105 ! 106 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: Cd_ice , Ch_ice , Ce_ice ! transfert coefficients over ice107 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: Cdn_oce, Chn_oce, Cen_oce ! neutral coeffs over ocean (L15 bulk scheme)108 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: t_zu, q_zu ! air temp. and spec. hum. at wind speed height (L15 bulk scheme)106 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: Cdn_oce, Chn_oce, Cen_oce ! neutral coeffs over ocean (L15 bulk scheme and ABL) 107 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: Cd_ice , Ch_ice , Ce_ice ! transfert coefficients over ice 108 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: t_zu, q_zu ! air temp. and spec. hum. at wind speed height (L15 bulk scheme) 109 109 110 110 LOGICAL :: ln_skin_cs ! use the cool-skin (only available in ECMWF and COARE algorithms) !LB … … 113 113 LOGICAL :: ln_humi_dpt ! humidity read in files ("sn_humi") is dew-point temperature [K] if .true. !LB 114 114 LOGICAL :: ln_humi_rlh ! humidity read in files ("sn_humi") is relative humidity [%] if .true. !LB 115 LOGICAL :: ln_tpot !!GS: flag to compute or not potential temperature 115 116 ! 116 117 INTEGER :: nhumi ! choice of the bulk algorithm … … 170 171 & ln_NCAR, ln_COARE_3p0, ln_COARE_3p6, ln_ECMWF, & ! bulk algorithm 171 172 & cn_dir , rn_zqt, rn_zu, & 172 & rn_pfac, rn_efac, rn_vfac, ln_Cd_L12, ln_Cd_L15, 173 & rn_pfac, rn_efac, rn_vfac, ln_Cd_L12, ln_Cd_L15, ln_tpot, & 173 174 & ln_skin_cs, ln_skin_wl, ln_humi_sph, ln_humi_dpt, ln_humi_rlh ! cool-skin / warm-layer !LB 174 175 !!--------------------------------------------------------------------- … … 593 594 !#LB: because AGRIF hates functions that return something else than a scalar, need to 594 595 ! use scalar version of gamma_moist() ... 595 DO_2D_11_11 596 ztpot(ji,jj) = ptair(ji,jj) + gamma_moist( ptair(ji,jj), zqair(ji,jj) ) * rn_zqt 597 END_2D 596 IF( ln_tpot ) THEN 597 DO_2D_11_11 598 ztpot(ji,jj) = ptair(ji,jj) + gamma_moist( ptair(ji,jj), zqair(ji,jj) ) * rn_zqt 599 END_2D 600 ELSE 601 ztpot = ptair(:,:) 602 ENDIF 598 603 ENDIF 599 604 … … 663 668 ELSE !== BLK formulation ==! turbulent fluxes computation 664 669 CALL BULK_FORMULA( rn_zu, ptsk(:,:), pssq(:,:), t_zu(:,:), q_zu(:,:), & 665 & zcd_oce(:,:), zch_oce(:,:), zce_oce(:,:), &666 & wndm(:,:), zU_zu(:,:), pslp(:,:), &667 & taum(:,:), psen(:,:), zqla(:,:), &668 & pEvap=pevp(:,:), prhoa=rhoa(:,:) )670 & zcd_oce(:,:), zch_oce(:,:), zce_oce(:,:), & 671 & wndm(:,:), zU_zu(:,:), pslp(:,:), & 672 & taum(:,:), psen(:,:), zqla(:,:), & 673 & pEvap=pevp(:,:), prhoa=rhoa(:,:) ) 669 674 670 675 zqla(:,:) = zqla(:,:) * tmask(:,:,1) … … 893 898 894 899 ! local scalars ( place there for vector optimisation purposes) 895 !IF (ln_abl) rhoa (:,:) = rho_air( ptair(:,:), phumi(:,:), pslp(:,:) ) !!GS: rhoa must be (re)computed here with ABL to avoid division by zero after (TBI)896 900 zcd_dui(:,:) = wndm_ice(:,:) * Cd_ice(:,:) 897 901 … … 913 917 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=putaui , clinfo1=' blk_ice: putaui : ' & 914 918 & , tab2d_2=pvtaui , clinfo2=' pvtaui : ' ) 915 ELSE 919 ELSE ! ln_abl 916 920 zztmp1 = 11637800.0_wp 917 921 zztmp2 = -5897.8_wp
Note: See TracChangeset
for help on using the changeset viewer.