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 202 for trunk/NEMO/TOP_SRC – NEMO

Changeset 202 for trunk/NEMO/TOP_SRC


Ignore:
Timestamp:
2004-12-22T16:55:48+01:00 (19 years ago)
Author:
opalod
Message:

CT : UPDATE142 : Check the consistency between passive tracers transport modules (in TRP directory) and those used for the active tracers

Location:
trunk/NEMO/TOP_SRC/TRP
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/TRP/trcadv_cen2.F90

    r186 r202  
    1111   !!---------------------------------------------------------------------- 
    1212   !! * Modules used 
    13    USE oce_trc             ! ocean dynamics and active tracers 
    14    USE trc 
    15    USE trcbbl          ! advective term in the BBL 
    16    USE lbclnk 
     13   USE oce_trc             ! ocean dynamics and active tracers variables 
     14   USE trc                 ! ocean passive tracers variables 
    1715 
    1816   IMPLICIT NONE 
     
    256254         !                                                ! =============== 
    257255 
    258          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    259             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     256         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     257            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    260258            WRITE(numout,*) ' trc/had - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)  
    261259            tra_ctl(jn) = ztra  
     
    269267 
    270268         ! Surface value 
    271 #if defined key_dynspg_fsc 
    272          ! free surface-constant volume 
    273          zwx(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn) 
    274 #else 
    275          ! rigid lid : flux set to zero 
    276          zwx(:,:, 1 ) = 0.e0   
    277 #endif 
     269         IF( lk_dynspg_fsc ) THEN       ! free surface-constant volume 
     270            zwx(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn) 
     271         ELSE                           ! rigid lid : flux set to zero 
     272            zwx(:,:, 1 ) = 0.e0   
     273         ENDIF 
    278274 
    279275         ! 1. Vertical advective fluxes 
     
    321317         END DO 
    322318 
    323          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    324             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     319         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     320            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    325321            WRITE(numout,*) ' trc/zad - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' centered2'  
    326322            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcadv_muscl.F90

    r186 r202  
    1010   !!---------------------------------------------------------------------- 
    1111   !! * Modules used 
    12    USE oce_trc         ! ocean dynamics and active tracers 
    13    USE trc 
    14    USE trcbbl          ! tracers: bottom boundary layer 
    15    USE lbclnk 
     12   USE oce_trc         ! ocean dynamics and active tracers variables 
     13   USE trc             ! ocean passive tracers variables 
     14   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    1615 
    1716   IMPLICIT NONE 
     
    9493 
    9594#if defined key_trcbbl_adv 
    96           
    9795      ! Advective bottom boundary layer 
    9896      ! ------------------------------- 
     
    132130         DO jk = 1, jpkm1 
    133131            DO jj = 2, jpj 
    134                DO ji = fs_2, fs_jpim1   ! vector opt. 
    135                   z0u = zt1(ji,jj,jk) * zt1(ji-1,jj,jk) 
    136                   IF( z0u > 0. ) THEN 
    137                      ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk)+zt1(ji-1,jj,jk) ) 
    138                   ELSE 
    139                      ztp1(ji,jj,jk) = 0.e0 
    140                   ENDIF 
    141  
    142                   z0v = zt2(ji,jj,jk) * zt2(ji,jj-1,jk) 
    143                   IF( z0v > 0. ) THEN 
    144                      ztp2(ji,jj,jk) = 0.5 * ( zt2(ji,jj,jk)+zt2(ji,jj-1,jk) ) 
    145                   ELSE 
    146                      ztp2(ji,jj,jk) = 0.e0 
    147                   ENDIF 
     132               DO ji = fs_2, jpi   ! vector opt. 
     133                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji-1,jj  ,jk) )   & 
     134                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji-1,jj  ,jk) ) ) 
     135                  ztp2(ji,jj,jk) =                    ( zt2(ji,jj,jk) + zt2(ji  ,jj-1,jk) )   & 
     136                     &           * ( 0.25 + SIGN( 0.25, zt2(ji,jj,jk) * zt2(ji  ,jj-1,jk) ) ) 
    148137               END DO 
    149138            END DO 
     
    246235         END DO 
    247236 
     237         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     238            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     239            WRITE(numout,*) ' trc/had  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl'  
     240            tra_ctl(jn) = ztra  
     241         ENDIF 
    248242 
    249243         ! II. Vertical advective fluxes 
     
    255249            zt1(:,:,jk) = tmask(:,:,jk) * ( trb(:,:,jk-1,jn) - trb(:,:,jk,jn) ) 
    256250         END DO 
    257          ! surface bottom boundary conditions 
     251         ! surface and bottom boundary conditions 
    258252         zt1 (:,:, 1 ) = 0.e0  
    259253         zt1 (:,:,jpk) = 0.e0 
     
    262256            DO jj = 1, jpj 
    263257               DO ji = 1, jpi 
    264                   z0w = zt1(ji,jj,jk) * zt1(ji,jj,jk+1)  
    265                   IF( z0w > 0. ) THEN 
    266                      ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) ) 
    267                   ELSE 
    268                      ztp1(ji,jj,jk) = 0.e0 
    269                   ENDIF 
     258                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) )   & 
     259                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji,jj,jk+1) ) ) 
    270260               END DO 
    271261            END DO 
     
    302292         END DO 
    303293         ! surface values 
    304 #if defined key_dynspg_fsc 
    305          ! free surface-constant volume 
    306          zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn) 
    307 #else 
    308          ! rigid lid : flux set to zero 
    309          zt1(:,:, 1 ) = 0.e0 
    310 #endif 
     294         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN        ! free surface-constant volume 
     295            zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn) 
     296         ELSE                                                   ! rigid lid : flux set to zero 
     297            zt1(:,:, 1 ) = 0.e0 
     298         ENDIF 
     299 
    311300         ! bottom values 
    312301         zt1(:,:,jpk) = 0.e0 
     
    330319         END DO 
    331320 
    332          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    333             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     321         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     322            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    334323            WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl'  
    335324            tra_ctl(jn) = ztra  
    336325         ENDIF 
    337    ENDDO 
     326 
     327      END DO 
    338328 
    339329END SUBROUTINE trc_adv_muscl 
  • trunk/NEMO/TOP_SRC/TRP/trcadv_muscl2.F90

    r186 r202  
    1010   !!---------------------------------------------------------------------- 
    1111   !! * Modules used 
    12    USE oce_trc         ! ocean dynamics and active tracers 
    13    USE trc             ! ocean passive tracers 
    14    USE trcbbl          ! tracers: bottom boudary layer 
    15    USE lbclnk 
     12   USE oce_trc         ! ocean dynamics and active tracers variables 
     13   USE trc             ! ocean passive tracers variables 
     14   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    1615 
    1716   IMPLICIT NONE 
     
    125124         DO jk = 1, jpkm1 
    126125            DO jj = 2, jpj 
    127                DO ji = fs_2, fs_jpim1   ! vector opt. 
    128                   z0u = zt1(ji,jj,jk) * zt1(ji-1,jj,jk) 
    129                   IF( z0u > 0. ) THEN 
    130                      ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk)+zt1(ji-1,jj,jk) ) 
    131                   ELSE 
    132                      ztp1(ji,jj,jk) = 0.e0 
    133                   ENDIF 
    134  
    135                   z0v = zt2(ji,jj,jk) * zt2(ji,jj-1,jk) 
    136                   IF( z0v > 0. ) THEN 
    137                      ztp2(ji,jj,jk) = 0.5 * ( zt2(ji,jj,jk)+zt2(ji,jj-1,jk) ) 
    138                   ELSE 
    139                      ztp2(ji,jj,jk) = 0.e0 
    140                   ENDIF 
     126               DO ji = fs_2, jpi   ! vector opt. 
     127                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji-1,jj  ,jk) )   & 
     128                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji-1,jj  ,jk) ) ) 
     129                  ztp2(ji,jj,jk) =                    ( zt2(ji,jj,jk) + zt2(ji  ,jj-1,jk) )   & 
     130                     &           * ( 0.25 + SIGN( 0.25, zt2(ji,jj,jk) * zt2(ji  ,jj-1,jk) ) ) 
    141131               END DO 
    142132            END DO 
     
    287277         END DO 
    288278 
    289  
    290  
     279         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     280            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     281            WRITE(numout,*) ' trc/had  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl'  
     282            tra_ctl(jn) = ztra  
     283         ENDIF 
    291284 
    292285         ! II. Vertical advective fluxes 
     
    306299            DO jj = 1, jpj 
    307300               DO ji = 1, jpi 
    308                   z0w = zt1(ji,jj,jk) * zt1(ji,jj,jk+1)  
    309                   IF( z0w > 0. ) THEN 
    310                      ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) ) 
    311                   ELSE 
    312                      ztp1(ji,jj,jk) = 0.e0 
    313                   ENDIF 
     301                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) )   & 
     302                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji,jj,jk+1) ) ) 
    314303               END DO 
    315304            END DO 
     
    360349 
    361350         ! surface values 
    362 #if defined key_dynspg_fsc 
    363          ! free surface-constant volume 
    364          zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn) 
    365 #else 
    366          ! rigid lid : flux set to zero 
    367          zt1(:,:, 1 ) = 0.e0 
    368 #endif 
     351         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN        ! free surface-constant volume 
     352            zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn) 
     353         ELSE                                                   ! rigid lid : flux set to zero 
     354            zt1(:,:, 1 ) = 0.e0 
     355         ENDIF 
    369356 
    370357         ! bottom values 
     
    389376         END DO 
    390377 
    391          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    392             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     378         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     379            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    393380            WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl2'  
    394381            tra_ctl(jn) = ztra  
    395382         ENDIF 
    396383 
    397       ENDDO 
     384      END DO 
    398385 
    399386   END SUBROUTINE trc_adv_muscl2 
  • trunk/NEMO/TOP_SRC/TRP/trcadv_smolar.F90

    r186 r202  
    1111   !!---------------------------------------------------------------------- 
    1212   !! * Modules used 
    13    USE oce_trc             ! ocean dynamics and active tracers 
    14    USE trc 
    15    USE trcbbl             !  Advective term of BBL 
    16    USE lbclnk 
     13   USE oce_trc             ! ocean dynamics and active tracers variables 
     14   USE trc                 ! ocean passive tracers variables 
     15   USE lbclnk              ! ocean lateral boundary conditions (or mpp link) 
    1716 
    1817   IMPLICIT NONE 
     
    177176         ! II. Vertical advection 
    178177         ! ---------------------- 
    179 !!! Chris 
     178 
    180179         ! Surface value 
    181 #if defined key_dynspg_fsc 
    182          ! free surface-constant volume 
    183          zkz(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn) * tmask(ji,jj,1) 
    184 #else 
    185          ! rigid lid : flux set to zero 
    186          zkz(:,:, 1 ) = 0.e0   
    187 #endif 
    188 !!! Chris 
     180         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN        ! free surface-constant volume 
     181            zkz(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn) * tmask(ji,jj,1) 
     182         ELSE                                                   ! rigid lid : flux set to zero 
     183            zkz(:,:, 1 ) = 0.e0   
     184         ENDIF 
    189185 
    190186        DO jk = 2,jpk 
     
    502498#endif 
    503499 
    504         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    505            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     500        IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     501           ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    506502           WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' smolar'  
    507503           tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcadv_tvd.F90

    r186 r202  
    1212   !!---------------------------------------------------------------------- 
    1313   !! * Modules used 
    14    USE oce_trc             ! ocean dynamics and active tracers 
    15    USE trc 
    16    USE trcbbl             !  Advective term of BBL 
    17    USE lbclnk 
     14   USE oce_trc             ! ocean dynamics and active tracers variables 
     15   USE trc                 ! ocean passive tracers variables 
     16   USE lbclnk              ! ocean lateral boundary conditions (or mpp link) 
    1817 
    1918   IMPLICIT NONE 
     
    9291 
    9392#if defined key_trcbbl_adv 
    94           
    9593      ! Advective Bottom boundary layer: add the velocity 
    9694      ! ------------------------------------------------- 
     
    131129         ! upstream tracer flux in the k direction 
    132130         ! Surface value 
    133 #if defined key_dynspg_fsc 
    134          ! free surface-constant volume 
    135          DO jj = 1, jpj 
    136             DO ji = 1, jpi 
    137                zew = e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,1) 
    138                ztw(ji,jj,1) = zew * trb(ji,jj,1,jn) 
    139             END DO 
    140          END DO 
    141 #else                                   
    142          ! rigid lid : flux set to zero 
    143          ztw(:,:,1) = 0.e0 
    144 #endif 
     131         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN   ! free surface-constant volume 
     132            DO jj = 1, jpj 
     133               DO ji = 1, jpi 
     134                  zew = e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,1) 
     135                  ztw(ji,jj,1) = zew * trb(ji,jj,1,jn) 
     136               END DO 
     137            END DO 
     138         ELSE                                              ! rigid lid : flux set to zero 
     139            ztw(:,:,1) = 0.e0 
     140         ENDIF 
    145141 
    146142         ! Interior value 
     
    235231         END DO 
    236232 
    237          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    238             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     233         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     234            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    239235            WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' tvd'  
    240236            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcbbc.F90

    r186 r202  
    1212   !!---------------------------------------------------------------------- 
    1313   !! * Modules used 
    14    USE oce_trc             ! ocean dynamics and active tracers 
    15    USE trc 
     14   USE oce_trc             ! ocean dynamics and active tracers variables 
     15   USE trc                 ! ocean passive tracers variables 
    1616  
    1717   IMPLICIT NONE 
     
    104104            END DO 
    105105#endif 
    106             IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    107                ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     106            IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     107               ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    108108               WRITE(numout,*) ' trc/bbc  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)  
    109109               tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcbbl.F90

    r186 r202  
    1616   !!---------------------------------------------------------------------- 
    1717   !! * Modules used 
    18    USE oce_trc             ! ocean dynamics and active tracers 
    19    USE trc             ! ocean active tracer trends 
     18   USE oce_trc             ! ocean dynamics and active tracers variables 
     19   USE trc                 ! ocean passive tracers variables 
    2020 
    2121   IMPLICIT NONE 
     
    339339#  endif 
    340340         END DO 
    341          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    342             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     341         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     342            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    343343            WRITE(numout,*) ' trc/bbl  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)  
    344344            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcbbl_adv.h90

    r186 r202  
    5151      !!----------------------------------------------------------------------      
    5252      !! * Modules used 
    53       USE lbclnk 
     53      USE lbclnk           ! ocean lateral boundary conditions (or mpp link) 
    5454 
    5555      !! * Arguments 
     
    382382#endif 
    383383          END DO 
    384           IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    385              ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     384          IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     385             ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    386386             WRITE(numout,*) ' trc/bbl  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)  
    387387             tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcdmp.F90

    r186 r202  
    1616   !! * Modules used 
    1717   USE oce_trc         ! ocean dynamics and tracers variables 
    18    USE trc             ! ocean active tracer trend variables 
    19    USE trctrp_lec      
     18   USE trc             ! ocean passive tracers variables 
     19   USE trctrp_lec      ! passive tracers transport 
    2020 
    2121   IMPLICIT NONE 
     
    154154         ENDIF 
    155155 
    156          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    157             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     156         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     157            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    158158            WRITE(numout,*) ' trc/dmp  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)  
    159159            tra_ctl(jn) = ztra  
     
    264264      ! damping along the forced closed boundary over 6 grid-points 
    265265      DO jn = 1, 6 
    266          IF( lzoom_e )   restotr( mi0(jn+1) , : , :,:) = zfact(jn)         ! east  closed 
    267          IF( lzoom_s )   restotr( : , mj0(jn+1) , :,:) = zfact(jn)         ! south closed  
    268          IF( lzoom_w )   restotr( mi0(jpiglo-jn) , : , : ,:) = zfact(jn)    ! west  closed  
    269          IF( lzoom_n )   restotr( : , mi0(jpjglo-jn) , : ,:) = zfact(jn)    ! north closed 
     266         IF( lzoom_w )   resto( mi0(jn+jpizoom):mi1(jn+jpizoom), : , : ) = zfact(jn) ! west  closed 
     267         IF( lzoom_s )   resto( : , mj0(jn+jpjzoom):mj1(jn+jpjzoom), : ) = zfact(jn) ! south closed  
     268         IF( lzoom_e )   resto( mi0(jpiglo+jpizoom-1-jn):mi1(jpiglo+jpizoom-1-jn) , : , : ) & 
     269                       &              = zfact(jn)                                 ! east  closed  
     270         IF( lzoom_n )   resto( : , mj0(jpjglo+jpjzoom-1-jn):mj1(jpjglo+jpjzoom-1-jn) , : ) & 
     271                       &              = zfact(jn)                                 ! north closed 
    270272      END DO 
    271273 
     
    343345 
    344346      !! * Local declarations 
    345       INTEGER ::  jk, jn      ! dummy loop indices 
     347      INTEGER ::  ji, jj, jk, je, jn     ! dummy loop indices 
    346348      INTEGER, PARAMETER ::   jpmois=1 
    347349      INTEGER ::   ipi, ipj, ipk       ! temporary integers 
     350      INTEGER ::   ii0, ii1, ij0, ij1  !    "          " 
    348351      INTEGER ::   & 
    349352         idmp,     &  ! logical unit for file restoring damping term 
    350353         icot         ! logical unit for file distance to the coast 
    351       INTEGER :: itime, istep(jpmois) 
    352       CHARACTER (len=32) ::  clname, clname3 
     354      INTEGER :: itime, istep(jpmois), ie 
     355      LOGICAL :: llbon 
     356      CHARACTER (len=32) ::  clname, clname2, clname3 
    353357      REAL(wp) ::   & 
    354          zdate0                      ! temporary scalars 
    355       REAL(wp), DIMENSION(jpk) ::   & 
    356          zdept 
    357       REAL(wp), DIMENSION(jpi,jpj) ::   & 
    358          zlamt, zphit 
    359  
    360       INTEGER ::   ji, jj, ie, je      ! dummy loop indices 
    361       INTEGER ::   ii0, ii1, ij0, ij1  !    "          " 
    362       LOGICAL :: llbon 
    363       CHARACTER (len=32) ::  clname2 
    364       REAL(wp) ::   & 
    365          zinfl, zlon,                 & ! temporary scalars 
     358         zdate0, zinfl, zlon,         & ! temporary scalars 
    366359         zlat, zlat0, zlat1, zlat2,   & !    "         " 
    367360         zsdmp, zbdmp                   !    "         " 
    368361      REAL(wp), DIMENSION(jpk) ::   & 
    369          zhfac 
     362         zdept, zhfac 
    370363      REAL(wp), DIMENSION(jpi,jpj) ::   & 
    371          zmrs 
     364         zmrs, zlamt, zphit 
    372365      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   & 
    373366         zdct 
    374  
    375367      !!---------------------------------------------------------------------- 
    376368 
     
    486478                     !   ... Decrease the value in the vicinity of the coast 
    487479                     restotr(ji,jj,jk,jn) = restotr(ji,jj,1,jn)*0.5   & 
    488                         * ( 1. - COS( rpi*zdct(ji,jj,jk)/zinfl) ) 
     480                        &                 * ( 1. - COS( rpi*zdct(ji,jj,jk)/zinfl) ) 
    489481 
    490482                     !   ... Vertical variation from zsdmp (sea surface) to zbdmp (bottom) 
    491                      restotr(ji,jj,jk,jn) = restotr(ji,jj,jk,jn)*   & 
    492                         ( zbdmp + (zsdmp-zbdmp)*EXP(-fsdept(ji,jj,jk)/hdmptr) ) 
     483                     restotr(ji,jj,jk,jn) = restotr(ji,jj,jk,jn)   & 
     484                        &                 * ( zbdmp + (zsdmp-zbdmp)*EXP(-fsdept(ji,jj,jk)/hdmptr) ) 
    493485                  END DO 
    494486               END DO 
     
    519511            ii0 =  81   ;   ii1 =  91   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0 
    520512            ij0 =  50   ;   ij1 =  55 
    521             ii0 =  70   ;   ii1 =  80   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0 
     513            ii0 =  75   ;   ii1 =  80   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0 
    522514            ij0 =  52   ;   ij1 =  53 
    523515            ii0 =  70   ;   ii1 =  74   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0 
     
    574566            ii0 = 568   ;   ii1 = 574  
    575567            ij0 = 324   ;   ij1 = 333   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0 
    576             ii0 = 575   ;   ii1 = 314 
     568            ii0 = 575   ;   ii1 = 658 
    577569            ij0 = 314   ;   ij1 = 366   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0 
    578570            ! Black Sea (remaining part 
     
    695687      REAL(wp) ::   zdate0 
    696688      REAL(wp), DIMENSION(jpi,jpj) ::   & 
    697          zxt, zyt, zzt            ! cartesian coordinates for T-points 
     689         zxt, zyt, zzt,                 &  ! cartesian coordinates for T-points 
     690         zmask                              
    698691      REAL(wp), DIMENSION(3*jpi*jpj) ::   & 
    699692         zxc, zyc, zzc, zdis      ! temporary workspace 
     
    728721         DO jj = 2, jpjm1 
    729722            DO ji = 2, jpim1 
    730                llcotu(ji,jj) = ( umask(ji,jj,jk) == 0. ) .AND. ( tmask(ji,jj  ,jk)+tmask(ji+1,jj  ,jk) == 1. )  
    731                llcotv(ji,jj) = ( vmask(ji,jj,jk) == 0. ) .AND. ( tmask(ji,jj  ,jk)+tmask(ji  ,jj+1,jk) == 1. )  
    732                llcotf(ji,jj) = ( fmask(ji,jj,jk) == 0. ) .AND. ( tmask(ji,jj+1,jk)+tmask(ji+1,jj+1,jk)   & 
    733                                                                + tmask(ji,jj  ,jk)+tmask(ji+1,jj  ,jk) <  4. ) 
     723               zmask(ji,jj) =  ( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 
     724                   &           + tmask(ji,jj  ,jk) + tmask(ji+1,jj  ,jk) ) 
     725               llcotu(ji,jj) = ( tmask(ji,jj,  jk) + tmask(ji+1,jj  ,jk) == 1. )  
     726               llcotv(ji,jj) = ( tmask(ji,jj  ,jk) + tmask(ji  ,jj+1,jk) == 1. )  
     727               llcotf(ji,jj) = ( zmask(ji,jj) > 0. ) .AND. ( zmask(ji,jj) < 4. ) 
    734728            END DO 
    735729         END DO 
  • trunk/NEMO/TOP_SRC/TRP/trcldf_bilap.F90

    r186 r202  
    1010   !!---------------------------------------------------------------------- 
    1111   !! * Modules used 
    12    USE oce_trc         ! ocean dynamics and active tracers 
    13    USE trc             ! ocean space and time domain  
     12   USE oce_trc         ! ocean dynamics and active tracers variables 
     13   USE trc             ! ocean passive tracers variables 
    1414   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    1515 
     
    8484      !! * Local declarations 
    8585      INTEGER ::   ji, jj, jk, jn             ! dummy loop indices 
    86  
     86#if defined key_partial_steps 
     87      INTEGER ::   iku, ikv                   ! temporary integers 
     88#endif 
    8789      REAL(wp) ::   ztra     ! temporary scalars 
    8890 
    8991      REAL(wp), DIMENSION(jpi,jpj) ::   &  
    90          zeeu, zeev, zbtr,             &  ! workspace 
    91          zlt, ztu, ztv 
     92         zeeu, zeev, zbtr, zlt                 ! workspace 
     93      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   &  
     94         ztu, ztv                              ! workspace 
    9295      !!---------------------------------------------------------------------- 
    9396 
     
    130133            DO jj = 1, jpjm1 
    131134               DO ji = 1, fs_jpim1   ! vector opt. 
    132                   ztu(ji,jj) = zeeu(ji,jj) * ( trb(ji+1,jj  ,jk,jn) - trb(ji,jj,jk,jn) ) 
    133                   ztv(ji,jj) = zeev(ji,jj) * ( trb(ji  ,jj+1,jk,jn) - trb(ji,jj,jk,jn) ) 
    134                END DO 
    135             END DO 
    136  
     135                  ztu(ji,jj,jk) = zeeu(ji,jj) * ( trb(ji+1,jj  ,jk,jn) - trb(ji,jj,jk,jn) ) 
     136                  ztv(ji,jj,jk) = zeev(ji,jj) * ( trb(ji  ,jj+1,jk,jn) - trb(ji,jj,jk,jn) ) 
     137               END DO 
     138            END DO 
     139#if defined key_partial_steps 
     140 
     141            DO jj = 1, jpj-1 
     142               DO ji = 1, jpi-1 
     143                  ! last level 
     144                  iku = MIN ( mbathy(ji,jj), mbathy(ji+1,jj  ) ) - 1 
     145                  ikv = MIN ( mbathy(ji,jj), mbathy(ji  ,jj+1) ) - 1 
     146                  IF( iku == jk ) THEN 
     147                     ztu(ji,jj,jk) = zeeu(ji,jj) * gtu(ji,jj) 
     148                  ENDIF 
     149                  IF( ikv == jk ) THEN 
     150                     ztv(ji,jj,jk) = zeev(ji,jj) * gtv(ji,jj) 
     151                  ENDIF 
     152               END DO 
     153            END DO 
     154#endif 
    137155 
    138156            ! Second derivative (divergence) 
    139157            DO jj = 2, jpjm1 
    140158               DO ji = fs_2, fs_jpim1   ! vector opt. 
    141                   zlt(ji,jj) = zbtr(ji,jj) * (  ztu(ji,jj) - ztu(ji-1,jj) + ztv(ji,jj) - ztv(ji,jj-1)  ) 
     159                  zlt(ji,jj) = zbtr(ji,jj) * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)  ) 
    142160               END DO 
    143161            END DO 
     
    159177            DO jj = 1, jpjm1 
    160178               DO ji = 1, fs_jpim1   ! vector opt. 
    161                   ztu(ji,jj) = zeeu(ji,jj) * ( zlt(ji+1,jj  ) - zlt(ji,jj) ) 
    162                   ztv(ji,jj) = zeev(ji,jj) * ( zlt(ji  ,jj+1) - zlt(ji,jj) ) 
     179                  ztu(ji,jj,jk) = zeeu(ji,jj) * ( zlt(ji+1,jj  ) - zlt(ji,jj) ) 
     180                  ztv(ji,jj,jk) = zeev(ji,jj) * ( zlt(ji  ,jj+1) - zlt(ji,jj) ) 
    163181               END DO 
    164182            END DO 
     
    168186               DO ji = fs_2, fs_jpim1   ! vector opt. 
    169187                  ! horizontal diffusive trends 
    170                   ztra = zbtr(ji,jj) * (  ztu(ji,jj) - ztu(ji-1,jj) + ztv(ji,jj) - ztv(ji,jj-1)  ) 
     188                  ztra = zbtr(ji,jj) * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)  ) 
    171189                  ! add it to the general tracer trends 
    172190                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
    173191#if defined key_trc_diatrd 
    174192                  ! save the horizontal diffusive trends 
    175                   trtrd(ji,jj,jk,jn,4) = (  ztu(ji,jj) - ztu(ji-1,jj) ) * zbtr(ji,jj) 
    176                   trtrd(ji,jj,jk,jn,5) = (  ztv(ji,jj) - ztv(ji-1,jj) ) * zbtr(ji,jj) 
     193                  trtrd(ji,jj,jk,jn,4) = (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) ) * zbtr(ji,jj) 
     194                  trtrd(ji,jj,jk,jn,5) = (  ztv(ji,jj,jk) - ztv(ji-1,jj,jk) ) * zbtr(ji,jj) 
    177195#endif 
    178196               END DO 
     
    185203         CALL lbc_lnk( trtrd(1,1,1,jn,5), 'T', 1. )   
    186204#endif 
    187          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    188             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     205         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     206            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    189207            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    190208            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcldf_bilapg.F90

    r186 r202  
    1414   !! * Modules used 
    1515   USE oce_trc             ! ocean dynamics and tracers variables 
    16    USE trc            ! ocean space and time domain variables 
    17    USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
     16   USE trc                 ! ocean passive tracers variables 
     17   USE lbclnk              ! ocean lateral boundary condition (or mpp link) 
    1818 
    1919   IMPLICIT NONE 
     
    6464 
    6565      !! * Local declarations 
    66       INTEGER ::   ji, jj, jk,jn                 ! dummy loop indices 
     66      INTEGER ::   ji, jj, jk,jn              ! dummy loop indices 
     67      REAL(wp) ::  ztra                       ! workspace    
    6768      REAL(wp), DIMENSION(jpi,jpj,jpk,jptra) ::   & 
    6869         wk1, wk2               ! work array used for rotated biharmonic 
     
    114115         END DO                                           !   End of slab 
    115116         !                                                ! =============== 
     117 
     118         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     119            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     120            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
     121            tra_ctl(jn) = ztra  
     122         ENDIF 
     123 
    116124      END DO 
    117125 
     
    185193 
    186194      REAL(wp), DIMENSION(jpi,jpj) ::   & 
    187          zftu, zftv ,                  &  ! workspace 
     195         zftu, zftv ,                   &  ! workspace 
    188196         zdkt, zdk1t 
    189197 
    190198      REAL(wp), DIMENSION(jpi,jpk) ::   & 
    191          zftw,                   &  ! workspace 
     199         zftw,                          &  ! workspace 
    192200         zdit, zdjt, zdj1t 
    193201 
     
    222230 
    223231                  zmku=1./MAX( tmask(ji+1,jj,jk  )+tmask(ji,jj,jk+1)   & 
    224                      +tmask(ji+1,jj,jk+1)+tmask(ji,jj,jk  ),1. ) 
     232                              +tmask(ji+1,jj,jk+1)+tmask(ji,jj,jk  ),1. ) 
    225233                  zmkv=1./MAX( tmask(ji,jj+1,jk  )+tmask(ji,jj,jk+1)   & 
    226                      +tmask(ji,jj+1,jk+1)+tmask(ji,jj,jk  ),1. ) 
     234                              +tmask(ji,jj+1,jk+1)+tmask(ji,jj,jk  ),1. ) 
    227235 
    228236                  zcof1= -e2u(ji,jj) * uslp(ji,jj,jk) * zmku 
     
    231239                  zftu(ji,jj)= umask(ji,jj,jk) *   & 
    232240                     (  zabe1 *( pt(ji+1,jj,jk,jn) - pt(ji,jj,jk,jn) )   & 
    233                      + zcof1 *( zdkt (ji+1,jj) + zdk1t(ji,jj)     & 
    234                      +zdk1t(ji+1,jj) + zdkt (ji,jj) )  ) 
     241                      + zcof1 *( zdkt (ji+1,jj) + zdk1t(ji,jj)           & 
     242                                +zdk1t(ji+1,jj) + zdkt (ji,jj) )  ) 
    235243 
    236244                  zftv(ji,jj)= vmask(ji,jj,jk) *   & 
    237245                     (  zabe2 *( pt(ji,jj+1,jk,jn) - pt(ji,jj,jk,jn) )   & 
    238                      + zcof2 *( zdkt (ji,jj+1) + zdk1t(ji,jj)     & 
    239                      +zdk1t(ji,jj+1) + zdkt (ji,jj) )  ) 
     246                      + zcof2 *( zdkt (ji,jj+1) + zdk1t(ji,jj)           & 
     247                                +zdk1t(ji,jj+1) + zdkt (ji,jj) )  ) 
    240248               END DO 
    241249            END DO 
     
    284292                  zcof0 = e1t(ji,jj) * e2t(ji,jj) / fse3w(ji,jj,jk)   & 
    285293                     * (  wslpi(ji,jj,jk) * wslpi(ji,jj,jk)        & 
    286                      + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  ) 
     294                        + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  ) 
    287295 
    288296                  zmku =1./MAX(  umask(ji  ,jj,jk-1)+umask(ji-1,jj,jk)   & 
    289                      +umask(ji-1,jj,jk-1)+umask(ji  ,jj,jk), 1. ) 
     297                                +umask(ji-1,jj,jk-1)+umask(ji  ,jj,jk), 1. ) 
    290298 
    291299                  zmkv =1./MAX(  vmask(ji,jj  ,jk-1)+vmask(ji,jj-1,jk)   & 
    292                      +vmask(ji,jj-1,jk-1)+vmask(ji,jj  ,jk), 1. ) 
     300                                +vmask(ji,jj-1,jk-1)+vmask(ji,jj  ,jk), 1. ) 
    293301 
    294302                  zcof3 = - e2t(ji,jj) * wslpi (ji,jj,jk) * zmku 
     
    297305                  zftw(ji,jk) = tmask(ji,jj,jk) *   & 
    298306                     (  zcof0 * ( pt  (ji,jj,jk-1,jn) - pt  (ji,jj,jk,jn) )   & 
    299                      + zcof3 * ( zdit (ji  ,jk-1) + zdit (ji-1,jk)     & 
    300                      +zdit (ji-1,jk-1) + zdit (ji  ,jk) )   & 
    301                      + zcof4 * ( zdjt (ji  ,jk-1) + zdj1t(ji  ,jk)     & 
    302                      +zdj1t(ji  ,jk-1) + zdjt (ji  ,jk) )  ) 
     307                      + zcof3 * ( zdit (ji  ,jk-1) + zdit (ji-1,jk)           & 
     308                                 +zdit (ji-1,jk-1) + zdit (ji  ,jk) )         & 
     309                      + zcof4 * ( zdjt (ji  ,jk-1) + zdj1t(ji  ,jk)           & 
     310                                 +zdj1t(ji  ,jk-1) + zdjt (ji  ,jk) )  ) 
    303311               END DO 
    304312            END DO 
  • trunk/NEMO/TOP_SRC/TRP/trcldf_iso.F90

    r186 r202  
    1414   !! * Modules used 
    1515   USE oce_trc      ! ocean dynamics and tracers variables 
    16    USE trc          ! ocean space and time domain variables 
    17    USE lbclnk 
     16   USE trc          ! ocean passive tracers variables 
    1817 
    1918   IMPLICIT NONE 
     
    200199         END DO                                        !   End of slab   
    201200         !                                             ! =============== 
    202          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    203             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     201         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     202            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    204203            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    205204            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcldf_iso_zps.F90

    r186 r202  
    1212   !!---------------------------------------------------------------------- 
    1313   !! * Modules used 
    14    USE oce_trc             ! ocean dynamics and active tracers 
    15    USE trc         ! ocean space and time domain 
    16    USE lbclnk 
     14   USE oce_trc             ! ocean dynamics and active tracers variables 
     15   USE trc                 ! ocean passive tracers variables 
    1716 
    1817   IMPLICIT NONE 
     
    108107         IF(lwp) WRITE(numout,*) 'trc_ldf_iso_zps : iso neutral laplacian diffusion in ' 
    109108         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~   z-coordinates with partial steps' 
    110 #if defined key_diaeiv 
     109#if defined key_trcldf_eiv && defined key_diaeiv 
    111110         u_trc_eiv(:,:,:) = 0.e0 
    112111         v_trc_eiv(:,:,:) = 0.e0 
     
    239238         END DO                                        !   End of slab   
    240239         !                                             ! =============== 
    241          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    242             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     240         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     241            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    243242            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    244243            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trcldf_lap.F90

    r186 r202  
    1010   !!---------------------------------------------------------------------- 
    1111   !! * Modules used 
    12    USE oce_trc             ! ocean dynamics and active tracers 
    13    USE trc                 ! ocean space and time domain 
    14    USE lbclnk 
     12   USE oce_trc             ! ocean dynamics and active tracers variables 
     13   USE trc                 ! ocean passive tracers variables 
    1514 
    1615   IMPLICIT NONE 
     
    7776 
    7877      REAL(wp) ::   & 
    79          ztrax, ztray  
    80                        ! workspace 
     78         ztra, ztrax, ztray              ! workspace 
    8179      !!---------------------------------------------------------------------- 
    8280       
     
    139137         !                                                  ! ============= 
    140138 
     139         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     140            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     141            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
     142            tra_ctl(jn) = ztra  
     143         ENDIF 
     144 
    141145      END DO 
    142146 
  • trunk/NEMO/TOP_SRC/TRP/trcnxt.F90

    r186 r202  
    1010   !! * Modules used 
    1111   USE oce_trc         ! ocean dynamics and tracers variables 
    12    USE trc 
     12   USE trc             ! ocean passive tracers variables 
    1313   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    14    USE trctrp_lec 
     14   USE trctrp_lec      ! pasive tracers transport 
    1515 
    1616   IMPLICIT NONE 
     
    6464      !! * Local declarations 
    6565      INTEGER ::   ji, jj, jk,jn   ! dummy loop indices 
    66       REAL(wp) ::   zfact          ! temporary scalar 
     66      REAL(wp) ::   zfact, ztra    ! temporary scalar 
    6767      !!---------------------------------------------------------------------- 
    6868 
     
    9393 
    9494#if defined key_obc 
    95  
    96 ????????Passive tracers and key_obc not yet implemented 
    97 ????????Forced compiled error 
    98  
     95        IF(lwp) WRITE(numout,cform_err) 
     96        IF(lwp) WRITE(numout,*) '          Passive tracers and Open Boundary condition can not be used together ' 
     97        IF(lwp) WRITE(numout,*) '          Check in trc_nxt routine' 
     98        nstop = nstop + 1 
    9999#endif 
    100100 
     
    137137         END DO                                           !   End of slab 
    138138         !                                                ! =============== 
    139          IF( l_ctl .AND. lwp ) THEN         ! print mean field (used for debugging) 
    140             WRITE(numout,*) ' trc/nxt  - ',ctrcnm(jn),' : ',SUM( trn(:,:,:,jn) * tmask(:,:,:) )  
     139         IF(l_ctl) THEN         ! print mean field (used for debugging) 
     140            ztra = SUM( trn(2:nictl,2:njctl,1:jpkm1,jn)*tmask(2:nictl,2:njctl,1:jpkm1) )  
     141            WRITE(numout,*) ' trc/nxt  - ',ctrcnm(jn),' : ', ztra 
    141142         ENDIF 
    142143 
  • trunk/NEMO/TOP_SRC/TRP/trcrad.F90

    r186 r202  
    1010   !! * Modules used 
    1111   USE oce_trc             ! ocean dynamics and tracers variables 
    12    USE trc 
     12   USE trc                 ! ocean passive tracers variables 
    1313 
    1414   IMPLICIT NONE 
     
    4444      !! * Local declarations 
    4545      INTEGER ::  ji, jj, jk, jn             ! dummy loop indices 
     46      REAL(wp) :: ztra 
    4647#if defined key_trc_hamocc3 || defined key_trc_pisces 
    4748      REAL(wp) :: zvolk, trcorb, trmasb ,trcorn, trmasn   
     
    158159#endif 
    159160      DO jn = 1, jptra 
    160          IF( l_ctl .AND. lwp ) THEN         ! print mean field (used for debugging) 
    161             WRITE(numout,*) ' trc/rad  - ',ctrcnm(jn),' : ',SUM( trn(:,:,:,jn) * tmask(:,:,:) )  
     161         IF(l_ctl) THEN         ! print mean field (used for debugging) 
     162            ztra = SUM( trn(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )  
     163            WRITE(numout,*) ' trc/rad  - ',ctrcnm(jn),' : ', ztra 
    162164         ENDIF 
    163165      ENDDO 
     
    168170#else 
    169171   !!---------------------------------------------------------------------- 
    170    !!   Dummy module :                      Rigid-lid case 
     172   !!   Dummy module :                      NO passive tracer 
    171173   !!---------------------------------------------------------------------- 
    172174CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trcsbc.F90

    r186 r202  
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used 
    11    USE oce_trc             ! ocean dynamics and active tracers 
    12    USE trc             ! ocean  passive tracers 
     11   USE oce_trc             ! ocean dynamics and active tracers variables 
     12   USE trc                 ! ocean  passive tracers variables 
    1313 
    1414   IMPLICIT NONE 
     
    8787         END DO 
    8888          
    89          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    90             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
    91             WRITE(numout,*) ' trc/sbc  - ',ctrcnm(jn),' : ', ztra 
     89         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     90            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
     91            WRITE(numout,*) ' trc/sbc  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    9292            tra_ctl(jn) = ztra  
    9393         ENDIF 
     
    9898#else 
    9999   !!---------------------------------------------------------------------- 
    100    !!   Dummy module :                      Rigid-lid case 
     100   !!   Dummy module :                      NO passive tracer 
    101101   !!---------------------------------------------------------------------- 
    102102CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trcstp.F90

    r186 r202  
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used 
    11    !! * Modules used 
    12    USE oce_trc     ! ocean dynamics variables 
    13    USE trc         ! passive tracers variables  
    14    USE trctrp      ! passive tracers transport 
     11   USE oce_trc          ! ocean dynamics and active tracers variables 
     12   USE trc              ! ocean passive tracers variables  
     13   USE trctrp           ! passive tracers transport 
     14 
    1515   IMPLICIT NONE 
    1616   PRIVATE 
     
    5959#else 
    6060   !!---------------------------------------------------------------------- 
    61    !!   Default key                                     No passive tracers 
     61   !!   Default key                                     NO passive tracers 
    6262   !!---------------------------------------------------------------------- 
    6363CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trctrp.F90

    r186 r202  
    22   !!====================================================================== 
    33   !!                       ***  MODULE trctrp  *** 
    4    !! Ocean Physics    : manage of passive tracer transport 
     4   !! Ocean Physics    : manage the passive tracer transport 
    55   !!====================================================================== 
    66#if defined key_passivetrc 
     
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used 
    11    USE oce_trc     ! ocean dynamics variables 
    12    USE trc         ! passive tracers variables  
    13    USE lbclnk 
     11   USE oce_trc         ! ocean dynamics and active tracers variables 
     12   USE trc             ! ocean passive tracers variables  
    1413 
    15    USE trctrp_lec 
     14   USE trctrp_lec      ! passive tracers transport 
    1615 
    17    USE trcbbl          ! bottom boundary layer        (trc_bbl routine) 
    18    USE trcdmp          ! internal damping             (trc_dmp routine) 
     16   USE trcbbl          ! bottom boundary layer               (trc_bbl routine) 
     17   USE trcdmp          ! internal damping                    (trc_dmp routine) 
    1918 
    20    USE trcldf_bilapg   ! lateral mixing        (trc_ldf_bilapg routine) 
    21    USE trcldf_bilap    ! lateral mixing         (trc_ldf_bilap routine) 
    22    USE trcldf_iso      ! lateral mixing           (trc_ldf_iso routine) 
    23    USE trcldf_iso_zps  ! lateral mixing       (trc_ldf_iso_zps routine) 
    24    USE trcldf_lap      ! lateral mixing           (trc_ldf_lap routine) 
     19   USE trcldf_bilapg   ! lateral mixing               (trc_ldf_bilapg routine) 
     20   USE trcldf_bilap    ! lateral mixing                (trc_ldf_bilap routine) 
     21   USE trcldf_iso      ! lateral mixing                  (trc_ldf_iso routine) 
     22   USE trcldf_iso_zps  ! lateral mixing              (trc_ldf_iso_zps routine) 
     23   USE trcldf_lap      ! lateral mixing                  (trc_ldf_lap routine) 
    2524  
    26    USE trcnxt          ! time-stepping                (trc_nxt routine) 
    27    USE trcrad          ! positivity                   (trc_rad routine) 
     25   USE trcnxt          ! time-stepping                       (trc_nxt routine) 
     26   USE trcrad          ! positivity                          (trc_rad routine) 
    2827 
    29    USE trcadv_cen2     ! 2nd order centered advection (trc_adv_cen2 routine) 
    30    USE trcadv_muscl    ! MUSCL advection              (trc_adv_muscl routine) 
     28   USE trcadv_cen2     ! 2nd order centered advection   (trc_adv_cen2 routine) 
     29   USE trcadv_muscl    ! MUSCL advection               (trc_adv_muscl routine) 
    3130   USE trcadv_muscl2   ! MUSCL2 advection             (trc_adv_muscl2 routine) 
    32    USE trcadv_tvd      ! TVD advection                (trc_adv_tvd routine) 
     31   USE trcadv_tvd      ! TVD advection                   (trc_adv_tvd routine) 
    3332   USE trcadv_smolar   ! SMOLAR advection             (trc_adv_smolar routine) 
    3433 
    35    USE trczdf_exp      ! vertical diffusion       (trc_zdf_exp routine) 
    36    USE trczdf_imp      ! vertical diffusion       (trc_zdf_exp routine) 
    37    USE trczdf_iso      ! vertical diffusion       (trc_zdf_exp routine) 
    38    USE trczdf_iso_vopt ! vertical diffusion       (trc_zdf_exp routine) 
    39    USE trcsbc          ! surface boundary condition   (trc_sbc routine) 
     34   USE trczdf_exp      ! vertical diffusion              (trc_zdf_exp routine) 
     35   USE trczdf_imp      ! vertical diffusion              (trc_zdf_exp routine) 
     36   USE trczdf_iso      ! vertical diffusion              (trc_zdf_exp routine) 
     37   USE trczdf_iso_vopt ! vertical diffusion              (trc_zdf_exp routine) 
     38   USE trcsbc          ! surface boundary condition          (trc_sbc routine) 
    4039 
    41    USE zpshde_trc      ! partial step: hor. derivative (zps_hde_trc routine) 
     40   USE zpshde_trc      ! partial step: hor. derivative   (zps_hde_trc routine) 
    4241 
    4342 
     
    7170      !! * Arguments 
    7271      INTEGER, INTENT( in ) ::  kt  ! ocean time-step index 
    73  
    74  
    7572      !! --------------------------------------------------------------------- 
    76  
    7773 
    7874      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    8278 
    8379  
    84                                 CALL trc_sbc( kt )             ! surface boundary condition 
     80                               CALL trc_sbc( kt )            ! surface boundary condition 
     81# if defined key_trcbbc 
     82      IF(lwp) WRITE(numout,cform_err) 
     83      IF(lwp) WRITE(numout,*) ' Bottom heat flux not yet implemented' 
     84      IF(lwp) WRITE(numout,*) ' With passive tracers. ' 
     85      IF(lwp) WRITE(numout,*) ' Check trc_trp routine' 
     86      nstop = nstop + 1 
     87# endif  
     88      !                                                      ! bottom boundary condition 
     89      IF( lk_trcbbl_dif    )   CALL trc_bbl_dif( kt )                ! diffusive bottom boundary layer scheme 
     90      IF( lk_trcbbl_adv    )   CALL trc_bbl_adv( kt )                ! advective (and/or diffusive) bottom boundary layer scheme 
     91 
     92      IF( lk_trcdmp        )   CALL trc_dmp( kt )            ! internal damping trends 
    8593  
    86    
    87 #if defined key_trabbc 
    88 ????????Passive tracers and key_obc not yet implemented 
    89 ????????Forced compiled error 
    90 #endif 
    91  
    92       IF( lk_trcbbl_dif    )   CALL trc_bbl_dif( kt )           ! diffusive bottom boundary layer scheme 
    93       IF( lk_trcbbl_adv    )   CALL trc_bbl_adv( kt )           ! advective (and/or diffusive) bottom boundary layer scheme 
    94  
    95  
    96       IF( lk_trcdmp        )   CALL trc_dmp( kt )             ! internal damping trends 
    97   
    98       !                                                             ! horizontal & vertical advection 
    99       IF( ln_trcadv_cen2   )  CALL trc_adv_cen2  ( kt )             ! 2nd order centered scheme 
    100       IF( ln_trcadv_muscl  )  CALL trc_adv_muscl ( kt )             ! MUSCL scheme 
    101       IF( ln_trcadv_muscl2 )  CALL trc_adv_muscl2( kt )             ! MUSCL2 scheme 
    102       IF( ln_trcadv_tvd    )  CALL trc_adv_tvd   ( kt )             ! TVD scheme 
    103       IF( ln_trcadv_smolar )  CALL trc_adv_smolar( kt ) 
    104     
     94      !                                                      ! horizontal & vertical advection 
     95      IF( ln_trcadv_cen2   )   CALL trc_adv_cen2  ( kt )             ! 2nd order centered scheme 
     96      IF( ln_trcadv_muscl  )   CALL trc_adv_muscl ( kt )             ! MUSCL scheme 
     97      IF( ln_trcadv_muscl2 )   CALL trc_adv_muscl2( kt )             ! MUSCL2 scheme 
     98      IF( ln_trcadv_tvd    )   CALL trc_adv_tvd   ( kt )             ! TVD scheme 
     99      IF( ln_trcadv_smolar )   CALL trc_adv_smolar( kt )             ! SMOLARKIEWICZ scheme 
    105100  
    106101      IF( n_cla == 1   )   THEN  
    107          WRITE(numout,*) ' Cross Land Advection not yet implemented' 
    108          WRITE(numout,*) ' With Passive tracers. STOPPPPPP !!!!' 
    109          STOP 
     102         IF(lwp) WRITE(numout,cform_err) 
     103         IF(lwp) WRITE(numout,*) '          Cross Land Advection not yet implemented' 
     104         IF(lwp) WRITE(numout,*) '          With Passive tracers. n_cla = ', n_cla 
     105         IF(lwp) WRITE(numout,*) '          Check trc_trp routine' 
     106         nstop = nstop + 1 
    110107      ENDIF 
    111108 
    112       !    
    113                                                   ! lateral mixing  
    114       IF( l_trcldf_bilapg  )   CALL trc_ldf_bilapg ( kt )           ! s-coord. horizontal bilaplacian 
    115       IF( l_trcldf_bilap   )   CALL trc_ldf_bilap  ( kt )           ! iso-level bilaplacian  
    116       IF( l_trcldf_iso     )   CALL trc_ldf_iso    ( kt )           ! iso-neutral laplacian  
    117       IF( l_trcldf_iso_zps )   CALL trc_ldf_iso_zps( kt )           ! partial step iso-neutral laplacian 
    118       IF( l_trcldf_lap     )   CALL trc_ldf_lap    ( kt )           ! iso-level laplacian 
     109      !                                                      ! lateral mixing  
     110      IF( l_trcldf_bilapg  )   CALL trc_ldf_bilapg ( kt )            ! s-coord. horizontal bilaplacian 
     111      IF( l_trcldf_bilap   )   CALL trc_ldf_bilap  ( kt )            ! iso-level bilaplacian  
     112      IF( l_trcldf_iso     )   CALL trc_ldf_iso    ( kt )            ! iso-neutral laplacian  
     113      IF( l_trcldf_iso_zps )   CALL trc_ldf_iso_zps( kt )            ! partial step iso-neutral laplacian 
     114      IF( l_trcldf_lap     )   CALL trc_ldf_lap    ( kt )            ! iso-level laplacian 
    119115  
    120       !                                                     ! vertical diffusion 
    121       IF( l_trczdf_exp     )   CALL trc_zdf_exp( kt )               ! explicit time stepping (time splitting scheme) 
    122       IF( l_trczdf_imp     )   CALL trc_zdf_imp( kt )               ! implicit time stepping (euler backward) 
    123       IF( l_trczdf_iso     )   CALL trc_zdf_iso( kt )               ! isopycnal 
    124       IF( l_trczdf_iso_vo  )   CALL trc_zdf_iso_vopt( kt )          ! vector opt. isopycnal 
     116      !                                                      ! vertical diffusion 
     117      IF( l_trczdf_exp     )   CALL trc_zdf_exp( kt )                ! explicit time stepping (time splitting scheme) 
     118      IF( l_trczdf_imp     )   CALL trc_zdf_imp( kt )                ! implicit time stepping (euler backward) 
     119      IF( l_trczdf_iso     )   CALL trc_zdf_iso( kt )                ! isopycnal 
     120      IF( l_trczdf_iso_vo  )   CALL trc_zdf_iso_vopt( kt )           ! vector opt. isopycnal 
    125121 
    126122                               CALL trc_nxt( kt )            ! tracer fields at next time step 
     
    137133#else 
    138134   !!---------------------------------------------------------------------- 
    139    !!   Dummy module :                      Rigid-lid case 
     135   !!   Dummy module :                      NO passive tracers 
    140136   !!---------------------------------------------------------------------- 
    141137CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trctrp_ctl.F90

    r186 r202  
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used 
    11    USE oce_trc             ! ocean dynamics and active tracers 
    12    USE trc                 ! ocean space and time domain 
    13    USE trctrp_lec   
     11   USE oce_trc             ! ocean dynamics and active tracers variables 
     12   USE trc                 ! ocean passive tracers variables 
     13   USE trctrp_lec          ! passive tracers transport 
    1414 
    1515   IMPLICIT NONE 
     
    2323      LOGICAL, PARAMETER ::   lk_trcldf_eiv   = .TRUE.   !: eddy induced velocity flag 
    2424#else    
    25       LOGICAL, PARAMETER ::   lk_trcldf_eiv   = .FALSE.   !: eddy induced velocity flag 
     25      LOGICAL, PARAMETER ::   lk_trcldf_eiv   = .FALSE.  !: eddy induced velocity flag 
    2626#endif 
    2727 
     
    4040      !! 
    4141      !! History : 
    42       !! 
    4342      !!   9.0  !  04-0.  (C. Ethe)  
    4443      !!---------------------------------------------------------------------- 
     
    385384#else 
    386385   !!---------------------------------------------------------------------- 
    387    !!   Dummy module :                      Rigid-lid case 
     386   !!   Dummy module :                      NO passive tracer 
    388387   !!---------------------------------------------------------------------- 
    389388CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trctrp_lec.F90

    r186 r202  
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used 
    11    USE oce_trc             ! ocean dynamics and active tracers 
    12    USE trc                 ! ocean space and time domain 
     11   USE oce_trc             ! ocean dynamics and active tracers variables 
     12   USE trc                 ! ocean passive tracers variables 
    1313 
    1414   IMPLICIT NONE 
     
    2222   !! Advection 
    2323   LOGICAL, PUBLIC ::   & 
    24       ln_trcadv_cen2   = .FALSE. ,   &  ! 2nd order centered scheme flag 
    25       ln_trcadv_tvd    = .FALSE. ,   &  ! TVD scheme flag 
    26       ln_trcadv_muscl  = .FALSE. ,   &  ! MUSCL scheme flag 
    27       ln_trcadv_muscl2 = .FALSE. ,   &  ! MUSCL2 scheme flag 
    28       ln_trcadv_smolar = .TRUE.         ! Smolarkiewicz scheme flag 
     24      ln_trcadv_cen2   = .FALSE. ,  & !!: 2nd order centered scheme flag 
     25      ln_trcadv_tvd    = .FALSE. ,  &  !: TVD scheme flag 
     26      ln_trcadv_muscl  = .FALSE. ,  &  !: MUSCL scheme flag 
     27      ln_trcadv_muscl2 = .FALSE. ,  &  !: MUSCL2 scheme flag 
     28      ln_trcadv_smolar = .TRUE.        !: Smolarkiewicz scheme flag 
    2929 
    3030   !! Lateral diffusion 
     
    3737      ln_trcldf_iso   = .TRUE.         !: iso-neutral direction 
    3838 
    39    LOGICAL , PUBLIC ::              &  !: flag of the lateral diff. scheme used 
     39   LOGICAL , PUBLIC ::              & !!: flag of the lateral diff. scheme used 
    4040      l_trcldf_lap         ,        &  !: iso-level laplacian operator 
    4141      l_trcldf_bilap       ,        &  !: iso-level bilaplacian operator 
     
    4747 
    4848   !! Vertical diffusion 
    49    LOGICAL , PUBLIC ::           & !!! nam_trczdf: vertical diffusion 
    50       ln_trczdf_exp = .FALSE.   ! explicit vertical diffusion scheme flag 
    51  
    52    INTEGER, PUBLIC ::    & !!: namzdf:  vertical diffusion 
    53       n_trczdf_exp = 3          !: number of sub-time step (explicit time stepping) 
    54  
    55    LOGICAL, PUBLIC ::    &   !: 
    56       l_trczdf_exp     = .FALSE. ,   &  !: ??? 
    57       l_trczdf_imp     = .FALSE.         !: 
     49   LOGICAL , PUBLIC ::              & !!: nam_trczdf: vertical diffusion 
     50      ln_trczdf_exp = .FALSE.          !: explicit vertical diffusion scheme flag 
     51 
     52   INTEGER, PUBLIC ::               & !!: namzdf:  vertical diffusion 
     53      n_trczdf_exp = 3                 !: number of sub-time step (explicit time stepping) 
     54 
     55   LOGICAL, PUBLIC ::               &  !: 
     56      l_trczdf_exp     = .FALSE. ,  &  !: explicit vertical diffusion 
     57      l_trczdf_imp     = .FALSE.       !: implicit vertical diffusion 
    5858 
    5959#if defined key_trcdmp 
    6060   !! Newtonian damping 
    61    INTEGER  , PUBLIC ::             & !!! * newtonian damping namelist (nam_trcdmp) * 
    62       ndmptr   =   -1 ,      &  ! = 0/-1/'latitude' for damping over tracers 
    63       ndmpftr  =    2 ,      &  ! = 1 create a damping.coeff NetCDF file  
    64       nmldmptr =    0           ! = 0/1/2 flag for damping in the mixed layer 
    65  
    66    REAL(wp) , PUBLIC ::             & !!!  * newtonian damping namelist * 
    67       sdmptr   =   50.,      &  ! surface time scale for internal damping (days) 
    68       bdmptr   =  360.,      &  ! bottom time scale for internal damping (days) 
    69       hdmptr   =  800.          ! depth of transition between sdmp and bdmp (meters) 
     61   INTEGER  , PUBLIC ::             & !!: * newtonian damping namelist (nam_trcdmp) * 
     62      ndmptr   =   -1 ,             &  !: = 0/-1/'latitude' for damping over tracers 
     63      ndmpftr  =    2 ,             &  !: = 1 create a damping.coeff NetCDF file  
     64      nmldmptr =    0                  !: = 0/1/2 flag for damping in the mixed layer 
     65 
     66   REAL(wp) , PUBLIC ::             & !!:  * newtonian damping namelist * 
     67      sdmptr   =   50.,             &  !: surface time scale for internal damping (days) 
     68      bdmptr   =  360.,             &  !: bottom time scale for internal damping (days) 
     69      hdmptr   =  800.                 !: depth of transition between sdmp and bdmp (meters) 
    7070#endif 
    7171   !!---------------------------------------------------------------------- 
     
    8282      !! 
    8383      !! History : 
    84       !! 
    8584      !!   9.0  !  04-03  (C. Ethe)  
    8685      !!---------------------------------------------------------------------- 
     
    193192#else 
    194193   !!---------------------------------------------------------------------- 
    195    !!   Dummy module :                      Rigid-lid case 
     194   !!   Dummy module :                      NO passive tracer 
    196195   !!---------------------------------------------------------------------- 
    197196CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_exp.F90

    r186 r202  
    1111   !!---------------------------------------------------------------------- 
    1212   !! * Modules used 
    13    USE oce_trc     ! ocean dynamics and active tracers  
    14    USE trc         ! ocean space and time domain  
    15    USE trctrp_lec 
     13   USE oce_trc          ! ocean dynamics and active tracers variables 
     14   USE trc              ! ocean passive tracers variables 
     15   USE trctrp_lec       ! passive tracers transport 
    1616 
    1717   IMPLICIT NONE 
     
    163163#else 
    164164   !!---------------------------------------------------------------------- 
    165    !!   Dummy module :                      Rigid-lid case 
     165   !!   Dummy module :                      NO passive tracer 
    166166   !!---------------------------------------------------------------------- 
    167167CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_imp.F90

    r186 r202  
    1010   !!---------------------------------------------------------------------- 
    1111   !! * Modules used 
    12    USE oce_trc             ! ocean dynamics and active tracers 
    13    USE trc         ! ocean space and time domain 
    14    USE trctrp_lec 
     12   USE oce_trc             ! ocean dynamics and active tracers variables 
     13   USE trc                 ! ocean passive tracers variables 
     14   USE trctrp_lec          ! passive tracers transport 
    1515 
    1616   IMPLICIT NONE 
     
    122122               END DO 
    123123            END DO 
    124          ENDDO 
     124         END DO 
    125125 
    126126         ! Surface boudary conditions 
     
    181181         END DO 
    182182 
    183          IF( l_ctl .AND. lwp ) THEN  
     183         IF(l_ctl) THEN  
    184184            DO jk = 1, jpkm1 
    185185               DO jj = 2, jpjm1 
     
    191191         ENDIF 
    192192       
    193          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    194             ztra = SUM( ztrd(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     193         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     194            ztra = SUM( ztrd(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    195195            WRITE(numout,*) ' trc/zdf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    196196            tra_ctl(jn) = ztra  
     
    203203#else 
    204204   !!---------------------------------------------------------------------- 
    205    !!   Dummy module :                      Rigid-lid case 
     205   !!   Dummy module :                      NO passive tracer 
    206206   !!---------------------------------------------------------------------- 
    207207CONTAINS 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_iso.F90

    r186 r202  
    1313   !!---------------------------------------------------------------------- 
    1414   !! * Modules used 
    15    USE oce_trc     ! ocean dynamics and tracers variables 
    16    USE trc         ! ocean space and time domain variables  
    17    USE lbclnk      ! ocean lateral boundary conditions (or mpp link) 
    18    USE trctrp_lec 
     15   USE oce_trc          ! ocean dynamics and tracers variables 
     16   USE trc              ! ocean passive tracers variables  
     17   USE lbclnk           ! ocean lateral boundary conditions (or mpp link) 
     18   USE trctrp_lec       ! passive tracers transport 
    1919 
    2020   IMPLICIT NONE 
     
    342342         !                                                ! =============== 
    343343 
    344          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    345             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     344         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     345            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    346346            WRITE(numout,*) ' trc/zdf 1  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    347347            tra_ctl(jn) = ztra  
     
    433433 
    434434 
    435          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    436             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     435         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     436            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    437437            WRITE(numout,*) ' trc/zdf 2  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    438438            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/trczdf_iso_vopt.F90

    r186 r202  
    1717   !! * Modules used 
    1818   USE oce_trc         ! ocean dynamics and tracers variables 
    19    USE trc             ! ocean space and time domain variables  
     19   USE trc             ! ocean passive tracers variables  
    2020   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    21    USE trctrp_lec 
     21   USE trctrp_lec      ! passive tracers transport 
    2222 
    2323   IMPLICIT NONE 
     
    5151      !! * Arguments 
    5252      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    53       !! * Local variables 
    5453      !!--------------------------------------------------------------------- 
    5554      !!  OPA 8.5, LODYC-IPSL (2002) 
     
    315314#  endif 
    316315#endif 
    317          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    318             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     316         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     317            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    319318            WRITE(numout,*) ' trc/zdf 1 - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    320319            tra_ctl(jn) = ztra  
     
    549548         END DO 
    550549 
    551          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging) 
    552             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) ) 
     550         IF(l_ctl) THEN         ! print mean trends (used for debugging) 
     551            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
    553552            WRITE(numout,*) ' trc/zdf 2 - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
    554553            tra_ctl(jn) = ztra  
  • trunk/NEMO/TOP_SRC/TRP/zpshde_trc.F90

    r186 r202  
    1313   !! * Modules used 
    1414   USE oce_trc         ! ocean dynamics and tracers variables 
    15    USE trc             ! physical constants 
     15   USE trc             ! ocean passive tracers variables 
    1616   USE lbclnk          ! lateral boundary conditions (or mpp link) 
    1717 
Note: See TracChangeset for help on using the changeset viewer.