Changeset 13295 for NEMO/trunk/src/OCE/SBC/sbcblk.F90
- Timestamp:
- 2020-07-10T20:24:21+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/SBC/sbcblk.F90
r13226 r13295 568 568 zwnd_j(:,:) = 0._wp 569 569 CALL wnd_cyc( kt, zwnd_i, zwnd_j ) ! add analytical tropical cyclone (Vincent et al. JGR 2012) 570 DO_2D _11_11570 DO_2D( 1, 1, 1, 1 ) 571 571 zwnd_i(ji,jj) = pwndi(ji,jj) + zwnd_i(ji,jj) 572 572 zwnd_j(ji,jj) = pwndj(ji,jj) + zwnd_j(ji,jj) … … 576 576 #else 577 577 ! ... scalar wind module at T-point (not masked) 578 DO_2D _11_11578 DO_2D( 1, 1, 1, 1 ) 579 579 wndm(ji,jj) = SQRT( pwndi(ji,jj) * pwndi(ji,jj) + pwndj(ji,jj) * pwndj(ji,jj) ) 580 580 END_2D … … 628 628 ! use scalar version of gamma_moist() ... 629 629 IF( ln_tpot ) THEN 630 DO_2D _11_11630 DO_2D( 1, 1, 1, 1 ) 631 631 ztpot(ji,jj) = ptair(ji,jj) + gamma_moist( ptair(ji,jj), zqair(ji,jj) ) * rn_zqt 632 632 END_2D … … 690 690 691 691 IF( ln_abl ) THEN !== ABL formulation ==! multiplication by rho_air and turbulent fluxes computation done in ablstp 692 DO_2D _11_11692 DO_2D( 1, 1, 1, 1 ) 693 693 zztmp = zU_zu(ji,jj) 694 694 wndm(ji,jj) = zztmp ! Store zU_zu in wndm to compute ustar2 in ablmod … … 710 710 pevp(:,:) = pevp(:,:) * tmask(:,:,1) 711 711 712 DO_2D _11_11712 DO_2D( 1, 1, 1, 1 ) 713 713 IF( wndm(ji,jj) > 0._wp ) THEN 714 714 zztmp = taum(ji,jj) / wndm(ji,jj) … … 728 728 IF( ln_crt_fbk ) THEN ! aply eq. 10 and 11 of Renault et al. 2020 (doi: 10.1029/2019MS001715) 729 729 zstmax = MIN( rn_stau_a * 3._wp + rn_stau_b, 0._wp ) ! set the max value of Stau corresponding to a wind of 3 m/s (<0) 730 DO_2D _01_01! end at jpj and jpi, as ztau_j(ji,jj+1) ztau_i(ji+1,jj) used in the next loop730 DO_2D( 0, 1, 0, 1 ) ! end at jpj and jpi, as ztau_j(ji,jj+1) ztau_i(ji+1,jj) used in the next loop 731 731 zstau = MIN( rn_stau_a * wndm(ji,jj) + rn_stau_b, zstmax ) ! stau (<0) must be smaller than zstmax 732 732 ztau_i(ji,jj) = ztau_i(ji,jj) + zstau * ( 0.5_wp * ( pu(ji-1,jj ) + pu(ji,jj) ) - puatm(ji,jj) ) … … 739 739 ! Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 740 740 ! Note that coastal wind stress is not used in the code... so this extra care has no effect 741 DO_2D _00_00! start loop at 2, in case ln_crt_fbk = T741 DO_2D( 0, 0, 0, 0 ) ! start loop at 2, in case ln_crt_fbk = T 742 742 utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( ztau_i(ji,jj) + ztau_i(ji+1,jj ) ) & 743 743 & * MAX(tmask(ji,jj,1),tmask(ji+1,jj,1)) … … 828 828 829 829 ! use scalar version of L_vap() for AGRIF compatibility 830 DO_2D _11_11830 DO_2D( 1, 1, 1, 1 ) 831 831 zqla(ji,jj) = - L_vap( ztskk(ji,jj) ) * pevp(ji,jj) ! Latent Heat flux !!GS: possibility to add a global qla to avoid recomputation after abl update 832 832 END_2D … … 933 933 ! ------------------------------------------------------------ ! 934 934 ! C-grid ice dynamics : U & V-points (same as ocean) 935 DO_2D _11_11935 DO_2D( 1, 1, 1, 1 ) 936 936 wndm_ice(ji,jj) = SQRT( pwndi(ji,jj) * pwndi(ji,jj) + pwndj(ji,jj) * pwndj(ji,jj) ) 937 937 END_2D … … 959 959 ! ---------------------------------------------------- ! 960 960 ! supress moving ice in wind stress computation as we don't know how to do it properly... 961 DO_2D _01_01! at T point961 DO_2D( 0, 1, 0, 1 ) ! at T point 962 962 putaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * pwndi(ji,jj) 963 963 pvtaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * pwndj(ji,jj) 964 964 END_2D 965 965 ! 966 DO_2D _00_00! U & V-points (same as ocean).966 DO_2D( 0, 0, 0, 0 ) ! U & V-points (same as ocean). 967 967 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 968 968 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) … … 978 978 zztmp1 = 11637800.0_wp 979 979 zztmp2 = -5897.8_wp 980 DO_2D _11_11980 DO_2D( 1, 1, 1, 1 ) 981 981 pcd_dui(ji,jj) = zcd_dui (ji,jj) 982 982 pseni (ji,jj) = wndm_ice(ji,jj) * Ch_ice(ji,jj) … … 1233 1233 ! 1234 1234 DO jl = 1, jpl 1235 DO_2D _11_111235 DO_2D( 1, 1, 1, 1 ) 1236 1236 zhe = ( rn_cnd_s * phi(ji,jj,jl) + rcnd_i * phs(ji,jj,jl) ) * zfac ! Effective thickness 1237 1237 IF( zhe >= zfac2 ) zgfac(ji,jj,jl) = MIN( 2._wp, 0.5_wp * ( 1._wp + LOG( zhe * zfac3 ) ) ) ! Enhanced conduction factor … … 1248 1248 ! 1249 1249 DO jl = 1, jpl 1250 DO_2D _11_111250 DO_2D( 1, 1, 1, 1 ) 1251 1251 ! 1252 1252 zkeff_h = zfac * zgfac(ji,jj,jl) / & ! Effective conductivity of the snow-ice system divided by thickness … … 1396 1396 zqi_sat(:,:) = q_sat( ptm_su(:,:), pslp(:,:) ) ! saturation humidity over ice [kg/kg] 1397 1397 ! 1398 DO_2D _00_001398 DO_2D( 0, 0, 0, 0 ) 1399 1399 ! Virtual potential temperature [K] 1400 1400 zthetav_os = zst(ji,jj) * ( 1._wp + rctv0 * zqo_sat(ji,jj) ) ! over ocean
Note: See TracChangeset
for help on using the changeset viewer.