New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 216 for trunk/NEMO/OPA_SRC/DYN/dynkeg.F90 – NEMO

Ignore:
Timestamp:
2005-03-17T15:02:38+01:00 (19 years ago)
Author:
opalod
Message:

CT : UPDATE151 : New trends organization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynkeg.F90

    r109 r216  
    1212   USE dom_oce         ! ocean space and time domain 
    1313   USE in_out_manager  ! I/O manager 
    14    USE trddyn_oce      ! dynamics trends diagnostics 
     14   USE trdmod          ! ocean dynamics trends  
     15   USE trdmod_oce      ! ocean variables trends 
    1516 
    1617   IMPLICIT NONE 
     
    5051      !!   7.0  !  97-05  (G. Madec)  Split dynber into dynkeg and dynhpg 
    5152      !!   9.0  !  02-07  (G. Madec)  F90: Free form and module 
     53      !!    "   !  04-08  (C. Talandier) New trends organization 
    5254      !!---------------------------------------------------------------------- 
    53       !! * modules used      
    54       USE oce, ONLY :   zhke => ta      ! use ta as 3D workspace    
     55      !! * Modules used      
     56      USE oce, ONLY :    ztdua => ta,   & ! use ta as 3D workspace    
     57                         ztdva => sa      ! use sa as 3D workspace    
    5558 
    5659      !! * Arguments 
     
    6063      INTEGER  ::   ji, jj, jk          ! dummy loop indices 
    6164      REAL(wp) ::   zua, zva, zu, zv    ! temporary scalars 
    62 #if defined key_trddyn_new 
    63       REAL(wp) ::   zuu, zvv            ! temporary scalars 
    64       REAL(wp), DIMENSION(jpi,jpj) ::   & 
    65          zvke, zuke                     ! temporary workspace 
    66 #endif 
     65      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   & 
     66         zhke                           ! temporary workspace 
    6767      !!---------------------------------------------------------------------- 
    6868 
     
    7171         IF(lwp) WRITE(numout,*) 'dyn_keg : kinetic energy gradient trend' 
    7272         IF(lwp) WRITE(numout,*) '~~~~~~~' 
     73      ENDIF 
     74 
     75      ! Save ua and va trends 
     76      IF( l_trddyn )   THEN 
     77         ztdua(:,:,:) = ua(:,:,:)  
     78         ztdva(:,:,:) = va(:,:,:)  
    7379      ENDIF 
    7480       
     
    8490                            + un(ji  ,jj  ,jk) * un(ji  ,jj  ,jk)  ) 
    8591               zhke(ji,jj,jk) = zv + zu 
    86 #if defined key_trddyn_new 
    87                zvke(ji,jj) = zv 
    88                zuke(ji,jj) = zu 
    89 #endif 
    9092            END DO   
    9193         END DO   
     
    100102               ua(ji,jj,jk) = ua(ji,jj,jk) + zua 
    101103               va(ji,jj,jk) = va(ji,jj,jk) + zva 
    102 #if defined key_trddyn || defined key_trd_vor 
    103                ! add to the general momentum trends 
    104                utrd(ji,jj,jk,2) = zua 
    105                vtrd(ji,jj,jk,2) = zva 
    106 #endif 
    107 #if defined key_trddyn_new 
    108                zuu = -( zuke(ji+1,jj  ) - zuke(ji,jj) ) / e1u(ji,jj) 
    109                zvv = -( zvke(ji  ,jj+1) - zvke(ji,jj) ) / e2v(ji,jj) 
    110                utrd(ji,jj,jk,2) = zua - zuu 
    111                vtrd(ji,jj,jk,3) = zva - zvv 
    112                utrd(ji,jj,jk,3) = zuu 
    113                vtrd(ji,jj,jk,2) = zvv 
    114 #endif 
    115104            END DO  
    116105         END DO 
     
    118107      END DO                                           !   End of slab 
    119108      !                                                ! =============== 
     109 
     110      ! save the Kinetic Energy trends for diagnostic 
     111      ! momentum trends 
     112      IF( l_trddyn )   THEN 
     113         ztdua(:,:,:) = ua(:,:,:) - ztdua(:,:,:) 
     114         ztdva(:,:,:) = va(:,:,:) - ztdva(:,:,:) 
     115 
     116         CALL trd_mod(ztdua, ztdva, jpdtdkeg, 'DYN', kt) 
     117      ENDIF 
    120118 
    121119      IF(l_ctl) THEN         ! print sum trends (used for debugging) 
Note: See TracChangeset for help on using the changeset viewer.