Changeset 13295 for NEMO/trunk/tests/CANAL
- Timestamp:
- 2020-07-10T20:24:21+02:00 (4 years ago)
- Location:
- NEMO/trunk/tests/CANAL/MY_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/tests/CANAL/MY_SRC/diawri.F90
r12740 r13295 156 156 CALL iom_put( "sst", ts(:,:,1,jp_tem,Kmm) ) ! surface temperature 157 157 IF ( iom_use("sbt") ) THEN 158 DO_2D _11_11158 DO_2D( 1, 1, 1, 1 ) 159 159 ikbot = mbkt(ji,jj) 160 160 z2d(ji,jj) = ts(ji,jj,ikbot,jp_tem,Kmm) … … 166 166 CALL iom_put( "sss", ts(:,:,1,jp_sal,Kmm) ) ! surface salinity 167 167 IF ( iom_use("sbs") ) THEN 168 DO_2D _11_11168 DO_2D( 1, 1, 1, 1 ) 169 169 ikbot = mbkt(ji,jj) 170 170 z2d(ji,jj) = ts(ji,jj,ikbot,jp_sal,Kmm) … … 176 176 zztmp = rho0 * 0.25 177 177 z2d(:,:) = 0._wp 178 DO_2D _00_00178 DO_2D( 0, 0, 0, 0 ) 179 179 zztmp2 = ( ( rCdU_bot(ji+1,jj)+rCdU_bot(ji ,jj) ) * uu(ji ,jj,mbku(ji ,jj),Kmm) )**2 & 180 180 & + ( ( rCdU_bot(ji ,jj)+rCdU_bot(ji-1,jj) ) * uu(ji-1,jj,mbku(ji-1,jj),Kmm) )**2 & … … 191 191 CALL iom_put( "ssu", uu(:,:,1,Kmm) ) ! surface i-current 192 192 IF ( iom_use("sbu") ) THEN 193 DO_2D _11_11193 DO_2D( 1, 1, 1, 1 ) 194 194 ikbot = mbku(ji,jj) 195 195 z2d(ji,jj) = uu(ji,jj,ikbot,Kmm) … … 201 201 CALL iom_put( "ssv", vv(:,:,1,Kmm) ) ! surface j-current 202 202 IF ( iom_use("sbv") ) THEN 203 DO_2D _11_11203 DO_2D( 1, 1, 1, 1 ) 204 204 ikbot = mbkv(ji,jj) 205 205 z2d(ji,jj) = vv(ji,jj,ikbot,Kmm) … … 231 231 232 232 IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 233 DO_2D _00_00233 DO_2D( 0, 0, 0, 0 ) 234 234 zztmp = ts(ji,jj,1,jp_tem,Kmm) 235 235 zztmpx = ( ts(ji+1,jj,1,jp_tem,Kmm) - zztmp ) * r1_e1u(ji,jj) + ( zztmp - ts(ji-1,jj ,1,jp_tem,Kmm) ) * r1_e1u(ji-1,jj) … … 247 247 IF( iom_use("heatc") ) THEN 248 248 z2d(:,:) = 0._wp 249 DO_3D _11_11(1, jpkm1 )249 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 250 250 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) * tmask(ji,jj,jk) 251 251 END_3D … … 255 255 IF( iom_use("saltc") ) THEN 256 256 z2d(:,:) = 0._wp 257 DO_3D _11_11(1, jpkm1 )257 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 258 258 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 259 259 END_3D … … 263 263 IF( iom_use("salt2c") ) THEN 264 264 z2d(:,:) = 0._wp 265 DO_3D _11_11(1, jpkm1 )265 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 266 266 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 267 267 END_3D … … 271 271 IF ( iom_use("eken") ) THEN 272 272 z3d(:,:,jpk) = 0._wp 273 DO_3D _00_00(1, jpkm1 )273 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 274 274 zztmp = 0.25_wp * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 275 275 z3d(ji,jj,jk) = zztmp * ( uu(ji-1,jj,jk,Kmm)**2 * e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) & … … 287 287 z3d(1,:, : ) = 0._wp 288 288 z3d(:,1, : ) = 0._wp 289 DO_3D _00_00(1, jpkm1 )289 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 290 290 z3d(ji,jj,jk) = 0.25_wp * ( uu(ji ,jj,jk,Kmm) * uu(ji ,jj,jk,Kmm) * e1e2u(ji ,jj) * e3u(ji ,jj,jk,Kmm) & 291 291 & + uu(ji-1,jj,jk,Kmm) * uu(ji-1,jj,jk,Kmm) * e1e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) & … … 298 298 299 299 z2d(:,:) = 0._wp 300 DO_3D _11_11(1, jpkm1 )300 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 301 301 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * z3d(ji,jj,jk) * tmask(ji,jj,jk) 302 302 END_3D … … 310 310 311 311 z3d(:,:,jpk) = 0._wp 312 DO_3D _00_00(1, jpkm1 )312 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 313 313 z3d(ji,jj,jk) = ( e2v(ji+1,jj ) * vv(ji+1,jj ,jk,Kmm) - e2v(ji,jj) * vv(ji,jj,jk,Kmm) & 314 314 & - e1u(ji ,jj+1) * uu(ji ,jj+1,jk,Kmm) + e1u(ji,jj) * uu(ji,jj,jk,Kmm) ) * r1_e1e2f(ji,jj) … … 317 317 CALL iom_put( "relvor", z3d ) ! relative vorticity 318 318 319 DO_3D _11_11(1, jpkm1 )319 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 320 320 z3d(ji,jj,jk) = ff_f(ji,jj) + z3d(ji,jj,jk) 321 321 END_3D 322 322 CALL iom_put( "absvor", z3d ) ! absolute vorticity 323 323 324 DO_3D _00_00(1, jpkm1 )324 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 325 325 ze3 = ( e3t(ji,jj+1,jk,Kmm)*tmask(ji,jj+1,jk) + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk) & 326 326 & + e3t(ji,jj ,jk,Kmm)*tmask(ji,jj ,jk) + e3t(ji+1,jj ,jk,Kmm)*tmask(ji+1,jj ,jk) ) … … 348 348 IF( iom_use("u_heattr") ) THEN 349 349 z2d(:,:) = 0._wp 350 DO_3D _00_00(1, jpkm1 )350 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 351 351 z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji+1,jj,jk,jp_tem,Kmm) ) 352 352 END_3D … … 357 357 IF( iom_use("u_salttr") ) THEN 358 358 z2d(:,:) = 0.e0 359 DO_3D _00_00(1, jpkm1 )359 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 360 360 z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji+1,jj,jk,jp_sal,Kmm) ) 361 361 END_3D … … 375 375 IF( iom_use("v_heattr") ) THEN 376 376 z2d(:,:) = 0.e0 377 DO_3D _00_00(1, jpkm1 )377 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 378 378 z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji,jj+1,jk,jp_tem,Kmm) ) 379 379 END_3D … … 384 384 IF( iom_use("v_salttr") ) THEN 385 385 z2d(:,:) = 0._wp 386 DO_3D _00_00(1, jpkm1 )386 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 387 387 z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji,jj+1,jk,jp_sal,Kmm) ) 388 388 END_3D … … 393 393 IF( iom_use("tosmint") ) THEN 394 394 z2d(:,:) = 0._wp 395 DO_3D _00_00(1, jpkm1 )395 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 396 396 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) 397 397 END_3D … … 401 401 IF( iom_use("somint") ) THEN 402 402 z2d(:,:)=0._wp 403 DO_3D _00_00(1, jpkm1 )403 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 404 404 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) 405 405 END_3D -
NEMO/trunk/tests/CANAL/MY_SRC/domvvl.F90
r13286 r13295 190 190 gdept(:,:,1,Kbb) = 0.5_wp * e3w(:,:,1,Kbb) 191 191 gdepw(:,:,1,Kbb) = 0.0_wp 192 DO_3D _11_11(2, jpk )192 DO_3D( 1, 1, 1, 1, 2, jpk ) 193 193 ! zcoef = tmask - wmask ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 194 194 ! ! 1 everywhere from mbkt to mikt + 1 or 1 (if no isf) … … 238 238 ENDIF 239 239 IF ( ln_vvl_zstar_at_eqtor ) THEN ! use z-star in vicinity of the Equator 240 DO_2D _11_11240 DO_2D( 1, 1, 1, 1 ) 241 241 !!gm case |gphi| >= 6 degrees is useless initialized just above by default 242 242 IF( ABS(gphit(ji,jj)) >= 6.) THEN … … 407 407 zwu(:,:) = 0._wp 408 408 zwv(:,:) = 0._wp 409 DO_3D _10_10(1, jpkm1 )409 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 410 410 un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj) & 411 411 & * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj ,jk) ) … … 415 415 zwv(ji,jj) = zwv(ji,jj) + vn_td(ji,jj,jk) 416 416 END_3D 417 DO_2D _11_11417 DO_2D( 1, 1, 1, 1 ) 418 418 un_td(ji,jj,mbku(ji,jj)) = un_td(ji,jj,mbku(ji,jj)) - zwu(ji,jj) 419 419 vn_td(ji,jj,mbkv(ji,jj)) = vn_td(ji,jj,mbkv(ji,jj)) - zwv(ji,jj) 420 420 END_2D 421 DO_3D _00_00(1, jpkm1 )421 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 422 422 tilde_e3t_a(ji,jj,jk) = tilde_e3t_a(ji,jj,jk) + ( un_td(ji-1,jj ,jk) - un_td(ji,jj,jk) & 423 423 & + vn_td(ji ,jj-1,jk) - vn_td(ji,jj,jk) & … … 647 647 gdepw(:,:,1,Kmm) = 0.0_wp 648 648 gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 649 DO_3D _11_11(2, jpk )649 DO_3D( 1, 1, 1, 1, 2, jpk ) 650 650 ! zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 651 651 ! 1 for jk = mikt … … 702 702 ! 703 703 CASE( 'U' ) !* from T- to U-point : hor. surface weighted mean 704 DO_3D _10_10(1, jpk )704 DO_3D( 1, 0, 1, 0, 1, jpk ) 705 705 pe3_out(ji,jj,jk) = 0.5_wp * ( umask(ji,jj,jk) * (1.0_wp - zlnwd) + zlnwd ) * r1_e1e2u(ji,jj) & 706 706 & * ( e1e2t(ji ,jj) * ( pe3_in(ji ,jj,jk) - e3t_0(ji ,jj,jk) ) & … … 711 711 ! 712 712 CASE( 'V' ) !* from T- to V-point : hor. surface weighted mean 713 DO_3D _10_10(1, jpk )713 DO_3D( 1, 0, 1, 0, 1, jpk ) 714 714 pe3_out(ji,jj,jk) = 0.5_wp * ( vmask(ji,jj,jk) * (1.0_wp - zlnwd) + zlnwd ) * r1_e1e2v(ji,jj) & 715 715 & * ( e1e2t(ji,jj ) * ( pe3_in(ji,jj ,jk) - e3t_0(ji,jj ,jk) ) & … … 720 720 ! 721 721 CASE( 'F' ) !* from U-point to F-point : hor. surface weighted mean 722 DO_3D _10_10(1, jpk )722 DO_3D( 1, 0, 1, 0, 1, jpk ) 723 723 pe3_out(ji,jj,jk) = 0.5_wp * ( umask(ji,jj,jk) * umask(ji,jj+1,jk) * (1.0_wp - zlnwd) + zlnwd ) & 724 724 & * r1_e1e2f(ji,jj) & … … 887 887 ssh(:,:,Kbb) = -ssh_ref 888 888 889 DO_2D _11_11889 DO_2D( 1, 1, 1, 1 ) 890 890 IF( ht_0(ji,jj)-ssh_ref < rn_wdmin1 ) THEN ! if total depth is less than min depth 891 891 ssh(ji,jj,Kbb) = rn_wdmin1 - (ht_0(ji,jj) ) … … 903 903 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 904 904 905 DO_2D _11_11905 DO_2D( 1, 1, 1, 1 ) 906 906 IF ( ht_0(ji,jj) .LE. 0.0 .AND. NINT( ssmask(ji,jj) ) .EQ. 1) THEN 907 907 CALL ctl_stop( 'dom_vvl_rst: ht_0 must be positive at potentially wet points' ) -
NEMO/trunk/tests/CANAL/MY_SRC/trazdf.F90
r12740 r13295 156 156 IF( l_ldfslp ) THEN ! isoneutral diffusion: add the contribution 157 157 IF( ln_traldf_msc ) THEN ! MSC iso-neutral operator 158 DO_3D _00_00(2, jpkm1 )158 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 159 159 zwt(ji,jj,jk) = zwt(ji,jj,jk) + akz(ji,jj,jk) 160 160 END_3D 161 161 ELSE ! standard or triad iso-neutral operator 162 DO_3D _00_00(2, jpkm1 )162 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 163 163 zwt(ji,jj,jk) = zwt(ji,jj,jk) + ah_wslp2(ji,jj,jk) 164 164 END_3D … … 168 168 ! Diagonal, lower (i), upper (s) (including the bottom boundary condition since avt is masked) 169 169 IF( ln_zad_Aimp ) THEN ! Adaptive implicit vertical advection 170 DO_3D _00_00(1, jpkm1 )170 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 171 171 zzwi = - p2dt * zwt(ji,jj,jk ) / e3w(ji,jj,jk ,Kmm) 172 172 zzws = - p2dt * zwt(ji,jj,jk+1) / e3w(ji,jj,jk+1,Kmm) … … 177 177 END_3D 178 178 ELSE 179 DO_3D _00_00(1, jpkm1 )179 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 180 180 zwi(ji,jj,jk) = - p2dt * zwt(ji,jj,jk ) / e3w(ji,jj,jk,Kmm) 181 181 zws(ji,jj,jk) = - p2dt * zwt(ji,jj,jk+1) / e3w(ji,jj,jk+1,Kmm) … … 203 203 ! used as a work space array: its value is modified. 204 204 ! 205 DO_2D _00_00205 DO_2D( 0, 0, 0, 0 ) 206 206 zwt(ji,jj,1) = zwd(ji,jj,1) 207 207 END_2D 208 DO_3D _00_00(2, jpkm1 )208 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 209 209 zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwt(ji,jj,jk-1) 210 210 END_3D … … 212 212 ENDIF 213 213 ! 214 DO_2D _00_00214 DO_2D( 0, 0, 0, 0 ) 215 215 pt(ji,jj,1,jn,Kaa) = e3t(ji,jj,1,Kbb) * pt(ji,jj,1,jn,Kbb) + p2dt * e3t(ji,jj,1,Kmm) * pt(ji,jj,1,jn,Krhs) 216 216 END_2D 217 DO_3D _00_00(2, jpkm1 )217 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 218 218 zrhs = e3t(ji,jj,jk,Kbb) * pt(ji,jj,jk,jn,Kbb) + p2dt * e3t(ji,jj,jk,Kmm) * pt(ji,jj,jk,jn,Krhs) ! zrhs=right hand side 219 219 pt(ji,jj,jk,jn,Kaa) = zrhs - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) * pt(ji,jj,jk-1,jn,Kaa) 220 220 END_3D 221 221 ! 222 DO_2D _00_00222 DO_2D( 0, 0, 0, 0 ) 223 223 pt(ji,jj,jpkm1,jn,Kaa) = pt(ji,jj,jpkm1,jn,Kaa) / zwt(ji,jj,jpkm1) * tmask(ji,jj,jpkm1) 224 224 END_2D 225 DO_3DS _00_00(jpk-2, 1, -1 )225 DO_3DS( 0, 0, 0, 0, jpk-2, 1, -1 ) 226 226 pt(ji,jj,jk,jn,Kaa) = ( pt(ji,jj,jk,jn,Kaa) - zws(ji,jj,jk) * pt(ji,jj,jk+1,jn,Kaa) ) & 227 227 & / zwt(ji,jj,jk) * tmask(ji,jj,jk) -
NEMO/trunk/tests/CANAL/MY_SRC/usrdef_hgr.F90
r13286 r13295 90 90 #endif 91 91 92 DO_2D _11_1192 DO_2D( 1, 1, 1, 1 ) 93 93 zti = REAL( mig0_oldcmp(ji) - 1, wp ) ! start at i=0 in the global grid without halos 94 94 ztj = REAL( mjg0_oldcmp(jj) - 1, wp ) ! start at j=0 in the global grid without halos -
NEMO/trunk/tests/CANAL/MY_SRC/usrdef_istate.F90
r12740 r13295 166 166 pssh(:,1) = - ff_t(:,1) / grav * pu(:,1,1) * e2t(:,1) 167 167 DO jl=1, jpnj 168 DO_2D _00_00168 DO_2D( 0, 0, 0, 0 ) 169 169 pssh(ji,jj) = pssh(ji,jj-1) - ff_t(ji,jj) / grav * pu(ji,jj,1) * e2t(ji,jj) 170 170 END_2D … … 183 183 CASE(4) ! geostrophic zonal pulse 184 184 185 DO_2D _11_11185 DO_2D( 1, 1, 1, 1 ) 186 186 IF ( ABS(glamt(ji,jj)) <= zjetx ) THEN 187 187 zdu = rn_uzonal … … 217 217 zP0 = rho0 * zf0 * zumax * zlambda * SQRT(EXP(1._wp)/2._wp) 218 218 ! 219 DO_2D _11_11219 DO_2D( 1, 1, 1, 1 ) 220 220 zx = glamt(ji,jj) * 1.e3 221 221 zy = gphit(ji,jj) * 1.e3 … … 248 248 ! velocities: 249 249 za = 2._wp * zP0 / zlambda**2 250 DO_2D _00_00250 DO_2D( 0, 0, 0, 0 ) 251 251 zx = glamu(ji,jj) * 1.e3 252 252 zy = gphiu(ji,jj) * 1.e3 … … 263 263 END_2D 264 264 ! 265 DO_2D _00_00265 DO_2D( 0, 0, 0, 0 ) 266 266 zx = glamv(ji,jj) * 1.e3 267 267 zy = gphiv(ji,jj) * 1.e3
Note: See TracChangeset
for help on using the changeset viewer.