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

Changeset 2052


Ignore:
Timestamp:
2010-08-13T11:15:17+02:00 (14 years ago)
Author:
cetlod
Message:

Improve the merge TRA-TRC, see ticket:701

Location:
branches/DEV_r2006_merge_TRA_TRC/NEMO
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_cen2.F90

    r2034 r2052  
    2020   !!                  area (set for orca 2 and 4 only) 
    2121   !!---------------------------------------------------------------------- 
    22    USE oce, ONLY: tsn  ! now ocean temperature and salinity 
     22   USE oce, ONLY: tn, sn  ! now ocean temperature and salinity 
    2323   USE dom_oce         ! ocean space and time domain 
    2424   USE eosbn2          ! equation of state 
     
    159159!!gm  not strickly exact : the freezing point should be computed at each ocean levels... 
    160160!!gm  not a big deal since cen2 is no more used in global ice-ocean simulations 
    161       ztfreez(:,:) = tfreez( tsn(:,:,1,jp_sal) ) 
     161      ztfreez(:,:) = tfreez( sn(:,:,1) ) 
    162162      DO jk = 1, jpk 
    163163         DO jj = 1, jpj 
    164164            DO ji = 1, jpi 
    165165               !                                        ! below ice covered area (if tn < "freezing"+0.1 ) 
    166                IF( tsn(ji,jj,jk,jp_tem) <= ztfreez(ji,jj) + 0.1 ) THEN   ;   zice = 1.e0 
     166               IF( tn(ji,jj,jk) <= ztfreez(ji,jj) + 0.1 ) THEN   ;   zice = 1.e0 
    167167               ELSE                                              ;   zice = 0.e0 
    168168               ENDIF 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trasbc.F90

    r2024 r2052  
    200200                ENDIF   
    201201   
    202               ELSE IF( rnf(ji,jj) > 0.) THEN   ! for use in baltic when flow is out of domain, want no change in temp and sal   
     202              ELSE IF( rnf(ji,jj) < 0.) THEN   ! for use in baltic when flow is out of domain, want no change in temp and sal   
    203203   
    204204                IF( lk_vvl ) THEN   
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trazdf_imp.F90

    r2034 r2052  
    180180               END DO 
    181181            END DO 
     182            ! first recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k) 
     183            DO jj = 2, jpjm1 
     184               DO ji = fs_2, fs_jpim1 
     185                  zwt(ji,jj,1) = zwd(ji,jj,1) 
     186               END DO 
     187            END DO 
     188            DO jk = 2, jpkm1 
     189               DO jj = 2, jpjm1 
     190                  DO ji = fs_2, fs_jpim1 
     191                    zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1)  /zwt(ji,jj,jk-1) 
     192                  END DO 
     193               END DO 
     194            END DO 
    182195            ! 
    183196         ELSE IF( ( cdtype == 'TRA' .AND. jn == jp_sal ) .OR. ( cdtype == 'TRC' .AND. jn == 1 ) ) THEN 
     
    191204                           & * (  wslpi(ji,jj,jk) * wslpi(ji,jj,jk)   & 
    192205                           &    + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  ) 
    193                         zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi              ! zwt=avt+zavi (total vertical mixing coef. on temperature) 
     206                        zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi              ! zwt=avt+zavi (total vertical mixing coef. on salinity) 
    194207                     END DO 
    195208                  END DO 
     
    223236            END DO 
    224237            ! 
    225          END IF 
     238            ! first recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k) 
     239            DO jj = 2, jpjm1 
     240               DO ji = fs_2, fs_jpim1 
     241                  zwt(ji,jj,1) = zwd(ji,jj,1) 
     242               END DO 
     243            END DO 
     244            DO jk = 2, jpkm1 
     245               DO jj = 2, jpjm1 
     246                  DO ji = fs_2, fs_jpim1 
     247                    zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1)  /zwt(ji,jj,jk-1) 
     248                  END DO 
     249               END DO 
     250            END DO 
     251            ! 
     252         END IF  
    226253 
    227254         ! II.1. Vertical diffusion on tracer 
    228255         ! --------------------------- 
    229  
    230          !! Matrix inversion from the first level 
    231          !!---------------------------------------------------------------------- 
    232          !   solve m.x = y  where m is a tri diagonal matrix ( jpk*jpk ) 
    233          ! 
    234          !        ( zwd1 zws1   0    0    0  )( zwx1 ) ( zwy1 ) 
    235          !        ( zwi2 zwd2 zws2   0    0  )( zwx2 ) ( zwy2 ) 
    236          !        (  0   zwi3 zwd3 zws3   0  )( zwx3 )=( zwy3 ) 
    237          !        (        ...               )( ...  ) ( ...  ) 
    238          !        (  0    0    0   zwik zwdk )( zwxk ) ( zwyk ) 
    239          ! 
    240          !   m is decomposed in the product of an upper and lower triangular matrix 
    241          !   The 3 diagonal terms are in 2d arrays: zwd, zws, zwi 
    242          !   The second member is in 2d array zwy 
    243          !   The solution is in 2d array zwx 
    244          !   The 3d arry zwt is a work space array 
    245          !   zwy is used and then used as a work space array : its value is modified! 
    246           
    247          ! first recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k) 
    248          DO jj = 2, jpjm1 
    249             DO ji = fs_2, fs_jpim1 
    250                zwt(ji,jj,1) = zwd(ji,jj,1) 
    251             END DO 
    252          END DO 
    253          DO jk = 2, jpkm1 
    254             DO jj = 2, jpjm1 
    255                DO ji = fs_2, fs_jpim1 
    256                   zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1)  /zwt(ji,jj,jk-1) 
    257                END DO 
    258             END DO 
    259          END DO 
    260256          
    261257         ! second recurrence:    Zk = Yk - Ik / Tk-1  Zk-1 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/opa.F90

    r2027 r2052  
    261261                            CALL ldf_dyn_init   ! Lateral ocean momentum physics 
    262262      IF( lk_ldfslp )       CALL ldf_slp_init   ! slope of lateral mixing 
    263 #if defined key_traldf_c2d 
    264       IF( lk_traldf_eiv )   CALL ldf_eiv( kstp )      ! eddy induced velocity coefficient 
    265 #  endif 
    266263      !                                     ! Active tracers 
    267264                            CALL tra_qsr_init   ! penetrative solar radiation qsr 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/par_c14b.F90

    r2038 r2052  
    2727 
    2828   IMPLICIT NONE 
    29    PUBLIC 
    3029 
    31    INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster     + jp_pisces     + jp_cfc     !: cum. number of pass. tracers 
    32    INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  !: 
    33    INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  !: 
    34    INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !: 
     30   INTEGER, PARAMETER ::   jp_lb      = jp_lobster     + jp_pisces     + jp_cfc     !: cum. number of pass. tracers 
     31   INTEGER, PARAMETER ::   jp_lb_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  !: 
     32   INTEGER, PARAMETER ::   jp_lb_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  !: 
     33   INTEGER, PARAMETER ::   jp_lb_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !: 
    3534    
    3635#if defined key_c14b 
     
    4039   LOGICAL, PUBLIC, PARAMETER ::   lk_c14b     = .TRUE.      !: C14 bomb flag  
    4140   INTEGER, PUBLIC, PARAMETER ::   jp_c14b     =  1          !: number of passive tracers 
    42    INTEGER, PUBLIC, PARAMETER ::   jp_c14b_2d  =  2          !: additional 2d output arrays ('key_diatrc') 
    43    INTEGER, PUBLIC, PARAMETER ::   jp_c14b_3d  =  1          !: additional 3d output arrays ('key_diatrc') 
     41   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd') 
     42   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_3d  =  1          !: additional 3d output arrays ('key_trc_diaadd') 
    4443   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_trd =  0          !: number of sms trends for C14 
    45     
    46    ! assign an index in trc arrays for each CFC prognostic variables 
    47    INTEGER, PUBLIC, PARAMETER ::   jpc14       = jp_lp + 1   !: C14 bomb  
     44   INTEGER, PUBLIC, PARAMETER ::   jpc14       = jp_lb + 1   !: assign an index in trc arrays for C14 bomb  
    4845#else 
    4946   !!--------------------------------------------------------------------- 
     
    5855 
    5956   ! Starting/ending C14 do-loop indices (N.B. no C14 : jp_c14b0 > jp_c14b1 the do-loop are never done) 
    60    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0     = jp_lp + 1                !: First index of C14 tracer 
    61    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1     = jp_lp + jp_c14b          !: Last  index of C14 tracer 
    62    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_2d  = jp_lp_2d  + 1            !: First index of C14 tracer 
    63    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_2d  = jp_lp_2d  + jp_c14b_2d   !: Last  index of C14 tracer 
    64    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_3d  = jp_lp_3d  + 1            !: First index of C14 tracer 
    65    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_3d  = jp_lp_3d  + jp_c14b_3d   !: Last  index of C14 tracer 
    66    INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_trd = jp_lp_trd + 1            !: First index of C14 tracer 
    67    INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_trd = jp_lp_trd + jp_c14b_trd  !: Last  index of C14 tracer 
     57   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0     = jp_lb + 1                !: First index of C14 tracer 
     58   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1     = jp_lb + jp_c14b          !: Last  index of C14 tracer 
     59   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_2d  = jp_lb_2d  + 1            !: First index of C14 tracer 
     60   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_2d  = jp_lb_2d  + jp_c14b_2d   !: Last  index of C14 tracer 
     61   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_3d  = jp_lb_3d  + 1            !: First index of C14 tracer 
     62   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_3d  = jp_lb_3d  + jp_c14b_3d   !: Last  index of C14 tracer 
     63   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_trd = jp_lb_trd + 1            !: First index of C14 tracer 
     64   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_trd = jp_lb_trd + jp_c14b_trd  !: Last  index of C14 tracer 
    6865 
    6966   !!====================================================================== 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/par_cfc.F90

    r2038 r2052  
    2121 
    2222   IMPLICIT NONE 
    23    PUBLIC 
    2423 
    25    INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster     + jp_pisces     !: cumulative number of passive tracers 
    26    INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d  + jp_pisces_2d  !: 
    27    INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d  + jp_pisces_3d  !: 
    28    INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd + jp_pisces_trd !: 
     24   INTEGER, PARAMETER ::   jp_lc      = jp_lobster     + jp_pisces     !: cumulative number of passive tracers 
     25   INTEGER, PARAMETER ::   jp_lc_2d   = jp_lobster_2d  + jp_pisces_2d  !: 
     26   INTEGER, PARAMETER ::   jp_lc_3d   = jp_lobster_3d  + jp_pisces_3d  !: 
     27   INTEGER, PARAMETER ::   jp_lc_trd  = jp_lobster_trd + jp_pisces_trd !: 
    2928    
    3029#if defined key_cfc 
     
    3433   LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .TRUE.      !: CFC flag  
    3534   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  2          !: number of passive tracers 
    36    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_diatrc') 
    37    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_diatrc') 
     35   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd') 
     36   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_trc_diaadd') 
    3837   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC 
    3938    
    4039   ! assign an index in trc arrays for each CFC prognostic variables 
    41    INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lp + 1   !: CFC-11  
    42    INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lp + 2   !: CFC-12    
     40   INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lc + 1   !: CFC-11  
     41   INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lc + 2   !: CFC-12    
    4342#else 
    4443   !!--------------------------------------------------------------------- 
     
    5352 
    5453   ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done) 
    55    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lp + 1       !: First index of CFC tracers 
    56    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lp + jp_cfc  !: Last  index of CFC tracers 
    57    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lp_2d  + 1       !: First index of CFC tracers 
    58    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lp_2d  + jp_cfc_2d  !: Last  index of CFC tracers 
    59    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lp_3d  + 1       !: First index of CFC tracers 
    60    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lp_3d  + jp_cfc_3d  !: Last  index of CFC tracers 
    61    INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lp_trd + 1       !: First index of CFC tracers 
    62    INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lp_trd + jp_cfc_trd  !: Last  index of CFC tracers 
     54   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lc + 1       !: First index of CFC tracers 
     55   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lc + jp_cfc  !: Last  index of CFC tracers 
     56   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lc_2d  + 1       !: First index of CFC tracers 
     57   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lc_2d  + jp_cfc_2d  !: Last  index of CFC tracers 
     58   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lc_3d  + 1       !: First index of CFC tracers 
     59   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lc_3d  + jp_cfc_3d  !: Last  index of CFC tracers 
     60   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lc_trd + 1       !: First index of CFC tracers 
     61   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lc_trd + jp_cfc_trd  !: Last  index of CFC tracers 
    6362 
    6463   !!====================================================================== 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcini_cfc.F90

    r2038 r2052  
    2222 
    2323   PUBLIC   trc_ini_cfc   ! called by trcini.F90 module 
     24 
     25   CHARACTER (len=34) ::   clname = 'cfc1112.atm'   ! ??? 
    2426 
    2527   INTEGER  ::   inum                   ! unit number 
     
    4749      !!---------------------------------------------------------------------- 
    4850 
    49  
    5051      IF(lwp) WRITE(numout,*) 
    5152      IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' 
     
    5657      ! ---------------------------------------  
    5758      xphem (:,:)    = 0.e0 
    58       DO jl = 1, jp_cfc 
    59          jn = jp_cfc0 + jl - 1 
    60          DO jm = 1, jphem 
    61             DO js = 1, jpyear 
    62                p_cfc(js,jm,jn) = 0.0 
    63             END DO 
    64          END DO 
    65       END DO 
    66        
     59      p_cfc(:,:,:)   = 0.e0 
    6760       
    6861      ! Initialization of qint in case of  no restart  
     
    7467            WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 
    7568         ENDIF 
     69         qint_cfc(:,:,:) = 0.e0 
    7670         DO jl = 1, jp_cfc 
    7771            jn = jp_cfc0 + jl - 1 
    7872            trn     (:,:,:,jn) = 0.e0 
    79             qint_cfc(:,:  ,jn) = 0.e0 
    8073         END DO 
    8174      ENDIF 
     
    8982      IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 
    9083       
    91       CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     84      CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    9285      REWIND(inum) 
    9386       
     
    147140 
    148141   END SUBROUTINE trc_ini_cfc 
    149   
     142    
    150143#else 
    151144   !!---------------------------------------------------------------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r2038 r2052  
    2727   PUBLIC   trc_sms_cfc       ! called in ???     
    2828 
    29    INTEGER , PUBLIC, PARAMETER ::   jpyear = 100   ! temporal parameter  
     29   INTEGER , PUBLIC, PARAMETER ::   jpyear = 150   ! temporal parameter  
    3030   INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres 
    3131   INTEGER , PUBLIC    ::   ndate_beg      ! initial calendar date (aammjj) for CFC 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/par_lobster.F90

    r2038 r2052  
    1212 
    1313   IMPLICIT NONE 
    14    PUBLIC 
    1514 
    1615#if defined key_lobster 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90

    r2038 r2052  
    3131 
    3232   IMPLICIT NONE 
    33    PUBLIC 
    3433 
    35    INTEGER, PUBLIC, PARAMETER ::   jp_lpc      = jp_lobster     + jp_pisces     + jp_cfc     + jp_c14b     !:  
    36    INTEGER, PUBLIC, PARAMETER ::   jp_lpc_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !: 
    37    INTEGER, PUBLIC, PARAMETER ::   jp_lpc_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !: 
    38    INTEGER, PUBLIC, PARAMETER ::   jp_lpc_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 
     34   INTEGER, PARAMETER ::   jp_lm      = jp_lobster     + jp_pisces     + jp_cfc     + jp_c14b     !:  
     35   INTEGER, PARAMETER ::   jp_lm_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !: 
     36   INTEGER, PARAMETER ::   jp_lm_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !: 
     37   INTEGER, PARAMETER ::   jp_lm_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 
    3938 
    4039#if defined key_my_trc 
     
    4443   LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc     = .TRUE.   !: PTS flag  
    4544   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc     =  2       !: number of PTS tracers 
    46    INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_2d  =  0       !: additional 2d output arrays ('key_diatrc') 
    47    INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: additional 3d output arrays ('key_diatrc') 
     45   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_2d  =  0       !: additional 2d output arrays ('key_trc_diaadd') 
     46   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: additional 3d output arrays ('key_trc_diaadd') 
    4847   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_trd =  0       !: number of sms trends for MY_TRC 
    4948 
    5049   ! assign an index in trc arrays for each PTS prognostic variables 
    51    INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lpc + 1     !: 1st MY_TRC tracer 
    52    INTEGER, PUBLIC, PARAMETER ::   jpmyt2 = jp_lpc + 2     !: 2nd MY_TRC tracer 
     50   INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lm + 1     !: 1st MY_TRC tracer 
     51   INTEGER, PUBLIC, PARAMETER ::   jpmyt2 = jp_lm + 2     !: 2nd MY_TRC tracer 
    5352 
    5453#else 
     
    6463 
    6564   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 
    66    INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lpc     + 1              !: First index of MY_TRC passive tracers 
    67    INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lpc     + jp_my_trc      !: Last  index of MY_TRC passive tracers 
    68    INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lpc_2d  + 1              !: First index of MY_TRC passive tracers 
    69    INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lpc_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers 
    70    INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lpc_3d  + 1              !: First index of MY_TRC passive tracers 
    71    INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lpc_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers 
    72    INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lpc_trd + 1              !: First index of MY_TRC passive tracers 
    73    INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lpc_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers 
     65   INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lm     + 1              !: First index of MY_TRC passive tracers 
     66   INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lm     + jp_my_trc      !: Last  index of MY_TRC passive tracers 
     67   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lm_2d  + 1              !: First index of MY_TRC passive tracers 
     68   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lm_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers 
     69   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lm_3d  + 1              !: First index of MY_TRC passive tracers 
     70   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lm_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers 
     71   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lm_trd + 1              !: First index of MY_TRC passive tracers 
     72   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lm_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers 
    7473 
    7574   !!====================================================================== 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/par_pisces.F90

    r2038 r2052  
    1818   PUBLIC 
    1919 
    20    INTEGER, PUBLIC, PARAMETER ::   jp_l      = jp_lobster      !: cumulative number of already defined TRC 
    21    INTEGER, PUBLIC, PARAMETER ::   jp_l_2d   = jp_lobster_2d   !: 
    22    INTEGER, PUBLIC, PARAMETER ::   jp_l_3d   = jp_lobster_3d   !: 
    23    INTEGER, PUBLIC, PARAMETER ::   jp_l_trd  = jp_lobster_trd  !: 
     20   INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster      !: cumulative number of already defined TRC 
     21   INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d   !: 
     22   INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d   !: 
     23   INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd  !: 
    2424 
    2525#if defined key_pisces  &&  defined key_kriest 
     
    3737   !    WARNING: be carefull about the order when reading the restart 
    3838        !   !!gm  this warning should be obsolet with IOM 
    39    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration  
    40    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity  
    41    INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration  
    42    INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration  
    43    INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration  
    44    INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration 
    45    INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration 
    46    INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration  
    47    INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration 
    48    INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration  
    49    INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration 
    50    INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration 
    51    INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration 
    52    INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration 
    53    INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_l + 15    !: Big iron particles Concentration 
    54    INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 16    !: number of particulate organic phosphate concentration 
    55    INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 17    !: Diatoms iron Concentration 
    56    INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 18    !: Diatoms Silicate Concentration 
    57    INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 19    !: Nano iron Concentration 
    58    INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 20    !: Nano Chlorophyll Concentration 
    59    INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 21    !: Diatoms Chlorophyll Concentration 
    60    INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 22    !: Nitrates Concentration 
    61    INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 23    !: Ammonium Concentration 
     39   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration  
     40   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity  
     41   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration  
     42   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration  
     43   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration  
     44   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration 
     45   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration 
     46   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration  
     47   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration 
     48   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration  
     49   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration 
     50   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration 
     51   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration 
     52   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration 
     53   INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_lp + 15    !: Big iron particles Concentration 
     54   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 16    !: number of particulate organic phosphate concentration 
     55   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 17    !: Diatoms iron Concentration 
     56   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 18    !: Diatoms Silicate Concentration 
     57   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 19    !: Nano iron Concentration 
     58   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 20    !: Nano Chlorophyll Concentration 
     59   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 21    !: Diatoms Chlorophyll Concentration 
     60   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 22    !: Nitrates Concentration 
     61   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 23    !: Ammonium Concentration 
    6262 
    6363#elif defined key_pisces 
     
    7575   !    WARNING: be carefull about the order when reading the restart 
    7676        !   !!gm  this warning should be obsolet with IOM 
    77    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration  
    78    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity  
    79    INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration  
    80    INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration  
    81    INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration  
    82    INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration 
    83    INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration 
    84    INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration  
    85    INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration 
    86    INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration  
    87    INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration 
    88    INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration 
    89    INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration 
    90    INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration 
    91    INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_l + 15    !: Big iron particles Concentration 
    92    INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_l + 16    !: big particulate organic phosphate concentration 
    93    INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 17    !: Small iron particles Concentration 
    94    INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 18    !: Diatoms iron Concentration 
    95    INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 19    !: Diatoms Silicate Concentration 
    96    INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 20    !: Nano iron Concentration 
    97    INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 21    !: Nano Chlorophyll Concentration 
    98    INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 22    !: Diatoms Chlorophyll Concentration 
    99    INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 23    !: Nitrates Concentration 
    100    INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 24    !: Ammonium Concentration 
     77   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration  
     78   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity  
     79   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration  
     80   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration  
     81   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration  
     82   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration 
     83   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration 
     84   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration  
     85   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration 
     86   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration  
     87   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration 
     88   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration 
     89   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration 
     90   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration 
     91   INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_lp + 15    !: Big iron particles Concentration 
     92   INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_lp + 16    !: big particulate organic phosphate concentration 
     93   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 17    !: Small iron particles Concentration 
     94   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 18    !: Diatoms iron Concentration 
     95   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 19    !: Diatoms Silicate Concentration 
     96   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 20    !: Nano iron Concentration 
     97   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 21    !: Nano Chlorophyll Concentration 
     98   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 22    !: Diatoms Chlorophyll Concentration 
     99   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 23    !: Nitrates Concentration 
     100   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 24    !: Ammonium Concentration 
    101101 
    102102#else 
     
    113113 
    114114   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 
    115    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_l + 1                  !: First index of PISCES tracers 
    116    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_l + jp_pisces          !: Last  index of PISCES tracers 
    117    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_l_2d + 1               !: First index of 2D diag 
    118    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_l_2d + jp_pisces_2d    !: Last  index of 2D diag 
    119    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_l_3d + 1               !: First index of 3D diag 
    120    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_l_3d + jp_pisces_3d    !: Last  index of 3d diag 
    121    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_l_trd + 1              !: First index of bio diag 
    122    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_l_trd + jp_pisces_trd  !: Last  index of bio diag 
     115   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_lp + 1                  !: First index of PISCES tracers 
     116   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_lp + jp_pisces          !: Last  index of PISCES tracers 
     117   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_lp_2d + 1               !: First index of 2D diag 
     118   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_lp_2d + jp_pisces_2d    !: Last  index of 2D diag 
     119   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_lp_3d + 1               !: First index of 3D diag 
     120   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_lp_3d + jp_pisces_3d    !: Last  index of 3d diag 
     121   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_lp_trd + 1              !: First index of bio diag 
     122   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_lp_trd + jp_pisces_trd  !: Last  index of bio diag 
    123123 
    124124 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trcsbc.F90

    r2030 r2052  
    6666      INTEGER  ::   ji, jj, jn           ! dummy loop indices 
    6767      REAL(wp) ::   ztra, zsrau, zse3t   ! temporary scalars 
     68      REAL(wp), DIMENSION(jpi,jpj) ::   zemps  ! surface freshwater flux 
    6869      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrtrd 
    6970      CHARACTER (len=22) :: charout 
     
    7677      ENDIF 
    7778 
     79 
    7880      IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 
    7981 
     82#if ! defined key_offline 
     83      ! Concentration dilution effect on tracer due to evaporation, precipitation, and river runoff 
     84      IF( lk_vvl ) THEN   ;   zemps(:,:) = emps(:,:) - emp(:,:)   ! volume variable 
     85      ELSE                ;   zemps(:,:) = emps(:,:) - rnf(:,:)   ! linear free surface  
     86      ENDIF  
     87#else 
     88      ! emps in dynamical files contains emps - rnf 
     89      IF( lk_vvl ) THEN   ;   zemps(:,:) = 0.         ! No concentration/dilution effect  
     90      ELSE                ;   zemps(:,:) = emps(:,:)  ! emps -rnf  
     91      ENDIF 
     92#endif 
    8093      ! 0. initialization 
    8194      zsrau = 1. / rau0 
     
    8598 
    8699      DO jn = 1, jptra 
    87          ! 1. Concentration dillution effect on tra 
     100         ! 
    88101         IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn)  ! save trends 
    89102 
    90103         DO jj = 2, jpj 
    91104            DO ji = fs_2, fs_jpim1   ! vector opt. 
    92 #if ! defined key_zco 
     105#if ! defined key_zco  
    93106               zse3t = 1. / fse3t(ji,jj,1) 
    94107#endif 
    95                IF( lk_vvl ) THEN   ;   ztra = 0.e0                         ! No concent./dilut. effect 
    96                ELSE                ;   ztra = emps(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t * tmask(ji,jj,1)  
    97                ENDIF 
     108               ! add the trend to the general tracer trend 
     109               ztra = zemps(ji,jj) *  zsrau * trn(ji,jj,1,jn) * zse3t 
    98110               tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + ztra 
    99111            END DO 
     
    107119      END DO                                                     ! tracer loop 
    108120      !                                                          ! =========== 
     121      IF( l_trdtrc ) DEALLOCATE( ztrtrd ) 
    109122 
    110       IF( l_trdtrc ) DEALLOCATE( ztrtrd ) 
    111123      IF( ln_ctl )   THEN 
    112124         WRITE(charout, FMT="('sbc ')") ;  CALL prt_ctl_trc_info(charout) 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trctrp.F90

    r2030 r2052  
    6262      IF( .NOT. lk_trc_c1d ) THEN 
    6363         ! 
    64                                  CALL trc_sbc( kstp )            ! surface boundary condition 
    65           IF( lk_trabbl )        CALL trc_bbl( kstp )            ! advective (and/or diffusive) bottom boundary layer scheme 
    66           IF( lk_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends 
    67                                  CALL trc_adv( kstp )            ! horizontal & vertical advection  
    68                                  CALL trc_ldf( kstp )            ! lateral mixing 
     64                                CALL trc_sbc( kstp )            ! surface boundary condition 
     65         IF( lk_trabbl )        CALL trc_bbl( kstp )            ! advective (and/or diffusive) bottom boundary layer scheme 
     66         IF( lk_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends 
     67                                CALL trc_adv( kstp )            ! horizontal & vertical advection  
     68                                CALL trc_ldf( kstp )            ! lateral mixing 
    6969#if ! defined key_offline 
    70           IF( lk_zdfkpp )        CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes 
     70         IF( lk_zdfkpp )        CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes 
    7171#endif 
    7272#if defined key_agrif 
    73           IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc           ! tracers sponge 
     73         IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc           ! tracers sponge 
    7474#endif 
    75                                  CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields 
    76                                  CALL trc_nxt( kstp )            ! tracer fields at next time step      
    77          IF( ln_trcrad )         CALL trc_rad( kstp )            ! Correct artificial negative concentrations 
    78          IF( ln_zps    )         CALL zps_hde_trc( kstp, jptra, trb, gtru, gtrv )  ! Partial steps: now horizontal gradient of passive 
    79                                                                           ! tracers at the bottom ocean level 
    80       ELSE 
    81                                  CALL trc_sbc( kstp )            ! surface boundary condition 
     75                                CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields 
     76         IF( ln_zps    )        CALL zps_hde_trc( kstp, jptra, trn, gtru, gtrv )  ! Partial steps: now horizontal gradient of passive 
     77                                                                ! tracers at the bottom ocean level 
     78                                CALL trc_nxt( kstp )            ! tracer fields at next time step      
     79         IF( ln_trcrad )        CALL trc_rad( kstp )            ! Correct artificial negative concentrations 
     80         ! 
     81      ELSE                                               ! 1D vertical configuration 
     82                                CALL trc_sbc( kstp )            ! surface boundary condition 
    8283#if ! defined key_offline 
    83           IF( lk_zdfkpp )        CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes 
     84          IF( lk_zdfkpp )       CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes 
    8485#endif 
    85                                  CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields 
    86                                  CALL trc_nxt( kstp )            ! tracer fields at next time step      
    87           IF( ln_trcrad )        CALL trc_rad( kstp )            ! Correct artificial negative concentrations 
     86                                CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields 
     87                                CALL trc_nxt( kstp )            ! tracer fields at next time step      
     88          IF( ln_trcrad )       CALL trc_rad( kstp )            ! Correct artificial negative concentrations 
    8889         ! 
    8990      END IF 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trczdf.F90

    r2034 r2052  
    6363      IF( kt == nittrc000 )   CALL zdf_ctl          ! initialisation & control of options 
    6464 
     65#if ! defined key_pisces 
    6566      IF( neuler == 0 .AND. kt == nittrc000 ) THEN     ! at nit000 
    6667         r2dt(:) =  rdttra(:) * FLOAT(nn_dttrc)          ! = rdtra (restarting with Euler time stepping) 
     
    6869         r2dt(:) = 2. * rdttra(:) * FLOAT(nn_dttrc)      ! = 2 rdttra (leapfrog) 
    6970      ENDIF 
     71#else 
     72      r2dt(:) =  rdttra(:) * FLOAT(nn_dttrc)          ! = rdtra (restarting with Euler time stepping) 
     73#endif 
    7074 
    7175      IF( l_trdtrc )  THEN 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc.F90

    r2030 r2052  
    382382            DO ji = 1,jpi 
    383383               ik = nmld_trc(ji,jj) 
    384                zavt = fstravs(ji,jj,ik) 
     384               zavt = fsavs(ji,jj,ik) 
    385385               DO jn = 1, jptra 
    386386                  IF( ln_trdtrc(jn) )    & 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90

    r2030 r2052  
    99#if defined key_top && defined key_trdmld_trc 
    1010   !!---------------------------------------------------------------------- 
    11    USE oce_trc 
    1211   USE in_out_manager  ! I/O manager 
    1312   USE iom             ! I/O module 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/oce_trc.F90

    r2038 r2052  
    131131   USE dom_oce , ONLY :   vmask      =>   vmask      !: land/ocean mask at v-points  
    132132   USE dom_oce , ONLY :   fmask      =>   fmask      !: land/ocean mask at f-points  
    133 # if defined key_degrad 
    134    USE dom_oce , ONLY :   facvol     =>   facvol     !: volume factor for degradation 
    135 # endif 
    136133 
    137134   !* time domain * 
     
    182179   USE oce , ONLY :   gsv     =>    gsv     !: 
    183180   USE oce , ONLY :   grv     =>    grv     !:  
     181# if defined key_degrad 
     182   USE dommsk , ONLY :   facvol     =>   facvol     !: volume factor for degradation 
     183# endif 
     184 
    184185#endif 
    185186   USE lib_mpp , ONLY :   lk_mpp    =>  lk_mpp       !: Mpp flag 
     
    192193   USE sbc_oce , ONLY :   wndm       =>    wndm       !: 10m wind speed  
    193194   USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)   
    194    USE sbc_oce , ONLY :   emp        =>    emp        !: evaporation minus precipitation (kg m-2 s-2)  
    195    USE sbc_oce , ONLY :   emps       =>    emps       !: evaporation minus precipitation (kg m-2 s-2) 
     195   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s] 
     196   USE sbc_oce , ONLY :   emps       =>    emps       !: freshwater budget: concentration/dillution   [Kg/m2/s] 
     197   USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s] 
    196198   USE sbc_oce , ONLY :   fr_i       =>    fr_i       !: ice fraction (between 0 to 1) 
    197199   USE traqsr  , ONLY :   rn_abs     =>    rn_abs     !: fraction absorbed in the very near surface 
     
    219221   USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp   
    220222# if defined key_zdfddm 
    221    USE zdfddm  , ONLY :   avs        =>    avs        !: salinity vertical diffusivity coeff. at w-point 
     223   USE zdfddm  , ONLY :   avs        =>   avs        !: salinity vertical diffusivity coeff. at w-point 
    222224# endif 
    223225 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/par_trc.F90

    r2038 r2052  
    2323 
    2424   IMPLICIT NONE 
    25    PUBLIC 
    2625 
    2726   ! Passive tracers : Total size 
    2827   ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays 
    29    INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_my_trc 
    30    INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d + jp_my_trc_2d 
    31    INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d + jp_my_trc_3d 
     28   INTEGER, PUBLIC,  PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_c14b    + jp_my_trc 
     29   INTEGER, PUBLIC,  PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d + jp_my_trc_2d 
     30   INTEGER, PUBLIC,  PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d + jp_my_trc_3d 
    3231   !                     ! total number of sms diagnostic arrays 
    33    INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd 
     32   INTEGER, PUBLIC,  PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 
    3433    
    3534   !  1D configuration ("key_c1d") 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/top_substitute.h90

    r1146 r2052  
    1212   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1313   !!---------------------------------------------------------------------- 
    14  
    15     ! Lateral eddy diffusivity coefficient for passive tracer: 
    16     ! ======================================================== 
    17 #if defined key_traldf_c3d || defined key_off_degrad 
    18 !   'key_traldf_c3d' :                 aht: 3D coefficient 
    19 #       define fsahtrt(i,j,k)  trcrat * ahtt(i,j,k) 
    20 #       define fsahtru(i,j,k)  trcrat * ahtu(i,j,k) 
    21 #       define fsahtrv(i,j,k)  trcrat * ahtv(i,j,k) 
    22 #       define fsahtrw(i,j,k)  trcrat * ahtw(i,j,k) 
    23 #elif defined key_traldf_c2d 
    24 !   'key_traldf_c2d' :                 aht: 2D coefficient 
    25 #       define fsahtrt(i,j,k)  trcrat * ahtt(i,j) 
    26 #       define fsahtru(i,j,k)  trcrat * ahtu(i,j) 
    27 #       define fsahtrv(i,j,k)  trcrat * ahtv(i,j) 
    28 #       define fsahtrw(i,j,k)  trcrat * ahtw(i,j) 
    29 #elif defined key_traldf_c1d 
    30 !   'key_traldf_c1d' :                 aht: 1D coefficient 
    31 #       define fsahtrt(i,j,k)  trcrat * ahtt(k) 
    32 #       define fsahtru(i,j,k)  trcrat * ahtu(k) 
    33 #       define fsahtrv(i,j,k)  trcrat * ahtv(k) 
    34 #       define fsahtrw(i,j,k)  trcrat * ahtw(k) 
    35 #else 
    36 !   Default option :             aht: Constant coefficient 
    37 #       define fsahtrt(i,j,k)  ahtrc0 
    38 #       define fsahtru(i,j,k)  ahtrc0 
    39 #       define fsahtrv(i,j,k)  ahtrc0 
    40 #       define fsahtrw(i,j,k)  ahtrc0 
    41 #endif 
    42  
    43     ! Eddy induced velocity  coefficient for passive tracer: 
    44     ! ======================================================== 
    45 #if defined key_traldf_c3d || defined key_off_degrad 
    46 !   'key_traldf_c3d' :                 eiv: 3D coefficient 
    47 #       define fsaeitru(i,j,k)  trcrat * aeiu(i,j,k) 
    48 #       define fsaeitrv(i,j,k)  trcrat * aeiv(i,j,k) 
    49 #       define fsaeitrw(i,j,k)  trcrat * aeiw(i,j,k) 
    50 #elif defined key_traldf_c2d 
    51 !   'key_traldf_c2d' :                 eiv: 2D coefficient 
    52 #       define fsaeitru(i,j,k)  trcrat * aeiu(i,j) 
    53 #       define fsaeitrv(i,j,k)  trcrat * aeiv(i,j) 
    54 #       define fsaeitrw(i,j,k)  trcrat * aeiw(i,j) 
    55 #elif defined key_traldf_c1d 
    56 !   'key_traldf_c1d' :                 eiv: 1D coefficient 
    57 #       define fsaeitru(i,j,k)  trcrat * aeiu(k) 
    58 #       define fsaeitrv(i,j,k)  trcrat * aeiv(k) 
    59 #       define fsaeitrw(i,j,k)  trcrat * aeiw(k) 
    60 #else 
    61 !   Default option :             eiv: Constant coefficient 
    62 #       define fsaeitru(i,j,k)  aeiv0 
    63 #       define fsaeitrv(i,j,k)  aeiv0 
    64 #       define fsaeitrw(i,j,k)  aeiv0 
    65 #endif 
    66     ! mixing for passive tracer: 
    67     ! ======================================================== 
    68 #if defined key_trc_zdfddm 
    69 !   'key_trc_zdfddm' :    avs  
    70 #       define fstravs(i,j,k)   avs(i,j,k) 
    71 #else 
    72 !   Defautl option :   avs = avt 
    73 #       define fstravs(i,j,k)   avt(i,j,k) 
    74 #endif 
    75  
    7614! ======================================================== 
    7715#include "domzgr_substitute.h90" 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90

    r2038 r2052  
    4545   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   tra   !: traceur concentration for next time step 
    4646   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trb   !: traceur concentration for before time step 
    47  
    48    !! isopycnal scheme for passive tracers 
    49    !! ------------------------------------   
    50    REAL(wp), PUBLIC ::   ahtrb0     !: background diffusivity coefficient for passive tracer (m2/s) 
    5147 
    5248#if ! defined key_zco 
Note: See TracChangeset for help on using the changeset viewer.