- Timestamp:
- 2020-11-05T15:18:53+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_12905_xios_restart
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_12905_xios_restart
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcwave.F90
r12377 r13727 73 73 !! * Substitutions 74 74 # include "do_loop_substitute.h90" 75 # include "domzgr_substitute.h90" 75 76 !!---------------------------------------------------------------------- 76 77 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 105 106 !!--------------------------------------------------------------------- 106 107 ! 107 ALLOCATE( ze3divh(jpi,jpj,jpk ) )108 ALLOCATE( ze3divh(jpi,jpj,jpkm1) ) ! jpkm1 -> avoid lbc_lnk on jpk that is not defined 108 109 ALLOCATE( zk_t(jpi,jpj), zk_u(jpi,jpj), zk_v(jpi,jpj), zu0_sd(jpi,jpj), zv0_sd(jpi,jpj) ) 109 110 ! … … 112 113 IF( ll_st_bv_li ) THEN ! (Eq. (19) in Breivik et al. (2014) ) 113 114 zfac = 2.0_wp * rpi / 16.0_wp 114 DO_2D _11_11115 DO_2D( 1, 1, 1, 1 ) 115 116 ! Stokes drift velocity estimated from Hs and Tmean 116 117 ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj), 0.0000001_wp ) … … 120 121 zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 121 122 END_2D 122 DO_2D _10_10123 DO_2D( 1, 0, 1, 0 ) ! exp. wave number & Stokes drift velocity at u- & v-points 123 124 zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 124 125 zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) … … 128 129 END_2D 129 130 ELSE IF( ll_st_peakfr ) THEN ! peak wave number calculated from the peak frequency received by the wave model 130 DO_2D _11_11131 DO_2D( 1, 1, 1, 1 ) 131 132 zk_t(ji,jj) = ( 2.0_wp * rpi * wfreq(ji,jj) ) * ( 2.0_wp * rpi * wfreq(ji,jj) ) / grav 132 133 END_2D 133 DO_2D _10_10134 DO_2D( 1, 0, 1, 0 ) 134 135 zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 135 136 zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) … … 142 143 ! !== horizontal Stokes Drift 3D velocity ==! 143 144 IF( ll_st_bv2014 ) THEN 144 DO_3D _00_00(1, jpkm1 )145 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 145 146 zdep_u = 0.5_wp * ( gdept(ji,jj,jk,Kmm) + gdept(ji+1,jj,jk,Kmm) ) 146 147 zdep_v = 0.5_wp * ( gdept(ji,jj,jk,Kmm) + gdept(ji,jj+1,jk,Kmm) ) … … 157 158 ELSE IF( ll_st_li2017 .OR. ll_st_peakfr ) THEN 158 159 ALLOCATE( zstokes_psi_u_top(jpi,jpj), zstokes_psi_v_top(jpi,jpj) ) 159 DO_2D _10_10160 DO_2D( 1, 0, 1, 0 ) 160 161 zstokes_psi_u_top(ji,jj) = 0._wp 161 162 zstokes_psi_v_top(ji,jj) = 0._wp … … 163 164 zsqrtpi = SQRT(rpi) 164 165 z_two_thirds = 2.0_wp / 3.0_wp 165 DO_3D _00_00( 1, jpkm1 )166 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) ! exp. wave number & Stokes drift velocity at u- & v-points 166 167 zbot_u = ( gdepw(ji,jj,jk+1,Kmm) + gdepw(ji+1,jj,jk+1,Kmm) ) ! 2 * bottom depth 167 168 zbot_v = ( gdepw(ji,jj,jk+1,Kmm) + gdepw(ji,jj+1,jk+1,Kmm) ) ! 2 * bottom depth … … 198 199 ENDIF 199 200 200 CALL lbc_lnk_multi( 'sbcwave', usd, 'U', -1. , vsd, 'V', -1.)201 CALL lbc_lnk_multi( 'sbcwave', usd, 'U', -1.0_wp, vsd, 'V', -1.0_wp ) 201 202 202 203 ! 203 204 ! !== vertical Stokes Drift 3D velocity ==! 204 205 ! 205 DO_3D _01_01( 1, jpkm1 )206 DO_3D( 0, 1, 0, 1, 1, jpkm1 ) ! Horizontal e3*divergence 206 207 ze3divh(ji,jj,jk) = ( e2u(ji ,jj) * e3u(ji ,jj,jk,Kmm) * usd(ji ,jj,jk) & 207 208 & - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * usd(ji-1,jj,jk) & 208 209 & + e1v(ji,jj ) * e3v(ji,jj ,jk,Kmm) * vsd(ji,jj ,jk) & 209 & - e1v(ji,jj-1) * e3v(ji,jj-1,jk,Kmm) * vsd(ji,jj-1,jk) ) * r1_e1e2t(ji,jj) 210 & - e1v(ji,jj-1) * e3v(ji,jj-1,jk,Kmm) * vsd(ji,jj-1,jk) ) & 211 & * r1_e1e2t(ji,jj) 210 212 END_3D 211 213 ! 212 #if defined key_agrif 213 IF( .NOT. Agrif_Root() ) THEN 214 IF( nbondi == -1 .OR. nbondi == 2 ) ze3divh( 2:nbghostcells+1,: ,:) = 0._wp ! west 215 IF( nbondi == 1 .OR. nbondi == 2 ) ze3divh( nlci-nbghostcells:nlci-1,:,:) = 0._wp ! east 216 IF( nbondj == -1 .OR. nbondj == 2 ) ze3divh( :,2:nbghostcells+1 ,:) = 0._wp ! south 217 IF( nbondj == 1 .OR. nbondj == 2 ) ze3divh( :,nlcj-nbghostcells:nlcj-1,:) = 0._wp ! north 218 ENDIF 219 #endif 220 ! 221 CALL lbc_lnk( 'sbcwave', ze3divh, 'T', 1. ) 214 CALL lbc_lnk( 'sbcwave', ze3divh, 'T', 1.0_wp ) 222 215 ! 223 216 IF( ln_linssh ) THEN ; ik = 1 ! none zero velocity through the sea surface … … 270 263 ! 271 264 IF( ln_tauw ) THEN 272 DO_2D _10_10265 DO_2D( 1, 0, 1, 0 ) 273 266 ! Stress components at u- & v-points 274 267 utau(ji,jj) = 0.5_wp * ( tauw_x(ji,jj) + tauw_x(ji+1,jj) ) … … 278 271 taum(ji,jj) = SQRT( tauw_x(ji,jj)*tauw_x(ji,jj) + tauw_y(ji,jj)*tauw_y(ji,jj) ) 279 272 END_2D 280 CALL lbc_lnk_multi( 'sbcwave', utau(:,:), 'U', -1. , vtau(:,:), 'V', -1. , taum(:,:) , 'T', -1.)273 CALL lbc_lnk_multi( 'sbcwave', utau(:,:), 'U', -1.0_wp , vtau(:,:), 'V', -1.0_wp , taum(:,:) , 'T', -1.0_wp ) 281 274 ENDIF 282 275 !
Note: See TracChangeset
for help on using the changeset viewer.