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/dynspg_fsc.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/dynspg_fsc.F90

    r183 r216  
    1616   USE oce             ! ocean dynamics and tracers  
    1717   USE dom_oce         ! ocean space and time domain  
    18    USE trdtra_oce      ! ocean active tracer   trend 
    19    USE trddyn_oce      ! ocean active dynamics trend 
     18   USE trdmod          ! ocean dynamics trends  
     19   USE trdmod_oce      ! ocean variables trends 
    2020   USE zdf_oce         ! ocean vertical physics 
    2121   USE in_out_manager  ! I/O manager 
    2222   USE phycst          ! physical constants 
    2323   USE ocesbc          ! ocean surface boundary condition 
    24    USE flxrnf          ! ??? 
    25    USE sol_oce         ! solver variables 
     24   USE flxrnf          ! ocean runoffs 
     25   USE sol_oce         ! ocean elliptic solver 
    2626   USE solpcg          ! preconditionned conjugate gradient solver 
    2727   USE solsor          ! Successive Over-relaxation solver 
     
    3030   USE obcdyn          ! ocean open boundary condition (obc_dyn routines) 
    3131   USE obcvol          ! ocean open boundary condition (obc_vol routines) 
    32    USE lib_mpp         ! ??? 
    33    USE lbclnk          ! ??? 
    34    USE cla_dynspg      ! ??? 
     32   USE lib_mpp         ! distributed memory computing library 
     33   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
     34   USE cla_dynspg      ! cross land advection 
    3535 
    3636   IMPLICIT NONE 
     
    9494      !! 
    9595      !! ** Action : - Update (ua,va) with the surf. pressure gradient trend 
    96       !!             - Save the trends in (utrd,vtrd) ('key_diatrends') 
     96      !!             - Save the trends in (ztdua,ztdva) ('key_trddyn') 
    9797      !! 
    9898      !! References : 
     
    101101      !! History : 
    102102      !!        !  98-05 (G. Roullet)  Original code 
    103       !!        !  98-10  (G. Madec, M. Imbard)  release 8.2 
    104       !!   8.5  !  02-08  (G. Madec)  F90: Free form and module 
    105       !!        !  02-11  (C. Talandier, A-M Treguier) Open boundaries 
     103      !!        !  98-10 (G. Madec, M. Imbard)  release 8.2 
     104      !!   8.5  !  02-08 (G. Madec)  F90: Free form and module 
     105      !!        !  02-11 (C. Talandier, A-M Treguier) Open boundaries 
     106      !!   9.0  !  04-08 (C. Talandier) New trends organization 
    106107      !!--------------------------------------------------------------------- 
     108      !! * Modules used      
     109      USE oce, ONLY :    ztdua => ta,      & ! use ta as 3D workspace    
     110                         ztdva => sa         ! use sa as 3D workspace    
     111 
    107112      !! * Arguments 
    108113      INTEGER, INTENT( in )  ::   kt         ! ocean time-step index 
     
    155160            spgu(ji,jj) = zspgu 
    156161            spgv(ji,jj) = zspgv 
    157 #if defined key_trddyn || defined key_trd_vor 
    158             ! save the surface pressure gradient trends  
    159             utrd2(ji,jj,1) = zspgu 
    160             vtrd2(ji,jj,1) = zspgv 
    161 #endif 
    162162         END DO  
    163163      END DO  
     
    170170               ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) 
    171171               va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) 
    172 #if defined key_trddyn || defined key_trd_vor 
    173                ! save the surface pressure gradient trend for diagnostics 
    174                utrd(ji,jj,jk,8) = spgu(ji,jj) 
    175                vtrd(ji,jj,jk,8) = spgv(ji,jj)  
    176 #endif 
    177             END DO 
    178          END DO 
    179       END DO 
     172            END DO 
     173         END DO 
     174      END DO 
     175 
     176      ! Save the surface pressure gradient trend for diagnostics 
     177      IF( l_trddyn )   THEN 
     178         DO jk = 1, jpkm1 
     179            ztdua(:,:,jk) = spgu(:,:)  
     180            ztdva(:,:,jk) = spgv(:,:)  
     181         END DO 
     182      ENDIF 
    180183       
    181184      ! 1. Evaluate the masked next velocity 
     
    310313            spgv(ji,jj) = z2dt * ztdgv 
    311314#endif 
    312 #if defined key_trddyn || defined key_trd_vor 
    313             ! save the transport divergence gradient trends 
    314             utrd2(ji,jj,2) = utrd2(ji,jj,2) + ztdgu 
    315             vtrd2(ji,jj,2) = vtrd2(ji,jj,2) + ztdgv 
    316 #endif 
    317315         END DO 
    318316      END DO 
     
    328326               ua(ji,jj,jk) = (ua(ji,jj,jk) + spgu(ji,jj)) * umask(ji,jj,jk) 
    329327               va(ji,jj,jk) = (va(ji,jj,jk) + spgv(ji,jj)) * vmask(ji,jj,jk) 
    330 #if defined key_trddyn || defined key_trd_vor 
    331                ! save the surface pressure gradient trend for diagnostics 
    332                utrd(ji,jj,jk,8) = utrd(ji,jj,jk,8) + spgu(ji,jj)/z2dt 
    333                vtrd(ji,jj,jk,8) = vtrd(ji,jj,jk,8) + spgv(ji,jj)/z2dt 
    334 #endif 
    335             END DO 
    336          END DO 
    337       END DO 
     328            END DO 
     329         END DO 
     330      END DO 
     331 
     332      ! save the surface pressure gradient trends for diagnostic 
     333      ! momentum trends 
     334      IF( l_trddyn )   THEN 
     335         DO jk = 1, jpkm1 
     336            ztdua(:,:,jk) = ztdua(:,:,jk) + spgu(:,:)/z2dt  
     337            ztdva(:,:,jk) = ztdva(:,:,jk) + spgv(:,:)/z2dt  
     338         END DO 
     339 
     340         CALL trd_mod(ztdua, ztdva, jpdtdspg, 'DYN', kt) 
     341      ENDIF 
    338342 
    339343      IF(l_ctl) THEN         ! print sum trends (used for debugging) 
Note: See TracChangeset for help on using the changeset viewer.