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 2892 – NEMO

Changeset 2892


Ignore:
Timestamp:
2011-10-06T15:59:49+02:00 (13 years ago)
Author:
kpedwards
Message:

Updates for substepping: include nittrc000 in call to advection routines and added physics variables for averaging.

Location:
branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO
Files:
1 added
2 deleted
28 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90

    r2715 r2892  
    9393      ! 
    9494      IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif )   & 
    95          &              CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRA' )          ! add the eiv transport (if necessary) 
     95         &              CALL tra_adv_eiv( kt, nit000, zun, zvn, zwn, 'TRA' )    ! add the eiv transport (if necessary) 
    9696      ! 
    9797      CALL iom_put( "uocetr_eff", zun )                                         ! output effective transport       
     
    100100 
    101101      SELECT CASE ( nadv )                            !==  compute advection trend and add it to general trend  ==! 
    102       CASE ( 1 )   ;    CALL tra_adv_cen2  ( kt, 'TRA',         zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  2nd order centered 
    103       CASE ( 2 )   ;    CALL tra_adv_tvd   ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  TVD  
    104       CASE ( 3 )   ;    CALL tra_adv_muscl ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb,      tsa, jpts )   !  MUSCL  
    105       CASE ( 4 )   ;    CALL tra_adv_muscl2( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  MUSCL2  
    106       CASE ( 5 )   ;    CALL tra_adv_ubs   ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  UBS  
    107       CASE ( 6 )   ;    CALL tra_adv_qck   ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  QUICKEST  
     102      CASE ( 1 )   ;    CALL tra_adv_cen2  ( kt,nit000, 'TRA',         zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  2nd order centered 
     103      CASE ( 2 )   ;    CALL tra_adv_tvd   ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  TVD  
     104      CASE ( 3 )   ;    CALL tra_adv_muscl ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb,      tsa, jpts )   !  MUSCL  
     105      CASE ( 4 )   ;    CALL tra_adv_muscl2( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  MUSCL2  
     106      CASE ( 5 )   ;    CALL tra_adv_ubs   ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  UBS  
     107      CASE ( 6 )   ;    CALL tra_adv_qck   ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  QUICKEST  
    108108      ! 
    109109      CASE (-1 )                                      !==  esopa: test all possibility with control print  ==! 
    110          CALL tra_adv_cen2  ( kt, 'TRA',         zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     110         CALL tra_adv_cen2  ( kt,nit000, 'TRA',         zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    111111         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv0 - Ta: ', mask1=tmask,               & 
    112112            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    113          CALL tra_adv_tvd   ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     113         CALL tra_adv_tvd   ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    114114         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv1 - Ta: ', mask1=tmask,               & 
    115115            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    116          CALL tra_adv_muscl ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb,      tsa, jpts )           
     116         CALL tra_adv_muscl ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb,      tsa, jpts )           
    117117         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv3 - Ta: ', mask1=tmask,               & 
    118118            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    119          CALL tra_adv_muscl2( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     119         CALL tra_adv_muscl2( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    120120         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv4 - Ta: ', mask1=tmask,               & 
    121121            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    122          CALL tra_adv_ubs   ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     122         CALL tra_adv_ubs   ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    123123         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv5 - Ta: ', mask1=tmask,               & 
    124124            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    125          CALL tra_adv_qck   ( kt, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     125         CALL tra_adv_qck   ( kt,nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    126126         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv6 - Ta: ', mask1=tmask,               & 
    127127            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90

    r2830 r2892  
    3232   USE trc_oce         ! share passive tracers/Ocean variables 
    3333   USE lib_mpp         ! MPP library 
    34 #if defined key_top 
    35    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    36 #endif 
    3734 
    3835   IMPLICIT NONE 
     
    5653CONTAINS 
    5754 
    58    SUBROUTINE tra_adv_cen2( kt, cdtype, pun, pvn, pwn,        & 
     55   SUBROUTINE tra_adv_cen2( kt,nit000, cdtype, pun, pvn, pwn,     & 
    5956      &                                 ptb, ptn, pta, kjpt   )  
    6057      !!---------------------------------------------------------------------- 
     
    119116      ! 
    120117      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     118      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    121119      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    122120      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    138136      ENDIF 
    139137 
    140 #if defined key_top 
    141       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    142 #else 
    143138      IF( kt == nit000 )  THEN 
    144 #endif 
    145139         IF(lwp) WRITE(numout,*) 
    146140         IF(lwp) WRITE(numout,*) 'tra_adv_cen2 : 2nd order centered advection scheme on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90

    r2715 r2892  
    4545CONTAINS 
    4646 
    47    SUBROUTINE tra_adv_eiv( kt, pun, pvn, pwn, cdtype ) 
     47   SUBROUTINE tra_adv_eiv( kt,nit000, pun, pvn, pwn, cdtype ) 
    4848      !!---------------------------------------------------------------------- 
    4949      !!                  ***  ROUTINE tra_adv_eiv  *** 
     
    6969#endif 
    7070      INTEGER                         , INTENT(in   ) ::   kt       ! ocean time-step index 
     71      INTEGER                         , INTENT(in   ) ::   nit000   ! first time step index 
    7172      CHARACTER(len=3)                , INTENT(in   ) ::   cdtype   ! =TRA or TRC (tracer indicator) 
    7273      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun      ! in : 3 ocean velocity components  
     
    203204   !!---------------------------------------------------------------------- 
    204205CONTAINS 
    205    SUBROUTINE tra_adv_eiv( kt, pun, pvn, pwn, cdtype )              ! Empty routine 
     206   SUBROUTINE tra_adv_eiv( kt,nit000, pun, pvn, pwn, cdtype )              ! Empty routine 
    206207      INTEGER  ::   kt     
     208      INTEGER  ::   nit000     
    207209      CHARACTER(len=3) ::   cdtype 
    208210      REAL, DIMENSION(:,:,:) ::   pun, pvn, pwn 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90

    r2830 r2892  
    2525   USE diaptr          ! poleward transport diagnostics 
    2626   USE trc_oce         ! share passive tracers/Ocean variables 
    27 #if defined key_top 
    28    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    29 #endif 
    3027 
    3128 
     
    4744CONTAINS 
    4845 
    49    SUBROUTINE tra_adv_muscl( kt, cdtype, p2dt, pun, pvn, pwn, & 
     46   SUBROUTINE tra_adv_muscl( kt,nit000,cdtype, p2dt, pun, pvn, pwn, & 
    5047      &                                        ptb, pta, kjpt ) 
    5148      !!---------------------------------------------------------------------- 
     
    6966      ! 
    7067      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     68      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    7169      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    7270      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    8684      ENDIF 
    8785 
    88 #if defined key_top 
    89       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    90 #else 
    9186      IF( kt == nit000 )  THEN 
    92 #endif 
    9387         IF(lwp) WRITE(numout,*) 
    9488         IF(lwp) WRITE(numout,*) 'tra_adv : MUSCL advection scheme on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90

    r2830 r2892  
    2323   USE diaptr          ! poleward transport diagnostics 
    2424   USE trc_oce         ! share passive tracers/Ocean variables 
    25 #if defined key_top 
    26    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    27 #endif 
    2825 
    2926 
     
    4542CONTAINS 
    4643 
    47    SUBROUTINE tra_adv_muscl2( kt, cdtype, p2dt, pun, pvn, pwn,      & 
     44   SUBROUTINE tra_adv_muscl2( kt,nit000, cdtype, p2dt, pun, pvn, pwn,      & 
    4845      &                                         ptb, ptn, pta, kjpt ) 
    4946      !!---------------------------------------------------------------------- 
     
    6764      !! 
    6865      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     66      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    6967      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    7068      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    8482      ENDIF 
    8583 
    86 #if defined key_top 
    87       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    88 #else 
    8984      IF( kt == nit000 )  THEN 
    90 #endif 
    9185         IF(lwp) WRITE(numout,*) 
    9286         IF(lwp) WRITE(numout,*) 'tra_adv_muscl2 : MUSCL2 advection scheme on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r2830 r2892  
    2626   USE diaptr          ! poleward transport diagnostics 
    2727   USE trc_oce         ! share passive tracers/Ocean variables 
    28 #if defined key_top 
    29    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    30 #endif 
    3128 
    3229   IMPLICIT NONE 
     
    4845CONTAINS 
    4946 
    50    SUBROUTINE tra_adv_qck ( kt, cdtype, p2dt, pun, pvn, pwn,      & 
     47   SUBROUTINE tra_adv_qck ( kt, nit000, cdtype, p2dt, pun, pvn, pwn,      & 
    5148      &                                       ptb, ptn, pta, kjpt ) 
    5249      !!---------------------------------------------------------------------- 
     
    8582      !!---------------------------------------------------------------------- 
    8683      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     84      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    8785      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    8886      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    9391      !!---------------------------------------------------------------------- 
    9492 
    95 #if defined key_top 
    96       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    97 #else 
    9893      IF( kt == nit000 )  THEN 
    99 #endif 
    10094         IF(lwp) WRITE(numout,*) 
    10195         IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90

    r2830 r2892  
    3232   USE diaptr          ! poleward transport diagnostics 
    3333   USE trc_oce         ! share passive tracers/Ocean variables 
    34 #if defined key_top 
    35    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    36 #endif 
    3734 
    3835 
     
    5451CONTAINS 
    5552 
    56    SUBROUTINE tra_adv_tvd ( kt, cdtype, p2dt, pun, pvn, pwn,      & 
     53   SUBROUTINE tra_adv_tvd ( kt,nit000, cdtype, p2dt, pun, pvn, pwn,      & 
    5754      &                                       ptb, ptn, pta, kjpt ) 
    5855      !!---------------------------------------------------------------------- 
     
    7471      ! 
    7572      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     73      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    7674      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    7775      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    9290      ENDIF 
    9391 
    94 #if defined key_top 
    95       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    96 #else 
    9792      IF( kt == nit000 )  THEN 
    98 #endif 
    9993         IF(lwp) WRITE(numout,*) 
    10094         IF(lwp) WRITE(numout,*) 'tra_adv_tvd : TVD advection scheme on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r2830 r2892  
    2222   USE dynspg_oce      ! choice/control of key cpp for surface pressure gradient 
    2323   USE trc_oce         ! share passive tracers/Ocean variables 
    24 #if defined key_top 
    25    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    26 #endif 
    2724 
    2825   IMPLICIT NONE 
     
    4340CONTAINS 
    4441 
    45    SUBROUTINE tra_adv_ubs ( kt, cdtype, p2dt, pun, pvn, pwn,      & 
     42   SUBROUTINE tra_adv_ubs ( kt, nit000, cdtype, p2dt, pun, pvn, pwn,      & 
    4643      &                                       ptb, ptn, pta, kjpt ) 
    4744      !!---------------------------------------------------------------------- 
     
    8380      ! 
    8481      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     82      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    8583      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    8684      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    10098      ENDIF 
    10199 
    102 #if defined key_top 
    103       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    104 #else 
    105100      IF( kt == nit000 )  THEN 
    106 #endif 
    107101         IF(lwp) WRITE(numout,*) 
    108102         IF(lwp) WRITE(numout,*) 'tra_adv_ubs :  horizontal UBS advection scheme on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90

    r2830 r2892  
    3434   USE lbclnk         ! ocean lateral boundary conditions 
    3535   USE prtctl         ! Print control 
    36 #if defined key_top 
    37    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    38 #endif 
    3936 
    4037   IMPLICIT NONE 
     
    314311 
    315312 
    316    SUBROUTINE bbl( kt, cdtype ) 
     313   SUBROUTINE bbl( kt, nit000, cdtype ) 
    317314      !!---------------------------------------------------------------------- 
    318315      !!                  ***  ROUTINE bbl  *** 
     
    346343      ! 
    347344      INTEGER         , INTENT(in   ) ::   kt       ! ocean time-step index 
     345      INTEGER         , INTENT(in   ) ::   nit000          ! first time step index 
    348346      CHARACTER(len=3), INTENT(in   ) ::   cdtype   ! =TRA or TRC (tracer indicator) 
    349347      !! 
     
    392390      ENDIF 
    393391      
    394 #if defined key_top 
    395       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    396 #else 
    397392      IF( kt == nit000 )  THEN 
    398 #endif 
    399393         IF(lwp)  WRITE(numout,*) 
    400394         IF(lwp)  WRITE(numout,*) 'trabbl:bbl : Compute bbl velocities and diffusive coefficients in ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90

    r2715 r2892  
    6868 
    6969      SELECT CASE ( nldf )                       ! compute lateral mixing trend and add it to the general trend 
    70       CASE ( 0 )   ;   CALL tra_ldf_lap     ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  ! iso-level laplacian 
     70      CASE ( 0 )   ;   CALL tra_ldf_lap     ( kt,nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  ! iso-level laplacian 
    7171      CASE ( 1 )                                                                              ! rotated laplacian 
    7272         IF( ln_traldf_grif ) THEN                                                           
    73                        CALL tra_ldf_iso_grif( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )      ! Griffies operator 
     73                       CALL tra_ldf_iso_grif( kt, nit000,'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )      ! Griffies operator 
    7474         ELSE                                                                                 
    75                        CALL tra_ldf_iso     ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )      ! Madec operator 
    76          ENDIF 
    77       CASE ( 2 )   ;   CALL tra_ldf_bilap   ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  ! iso-level bilaplacian 
    78       CASE ( 3 )   ;   CALL tra_ldf_bilapg  ( kt, 'TRA',             tsb, tsa, jpts        )  ! s-coord. geopot. bilap. 
     75                       CALL tra_ldf_iso     ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )      ! Madec operator 
     76         ENDIF 
     77      CASE ( 2 )   ;   CALL tra_ldf_bilap   ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  ! iso-level bilaplacian 
     78      CASE ( 3 )   ;   CALL tra_ldf_bilapg  ( kt, nit000, 'TRA',             tsb, tsa, jpts        )  ! s-coord. geopot. bilap. 
    7979         ! 
    8080      CASE ( -1 )                                ! esopa: test all possibility with control print 
    81          CALL tra_ldf_lap   ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  
     81         CALL tra_ldf_lap   ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  
    8282         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf0 - Ta: ', mask1=tmask,               & 
    8383         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    8484         IF( ln_traldf_grif ) THEN 
    85             CALL tra_ldf_iso_grif( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) 
     85            CALL tra_ldf_iso_grif( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) 
    8686         ELSE 
    87             CALL tra_ldf_iso     ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )   
     87            CALL tra_ldf_iso     ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 )   
    8888         ENDIF 
    8989         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf1 - Ta: ', mask1=tmask,               & 
    9090         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    91          CALL tra_ldf_bilap ( kt, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  
     91         CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts        )  
    9292         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf2 - Ta: ', mask1=tmask,               & 
    9393         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    94          CALL tra_ldf_bilapg( kt, 'TRA',             tsb, tsa, jpts        )  
     94         CALL tra_ldf_bilapg( kt, nit000, 'TRA',             tsb, tsa, jpts        )  
    9595         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf3 - Ta: ', mask1=tmask,               & 
    9696         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90

    r2830 r2892  
    2929   USE trc_oce         ! share passive tracers/Ocean variables 
    3030   USE lib_mpp         ! MPP library 
    31 #if defined key_top 
    32    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    33 #endif 
    3431 
    3532   IMPLICIT NONE 
     
    5047CONTAINS 
    5148  
    52    SUBROUTINE tra_ldf_bilap( kt, cdtype, pgu, pgv,      & 
     49   SUBROUTINE tra_ldf_bilap( kt, nit000, cdtype, pgu, pgv,      & 
    5350      &                                  ptb, pta, kjpt )   
    5451      !!---------------------------------------------------------------------- 
     
    8279      !! 
    8380      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     81      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    8482      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype     ! =TRA or TRC (tracer indicator) 
    8583      INTEGER                              , INTENT(in   ) ::   kjpt       ! number of tracers 
     
    9694      ENDIF 
    9795 
    98 #if defined key_top 
    99       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    100 #else 
    10196      IF( kt == nit000 )  THEN 
    102 #endif 
    10397         IF(lwp) WRITE(numout,*) 
    10498         IF(lwp) WRITE(numout,*) 'tra_ldf_bilap : iso-level biharmonic operator on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90

    r2830 r2892  
    2525   USE trc_oce         ! share passive tracers/Ocean variables 
    2626   USE lib_mpp         ! MPP library 
    27 #if defined key_top 
    28    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    29 #endif 
    3027 
    3128   IMPLICIT NONE 
     
    4542CONTAINS 
    4643 
    47    SUBROUTINE tra_ldf_bilapg( kt, cdtype, ptb, pta, kjpt ) 
     44   SUBROUTINE tra_ldf_bilapg( kt, nit000, cdtype, ptb, pta, kjpt ) 
    4845      !!---------------------------------------------------------------------- 
    4946      !!                 ***  ROUTINE tra_ldf_bilapg  *** 
     
    7370      ! 
    7471      INTEGER         , INTENT(in   )                      ::   kt       ! ocean time-step index 
     72      INTEGER         , INTENT(in   )                      ::   nit000   ! first time step index 
    7573      CHARACTER(len=3), INTENT(in   )                      ::   cdtype   ! =TRA or TRC (tracer indicator) 
    7674      INTEGER         , INTENT(in   )                      ::   kjpt     ! number of tracers 
     
    8583      ENDIF 
    8684 
    87 #if defined key_top 
    88       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    89 #else 
    9085      IF( kt == nit000 )  THEN 
    91 #endif 
    9286         IF(lwp) WRITE(numout,*) 
    9387         IF(lwp) WRITE(numout,*) 'tra_ldf_bilapg : horizontal biharmonic operator in s-coordinate on ', cdtype 
     
    352346   !!---------------------------------------------------------------------- 
    353347CONTAINS 
    354    SUBROUTINE tra_ldf_bilapg( kt, cdtype, ptb, pta, kjpt )      ! Empty routine 
     348   SUBROUTINE tra_ldf_bilapg( kt,nit000, cdtype, ptb, pta, kjpt )      ! Empty routine 
     349      INTEGER :: kt, nit000 
    355350      CHARACTER(len=3) ::   cdtype 
    356351      REAL, DIMENSION(:,:,:,:) ::   ptb, pta 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r2830 r2892  
    3232   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3333#endif 
    34 #if defined key_top 
    35    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    36 #endif 
    3734 
    3835   IMPLICIT NONE 
     
    5249CONTAINS 
    5350 
    54    SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv,              & 
     51   SUBROUTINE tra_ldf_iso( kt,nit000, cdtype, pgu, pgv,              & 
    5552      &                                ptb, pta, kjpt, pahtb0 ) 
    5653      !!---------------------------------------------------------------------- 
     
    9996      ! 
    10097      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     98      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    10199      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype     ! =TRA or TRC (tracer indicator) 
    102100      INTEGER                              , INTENT(in   ) ::   kjpt       ! number of tracers 
     
    124122         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    125123      ENDIF 
    126 #if defined key_top 
    127       IF( kt == nittrc000 .AND. cdtype == 'TRC' )  THEN 
    128          IF(lwp) WRITE(numout,*) 
    129          IF(lwp) WRITE(numout,*) 'tra_ldf_iso : rotated laplacian diffusion operator on ', cdtype 
    130          IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    131       ENDIF 
    132 #endif 
    133124      ! 
    134125      !                                                          ! =========== 
     
    311302   !!---------------------------------------------------------------------- 
    312303CONTAINS 
    313    SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 )      ! Empty routine 
     304   SUBROUTINE tra_ldf_iso( kt, nit000,cdtype, pgu, pgv, ptb, pta, kjpt, pahtb0 )      ! Empty routine 
     305      INTEGER:: kt, nit000 
    314306      CHARACTER(len=3) ::   cdtype 
    315307      REAL, DIMENSION(:,:,:) ::   pgu, pgv   ! tracer gradient at pstep levels 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90

    r2830 r2892  
    2626   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2727   USE lib_mpp         ! MPP library 
    28 #if defined key_top 
    29    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    30 #endif 
    3128 
    3229   IMPLICIT NONE 
     
    5148CONTAINS 
    5249 
    53   SUBROUTINE tra_ldf_iso_grif( kt, cdtype, pgu, pgv,              & 
     50  SUBROUTINE tra_ldf_iso_grif( kt, nit000, cdtype, pgu, pgv,              & 
    5451       &                                   ptb, pta, kjpt, pahtb0 ) 
    5552      !!---------------------------------------------------------------------- 
     
    9895      ! 
    9996      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     97      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    10098      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype     ! =TRA or TRC (tracer indicator) 
    10199      INTEGER                              , INTENT(in   ) ::   kjpt       ! number of tracers 
     
    130128      !zdkt(1:jpi,1:jpj,0:1) => wrk_3d_9(:,:,1:2) 
    131129 
    132 #if defined key_top 
    133       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    134 #else 
    135130      IF( kt == nit000 )  THEN 
    136 #endif 
    137131         IF(lwp) WRITE(numout,*) 
    138132         IF(lwp) WRITE(numout,*) 'tra_ldf_iso_grif : rotated laplacian diffusion operator on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90

    r2715 r2892  
    4444CONTAINS 
    4545 
    46    SUBROUTINE tra_ldf_lap( kt, cdtype, pgu, pgv,      & 
     46   SUBROUTINE tra_ldf_lap( kt, nit000, cdtype, pgu, pgv,      & 
    4747      &                                ptb, pta, kjpt )  
    4848      !!---------------------------------------------------------------------- 
     
    6666      ! 
    6767      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     68      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    6869      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype     ! =TRA or TRC (tracer indicator) 
    6970      INTEGER                              , INTENT(in   ) ::   kjpt       ! number of tracers 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r2830 r2892  
    4848   USE agrif_opa_interp 
    4949#endif 
    50 #if defined key_top 
    51    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    52 #endif 
    5350 
    5451   IMPLICIT NONE 
     
    151148      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
    152149         ! 
    153          IF( lk_vvl )  THEN   ;   CALL tra_nxt_vvl( kt, 'TRA', tsb, tsn, tsa, jpts )  ! variable volume level (vvl)      
    154          ELSE                 ;   CALL tra_nxt_fix( kt, 'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
     150         IF( lk_vvl )  THEN   ;   CALL tra_nxt_vvl( kt,nit000, 'TRA', tsb, tsn, tsa, jpts )  ! variable volume level (vvl)      
     151         ELSE                 ;   CALL tra_nxt_fix( kt,nit000, 'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
    155152         ENDIF 
    156153      ENDIF  
     
    182179 
    183180 
    184    SUBROUTINE tra_nxt_fix( kt, cdtype, ptb, ptn, pta, kjpt ) 
     181   SUBROUTINE tra_nxt_fix( kt, nit000, cdtype, ptb, ptn, pta, kjpt ) 
    185182      !!---------------------------------------------------------------------- 
    186183      !!                   ***  ROUTINE tra_nxt_fix  *** 
     
    206203      !!---------------------------------------------------------------------- 
    207204      INTEGER         , INTENT(in   )                               ::   kt       ! ocean time-step index 
     205      INTEGER         , INTENT(in   )                               ::   nit000   ! first time step index 
    208206      CHARACTER(len=3), INTENT(in   )                               ::   cdtype   ! =TRA or TRC (tracer indicator) 
    209207      INTEGER         , INTENT(in   )                               ::   kjpt     ! number of tracers 
     
    217215      !!---------------------------------------------------------------------- 
    218216 
    219 #if defined key_top 
    220       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    221 #else 
    222217      IF( kt == nit000 )  THEN 
    223 #endif 
    224218         IF(lwp) WRITE(numout,*) 
    225219         IF(lwp) WRITE(numout,*) 'tra_nxt_fix : time stepping', cdtype 
     
    252246 
    253247 
    254    SUBROUTINE tra_nxt_vvl( kt, cdtype, ptb, ptn, pta, kjpt ) 
     248   SUBROUTINE tra_nxt_vvl( kt, nit000, cdtype, ptb, ptn, pta, kjpt ) 
    255249      !!---------------------------------------------------------------------- 
    256250      !!                   ***  ROUTINE tra_nxt_vvl  *** 
     
    277271      !!---------------------------------------------------------------------- 
    278272      INTEGER         , INTENT(in   )                               ::   kt       ! ocean time-step index 
     273      INTEGER         , INTENT(in   )                               ::   nit000   ! first time step index 
    279274      CHARACTER(len=3), INTENT(in   )                               ::   cdtype   ! =TRA or TRC (tracer indicator) 
    280275      INTEGER         , INTENT(in   )                               ::   kjpt     ! number of tracers 
     
    289284      !!---------------------------------------------------------------------- 
    290285 
    291 #if defined key_top 
    292       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    293 #else 
    294286      IF( kt == nit000 )  THEN 
    295 #endif 
    296287         IF(lwp) WRITE(numout,*) 
    297288         IF(lwp) WRITE(numout,*) 'tra_nxt_vvl : time stepping', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90

    r2715 r2892  
    7676 
    7777      SELECT CASE ( nzdf )                       ! compute lateral mixing trend and add it to the general trend 
    78       CASE ( 0 )    ;    CALL tra_zdf_exp( kt, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )  !   explicit scheme  
    79       CASE ( 1 )    ;    CALL tra_zdf_imp( kt, 'TRA', r2dtra,            tsb, tsa, jpts )  !   implicit scheme  
     78      CASE ( 0 )    ;    CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )  !   explicit scheme  
     79      CASE ( 1 )    ;    CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra,            tsb, tsa, jpts )  !   implicit scheme  
    8080      CASE ( -1 )                                       ! esopa: test all possibility with control print 
    81          CALL tra_zdf_exp( kt, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) 
     81         CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) 
    8282         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf0 - Ta: ', mask1=tmask,               & 
    8383         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    84          CALL tra_zdf_imp( kt, 'TRA', r2dtra,            tsb, tsa, jpts )  
     84         CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra,            tsb, tsa, jpts )  
    8585         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf1 - Ta: ', mask1=tmask,               & 
    8686         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90

    r2830 r2892  
    3131   USE in_out_manager  ! I/O manager 
    3232   USE lib_mpp         ! MPP library 
    33 #if defined key_top 
    34    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    35 #endif 
    3633 
    3734   IMPLICIT NONE 
     
    5148CONTAINS 
    5249 
    53    SUBROUTINE tra_zdf_exp( kt, cdtype, p2dt, kn_zdfexp,   & 
     50   SUBROUTINE tra_zdf_exp( kt,nit000, cdtype, p2dt, kn_zdfexp,   & 
    5451      &                                ptb , pta      , kjpt ) 
    5552      !!---------------------------------------------------------------------- 
     
    8077      ! 
    8178      INTEGER                              , INTENT(in   ) ::   kt          ! ocean time-step index 
     79      INTEGER                              , INTENT(in   ) ::   nit000      ! first time step index 
    8280      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype      ! =TRA or TRC (tracer indicator) 
    8381      INTEGER                              , INTENT(in   ) ::   kjpt        ! number of tracers 
     
    9694      ENDIF 
    9795 
    98 #if defined key_top 
    99       IF( kt == nit000 .OR. (kt == nittrc000 .AND. cdtype == 'TRC'))  THEN 
    100 #else 
    10196      IF( kt == nit000 )  THEN 
    102 #endif 
    10397         IF(lwp) WRITE(numout,*) 
    10498         IF(lwp) WRITE(numout,*) 'tra_zdf_exp : explicit vertical mixing on ', cdtype 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90

    r2830 r2892  
    3535   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3636   USE lib_mpp         ! MPP library 
    37 #if defined key_top 
    38    USE trc, ONLY: nittrc000  !get first time step for passive tracers 
    39 #endif 
    4037 
    4138   IMPLICIT NONE 
     
    5855CONTAINS 
    5956  
    60    SUBROUTINE tra_zdf_imp( kt, cdtype, p2dt, ptb, pta, kjpt )  
     57   SUBROUTINE tra_zdf_imp( kt,nit000, cdtype, p2dt, ptb, pta, kjpt )  
    6158      !!---------------------------------------------------------------------- 
    6259      !!                  ***  ROUTINE tra_zdf_imp  *** 
     
    8279      ! 
    8380      INTEGER                              , INTENT(in   ) ::   kt       ! ocean time-step index 
     81      INTEGER                              , INTENT(in   ) ::   nit000          ! first time step index 
    8482      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype   ! =TRA or TRC (tracer indicator) 
    8583      INTEGER                              , INTENT(in   ) ::   kjpt     ! number of tracers 
     
    105103         ENDIF 
    106104      ENDIF 
    107 #if defined key_top 
    108       IF( kt == nittrc000 .AND. cdtype == 'TRC' )  THEN 
    109          IF(lwp)WRITE(numout,*) 
    110          IF(lwp)WRITE(numout,*) 'tra_zdf_imp : implicit vertical mixing on ', cdtype 
    111          IF(lwp)WRITE(numout,*) '~~~~~~~~~~~ ' 
    112          ! 
    113          IF( lk_vvl ) THEN   ;    r_vvl = 1._wp       ! Variable volume indicator 
    114          ELSE                ;    r_vvl = 0._wp        
    115          ENDIF 
    116       ENDIF 
    117 #endif 
    118105      ! 
    119106      !                                               ! ============= ! 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90

    r2830 r2892  
    103103 
    104104      !                                                   ! add the eiv transport (if necessary) 
    105       IF( lk_traldf_eiv )   CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRC' ) 
     105      IF( lk_traldf_eiv )   CALL tra_adv_eiv( kt, nittrc000, zun, zvn, zwn, 'TRC' ) 
    106106      ! 
    107107      SELECT CASE ( nadv )                            !==  compute advection trend and add it to general trend  ==! 
    108       CASE ( 1 )   ;    CALL tra_adv_cen2  ( kt, 'TRC',       zun, zvn, zwn, trb, trn, tra, jptra )   !  2nd order centered 
    109       CASE ( 2 )   ;    CALL tra_adv_tvd   ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  TVD  
    110       CASE ( 3 )   ;    CALL tra_adv_muscl ( kt, 'TRC', r2dt, zun, zvn, zwn, trb,      tra, jptra )   !  MUSCL  
    111       CASE ( 4 )   ;    CALL tra_adv_muscl2( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  MUSCL2  
    112       CASE ( 5 )   ;    CALL tra_adv_ubs   ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  UBS  
    113       CASE ( 6 )   ;    CALL tra_adv_qck   ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  QUICKEST  
     108      CASE ( 1 )   ;    CALL tra_adv_cen2  ( kt, nittrc000, 'TRC',       zun, zvn, zwn, trb, trn, tra, jptra )   !  2nd order centered 
     109      CASE ( 2 )   ;    CALL tra_adv_tvd   ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  TVD  
     110      CASE ( 3 )   ;    CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb,      tra, jptra )   !  MUSCL  
     111      CASE ( 4 )   ;    CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  MUSCL2  
     112      CASE ( 5 )   ;    CALL tra_adv_ubs   ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  UBS  
     113      CASE ( 6 )   ;    CALL tra_adv_qck   ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )   !  QUICKEST  
    114114      ! 
    115115      CASE (-1 )                                      !==  esopa: test all possibility with control print  ==! 
    116          CALL tra_adv_cen2  ( kt, 'TRC',       zun, zvn, zwn, trb, trn, tra, jptra )           
     116         CALL tra_adv_cen2  ( kt, nittrc000, 'TRC',       zun, zvn, zwn, trb, trn, tra, jptra )           
    117117         WRITE(charout, FMT="('adv1')")  ; CALL prt_ctl_trc_info(charout) 
    118118                                           CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 
    119          CALL tra_adv_tvd   ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
     119         CALL tra_adv_tvd   ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
    120120         WRITE(charout, FMT="('adv2')")  ; CALL prt_ctl_trc_info(charout) 
    121121                                           CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 
    122          CALL tra_adv_muscl ( kt, 'TRC', r2dt, zun, zvn, zwn, trb,      tra, jptra )           
     122         CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb,      tra, jptra )           
    123123         WRITE(charout, FMT="('adv3')")  ; CALL prt_ctl_trc_info(charout) 
    124124                                           CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 
    125          CALL tra_adv_muscl2( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
     125         CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
    126126         WRITE(charout, FMT="('adv4')")  ; CALL prt_ctl_trc_info(charout) 
    127127                                           CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 
    128          CALL tra_adv_ubs   ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
     128         CALL tra_adv_ubs   ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
    129129         WRITE(charout, FMT="('adv5')")  ; CALL prt_ctl_trc_info(charout) 
    130130                                           CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 
    131          CALL tra_adv_qck   ( kt, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
     131         CALL tra_adv_qck   ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra )           
    132132         WRITE(charout, FMT="('adv6')")  ; CALL prt_ctl_trc_info(charout) 
    133133                                           CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90

    r2830 r2892  
    6767 
    6868      SELECT CASE ( nldf )                       ! compute lateral mixing trend and add it to the general trend 
    69       CASE ( 0 )   ;   CALL tra_ldf_lap   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level laplacian 
    70       CASE ( 1 )   ;   CALL tra_ldf_iso   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )  ! rotated laplacian  
    71       CASE ( 2 )   ;   CALL tra_ldf_bilap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level bilaplacian 
    72       CASE ( 3 )   ;   CALL tra_ldf_bilapg( kt, 'TRC',             trb, tra, jptra            )  ! s-coord. horizontal bilaplacian 
     69      CASE ( 0 )   ;   CALL tra_ldf_lap   ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level laplacian 
     70      CASE ( 1 )   ;   CALL tra_ldf_iso   ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )  ! rotated laplacian  
     71      CASE ( 2 )   ;   CALL tra_ldf_bilap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level bilaplacian 
     72      CASE ( 3 )   ;   CALL tra_ldf_bilapg( kt, nittrc000, 'TRC',             trb, tra, jptra            )  ! s-coord. horizontal bilaplacian 
    7373         ! 
    7474      CASE ( -1 )                                     ! esopa: test all possibility with control print 
    75          CALL tra_ldf_lap   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            ) 
     75         CALL tra_ldf_lap   ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra            ) 
    7676         WRITE(charout, FMT="('ldf0 ')") ;  CALL prt_ctl_trc_info(charout) 
    7777                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    78          CALL tra_ldf_iso   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) 
     78         CALL tra_ldf_iso   ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) 
    7979         WRITE(charout, FMT="('ldf1 ')") ;  CALL prt_ctl_trc_info(charout) 
    8080                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    81          CALL tra_ldf_bilap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            ) 
     81         CALL tra_ldf_bilap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra            ) 
    8282         WRITE(charout, FMT="('ldf2 ')") ;  CALL prt_ctl_trc_info(charout) 
    8383                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    84          CALL tra_ldf_bilapg( kt, 'TRC',             trb, tra, jptra            ) 
     84         CALL tra_ldf_bilapg( kt, nittrc000, 'TRC',             trb, tra, jptra            ) 
    8585         WRITE(charout, FMT="('ldf3 ')") ;  CALL prt_ctl_trc_info(charout) 
    8686                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90

    r2830 r2892  
    139139      ELSE 
    140140         ! Leap-Frog + Asselin filter time stepping 
    141          IF( lk_vvl ) THEN   ;   CALL tra_nxt_vvl( kt, 'TRC', trb, trn, tra, jptra )      ! variable volume level (vvl)  
    142          ELSE                ;   CALL tra_nxt_fix( kt, 'TRC', trb, trn, tra, jptra )      ! fixed    volume level  
     141         IF( lk_vvl ) THEN   ;   CALL tra_nxt_vvl( kt,nittrc000, 'TRC', trb, trn, tra, jptra )      ! variable volume level (vvl)  
     142         ELSE                ;   CALL tra_nxt_fix( kt,nittrc000, 'TRC', trb, trn, tra, jptra )      ! fixed    volume level  
    143143         ENDIF 
    144144      ENDIF 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90

    r2830 r2892  
    8888      SELECT CASE ( nzdf )                       ! compute lateral mixing trend and add it to the general trend 
    8989      CASE ( -1 )                                       ! esopa: test all possibility with control print 
    90          CALL tra_zdf_exp( kt, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )  
     90         CALL tra_zdf_exp( kt,nittrc000, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )  
    9191         WRITE(charout, FMT="('zdf1 ')") ;  CALL prt_ctl_trc_info(charout) 
    9292                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    93          CALL tra_zdf_imp( kt, 'TRC', r2dt,                trb, tra, jptra )  
     93         CALL tra_zdf_imp( kt,nittrc000, 'TRC', r2dt,                trb, tra, jptra )  
    9494         WRITE(charout, FMT="('zdf2 ')") ;  CALL prt_ctl_trc_info(charout) 
    9595                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    96       CASE ( 0 ) ;  CALL tra_zdf_exp( kt, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )    !   explicit scheme  
    97       CASE ( 1 ) ;  CALL tra_zdf_imp( kt, 'TRC', r2dt,                trb, tra, jptra )    !   implicit scheme           
     96      CASE ( 0 ) ;  CALL tra_zdf_exp( kt,nittrc000, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )    !   explicit scheme  
     97      CASE ( 1 ) ;  CALL tra_zdf_imp( kt,nittrc000, 'TRC', r2dt,                trb, tra, jptra )    !   implicit scheme           
    9898 
    9999      END SELECT 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r2830 r2892  
    108108   USE dom_oce , ONLY :   e3w_0      =>   e3w_0      !: reference depth of w-points (m) 
    109109   USE dom_oce , ONLY :   gdepw_0    =>   gdepw_0    !: reference depth of w-points (m) 
     110# if ! defined key_zco 
    110111   USE dom_oce , ONLY :   gdep3w     =>  gdep3w      !: ??? 
    111112   USE dom_oce , ONLY :   gdept      =>  gdept       !: depth of t-points (m) 
     
    118119   USE dom_oce , ONLY :   e3uw       =>  e3uw        !: uw-points (m) 
    119120   USE dom_oce , ONLY :   e3vw       =>  e3vw        !: vw-points (m) 
    120  
     121# endif 
    121122   USE dom_oce , ONLY :   ln_zps     =>  ln_zps      !: partial steps flag 
    122123   USE dom_oce , ONLY :   ln_sco     =>  ln_sco      !: s-coordinate flag 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r2830 r2892  
    119119  REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION (:,:,:) ::   vslp_tm !: j-direction slope at u-, w-points 
    120120#endif 
     121 
     122  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:,:) :: tsn_tm      !: t/s average     [m/s] 
     123  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::     fr_i_tm    !: average ice fraction     [m/s] 
     124  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::     hmld_tm    !: mixed layer depth average [m] 
     125  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::     qsr_tm     !: solar radiation average [m] 
     126  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::     wndm_tm    !: 10m wind average [m] 
     127  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::     emp_tm     !: freshwater budget: volume flux [Kg/m2/s] 
     128  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::     emp_b_hold !:hold emp from the beginning of each sub-stepping[m]   
     129  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:) ::    emps_tm    !: freshwater budget:concentration/dilution [Kg/m2/s] 
     130# if defined key_zdfddm 
     131  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) ::  avs_tm      !: salinity vertical diffusivity coeff. at w-point   [m/s] 
     132# endif 
     133#if defined key_traldf_c3d 
     134   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm   !: ** 3D coefficients ** at T-,U-,V-,W-points 
     135#elif defined key_traldf_c2d 
     136   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm   !: ** 2D coefficients ** at T-,U-,V-,W-points 
     137#elif defined key_traldf_c1d 
     138   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)     ::   ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm   !: ** 1D coefficients ** at T-,U-,V-,W-points 
     139#else 
     140   REAL(wp), PUBLIC                                      ::   ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm   !: ** 0D coefficients ** at T-,U-,V-,W-points 
     141#endif 
     142#if defined key_traldf_eiv 
     143# if defined key_traldf_c3d 
     144   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aeiu_tm , aeiv_tm , aeiw_tm   !: ** 3D coefficients ** 
     145# elif defined key_traldf_c2d 
     146   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   aeiu_tm , aeiv_tm , aeiw_tm   !: ** 2D coefficients ** 
     147# elif defined key_traldf_c1d 
     148   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)     ::   aeiu_tm , aeiv_tm, aeiw_tm   !: ** 1D coefficients ** 
     149# else 
     150   REAL(wp), PUBLIC                                      ::   aeiu_tm , aeiv_tm , aeiw_tm   !: ** 0D coefficients ** 
     151# endif 
     152# endif 
     153 
    121154  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:)  ::   rnf_tm !: river runoff 
    122155  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:)  ::   h_rnf_tm !: depth in metres to the bottom of the relevant grid box 
     
    133166  REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:)::     hdivn_temp, rotn_temp 
    134167  REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:)::     hdivb_temp, rotb_temp 
     168  REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::  tsn_temp 
     169  REAL(wp), PUBLIC,ALLOCATABLE, SAVE, DIMENSION(:,:)::       hmld_temp, qsr_temp, emp_temp, emps_temp,fr_i_temp,wndm_temp,emp_b_temp 
     170# if defined key_zdfddm 
     171  REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) ::  avs_temp      !: salinity vertical diffusivity coeff. at w-point   [m/s] 
     172# endif 
     173#if defined key_traldf_c3d 
     174   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp   !: ** 3D coefficients ** at T-,U-,V-,W-points 
     175#elif defined key_traldf_c2d 
     176   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp   !: ** 2D coefficients ** at T-,U-,V-,W-points 
     177#elif defined key_traldf_c1d 
     178   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)     ::  ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp   !: ** 1D coefficients ** at T-,U-,V-,W-points 
     179#else 
     180   REAL(wp), PUBLIC                                      ::  ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp   !: ** 0D coefficients ** at T-,U-,V-,W-points 
     181#endif 
     182#if defined key_traldf_eiv 
     183# if defined key_traldf_c3d 
     184   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  aeiu_temp , aeiv_temp , aeiw_temp   !: ** 3D coefficients ** 
     185# elif defined key_traldf_c2d 
     186   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  aeiu_temp , aeiv_temp , aeiw_temp   !: ** 2D coefficients ** 
     187# elif defined key_traldf_c1d 
     188   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)     ::  aeiu_temp , aeiv_temp, aeiw_temp   !: ** 1D coefficients ** 
     189# else 
     190   REAL(wp), PUBLIC                                      ::  aeiu_temp , aeiv_temp , aeiw_temp   !: ** 0D coefficients ** 
     191# endif 
     192# endif 
    135193 
    136194   !!---------------------------------------------------------------------- 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r2830 r2892  
    2929   USE zpshde          ! partial step: hor. derivative   (zps_hde routine) 
    3030   USE prtctl_trc      ! Print control passive tracers (prt_ctl_trc_init routine) 
    31    USE trcsubstp       ! variables to substep passive tracers 
     31   USE trcsub       ! variables to substep passive tracers 
    3232    
    3333   IMPLICIT NONE 
     
    174174 
    175175      IF(nn_dttrc .NE. 1) THEN 
    176           CALL trc_sub_stp_ini      !initialize variables for substepping passive tracers 
     176          CALL trc_sub_ini      !initialize variables for substepping passive tracers 
    177177      ENDIF 
    178178      ! 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcrst.F90

    r2830 r2892  
    7777      ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*nn_dttrc + 1) 
    7878      ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 2*nn_dttrc + 1 
    79       IF( kt == nitrst - 2*nn_dttrc + 1 .OR. nstock == nn_dttrc .OR. ( kt == nitend - nn_dttrc + 1 .AND. .NOT. lrst_trc ) ) THEN 
     79      IF( kt == nitrst - 2*nn_dttrc .OR. nstock == nn_dttrc .OR. ( kt == nitend - nn_dttrc .AND. .NOT. lrst_trc ) ) THEN 
    8080         ! beware of the format used to write kt (default is i8.8, that should be large enough) 
    8181         IF( nitrst > 1.0e9 ) THEN   ;   WRITE(clkt,*       ) nitrst 
     
    151151      REAL(wp) :: zarak0 
    152152      !!---------------------------------------------------------------------- 
    153  
    154153 
    155154      CALL trc_rst_cal( kt, 'WRITE' )   ! calendar 
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcstp.F90

    r2830 r2892  
    2222   USE iom 
    2323   USE in_out_manager 
    24    USE trcsubstp 
     24   USE trcsub 
    2525 
    2626   IMPLICIT NONE 
     
    7777         ! 
    7878         IF(nn_dttrc .NE. 1) THEN 
    79             CALL trc_sub_stp_reset(kt) 
     79            CALL trc_sub_reset(kt) 
    8080         ENDIF 
    8181      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.