Changeset 1129 for trunk/NEMO
- Timestamp:
- 2008-06-24T08:45:37+02:00 (16 years ago)
- Location:
- trunk/NEMO/OPA_SRC
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynadv_cen2.F90
r719 r1129 16 16 USE dynspg_oce ! surface pressure gradient 17 17 USE in_out_manager ! I/O manager 18 USE dynspg_rl ! I/O manager 18 USE dynspg_rl ! surface pressure gradient 19 USE trdmod ! ocean dynamics trends 20 USE trdmod_oce ! ocean variables trends 21 USE prtctl ! Print control 19 22 20 23 IMPLICIT NONE … … 45 48 !! 46 49 !! ** Action : - Update (ua,va) with the now vorticity term trend 47 !! - save the trends in (utrd,vtrd) in 2 parts (relative48 !! and planetary vorticity trends) ('key_trddyn')49 50 !!---------------------------------------------------------------------- 50 51 USE oce, ONLY: zfu => ta, & ! use ta as 3D workspace … … 66 67 ENDIF 67 68 69 IF( l_trddyn ) THEN ! Save ua and va trends 70 zfu_uw(:,:,:) = ua(:,:,:) 71 zfv_vw(:,:,:) = va(:,:,:) 72 ENDIF 68 73 69 74 ! I. Horizontal advection … … 99 104 ua(ji,jj,jk) = ua(ji,jj,jk) + zua 100 105 va(ji,jj,jk) = va(ji,jj,jk) + zva 101 #if defined key_trddyn102 utrd(ji,jj,jk,1) = zua ! save the horizontal advective trend of momentum103 vtrd(ji,jj,jk,1) = zva104 #endif105 106 END DO 106 107 END DO … … 109 110 ! ! =============== 110 111 112 IF( l_trddyn ) THEN ! save the horizontal advection trend for diagnostic 113 zfu_uw(:,:,:) = ua(:,:,:) - zfu_uw(:,:,:) 114 zfv_vw(:,:,:) = va(:,:,:) - zfv_vw(:,:,:) 115 CALL trd_mod( zfu_uw, zfv_vw, jpdyn_trd_had, 'DYN', kt ) 116 ENDIF 117 ! 111 118 112 119 ! II. Vertical advection 113 120 ! ---------------------- 121 122 IF( l_trddyn ) THEN ! Save ua and va trends 123 zfu_t(:,:,:) = ua(:,:,:) 124 zfv_t(:,:,:) = va(:,:,:) 125 ENDIF 114 126 115 127 ! Second order centered tracer flux at w-point … … 159 171 END DO 160 172 173 IF( l_trddyn ) THEN ! save the vertical advection trend for diagnostic 174 zfu_t(:,:,:) = ua(:,:,:) - zfu_t(:,:,:) 175 zfv_t(:,:,:) = va(:,:,:) - zfv_t(:,:,:) 176 CALL trd_mod( zfu_t, zfv_t, jpdyn_trd_zad, 'DYN', kt ) 177 ENDIF 178 179 ! ! Control print 180 IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' cen2 adv - Ua: ', mask1=umask, & 181 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 182 ! 161 183 END SUBROUTINE dyn_adv_cen2 162 184 -
trunk/NEMO/OPA_SRC/DYN/dynadv_ubs.F90
r719 r1129 17 17 USE dynspg_oce ! surface pressure gradient 18 18 USE in_out_manager ! I/O manager 19 USE dynspg_rl ! I/O manager19 USE dynspg_rl ! surface pressure gradient 20 20 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 21 USE trdmod ! ocean dynamics trends 22 USE trdmod_oce ! ocean variables trends 23 USE prtctl ! Print control 21 24 22 25 IMPLICIT NONE … … 97 100 zlv_vu(:,:,:,:) = 0.e0 98 101 99 102 IF( l_trddyn ) THEN ! Save ua and va trends 103 zfu_uw(:,:,:) = ua(:,:,:) 104 zfv_vw(:,:,:) = va(:,:,:) 105 ENDIF 106 100 107 ! ! =============== 101 108 DO jk = 1, jpkm1 ! Horizontal slab … … 191 198 ua(ji,jj,jk) = ua(ji,jj,jk) + zua 192 199 va(ji,jj,jk) = va(ji,jj,jk) + zva 193 #if defined key_trddyn194 utrd(ji,jj,jk,1) = zua ! save the horizontal advective trend of momentum195 vtrd(ji,jj,jk,1) = zva196 #endif197 200 END DO 198 201 END DO … … 201 204 ! ! =============== 202 205 206 IF( l_trddyn ) THEN ! save the horizontal advection trend for diagnostic 207 zfu_uw(:,:,:) = ua(:,:,:) - zfu_uw(:,:,:) 208 zfv_vw(:,:,:) = va(:,:,:) - zfv_vw(:,:,:) 209 CALL trd_mod( zfu_uw, zfv_vw, jpdyn_trd_had, 'DYN', kt ) 210 ENDIF 203 211 204 212 ! II. Vertical advection 205 213 ! ---------------------- 214 215 IF( l_trddyn ) THEN ! Save ua and va trends 216 zfu_t(:,:,:) = ua(:,:,:) 217 zfv_t(:,:,:) = va(:,:,:) 218 ENDIF 206 219 207 220 ! Second order centered tracer flux at w-point … … 251 264 END DO 252 265 266 IF( l_trddyn ) THEN ! save the vertical advection trend for diagnostic 267 zfu_t(:,:,:) = ua(:,:,:) - zfu_t(:,:,:) 268 zfv_t(:,:,:) = va(:,:,:) - zfv_t(:,:,:) 269 CALL trd_mod( zfu_t, zfv_t, jpdyn_trd_zad, 'DYN', kt ) 270 ENDIF 271 272 ! ! Control print 273 IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' ubs2 adv - Ua: ', mask1=umask, & 274 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 275 253 276 END SUBROUTINE dyn_adv_ubs 254 277 -
trunk/NEMO/OPA_SRC/TRD/trdicp.F90
r719 r1129 472 472 WRITE (numout,9504) umo(jpicpd_pvo) / tvolu, vmo(jpicpd_pvo) / tvolv 473 473 WRITE (numout,9505) umo(jpicpd_ldf) / tvolu, vmo(jpicpd_ldf) / tvolv 474 WRITE (numout,9506) umo(jpicpd_zad) / tvolu, vmo(jpicpd_zad) / tvolv 475 WRITE (numout,9507) umo(jpicpd_zdf) / tvolu, vmo(jpicpd_zdf) / tvolv 476 WRITE (numout,9508) umo(jpicpd_spg) / tvolu, vmo(jpicpd_spg) / tvolv 477 WRITE (numout,9509) umo(jpicpd_swf) / tvolu, vmo(jpicpd_swf) / tvolv 478 WRITE (numout,9510) umo(jpicpd_dat) / tvolu, vmo(jpicpd_dat) / tvolv 479 WRITE (numout,9511) umo(jpicpd_bfr) / tvolu, vmo(jpicpd_bfr) / tvolv 480 WRITE (numout,9512) 481 WRITE (numout,9513) & 474 WRITE (numout,9506) umo(jpicpd_had) / tvolu, vmo(jpicpd_had) / tvolv 475 WRITE (numout,9507) umo(jpicpd_zad) / tvolu, vmo(jpicpd_zad) / tvolv 476 WRITE (numout,9508) umo(jpicpd_zdf) / tvolu, vmo(jpicpd_zdf) / tvolv 477 WRITE (numout,9509) umo(jpicpd_spg) / tvolu, vmo(jpicpd_spg) / tvolv 478 WRITE (numout,9510) umo(jpicpd_swf) / tvolu, vmo(jpicpd_swf) / tvolv 479 WRITE (numout,9511) umo(jpicpd_dat) / tvolu, vmo(jpicpd_dat) / tvolv 480 WRITE (numout,9512) umo(jpicpd_bfr) / tvolu, vmo(jpicpd_bfr) / tvolv 481 WRITE (numout,9513) 482 WRITE (numout,9514) & 482 483 & ( umo(jpicpd_hpg) + umo(jpicpd_keg) + umo(jpicpd_rvo) + umo(jpicpd_pvo) + umo(jpicpd_ldf) & 483 & + umo(jpicpd_ zad) + umo(jpicpd_zdf) + umo(jpicpd_spg) + umo(jpicpd_dat) + umo(jpicpd_swf) &484 & + umo(jpicpd_ bfr) ) / tvolu, &484 & + umo(jpicpd_had) + umo(jpicpd_zad) + umo(jpicpd_zdf) + umo(jpicpd_spg) + umo(jpicpd_dat) & 485 & + umo(jpicpd_swf) + umo(jpicpd_bfr) ) / tvolu, & 485 486 & ( vmo(jpicpd_hpg) + vmo(jpicpd_keg) + vmo(jpicpd_rvo) + vmo(jpicpd_pvo) + vmo(jpicpd_ldf) & 486 & + vmo(jpicpd_ zad) + vmo(jpicpd_zdf) + vmo(jpicpd_spg) + vmo(jpicpd_dat) + vmo(jpicpd_swf) &487 & + vmo(jpicpd_ bfr) ) / tvolv487 & + vmo(jpicpd_had) + vmo(jpicpd_zad) + vmo(jpicpd_zdf) + vmo(jpicpd_spg) + vmo(jpicpd_dat) & 488 & + vmo(jpicpd_swf) + vmo(jpicpd_bfr) ) / tvolv 488 489 ENDIF 489 490 … … 494 495 9504 FORMAT(' coriolis term u= ', e20.13, ' v= ', e20.13) 495 496 9505 FORMAT(' horizontal diffusion u= ', e20.13, ' v= ', e20.13) 496 9506 FORMAT(' vertical advection u= ', e20.13, ' v= ', e20.13) 497 9507 FORMAT(' vertical diffusion u= ', e20.13, ' v= ', e20.13) 498 9508 FORMAT(' surface pressure gradient u= ', e20.13, ' v= ', e20.13) 499 9509 FORMAT(' surface wind forcing u= ', e20.13, ' v= ', e20.13) 500 9510 FORMAT(' dampimg term u= ', e20.13, ' v= ', e20.13) 501 9511 FORMAT(' bottom flux u= ', e20.13, ' v= ', e20.13) 502 9512 FORMAT(' -----------------------------------------------------------------------------') 503 9513 FORMAT(' total trend u= ', e20.13, ' v= ', e20.13) 497 9506 FORMAT(' horizontal advection u= ', e20.13, ' v= ', e20.13) 498 9507 FORMAT(' vertical advection u= ', e20.13, ' v= ', e20.13) 499 9508 FORMAT(' vertical diffusion u= ', e20.13, ' v= ', e20.13) 500 9509 FORMAT(' surface pressure gradient u= ', e20.13, ' v= ', e20.13) 501 9510 FORMAT(' surface wind forcing u= ', e20.13, ' v= ', e20.13) 502 9511 FORMAT(' dampimg term u= ', e20.13, ' v= ', e20.13) 503 9512 FORMAT(' bottom flux u= ', e20.13, ' v= ', e20.13) 504 9513 FORMAT(' -----------------------------------------------------------------------------') 505 9514 FORMAT(' total trend u= ', e20.13, ' v= ', e20.13) 504 506 505 507 IF(lwp) THEN … … 512 514 WRITE (numout,9524) hke(jpicpd_pvo) / tvolt 513 515 WRITE (numout,9525) hke(jpicpd_ldf) / tvolt 514 WRITE (numout,9526) hke(jpicpd_zad) / tvolt 515 WRITE (numout,9527) hke(jpicpd_zdf) / tvolt 516 WRITE (numout,9528) hke(jpicpd_spg) / tvolt 517 WRITE (numout,9529) hke(jpicpd_swf) / tvolt 518 WRITE (numout,9530) hke(jpicpd_dat) / tvolt 519 WRITE (numout,9531) 520 WRITE (numout,9532) & 516 WRITE (numout,9526) hke(jpicpd_had) / tvolt 517 WRITE (numout,9527) hke(jpicpd_zad) / tvolt 518 WRITE (numout,9528) hke(jpicpd_zdf) / tvolt 519 WRITE (numout,9529) hke(jpicpd_spg) / tvolt 520 WRITE (numout,9530) hke(jpicpd_swf) / tvolt 521 WRITE (numout,9531) hke(jpicpd_dat) / tvolt 522 WRITE (numout,9532) 523 WRITE (numout,9533) & 521 524 & ( hke(jpicpd_hpg) + hke(jpicpd_keg) + hke(jpicpd_rvo) + hke(jpicpd_pvo) + hke(jpicpd_ldf) & 522 & + hke(jpicpd_zad) + hke(jpicpd_zdf) + hke(jpicpd_spg) + hke(jpicpd_dat) + hke(jpicpd_swf) ) / tvolt 525 & + hke(jpicpd_had) + hke(jpicpd_zad) + hke(jpicpd_zdf) + hke(jpicpd_spg) + hke(jpicpd_dat) & 526 & + hke(jpicpd_swf) ) / tvolt 523 527 ENDIF 524 528 … … 529 533 9524 FORMAT(' coriolis term u2= ', e20.13) 530 534 9525 FORMAT(' horizontal diffusion u2= ', e20.13) 531 9526 FORMAT(' vertical advection u2= ', e20.13) 532 9527 FORMAT(' vertical diffusion u2= ', e20.13) 533 9528 FORMAT(' surface pressure gradient u2= ', e20.13) 534 9529 FORMAT(' surface wind forcing u2= ', e20.13) 535 9530 FORMAT(' dampimg term u2= ', e20.13) 536 9531 FORMAT(' --------------------------------------------------') 537 9532 FORMAT(' total trend u2= ', e20.13) 535 9526 FORMAT(' horizontal advection u2= ', e20.13) 536 9527 FORMAT(' vertical advection u2= ', e20.13) 537 9528 FORMAT(' vertical diffusion u2= ', e20.13) 538 9529 FORMAT(' surface pressure gradient u2= ', e20.13) 539 9530 FORMAT(' surface wind forcing u2= ', e20.13) 540 9531 FORMAT(' dampimg term u2= ', e20.13) 541 9532 FORMAT(' --------------------------------------------------') 542 9533 FORMAT(' total trend u2= ', e20.13) 538 543 539 544 IF(lwp) THEN … … 541 546 WRITE (numout,*) 542 547 WRITE (numout,9540) kt 543 WRITE (numout,9541) ( hke(jpicpd_keg) + hke(jpicpd_rvo) + hke(jpicpd_ zad) ) / tvolt544 WRITE (numout,9542) ( hke(jpicpd_keg) + hke(jpicpd_ zad) ) / tvolt548 WRITE (numout,9541) ( hke(jpicpd_keg) + hke(jpicpd_rvo) + hke(jpicpd_had) + hke(jpicpd_zad) ) / tvolt 549 WRITE (numout,9542) ( hke(jpicpd_keg) + hke(jpicpd_had) + hke(jpicpd_zad) ) / tvolt 545 550 WRITE (numout,9543) ( hke(jpicpd_pvo) ) / tvolt 546 551 WRITE (numout,9544) ( hke(jpicpd_rvo) ) / tvolt … … 555 560 9540 FORMAT(' energetic consistency at it= ', i6, ' :', /' =========================================') 556 561 9541 FORMAT(' 0 = non linear term(true if key_vorenergy or key_combined): ', e20.13) 557 9542 FORMAT(' 0 = ke gradient + vertical advection: ', e20.13)562 9542 FORMAT(' 0 = ke gradient + horizontal + vertical advection : ', e20.13) 558 563 9543 FORMAT(' 0 = coriolis term (true if key_vorenergy or key_combined): ', e20.13) 559 564 9544 FORMAT(' 0 = uh.( rot(u) x uh ) (true if enstrophy conser.) : ', e20.13) -
trunk/NEMO/OPA_SRC/TRD/trdicp_oce.F90
r719 r1129 56 56 jpicpd_pvo = 4, & !: planetary vorticity 57 57 jpicpd_ldf = 5, & !: lateral diffusion 58 jpicpd_zad = 6, & !: vertical advection 59 jpicpd_zdf = 7, & !: vertical diffusion 60 jpicpd_spg = 8, & !: surface pressure gradient 61 jpicpd_dat = 9, & !: damping term 62 jpicpd_swf = 10, & !: surface wind forcing 63 jpicpd_bfr = 11 !: bottom friction 58 jpicpd_had = 6, & !: horizontal advection 59 jpicpd_zad = 7, & !: vertical advection 60 jpicpd_zdf = 8, & !: vertical diffusion 61 jpicpd_spg = 9, & !: surface pressure gradient 62 jpicpd_dat = 10, & !: damping term 63 jpicpd_swf = 11, & !: surface wind forcing 64 jpicpd_bfr = 12 !: bottom friction 64 65 65 66 INTEGER, PARAMETER :: & !: => Total dynamic trends indexes <= 66 jptot_dyn = 1 1!: change it when adding/removing one indice above67 jptot_dyn = 12 !: change it when adding/removing one indice above 67 68 68 69 #if defined key_trdtra || defined key_trddyn || defined key_esopa -
trunk/NEMO/OPA_SRC/TRD/trdmod.F90
r888 r1129 113 113 CASE ( jpdyn_trd_pvo ) ; CALL trd_icp( ptrdx, ptrdy, jpicpd_pvo, ctype ) ! planetary vorticity 114 114 CASE ( jpdyn_trd_ldf ) ; CALL trd_icp( ptrdx, ptrdy, jpicpd_ldf, ctype ) ! lateral diffusion 115 CASE ( jpdyn_trd_had ) ; CALL trd_icp( ptrdx, ptrdy, jpicpd_had, ctype ) ! horizontal advection 115 116 CASE ( jpdyn_trd_zad ) ; CALL trd_icp( ptrdx, ptrdy, jpicpd_zad, ctype ) ! vertical advection 116 117 CASE ( jpdyn_trd_spg ) ; CALL trd_icp( ptrdx, ptrdy, jpicpd_spg, ctype ) ! surface pressure grad. … … 164 165 CASE ( jpdyn_trd_pvo ) ; CALL trd_vor_zint( ptrdx, ptrdy, jpvor_pvo ) ! Planetary Vorticity Term 165 166 CASE ( jpdyn_trd_ldf ) ; CALL trd_vor_zint( ptrdx, ptrdy, jpvor_ldf ) ! Horizontal Diffusion 167 CASE ( jpdyn_trd_had ) ; CALL ctl_warn('Vorticity for horizontal advection trend never checked') 166 168 CASE ( jpdyn_trd_zad ) ; CALL trd_vor_zint( ptrdx, ptrdy, jpvor_zad ) ! Vertical Advection 167 169 CASE ( jpdyn_trd_spg ) ; CALL trd_vor_zint( ptrdx, ptrdy, jpvor_spg ) ! Surface Pressure Grad. -
trunk/NEMO/OPA_SRC/TRD/trdmod_oce.F90
r719 r1129 53 53 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_pvo = 4 !: planetary vorticity 54 54 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_ldf = 5 !: lateral diffusion 55 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_zad = 6 !: vertical advection 56 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_zdf = 7 !: vertical diffusion 57 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_spg = 8 !: surface pressure gradient 58 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_dat = 9 !: damping term 59 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_swf = 10 !: surface wind forcing 60 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_bfr = 11 !: bottom friction 55 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_had = 6 !: horizontal advection 56 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_zad = 7 !: vertical advection 57 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_zdf = 8 !: vertical diffusion 58 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_spg = 9 !: surface pressure gradient 59 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_dat = 10 !: damping term 60 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_swf = 11 !: surface wind forcing 61 INTEGER, PUBLIC, PARAMETER :: jpdyn_trd_bfr = 12 !: bottom friction 61 62 62 63 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.