Changeset 8168
- Timestamp:
- 2017-06-13T18:50:51+02:00 (7 years ago)
- Location:
- branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/CONFIG/SHARED/field_def.xml
r7649 r8168 499 499 <field id="tke" long_name="Turbulent Kinetic Energy" unit="m2/s2" /> 500 500 <field id="tke_niw" long_name="Turbulent Kinetic Energy due to near-inertial wave breaking" unit="m2/s2" /> 501 <!-- diag_vor_int and diag_vor_mn: available with TODO FLAGS and TODO FLAGS --> 502 <field id="dia_vor_int" long_name="vertical integral vorticity tendencies" standard_name="vertically_integrated_vorticity_tendencies" unit="s-2" grid_ref="grid_W_2D" /> 503 <field id="dia_vor_mn" long_name="vertical mean vorticity tendencies" standard_name="vertical_mean_vorticity_tendencies" unit="s-2" grid_ref="grid_W_2D" /> 501 <!-- variables available with dyn_vrt_dia - available with TODO FLAGS and TODO FLAGS --> 502 <field id="dia_vor_int-11" long_name="vertical integral vorticity tendencies for hpg" standard_name="vertically_integrated_vorticity_tendencies_hpg" unit="s-2" grid_ref="grid_W_2D" /> 503 <field id="dia_vor_mean-12" long_name="vertical mean vorticity tendencies for hpg" standard_name="vertical_mean_vorticity_tendencies_hpg" unit="s-2" grid_ref="grid_W_2D" /> 504 <field id="dia_vor_int-21" long_name="vertical integral vorticity tendencies for keg" standard_name="vertically_integrated_vorticity_tendencies_keg" unit="s-2" grid_ref="grid_W_2D" /> 505 <field id="dia_vor_mean-22" long_name="vertical mean vorticity tendencies for keg" standard_name="vertical_mean_vorticity_tendencies_keg" unit="s-2" grid_ref="grid_W_2D" /> 506 <field id="dia_vor_int-31" long_name="vertical integral vorticity tendencies for ldf" standard_name="vertically_integrated_vorticity_tendencies_ldf" unit="s-2" grid_ref="grid_W_2D" /> 507 <field id="dia_vor_mean-32" long_name="vertical mean vorticity tendencies for ldf" standard_name="vertical_mean_vorticity_tendencies_ldf" unit="s-2" grid_ref="grid_W_2D" /> 508 <field id="dia_vor_int-41" long_name="vertical integral vorticity tendencies for spg" standard_name="vertically_integrated_vorticity_tendencies_spg" unit="s-2" grid_ref="grid_W_2D" /> 509 <field id="dia_vor_mean-42" long_name="vertical mean vorticity tendencies for spg" standard_name="vertical_mean_vorticity_tendencies_spg" unit="s-2" grid_ref="grid_W_2D" /> 510 <field id="dia_vor_int-51" long_name="vertical integral vorticity tendencies for vor" standard_name="vertically_integrated_vorticity_tendencies_vor" unit="s-2" grid_ref="grid_W_2D" /> 511 <field id="dia_vor_mean-52" long_name="vertical mean vorticity tendencies for vor" standard_name="vertical_mean_vorticity_tendencies_vor" unit="s-2" grid_ref="grid_W_2D" /> 512 <field id="dia_vor_int-61" long_name="vertical integral vorticity tendencies for zad" standard_name="vertically_integrated_vorticity_tendencies_zad" unit="s-2" grid_ref="grid_W_2D" /> 513 <field id="dia_vor_mean-62" long_name="vertical mean vorticity tendencies for zad" standard_name="vertical_mean_vorticity_tendencies_zad" unit="s-2" grid_ref="grid_W_2D" /> 514 <field id="dia_vor_int-71" long_name="vertical integral vorticity tendencies for zdf" standard_name="vertically_integrated_vorticity_tendencies_zdf" unit="s-2" grid_ref="grid_W_2D" /> 515 <field id="dia_vor_mean-72" long_name="vertical mean vorticity tendencies for zdf" standard_name="vertical_mean_vorticity_tendencies_zdf" unit="s-2" grid_ref="grid_W_2D" /> 504 516 </field_group> 505 517 -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90
r7900 r8168 343 343 344 344 345 SUBROUTINE dyn_vrt_dia_3d( utend, vtend, id_dia_vor_int, id_dia_vor_mn) 345 ! TODO - remove kt only used for validation 346 SUBROUTINE dyn_vrt_dia_3d( utend, vtend, id_dia_vor_int, id_dia_vor_mn, kt) 346 347 347 348 !!---------------------------------------------------------------------- … … 356 357 !! 357 358 !!---------------------------------------------------------------------- 358 REAL :: utend(jpi,jpj,jpk) ! contribution to du/dt 359 REAL :: vtend(jpi,jpj,jpk) ! contribution to dv/dt 360 INTEGER :: id_dia_vor_int ! identifier for the vertical integral vorticity diagnostic 361 INTEGER :: id_dia_vor_mn ! identifier for the vertical mean vorticity diagnostic 362 ! 363 !!---------------------------------------------------------------------- 364 ! 365 INTEGER :: ji, jj, jk ! dummy loop indices 359 REAL, INTENT(in) :: utend(jpi,jpj,jpk) ! contribution to du/dt 360 REAL, INTENT(in) :: vtend(jpi,jpj,jpk) ! contribution to dv/dt 361 INTEGER, INTENT(in) :: id_dia_vor_int ! identifier for the vertical integral vorticity diagnostic 362 INTEGER, INTENT(in) :: id_dia_vor_mn ! identifier for the vertical mean vorticity diagnostic 363 INTEGER :: kt ! ocean time-step index 364 ! 365 !!---------------------------------------------------------------------- 366 ! 367 INTEGER :: ji, jj, jk ! dummy loop indices 368 INTEGER :: ji_min, ji_max ! dummy loop indices for dynspg_flt 366 369 ! 367 370 REAL(wp), POINTER, DIMENSION(:,:) :: u_int ! u vertical integral … … 370 373 CALL wrk_alloc(jpi, jpj, u_int) 371 374 CALL wrk_alloc(jpi, jpj, v_int) 375 376 ji_min = 1 377 ji_max = jpi 378 379 IF ( id_dia_vor_int == 71 .OR. id_dia_vor_mn == 72 ) THEN 380 ji_min = fs_2 381 ji_max = fs_jpim1 382 END IF 372 383 373 384 u_int(:,:) = 0.0_wp … … 380 391 DO jk = 1,jpk 381 392 DO jj = 1,jpj 382 DO ji = 1,jpi393 DO ji = ji_min,ji_max 383 394 u_int(ji,jj) = u_int(ji,jj) + utend(ji,jj,jk)*fse3u(ji,jj,jk) 384 395 v_int(ji,jj) = v_int(ji,jj) + vtend(ji,jj,jk)*fse3v(ji,jj,jk) 396 397 ! TODO remove - for validation only 398 IF ( kt == 1 .AND. ji == 17 .AND. jj == 12 .AND. id_dia_vor_int == 11 ) THEN 399 WRITE(numout, *) 'dyn_vrt_dia_3d id:', id_dia_vor_int, & 400 & ':ji:', ji, & 401 & ':jj:', jj, & 402 & ':jk:', jk, & 403 & ':u_int:', u_int(ji,jj), & 404 & ':u_tend:', utend(ji,jj,jk), & 405 & ':fse3u:', fse3u(ji,jj,jk) 406 WRITE(numout, *) 'dyn_vrt_dia_3d id:', id_dia_vor_int, & 407 & ':ji:', ji, & 408 & ':jj:', jj, & 409 & ':jk:', jk, & 410 & ':v_int:', v_int(ji,jj), & 411 & ':v_tend:', vtend(ji,jj,jk), & 412 & ':fse3v:', fse3v(ji,jj,jk) 413 END IF 385 414 END DO 386 415 END DO 387 416 END DO 388 417 389 CALL dyn_vrt_dia_2d(u_int, v_int, id_dia_vor_int, id_dia_vor_mn )418 CALL dyn_vrt_dia_2d(u_int, v_int, id_dia_vor_int, id_dia_vor_mn, kt) 390 419 391 420 CALL wrk_dealloc(jpi, jpj, u_int) … … 395 424 396 425 397 SUBROUTINE dyn_vrt_dia_2d( u_int, v_int, id_dia_vor_int, id_dia_vor_mn) 426 ! TODO - remove kt only used for validation 427 SUBROUTINE dyn_vrt_dia_2d( u_int, v_int, id_dia_vor_int, id_dia_vor_mn, kt) 398 428 399 429 !!---------------------------------------------------------------------- … … 413 443 !! 414 444 !!---------------------------------------------------------------------- 415 REAL :: u_int(jpi,jpj)! u vertical integral416 REAL :: v_int(jpi,jpj)! v vertical integral445 REAL :: u_int(jpi,jpj) ! u vertical integral 446 REAL :: v_int(jpi,jpj) ! v vertical integral 417 447 INTEGER :: id_dia_vor_int ! identifier for the vertical integral vorticity diagnostic 418 448 INTEGER :: id_dia_vor_mn ! identifier for the vertical mean vorticity diagnostic 449 INTEGER :: kt ! ocean time-step index 419 450 ! 420 451 !!---------------------------------------------------------------------- … … 427 458 REAL(wp), POINTER, DIMENSION(:,:) :: vor_int ! vort trend of vert integrals 428 459 REAL(wp), POINTER, DIMENSION(:,:) :: vor_mn ! vort trend of vert means 460 CHARACTER(len=20) :: cid_dia_vor_int ! Identifier for iom_put 461 CHARACTER(len=20) :: cid_dia_vor_mn ! Identifier for iom_put 429 462 430 463 CALL wrk_alloc(jpi, jpj, u_mn) … … 435 468 CALL lbc_lnk( u_int, 'U', 1. ) 436 469 CALL lbc_lnk( v_int, 'V', 1. ) 470 471 WRITE ( cid_dia_vor_int, "(A16,I2)" ) "dia_vor_int-", id_dia_vor_int 472 WRITE ( cid_dia_vor_mn, "(A17,I2)" ) "dia_vor_mean-", id_dia_vor_mn 437 473 438 474 ! … … 448 484 & - u_int(ji,jj+1) * e1u(ji,jj+1) ) & 449 485 & / ( e1f(ji,jj) * e2f(ji,jj) ) 486 487 ! TODO remove - for validation only 488 IF ( kt == 1 .AND. ji == 17 .AND. jj == 12 .AND. id_dia_vor_int == 11 ) THEN 489 WRITE(numout, *) 'dyn_vrt_dia_2d id:', id_dia_vor_int, & 490 & ':ji:', ji, & 491 & ':jj:', jj, & 492 & ':vor_int:', vor_int(ji,jj), & 493 & ':v_int(i+1):', v_int(ji+1,jj), & 494 & ':e2v(j+1):', e2v(ji+1,jj), & 495 & ':v_int:', v_int(ji,jj), & 496 & ':e2v:', e2v(ji,jj), & 497 & ':u_int:', u_int(ji,jj), & 498 & ':e1u:', e1u(ji,jj), & 499 & ':u_int(j+1):', u_int(ji,jj+1), & 500 & ':e1u(j+1):', e1u(ji,jj+1), & 501 & ':e1f:', e1f(ji,jj), & 502 & ':e2f:', e2f(ji,jj) 503 END IF 450 504 END DO 451 505 END DO … … 473 527 ELSE 474 528 v_mn(ji,jj) = 0.0_wp 529 END IF 530 531 ! TODO remove - for validation only 532 IF ( kt == 1 .AND. ji == 17 .AND. jj == 12 .AND. id_dia_vor_int == 11 ) THEN 533 WRITE(numout, *) 'dyn_vrt_dia_2d id:', id_dia_vor_int, & 534 & ':ikbu:', ikbu, & 535 & ':u_int:', u_int(ji,jj), & 536 & ':u_mn:', u_mn(ji,jj), & 537 & ':ikbv:', ikbv, & 538 & ':v_int:', v_int(ji,jj), & 539 & ':v_mn:', v_mn(ji,jj) 475 540 END IF 476 541 END DO … … 489 554 & - u_mn(ji,jj+1) * e1u(ji,jj+1) ) & 490 555 & / ( e1f(ji,jj) * e2f(ji,jj) ) 556 557 ! TODO remove - for validation only 558 IF ( kt == 1 .AND. ji == 17 .AND. jj == 12 .AND. id_dia_vor_int == 11 ) THEN 559 WRITE(numout, *) 'dyn_vrt_dia_2d id:', id_dia_vor_int, & 560 & ':ji:', ji, & 561 & ':jj:', jj, & 562 & ':vor_mn:', vor_mn(ji,jj), & 563 & ':v_mn(i+1):', v_mn(ji+1,jj), & 564 & ':e2v(j+1):', e2v(ji+1,jj), & 565 & ':v_mn:', v_mn(ji,jj), & 566 & ':e2v:', e2v(ji,jj), & 567 & ':u_mn:', u_mn(ji,jj), & 568 & ':e1u:', e1u(ji,jj), & 569 & ':u_mn(j+1):', u_mn(ji,jj+1), & 570 & ':e1u(j+1):', e1u(ji,jj+1), & 571 & ':e1f:', e1f(ji,jj), & 572 & ':e2f:', e2f(ji,jj) 573 END IF 491 574 END DO 492 575 END DO … … 494 577 495 578 ! Call iom_put for the vertical integral vorticity tendencies 496 IF (id_dia_vor_int == 1) THEN 497 CALL iom_put( "dia_vor_int", vor_int(:,:)) 498 ENDIF 579 CALL iom_put( cid_dia_vor_int, vor_int(:,:)) 499 580 500 581 ! Call iom_put for the vertical mean vorticity tendencies 501 IF (id_dia_vor_int == 1) THEN 502 CALL iom_put( "dia_vor_mn", vor_mn(:,:)) 503 ENDIF 582 CALL iom_put( cid_dia_vor_mn, vor_mn(:,:)) 504 583 505 584 CALL wrk_dealloc(jpi, jpj, u_mn) -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r7900 r8168 379 379 INTEGER, INTENT(in) :: kt ! ocean time-step index 380 380 !! 381 INTEGER :: id_dia_vrt_hpg_int = 1 382 INTEGER :: id_dia_vrt_hpg_mean = 1 381 INTEGER :: id_dia_vrt_hpg_int = 11 ! TODO remove once flags set properly 382 INTEGER :: id_dia_vrt_hpg_mean = 12 ! TODO remove once flags set properly 383 383 INTEGER :: ji, jj, jk ! dummy loop indices 384 384 REAL(wp) :: zcoef0, zuap, zvap, znad ! temporary scalars 385 385 REAL(wp), POINTER, DIMENSION(:,:,:) :: zhpi, zhpj 386 REAL(wp), POINTER, DIMENSION(:,:,:) :: zuhpg, zvhpg 386 387 !!---------------------------------------------------------------------- 387 388 ! 388 389 CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 390 CALL wrk_alloc( jpi,jpj,jpk, zuhpg, zvhpg ) 389 391 ! 390 392 IF( kt == nit000 ) THEN … … 404 406 DO jj = 2, jpjm1 405 407 DO ji = fs_2, fs_jpim1 ! vector opt. 408 ! hydrostatic pressure gradient along s-surfaces 409 zhpi(ji,jj,1) = zcoef0 / e1u(ji,jj) * ( fse3w(ji+1,jj ,1) * ( znad + rhd(ji+1,jj ,1) ) & 410 & - fse3w(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) 411 zhpj(ji,jj,1) = zcoef0 / e2v(ji,jj) * ( fse3w(ji ,jj+1,1) * ( znad + rhd(ji ,jj+1,1) ) & 412 & - fse3w(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) 406 413 ! s-coordinate pressure gradient correction 407 414 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) & … … 409 416 zvap = -zcoef0 * ( rhd (ji,jj+1,1) + rhd (ji,jj,1) + 2._wp * znad ) & 410 417 & * ( fsde3w(ji,jj+1,1) - fsde3w(ji,jj,1) ) / e2v(ji,jj) 411 ! hydrostatic pressure gradient along s-surfaces added to above correction 412 zhpi(ji,jj,1) = zuap + zcoef0 / e1u(ji,jj) * ( fse3w(ji+1,jj ,1) * ( znad + rhd(ji+1,jj ,1) ) & 413 & - fse3w(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) 414 zhpj(ji,jj,1) = zvap + zcoef0 / e2v(ji,jj) * ( fse3w(ji ,jj+1,1) * ( znad + rhd(ji ,jj+1,1) ) & 415 & - fse3w(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) 418 ! combine gradient and corerction 419 zuhpg(ji,jj,1) = zhpi(ji,jj,1) + zuap 420 zvhpg(ji,jj,1) = zhpj(ji,jj,1) + zvap 416 421 ! add to the general momentum trend 417 ua(ji,jj,1) = ua(ji,jj,1) + z hpi(ji,jj,1)418 va(ji,jj,1) = va(ji,jj,1) + z hpj(ji,jj,1)422 ua(ji,jj,1) = ua(ji,jj,1) + zuhpg(ji,jj,1) 423 va(ji,jj,1) = va(ji,jj,1) + zvhpg(ji,jj,1) 419 424 END DO 420 425 END DO … … 424 429 DO jj = 2, jpjm1 425 430 DO ji = fs_2, fs_jpim1 ! vector opt. 431 ! hydrostatic pressure gradient along s-surfaces 432 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 / e1u(ji,jj) & 433 & * ( fse3w(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad ) & 434 & - fse3w(ji ,jj,jk) * ( rhd(ji ,jj,jk) + rhd(ji ,jj,jk-1) + 2*znad ) ) 435 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 / e2v(ji,jj) & 436 & * ( fse3w(ji,jj+1,jk) * ( rhd(ji,jj+1,jk) + rhd(ji,jj+1,jk-1) + 2*znad ) & 437 & - fse3w(ji,jj ,jk) * ( rhd(ji,jj, jk) + rhd(ji,jj ,jk-1) + 2*znad ) ) 426 438 ! s-coordinate pressure gradient correction 427 439 zuap = -zcoef0 * ( rhd (ji+1,jj ,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & … … 429 441 zvap = -zcoef0 * ( rhd (ji ,jj+1,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 430 442 & * ( fsde3w(ji ,jj+1,jk) - fsde3w(ji,jj,jk) ) / e2v(ji,jj) 431 ! hydrostatic pressure gradient along s-surfaces added to above correction 432 zhpi(ji,jj,jk) = zuap + zhpi(ji,jj,jk-1) + zcoef0 / e1u(ji,jj) & 433 & * ( fse3w(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad ) & 434 & - fse3w(ji ,jj,jk) * ( rhd(ji ,jj,jk) + rhd(ji ,jj,jk-1) + 2*znad ) ) 435 zhpj(ji,jj,jk) = zvap + zhpj(ji,jj,jk-1) + zcoef0 / e2v(ji,jj) & 436 & * ( fse3w(ji,jj+1,jk) * ( rhd(ji,jj+1,jk) + rhd(ji,jj+1,jk-1) + 2*znad ) & 437 & - fse3w(ji,jj ,jk) * ( rhd(ji,jj, jk) + rhd(ji,jj ,jk-1) + 2*znad ) ) 443 ! combine gradient and corerction 444 zuhpg(ji,jj,jk) = zhpi(ji,jj,jk) + zuap 445 zvhpg(ji,jj,jk) = zhpj(ji,jj,jk) + zvap 438 446 ! add to the general momentum trend 439 ua(ji,jj,jk) = ua(ji,jj,jk) + z hpi(ji,jj,jk)440 va(ji,jj,jk) = va(ji,jj,jk) + z hpj(ji,jj,jk)447 ua(ji,jj,jk) = ua(ji,jj,jk) + zuhpg(ji,jj,jk) 448 va(ji,jj,jk) = va(ji,jj,jk) + zvhpg(ji,jj,jk) 441 449 END DO 442 450 END DO … … 444 452 ! 445 453 ! calculate dia_vor_int & dia_vor_mn if required 446 IF ( ( id_dia_vrt_hpg_int == 1 ) .or. ( id_dia_vrt_hpg_mean == 1 ) ) THEN 447 CALL dyn_vrt_dia_3d(zhpi, zhpj, id_dia_vrt_hpg_int, id_dia_vrt_hpg_mean) 454 IF ( ( id_dia_vrt_hpg_int == 11 ) .or. ( id_dia_vrt_hpg_mean == 12 ) ) THEN 455 ! TODO - remove kt only used for validation 456 CALL dyn_vrt_dia_3d(zuhpg, zvhpg, id_dia_vrt_hpg_int, id_dia_vrt_hpg_mean, kt) 448 457 END IF 449 458 ! -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r7845 r8168 75 75 INTEGER, INTENT( in ) :: kscheme ! =0/1 type of KEG scheme 76 76 ! 77 INTEGER :: id_dia_vrt_keg_int =1 ! TODO remove once flags set properly78 INTEGER :: id_dia_vrt_keg_mean = 1! TODO remove once flags set properly79 INTEGER :: ji, jj, jk! dummy loop indices80 REAL(wp) :: zu, zv! temporary scalars77 INTEGER :: id_dia_vrt_keg_int = 21 ! TODO remove once flags set properly 78 INTEGER :: id_dia_vrt_keg_mean = 22 ! TODO remove once flags set properly 79 INTEGER :: ji, jj, jk ! dummy loop indices 80 REAL(wp) :: zu, zv ! temporary scalars 81 81 REAL(wp), POINTER, DIMENSION(:,:,:) :: zhke, zhkei, zhkej 82 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv … … 148 148 END DO 149 149 ! 150 IF ( ( id_dia_vrt_keg_int == 1 ) .or. ( id_dia_vrt_keg_mean == 1 ) ) THEN 151 CALL dyn_vrt_dia_3d(zhkei, zhkej, id_dia_vrt_keg_int, id_dia_vrt_keg_mean) 150 IF ( ( id_dia_vrt_keg_int == 21 ) .or. ( id_dia_vrt_keg_mean == 22 ) ) THEN 151 ! TODO - remove kt only used for validation 152 CALL dyn_vrt_dia_3d(zhkei, zhkej, id_dia_vrt_keg_int, id_dia_vrt_keg_mean, kt) 152 153 END IF 153 154 ! -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilap.F90
r7845 r8168 76 76 INTEGER, INTENT(in) :: kt ! ocean time-step index 77 77 ! 78 INTEGER :: id_dia_vrt_ldf_int = 1! TODO remove once flags set properly79 INTEGER :: id_dia_vrt_ldf_mean = 1! TODO remove once flags set properly78 INTEGER :: id_dia_vrt_ldf_int = 31 ! TODO remove once flags set properly 79 INTEGER :: id_dia_vrt_ldf_mean = 32 ! TODO remove once flags set properly 80 80 INTEGER :: ji, jj, jk ! dummy loop indices 81 81 REAL(wp) :: zbt, ze2u, ze2v ! temporary scalar … … 194 194 ze2v = e1v(ji,jj) * fse3v(ji,jj,jk) 195 195 ! horizontal biharmonic diffusive trends 196 zua(ji,jj,jk) = - ( zuf(ji ,jj,jk) - zuf(ji,jj-1,jk) ) / ze2u &197 & + ( zut(ji+1,jj,jk) - zut(ji,jj ,jk) ) / e1u(ji,jj) &196 zua(ji,jj,jk) = ( - ( zuf(ji ,jj,jk) - zuf(ji,jj-1,jk) ) / ze2u & 197 & + ( zut(ji+1,jj,jk) - zut(ji,jj ,jk) ) / e1u(ji,jj) ) & 198 198 & * ( fsahmu(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 199 zva(ji,jj,jk) = + ( zuf(ji,jj ,jk) - zuf(ji-1,jj,jk) ) / ze2v &200 & + ( zut(ji,jj+1,jk) - zut(ji ,jj,jk) ) / e2v(ji,jj) &199 zva(ji,jj,jk) = ( + ( zuf(ji,jj ,jk) - zuf(ji-1,jj,jk) ) / ze2v & 200 & + ( zut(ji,jj+1,jk) - zut(ji ,jj,jk) ) / e2v(ji,jj) ) & 201 201 & * ( fsahmv(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 202 202 ! add it to the general momentum trends … … 209 209 END DO ! End of slab 210 210 ! ! =============== 211 IF ( ( id_dia_vrt_ldf_int == 1 ) .or. ( id_dia_vrt_ldf_mean == 1 ) ) THEN 212 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_ldf_int, id_dia_vrt_ldf_mean) 211 IF ( ( id_dia_vrt_ldf_int == 31 ) .or. ( id_dia_vrt_ldf_mean == 32 ) ) THEN 212 ! TODO - remove kt only used for validation 213 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_ldf_int, id_dia_vrt_ldf_mean, kt) 213 214 END IF 214 215 ! -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r7845 r8168 561 561 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 562 562 !! 563 INTEGER :: id_dia_vrt_vor_int = 1! TODO remove once flags set properly564 INTEGER :: id_dia_vrt_vor_mn = 1! TODO remove once flags set properly563 INTEGER :: id_dia_vrt_vor_int = 51 ! TODO remove once flags set properly 564 INTEGER :: id_dia_vrt_vor_mn = 52 ! TODO remove once flags set properly 565 565 INTEGER :: ji, jj, jk ! dummy loop indices 566 566 INTEGER :: ierr ! local integer … … 707 707 END DO ! End of slab 708 708 ! ! =============== 709 IF ( ( id_dia_vrt_vor_int == 1 ) .or. ( id_dia_vrt_vor_mn == 1 ) ) THEN 710 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_vor_int, id_dia_vrt_vor_mn) 709 IF ( ( id_dia_vrt_vor_int == 51 ) .or. ( id_dia_vrt_vor_mn == 52 ) ) THEN 710 ! TODO - remove kt only used for validation 711 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_vor_int, id_dia_vrt_vor_mn, kt) 711 712 END IF 712 713 ! -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90
r7845 r8168 60 60 INTEGER, INTENT(in) :: kt ! ocean time-step inedx 61 61 ! 62 INTEGER :: id_dia_vrt_zad_int = 1 ! TODO remove once flags set properly63 INTEGER :: id_dia_vrt_zad_mean = 1! TODO remove once flags set properly64 INTEGER :: ji, jj, jk ! dummy loop indices62 INTEGER :: id_dia_vrt_zad_int = 61 ! TODO remove once flags set properly 63 INTEGER :: id_dia_vrt_zad_mean = 62 ! TODO remove once flags set properly 64 INTEGER :: ji, jj, jk ! dummy loop indices 65 65 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwuw , zwvw 66 66 REAL(wp), POINTER, DIMENSION(:,: ) :: zww … … 145 145 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 146 146 ! 147 IF ( ( id_dia_vrt_zad_int == 1 ) .or. ( id_dia_vrt_zad_mean == 1 ) ) THEN 148 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_zad_int, id_dia_vrt_zad_mean) 147 IF ( ( id_dia_vrt_zad_int == 61 ) .or. ( id_dia_vrt_zad_mean == 62 ) ) THEN 148 ! TODO - remove kt only used for validation 149 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_zad_int, id_dia_vrt_zad_mean, kt) 149 150 END IF 150 151 ! -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r7885 r8168 69 69 INTEGER :: ji, jj, jk ! dummy loop indices 70 70 INTEGER :: ikbu, ikbv ! local integers 71 INTEGER :: id_dia_vrt_zdf_int =1 ! TODO remove once flags set properly72 INTEGER :: id_dia_vrt_zdf_m ean = 1! TODO remove once flags set properly71 INTEGER :: id_dia_vrt_zdf_int = 71 ! TODO remove once flags set properly 72 INTEGER :: id_dia_vrt_zdf_mn = 72 ! TODO remove once flags set properly 73 73 REAL(wp) :: z1_p2dt, zcoef, zzwi, zzws, zrhs ! local scalars 74 74 REAL(wp) :: ze3ua, ze3va … … 262 262 END DO 263 263 264 IF ( ( .NOT. lk_dynspg_ts ) .OR. & 265 & ( ( id_dia_vrt_zdf_int == 71 ) .OR. ( id_dia_vrt_zdf_mn == 72 ) ) ) THEN 264 266 ! Normalization to obtain the general momentum trend ua 265 IF ( ( .NOT. lk_dynspg_ts ) .OR. &266 & ( ( id_dia_vrt_zdf_int == 1 ) .OR. ( id_dia_vrt_zdf_mean == 1 ) ) ) THEN267 267 DO jk = 1, jpkm1 268 268 DO jj = 2, jpjm1 … … 367 367 END DO 368 368 369 IF ( ( .NOT. lk_dynspg_ts ) .OR. & 370 & ( ( id_dia_vrt_zdf_int == 71 ) .OR. ( id_dia_vrt_zdf_mn == 72 ) ) ) THEN 369 371 ! Normalization to obtain the general momentum trend va 370 IF ( ( .NOT. lk_dynspg_ts ) .OR. &371 & ( ( id_dia_vrt_zdf_int == 1 ) .OR. ( id_dia_vrt_zdf_mean == 1 ) ) ) THEN372 372 DO jk = 1, jpkm1 373 373 DO jj = 2, jpjm1 … … 377 377 END DO 378 378 END DO 379 IF ( ( id_dia_vrt_zdf_int == 1 ) .OR. (id_dia_vrt_zdf_mean == 1) ) THEN 380 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_zdf_int, id_dia_vrt_zdf_mean) 379 IF ( ( id_dia_vrt_zdf_int == 71 ) .OR. (id_dia_vrt_zdf_mn == 72) ) THEN 380 ! TODO - remove kt only used for validation 381 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_zdf_int, id_dia_vrt_zdf_mn, kt) 381 382 END IF 382 383 IF ( .NOT. lk_dynspg_ts ) THEN
Note: See TracChangeset
for help on using the changeset viewer.