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/TRA/trazdf_imp.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/TRA/trazdf_imp.F90

    r20 r216  
    1313   USE dom_oce         ! ocean space and time domain 
    1414   USE zdf_oce         ! ocean vertical physics 
    15    USE ldftra_oce      ! ??? 
     15   USE ldftra_oce      ! ocean active tracers: lateral physics 
    1616   USE zdfddm          ! ocean vertical physics: double diffusion 
    17    USE trdtra_oce      ! tracers trends diagnostics  
     17   USE trdmod          ! ocean active tracers trends  
     18   USE trdmod_oce      ! ocean variables trends 
    1819   USE in_out_manager  ! I/O manager 
    1920 
     
    6768      !!        !  00-08  (G. Madec)  double diffusive mixing 
    6869      !!   8.5  !  02-08  (G. Madec)  F90: Free form and module 
     70      !!   9.0  !  04-08  (C. Talandier) New trends organization 
    6971      !!--------------------------------------------------------------------- 
     72      !! * Modules used      
     73      USE oce, ONLY :    ztdta => ua,       & ! use ua as 3D workspace    
     74                         ztdsa => va          ! use va as 3D workspace    
     75 
    7076      !! * Arguments 
    7177      INTEGER, INTENT( in ) ::   kt           ! ocean time-step index 
     
    7480      INTEGER ::   ji, jj, jk                 ! dummy loop indices 
    7581      INTEGER ::   ikst, ikenm2, ikstp1 
     82      REAL(wp)  ::   zta, zsa                 ! temporary scalars 
    7683      REAL(wp), DIMENSION(jpi,jpk) ::   & 
    7784         zwd, zws, zwi,          &  ! ??? 
    7885         zwx, zwy, zwz, zwt         ! ??? 
    79 #if defined key_trdtra   ||   defined key_trdmld 
    80       REAL(wp) ::   zta, zsa        ! temporary scalars 
    81 #endif 
    8286      !!--------------------------------------------------------------------- 
    8387 
     
    9397      ENDIF 
    9498 
     99      ! Save ta and sa trends 
     100      IF( l_trdtra )   THEN 
     101         ztdta(:,:,:) = ta(:,:,:)  
     102         ztdsa(:,:,:) = sa(:,:,:)  
     103      ENDIF 
     104 
    95105      !                                                ! =============== 
    96106      DO jj = 2, jpjm1                                 !  Vertical slab 
     
    131141#   include "zdf.matrixsolver.h90" 
    132142 
    133 #if defined key_trdtra   ||   defined key_trdmld 
    134          ! Compute and save the vertical diffusive temperature trends 
    135          IF( l_traldf_iso ) THEN 
    136             DO jk = 1, jpkm1 
    137                DO ji = 2, jpim1 
    138                   zta = ( zwx(ji,jk) - tb(ji,jj,jk) ) / r2dt(jk) 
    139                   ttrd(ji,jj,jk,4) = zta - ta(ji,jj,jk) + ttrd(ji,jj,jk,4) 
    140                END DO 
    141             END DO 
    142          ELSE 
    143             DO jk = 1, jpkm1 
    144                DO ji = 2, jpim1 
    145                   zta = ( zwx(ji,jk) - tb(ji,jj,jk) ) / r2dt(jk) 
    146                   ttrd(ji,jj,jk,4) = zta - ta(ji,jj,jk) 
    147                END DO 
    148             END DO 
    149          ENDIF 
    150  
    151 #endif 
    152  
    153143         ! Save the masked temperature after in ta 
    154144         ! (c a u t i o n:  temperature not its trend, Leap-frog scheme done 
     
    197187#   include "zdf.matrixsolver.h90" 
    198188 
    199 #if defined key_trdtra   ||   defined key_trdmld 
    200          ! Compute and save the vertical diffusive salinity trends 
    201          IF( l_traldf_iso ) THEN 
    202             DO jk = 1, jpkm1 
    203                DO ji = 2, jpim1 
    204                   zsa = ( zwx(ji,jk) - sb(ji,jj,jk) ) / r2dt(jk) 
    205                   strd(ji,jj,jk,4) = zsa - sa(ji,jj,jk) + strd(ji,jj,jk,4) 
    206                END DO 
    207             END DO 
    208          ELSE 
    209             DO jk = 1, jpkm1 
    210                DO ji = 2, jpim1 
    211                   zsa = ( zwx(ji,jk) - sb(ji,jj,jk) ) / r2dt(jk) 
    212                   strd(ji,jj,jk,4) = zsa - sa(ji,jj,jk) 
    213                END DO 
    214             END DO 
    215          ENDIF 
    216 #endif 
    217189 
    218190         ! Save the masked salinity after in sa 
     
    229201      !                                                ! =============== 
    230202 
     203      ! save the trends for diagnostic 
     204      ! Compute and save the vertical diffusive temperature & salinity trends 
     205      IF( l_trdtra )   THEN 
     206         ! compute the vertical diffusive trends in substracting the previous  
     207         ! trends ztdta()/ztdsa() to the new one computed (dT/dt or dS/dt)  
     208         ! with the new temperature/salinity ta/sa 
     209         DO jk = 1, jpkm1 
     210            ztdta(:,:,jk) = ( ( ta(:,:,jk) - tb(:,:,jk) ) / r2dt(jk) )   & ! new trend 
     211                &           - ztdta(:,:,jk)                                ! old trend 
     212            ztdsa(:,:,jk) = ( ( sa(:,:,jk) - sb(:,:,jk) ) / r2dt(jk) )   & ! new trend 
     213                &           - ztdsa(:,:,jk)                                ! old trend 
     214         END DO 
     215 
     216         CALL trd_mod(ztdta, ztdsa, jpttdzdf, 'TRA', kt) 
     217      ENDIF 
     218 
     219      IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     220         zta = SUM( ta(2:nictl,2:njctl,1:jpkm1) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     221         zsa = SUM( sa(2:nictl,2:njctl,1:jpkm1) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     222         WRITE(numout,*) ' zdf  - Ta: ', zta-t_ctl, ' Sa: ', zsa-s_ctl 
     223         t_ctl = zta   ;   s_ctl = zsa 
     224      ENDIF 
     225 
    231226   END SUBROUTINE tra_zdf_imp 
    232227 
Note: See TracChangeset for help on using the changeset viewer.