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 for branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/OPA_SRC – NEMO

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/OPA_SRC/TRA
Files:
19 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      !                                               ! ============= ! 
Note: See TracChangeset for help on using the changeset viewer.