- Timestamp:
- 2020-05-21T17:14:32+02:00 (4 years ago)
- Location:
- NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/SBC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/SBC/sbcblk.F90
r12629 r12958 643 643 644 644 IF( ln_abl ) THEN !== ABL formulation ==! multiplication by rho_air and turbulent fluxes computation done in ablstp 645 !! FL do we need this multiplication by tmask ... ???646 645 DO_2D_11_11 647 zztmp = zU_zu(ji,jj) !* tmask(ji,jj,1)646 zztmp = zU_zu(ji,jj) 648 647 wndm(ji,jj) = zztmp ! Store zU_zu in wndm to compute ustar2 in ablmod 649 648 pcd_du(ji,jj) = zztmp * zcd_oce(ji,jj) 650 649 psen(ji,jj) = zztmp * zch_oce(ji,jj) 651 650 pevp(ji,jj) = zztmp * zce_oce(ji,jj) 651 rhoa(ji,jj) = rho_air( ptair(ji,jj), phumi(ji,jj), pslp(ji,jj) ) 652 652 END_2D 653 653 ELSE !== BLK formulation ==! turbulent fluxes computation … … 673 673 ! ... utau, vtau at U- and V_points, resp. 674 674 ! Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 675 ! Note th e use of MAX(tmask(i,j),tmask(i+1,j) is to mask tau over ice shelves676 DO_2D_ 10_10675 ! Note that coastal wind stress is not used in the code... so this extra care has no effect 676 DO_2D_00_00 677 677 utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zwnd_i(ji,jj) + zwnd_i(ji+1,jj ) ) & 678 678 & * MAX(tmask(ji,jj,1),tmask(ji+1,jj,1)) … … 883 883 884 884 ! local scalars ( place there for vector optimisation purposes) 885 !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)886 885 zcd_dui(:,:) = wndm_ice(:,:) * Cd_ice(:,:) 887 886 888 887 IF( ln_blk ) THEN 889 ! ------------------------------------------------------------ ! 890 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 891 ! ------------------------------------------------------------ ! 892 ! C-grid ice dynamics : U & V-points (same as ocean) 893 DO_2D_00_00 894 putaui(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * zcd_dui(ji+1,jj) & 895 & + rhoa(ji ,jj) * zcd_dui(ji ,jj) ) & 896 & * ( 0.5_wp * ( pwndi(ji+1,jj) + pwndi(ji,jj) ) - rn_vfac * puice(ji,jj) ) 897 pvtaui(ji,jj) = 0.5_wp * ( rhoa(ji,jj+1) * zcd_dui(ji,jj+1) & 898 & + rhoa(ji,jj ) * zcd_dui(ji,jj ) ) & 899 & * ( 0.5_wp * ( pwndj(ji,jj+1) + pwndj(ji,jj) ) - rn_vfac * pvice(ji,jj) ) 888 ! ------------------------------------------------------------- ! 889 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 890 ! ------------------------------------------------------------- ! 891 zztmp1 = rn_vfac * 0.5_wp 892 DO_2D_01_01 ! at T point 893 putaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * ( pwndi(ji,jj) - zztmp1 * ( puice(ji-1,jj ) + puice(ji,jj) ) ) 894 pvtaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * ( pwndj(ji,jj) - zztmp1 * ( pvice(ji ,jj-1) + pvice(ji,jj) ) ) 895 END_2D 896 ! 897 DO_2D_00_00 ! U & V-points (same as ocean). 898 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 899 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) 900 zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji ,jj+1,1) ) 901 putaui(ji,jj) = zztmp1 * ( putaui(ji,jj) + putaui(ji+1,jj ) ) 902 pvtaui(ji,jj) = zztmp2 * ( pvtaui(ji,jj) + pvtaui(ji ,jj+1) ) 900 903 END_2D 901 904 CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1., pvtaui, 'V', -1. ) -
NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/SBC/sbcblk_phy.F90
r12615 r12958 31 31 REAL(wp), PARAMETER, PUBLIC :: R_vap = 461.495_wp !: Specific gas constant for water vapor [J/K/kg] 32 32 REAL(wp), PARAMETER, PUBLIC :: reps0 = R_dry/R_vap !: ratio of gas constant for dry air and water vapor => ~ 0.622 33 REAL(wp), PARAMETER, PUBLIC :: rctv0 = R_vap/R_dry !: for virtual temperature (== (1-eps)/eps) => ~ 0.60833 REAL(wp), PARAMETER, PUBLIC :: rctv0 = R_vap/R_dry - 1._wp !: for virtual temperature (== (1-eps)/eps) => ~ 0.608 34 34 REAL(wp), PARAMETER, PUBLIC :: rCp_air = 1000.5_wp !: specific heat of air (only used for ice fluxes now...) 35 35 REAL(wp), PARAMETER, PUBLIC :: rCd_ice = 1.4e-3_wp !: transfer coefficient over ice -
NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/SBC/sbccpl.F90
r12620 r12958 1481 1481 INTEGER :: ji, jj ! dummy loop indices 1482 1482 INTEGER :: itx ! index of taux over ice 1483 REAL(wp) :: zztmp1, zztmp2 1483 1484 REAL(wp), DIMENSION(jpi,jpj) :: ztx, zty 1484 1485 !!---------------------------------------------------------------------- … … 1544 1545 p_taui(:,:) = frcv(jpr_itx1)%z3(:,:,1) ! (U,V) ==> (U,V) 1545 1546 p_tauj(:,:) = frcv(jpr_ity1)%z3(:,:,1) 1546 CASE( 'F' )1547 DO_2D_00_001548 p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji,jj,1) + frcv(jpr_itx1)%z3(ji ,jj-1,1) )1549 p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji,jj,1) + frcv(jpr_ity1)%z3(ji-1,jj ,1) )1550 END_2D1551 1547 CASE( 'T' ) 1552 1548 DO_2D_00_00 1553 p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji+1,jj ,1) + frcv(jpr_itx1)%z3(ji,jj,1) ) 1554 p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 1549 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 1550 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) 1551 zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji ,jj+1,1) ) 1552 p_taui(ji,jj) = zztmp1 * ( frcv(jpr_itx1)%z3(ji+1,jj ,1) + frcv(jpr_itx1)%z3(ji,jj,1) ) 1553 p_tauj(ji,jj) = zztmp2 * ( frcv(jpr_ity1)%z3(ji ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 1555 1554 END_2D 1556 CASE( 'I' ) 1557 DO_2D_00_00 1558 p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji+1,jj+1,1) + frcv(jpr_itx1)%z3(ji+1,jj ,1) ) 1559 p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji+1,jj+1,1) + frcv(jpr_ity1)%z3(ji ,jj+1,1) ) 1560 END_2D 1555 CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U', -1., p_tauj, 'V', -1. ) 1561 1556 END SELECT 1562 IF( srcv(jpr_itx1)%clgrid /= 'U' ) THEN1563 CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U', -1., p_tauj, 'V', -1. )1564 ENDIF1565 1557 1566 1558 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.