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

    r187 r216  
    1212   USE oce             ! ocean dynamics and active tracers 
    1313   USE dom_oce         ! ocean space and time domain 
    14    USE trdtra_oce      ! ocean active tracer trends 
     14   USE trdmod          ! ocean active tracers trends  
     15   USE trdmod_oce      ! ocean variables trends 
    1516   USE in_out_manager  ! I/O manager 
    1617 
     
    8485      !!        !  96-01  (G. Madec)  s-coordinates 
    8586      !!   8.5  !  02-06  (G. Madec)  F90: Free form and module 
    86       !!---------------------------------------------------------------------- 
     87      !!   9.0  !  04-08  (C. Talandier) New trends organization 
     88      !!---------------------------------------------------------------------- 
     89      !! * Modules used      
     90      USE oce, ONLY :    ztdta => ua,   & ! use ua as 3D workspace    
     91                         ztdsa => va      ! use va as 3D workspace    
     92 
    8793      !! * Arguments 
    88       INTEGER, INTENT( in ) ::   kt    ! ocean time-step 
     94      INTEGER, INTENT( in ) ::   kt       ! ocean time-step 
    8995 
    9096      !! * Local declarations 
    91       INTEGER ::    ji, jj, jk         ! dummy loop indexes 
    92       REAL(wp) ::   zc0, zta           ! temporary scalars 
    93       REAL(wp) ::   zc1 , zc2 ,     &  ! temporary scalars 
    94                     zdp1, zdp2         ! 
     97      INTEGER ::    ji, jj, jk            ! dummy loop indexes 
     98      REAL(wp) ::   zc0, zta              ! temporary scalars 
     99      REAL(wp) ::   zc1 , zc2 ,        &  ! temporary scalars 
     100                    zdp1, zdp2            ! 
    95101      !!---------------------------------------------------------------------- 
    96102 
     
    101107      ENDIF 
    102108 
     109      ! Save ta and sa trends 
     110      IF( l_trdtra )   THEN 
     111         ztdta(:,:,:) = ta(:,:,:)  
     112         ztdsa(:,:,:) = 0.e0 
     113      ENDIF 
     114 
    103115      IF( lk_qsr_sms .AND. ln_qsr_sms ) THEN    !  Biological fluxes  ! 
    104          !                                     ! =================== ! 
     116         !                                      ! =================== ! 
    105117         ! 
    106118         !                                                ! =============== 
     
    116128                  ta(ji,jj,jk) = ta(ji,jj,jk) + zta       ! add qsr trend to the temperature trend 
    117129                   
    118 #      if defined key_trdtra || defined key_trdmld 
    119                   ttrd(ji,jj,jk,7) = zta                  ! save the qsr trend 
    120 #      endif 
    121130               END DO 
    122131            END DO 
     
    124133         END DO                                           !   End of slab 
    125134         !                                                ! =============== 
     135         ! save the trends for diagnostic 
     136         ! qsr tracers trends 
     137         IF( l_trdtra )   THEN 
     138            ztdta(:,:,:) = ta(:,:,:) - ztdta(:,:,:) 
     139            CALL trd_mod(ztdta, ztdsa, jpttdqsr, 'TRA', kt) 
     140         ENDIF 
     141 
    126142      ELSE 
    127       !                                                ! =================== ! 
    128          IF( lk_sco ) THEN                                !     s-coordinate    ! 
    129          !                                             ! =================== ! 
     143         !                                                ! =================== ! 
     144         IF( lk_sco ) THEN                                !    s-coordinate     ! 
     145         !                                                ! =================== ! 
    130146         ! 
    131147         !                                                   ! =============== 
    132             DO jk = 1, jpkm1                                    ! Horizontal slab 
     148            DO jk = 1, jpkm1                                 ! Horizontal slab 
    133149            !                                                ! =============== 
    134150               DO jj = 2, jpjm1 
     
    144160                     ta(ji,jj,jk) = ta(ji,jj,jk) + zta       ! add qsr trend to the temperature trend 
    145161                      
    146 #      if defined key_trdtra || defined key_trdmld 
    147                      ttrd(ji,jj,jk,7) = zta                  ! save the qsr trend 
    148 #      endif 
    149162                  END DO 
    150163               END DO 
     
    152165            END DO                                              !   End of slab 
    153166            !                                                   ! =============== 
     167            ! save the trends for diagnostic 
     168            ! qsr tracers trends 
     169            IF( l_trdtra )   THEN 
     170               ztdta(:,:,:) = ta(:,:,:) - ztdta(:,:,:) 
     171               CALL trd_mod(ztdta, ztdsa, jpttdqsr, 'TRA', kt) 
     172            ENDIF 
     173            ! 
    154174         ENDIF 
    155175         !                                                ! =================== ! 
     
    168188                     ta(ji,jj,jk) = ta(ji,jj,jk) + zta       ! add qsr trend to the temperature trend 
    169189                      
    170 #      if defined key_trdtra || defined key_trdmld 
    171                      ttrd(ji,jj,jk,7) = zta                  ! save the qsr trend 
    172 #      endif 
    173190                  END DO 
    174191               END DO 
     
    176193            END DO                                           !   End of slab 
    177194            !                                                ! =============== 
     195            ! save the trends for diagnostic 
     196            ! qsr tracers trends 
     197            IF( l_trdtra )   THEN 
     198               ztdta(:,:,:) = ta(:,:,:) - ztdta(:,:,:) 
     199               CALL trd_mod(ztdta, ztdsa, jpttdqsr, 'TRA', kt) 
     200            ENDIF 
     201            ! 
    178202         ENDIF 
    179203         !                                                ! =================== ! 
     
    192216                     ta(ji,jj,jk) = ta(ji,jj,jk) + zta       ! add qsr trend to the temperature trend 
    193217                      
    194 #      if defined key_trdtra || defined key_trdmld 
    195                      ttrd(ji,jj,jk,7) = zta                  ! save the qsr forcing trend 
    196 #      endif 
    197218                  END DO 
    198219               END DO 
     
    200221            END DO                                           !   End of slab 
    201222            !                                                ! =============== 
     223            ! save the trends for diagnostic 
     224            ! qsr tracers trends 
     225            IF( l_trdtra )   THEN 
     226               ztdta(:,:,:) = ta(:,:,:) - ztdta(:,:,:) 
     227               CALL trd_mod(ztdta, ztdsa, jpttdqsr, 'TRA', kt) 
     228            ENDIF 
     229            ! 
    202230         ENDIF 
    203231         ! 
     
    205233 
    206234 
    207       IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    208 !         zta = SUM( ta(2:jpim1,2:jpjm1,1:jpkm1) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
    209 !         zta = SUM( ta * tmask )  
    210           zta = SUM( ta(2:nictl,2:njctl,1:jpkm1) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     235      IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     236         zta = SUM( ta(2:nictl,2:njctl,1:jpkm1) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    211237         WRITE(numout,*) ' qsr  - Ta: ', zta-t_ctl 
    212238         t_ctl = zta  
Note: See TracChangeset for help on using the changeset viewer.