- Timestamp:
- 2020-12-02T14:55:21+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Property svn:externals
-
old new 8 8 9 9 # SETTE 10 ^/utils/CI/sette@13 292sette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/OCE/DIA/diawri.F90
r13734 r13998 190 190 CALL iom_put( "sst", ts(:,:,1,jp_tem,Kmm) ) ! surface temperature 191 191 IF ( iom_use("sbt") ) THEN 192 DO_2D( 1, 1, 1, 1)192 DO_2D( 0, 0, 0, 0 ) 193 193 ikbot = mbkt(ji,jj) 194 194 z2d(ji,jj) = ts(ji,jj,ikbot,jp_tem,Kmm) … … 200 200 CALL iom_put( "sss", ts(:,:,1,jp_sal,Kmm) ) ! surface salinity 201 201 IF ( iom_use("sbs") ) THEN 202 DO_2D( 1, 1, 1, 1)202 DO_2D( 0, 0, 0, 0 ) 203 203 ikbot = mbkt(ji,jj) 204 204 z2d(ji,jj) = ts(ji,jj,ikbot,jp_sal,Kmm) … … 222 222 ! 223 223 END_2D 224 CALL lbc_lnk( 'diawri', z2d, 'T', 1.0_wp )225 224 CALL iom_put( "taubot", z2d ) 226 225 ENDIF … … 229 228 CALL iom_put( "ssu", uu(:,:,1,Kmm) ) ! surface i-current 230 229 IF ( iom_use("sbu") ) THEN 231 DO_2D( 1, 1, 1, 1)230 DO_2D( 0, 0, 0, 0 ) 232 231 ikbot = mbku(ji,jj) 233 232 z2d(ji,jj) = uu(ji,jj,ikbot,Kmm) … … 239 238 CALL iom_put( "ssv", vv(:,:,1,Kmm) ) ! surface j-current 240 239 IF ( iom_use("sbv") ) THEN 241 DO_2D( 1, 1, 1, 1)240 DO_2D( 0, 0, 0, 0 ) 242 241 ikbot = mbkv(ji,jj) 243 242 z2d(ji,jj) = vv(ji,jj,ikbot,Kmm) … … 268 267 IF( iom_use('logavs') ) CALL iom_put( "logavs", LOG( MAX( 1.e-20_wp, avs(:,:,:) ) ) ) 269 268 269 IF ( iom_use("socegrad") .OR. iom_use("socegrad2") ) THEN 270 z3d(:,:,jpk) = 0. 271 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 272 zztmp = ts(ji,jj,jk,jp_sal,Kmm) 273 zztmpx = (ts(ji+1,jj,jk,jp_sal,Kmm) - zztmp) * r1_e1u(ji,jj) + (zztmp - ts(ji-1,jj ,jk,jp_sal,Kmm)) * r1_e1u(ji-1,jj) 274 zztmpy = (ts(ji,jj+1,jk,jp_sal,Kmm) - zztmp) * r1_e2v(ji,jj) + (zztmp - ts(ji ,jj-1,jk,jp_sal,Kmm)) * r1_e2v(ji,jj-1) 275 z3d(ji,jj,jk) = 0.25 * ( zztmpx * zztmpx + zztmpy * zztmpy ) & 276 & * umask(ji,jj,jk) * umask(ji-1,jj,jk) * vmask(ji,jj,jk) * umask(ji,jj-1,jk) 277 END_3D 278 CALL iom_put( "socegrad2", z3d ) ! square of module of sal gradient 279 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 280 z3d(ji,jj,jk) = SQRT( z3d(ji,jj,jk) ) 281 END_3D 282 CALL iom_put( "socegrad" , z3d ) ! module of sal gradient 283 ENDIF 284 270 285 IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 271 DO_2D( 0, 0, 0, 0 ) 286 DO_2D( 0, 0, 0, 0 ) ! sst gradient 272 287 zztmp = ts(ji,jj,1,jp_tem,Kmm) 273 288 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) … … 276 291 & * umask(ji,jj,1) * umask(ji-1,jj,1) * vmask(ji,jj,1) * umask(ji,jj-1,1) 277 292 END_2D 278 CALL lbc_lnk( 'diawri', z2d, 'T', 1.0_wp )279 293 CALL iom_put( "sstgrad2", z2d ) ! square of module of sst gradient 280 z2d(:,:) = SQRT( z2d(:,:) ) 294 DO_2D( 0, 0, 0, 0 ) 295 z2d(ji,jj) = SQRT( z2d(ji,jj) ) 296 END_2D 281 297 CALL iom_put( "sstgrad" , z2d ) ! module of sst gradient 282 298 ENDIF … … 285 301 IF( iom_use("heatc") ) THEN 286 302 z2d(:,:) = 0._wp 287 DO_3D( 1, 1, 1, 1, 1, jpkm1 )303 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 288 304 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) * tmask(ji,jj,jk) 289 305 END_3D … … 293 309 IF( iom_use("saltc") ) THEN 294 310 z2d(:,:) = 0._wp 295 DO_3D( 1, 1, 1, 1, 1, jpkm1 )311 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 296 312 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 297 313 END_3D … … 299 315 ENDIF 300 316 ! 301 IF ( iom_use("eken") ) THEN 317 IF( iom_use("salt2c") ) THEN 318 z2d(:,:) = 0._wp 319 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 320 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) 321 END_3D 322 CALL iom_put( "salt2c", rho0 * z2d ) ! vertically integrated salt content (PSU*kg/m2) 323 ENDIF 324 ! 325 IF ( iom_use("ke") .OR. iom_use("ke_int") ) THEN 302 326 z3d(:,:,jpk) = 0._wp 303 327 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 304 zztmp = 0.25_wp * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 305 z3d(ji,jj,jk) = zztmp * ( uu(ji-1,jj,jk,Kmm)**2 * e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) & 306 & + uu(ji ,jj,jk,Kmm)**2 * e2u(ji ,jj) * e3u(ji ,jj,jk,Kmm) & 307 & + vv(ji,jj-1,jk,Kmm)**2 * e1v(ji,jj-1) * e3v(ji,jj-1,jk,Kmm) & 308 & + vv(ji,jj ,jk,Kmm)**2 * e1v(ji,jj ) * e3v(ji,jj ,jk,Kmm) ) 309 END_3D 310 CALL lbc_lnk( 'diawri', z3d, 'T', 1.0_wp ) 311 CALL iom_put( "eken", z3d ) ! kinetic energy 328 zztmpx = 0.5 * ( uu(ji-1,jj ,jk,Kmm) + uu(ji,jj,jk,Kmm) ) 329 zztmpy = 0.5 * ( vv(ji ,jj-1,jk,Kmm) + vv(ji,jj,jk,Kmm) ) 330 z3d(ji,jj,jk) = 0.5 * ( zztmpx*zztmpx + zztmpy*zztmpy ) 331 END_3D 332 CALL iom_put( "ke", z3d ) ! kinetic energy 333 334 z2d(:,:) = 0._wp 335 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 336 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * z3d(ji,jj,jk) * e1e2t(ji,jj) * tmask(ji,jj,jk) 337 END_3D 338 CALL iom_put( "ke_int", z2d ) ! vertically integrated kinetic energy 312 339 ENDIF 313 340 ! … … 339 366 ! 340 367 CALL iom_put( "hdiv", hdiv ) ! Horizontal divergence 368 369 IF ( iom_use("relvor") .OR. iom_use("absvor") .OR. iom_use("potvor") ) THEN 370 371 z3d(:,:,jpk) = 0._wp 372 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 373 z3d(ji,jj,jk) = ( e2v(ji+1,jj ) * vv(ji+1,jj ,jk,Kmm) - e2v(ji,jj) * vv(ji,jj,jk,Kmm) & 374 & - e1u(ji ,jj+1) * uu(ji ,jj+1,jk,Kmm) + e1u(ji,jj) * uu(ji,jj,jk,Kmm) ) * r1_e1e2f(ji,jj) 375 END_3D 376 CALL iom_put( "relvor", z3d ) ! relative vorticity 377 378 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 379 z3d(ji,jj,jk) = ff_f(ji,jj) + z3d(ji,jj,jk) 380 END_3D 381 CALL iom_put( "absvor", z3d ) ! absolute vorticity 382 383 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 384 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) & 385 & + e3t(ji,jj ,jk,Kmm)*tmask(ji,jj ,jk) + e3t(ji+1,jj ,jk,Kmm)*tmask(ji+1,jj ,jk) ) 386 IF( ze3 /= 0._wp ) THEN ; ze3 = 4._wp / ze3 387 ELSE ; ze3 = 0._wp 388 ENDIF 389 z3d(ji,jj,jk) = ze3 * z3d(ji,jj,jk) 390 END_3D 391 CALL iom_put( "potvor", z3d ) ! potential vorticity 392 393 ENDIF 341 394 ! 342 395 IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN … … 356 409 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) ) 357 410 END_3D 358 CALL lbc_lnk( 'diawri', z2d, 'U', -1.0_wp )359 411 CALL iom_put( "u_heattr", 0.5*rcp * z2d ) ! heat transport in i-direction 360 412 ENDIF … … 365 417 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) ) 366 418 END_3D 367 CALL lbc_lnk( 'diawri', z2d, 'U', -1.0_wp )368 419 CALL iom_put( "u_salttr", 0.5 * z2d ) ! heat transport in i-direction 369 420 ENDIF … … 383 434 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) ) 384 435 END_3D 385 CALL lbc_lnk( 'diawri', z2d, 'V', -1.0_wp )386 436 CALL iom_put( "v_heattr", 0.5*rcp * z2d ) ! heat transport in j-direction 387 437 ENDIF … … 392 442 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) ) 393 443 END_3D 394 CALL lbc_lnk( 'diawri', z2d, 'V', -1.0_wp )395 444 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 396 445 ENDIF … … 401 450 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) 402 451 END_3D 403 CALL lbc_lnk( 'diawri', z2d, 'T', -1.0_wp )404 452 CALL iom_put( "tosmint", rho0 * z2d ) ! Vertical integral of temperature 405 453 ENDIF … … 409 457 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) 410 458 END_3D 411 CALL lbc_lnk( 'diawri', z2d, 'T', -1.0_wp )412 459 CALL iom_put( "somint", rho0 * z2d ) ! Vertical integral of salinity 413 460 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.