Ignore:
Timestamp:
2012-03-12T15:44:43+01:00 (9 years ago)
Author:
gm
Message:

Ediag branche: #927 add Kinetic Energy trend diagnostics (trdken.F90)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD/trddyn.F90

    r3318 r3325  
    55   !!===================================================================== 
    66   !! History :  3.5  !  2012-02  (G. Madec) creation from trdmod: split DYN and TRA trends 
    7    !!                           and manage  3D trends output for U, V, and KE 
     7   !!                                        and manage  3D trends output for U, V, and KE 
    88   !!---------------------------------------------------------------------- 
    99 
     
    2121   USE sbc_oce        ! surface boundary condition: ocean 
    2222   USE phycst         ! physical constants 
    23    USE trdvor         ! ocean vorticity trends  
    24    USE trdglo         ! trends:global domain averaged 
    25    USE trdmld         ! ocean active mixed layer tracers trends  
     23   USE trdken         ! trends: Kinetic ENergy  
     24   USE trdglo         ! trends: global domain averaged 
     25   USE trdvor         ! trends: vertical averaged vorticity  
     26   USE trdmld         ! trends: mixed layer averaged  
    2627   USE in_out_manager ! I/O manager 
    2728   USE iom            ! I/O manager library 
     
    3132   IMPLICIT NONE 
    3233   PRIVATE 
    33  
    34    REAL(wp) ::   r2dt    ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 
    3534 
    3635   PUBLIC trd_dyn        ! called by all dynXX modules 
     
    5756      INTEGER                   , INTENT(in   ) ::   ktrd           ! trend index 
    5857      INTEGER                   , INTENT(in   ) ::   kt             ! time step 
    59       !! 
    60       INTEGER ::   ji, jj   ! dummy loop indices 
    61       REAL(wp), POINTER, DIMENSION(:,:) ::   ztswu, ztswv    ! 2D workspace  
    6258      !!---------------------------------------------------------------------- 
     59      ! 
     60      putrd(:,:,:) = putrd(:,:,:) * umask(:,:,:)                       ! mask the trends 
     61      pvtrd(:,:,:) = pvtrd(:,:,:) * vmask(:,:,:) 
     62      ! 
    6363 
    64       CALL wrk_alloc( jpi, jpj, ztswu, ztswv ) 
    65  
    66       IF( neuler == 0 .AND. kt == nit000    ) THEN   ;   r2dt =      rdt      ! = rdtra (restart with Euler time stepping) 
    67       ELSEIF(               kt <= nit000 + 1) THEN   ;   r2dt = 2. * rdt      ! = 2 rdttra (leapfrog) 
    68       ENDIF 
     64!!gm NB : here a lbc_lnk should probably be added 
    6965 
    7066      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    8177      !  Kinetic Energy trends 
    8278      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    83 !!gm      IF( ln_KE_trd  )   CALL trd_KE( putrd, pvtrd, ktrd, kt ) 
     79      IF( ln_KE_trd  )   CALL trd_ken( putrd, pvtrd, ktrd, kt ) 
    8480 
    8581      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    9288      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    9389!!gm      IF( ln_dyn_mld )   CALL trd_mld_dyn    
    94       ! 
    95       CALL wrk_dealloc( jpi, jpj, ztswu, ztswv ) 
    9690      ! 
    9791   END SUBROUTINE trd_dyn 
     
    113107      REAL(wp), POINTER, DIMENSION(:,:,:) ::   z3dx, z3dy                 ! 3D workspace  
    114108      !!---------------------------------------------------------------------- 
    115       ! 
    116       putrd(:,:,:) = putrd(:,:,:) * umask(:,:,:)                       ! mask the trends 
    117       pvtrd(:,:,:) = pvtrd(:,:,:) * vmask(:,:,:) 
    118  
    119 !!gm NB : here a lbc_lnk should probably be added 
    120  
    121109      ! 
    122110      SELECT CASE( ktrd ) 
     
    151139                              CALL iom_put( "vtrd_zdf", pvtrd ) 
    152140                              !                                    ! wind stress trends 
    153                               z2dx(:,:) = ( utau_b(ji,jj) + utau(ji,jj) ) / ( fse3u(:,:,1) * rau0 ) 
    154                               z2dy(:,:) = ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( fse3v(:,:,1) * rau0 ) 
     141                              z2dx(:,:) = ( utau_b(:,:) + utau(:,:) ) / ( fse3u(:,:,1) * rau0 ) 
     142                              z2dy(:,:) = ( vtau_b(:,:) + vtau(:,:) ) / ( fse3v(:,:,1) * rau0 ) 
    155143                              CALL iom_put( "utrd_tau", z2dx ) 
    156144                              CALL iom_put( "vtrd_tau", z2dy ) 
Note: See TracChangeset for help on using the changeset viewer.