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

Changeset 2038


Ignore:
Timestamp:
2010-08-02T12:57:40+02:00 (14 years ago)
Author:
cetlod
Message:

Apply the merge to passive tracers, see ticket:693

Location:
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC
Files:
6 added
12 deleted
41 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/par_c14b.F90

    r1252 r2038  
    4040   LOGICAL, PUBLIC, PARAMETER ::   lk_c14b     = .TRUE.      !: C14 bomb flag  
    4141   INTEGER, PUBLIC, PARAMETER ::   jp_c14b     =  1          !: number of passive tracers 
    42    INTEGER, PUBLIC, PARAMETER ::   jp_c14b_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd') 
    43    INTEGER, PUBLIC, PARAMETER ::   jp_c14b_3d  =  1          !: additional 3d output arrays ('key_trc_diaadd') 
     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') 
    4444   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_trd =  0          !: number of sms trends for C14 
    4545    
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/trcini_c14b.F90

    r1581 r2038  
    5959      !!---------------------------------------------------------------------- 
    6060 
    61       IF(lwp) WRITE(numout,*) 
    62       IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' 
     61      !  Control consitency 
     62      CALL trc_ctl_c14b 
     63 
     64      IF(lwp) WRITE(numout,*) '' 
     65      IF(lwp) WRITE(numout,*) ' trc_ini_c14b: initialisation of Bomb C14 chemical model' 
    6366      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 
    6467 
     
    162165   END SUBROUTINE trc_ini_c14b 
    163166    
     167   SUBROUTINE trc_ctl_c14b 
     168      !!---------------------------------------------------------------------- 
     169      !!                     ***  ROUTINE trc_ctl_c14b  *** 
     170      !! 
     171      !! ** Purpose :   control the cpp options, namelist and files  
     172      !!---------------------------------------------------------------------- 
     173 
     174      IF(lwp) THEN 
     175          WRITE(numout,*) ' C14 bomb Model ' 
     176          WRITE(numout,*) ' ' 
     177      ENDIF 
     178 
     179      ! Check number of tracers 
     180      ! -----------------------    
     181      IF( jp_c14b > 1) THEN 
     182          IF(lwp) THEN 
     183              WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     184              WRITE (numout,*) ' =======   ============= ' 
     185              WRITE (numout,*)                             & 
     186              &   ' STOP, change jp_c14b to 1 in par_C14b module ' 
     187          END IF 
     188          STOP 'TRC_CTL' 
     189      END IF 
     190 
     191      ! Check tracer names 
     192      ! ------------------ 
     193      IF ( ctrcnm(jpc14) /= 'C14B' ) THEN 
     194           ctrcnm(jpc14)  = 'C14B' 
     195           ctrcnl(jpc14)  = 'Bomb C14 concentration' 
     196      ENDIF 
     197 
     198      IF(lwp) THEN 
     199         WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     200         WRITE (numout,*) ' =======   ============= ' 
     201         WRITE (numout,*) ' we force tracer names' 
     202         WRITE(numout,*) ' tracer nb: ',jpc14,' name = ',ctrcnm(jpc14), ctrcnl(jpc14) 
     203         WRITE(numout,*) ' ' 
     204      ENDIF 
     205 
     206      ! Check tracer units 
     207      ! ------------------ 
     208      IF( ctrcun(jpc14) /= 'ration' ) THEN 
     209          ctrcun(jpc14) = 'ration' 
     210          IF(lwp) THEN 
     211             WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     212             WRITE (numout,*) ' =======   ============= ' 
     213             WRITE (numout,*) ' we force tracer unit' 
     214             WRITE(numout,*) ' tracer  ',ctrcnm(jpc14), 'UNIT= ',ctrcun(jpc14) 
     215             WRITE(numout,*) ' ' 
     216          ENDIF 
     217       ENDIF 
     218      ! 
     219   END SUBROUTINE trc_ctl_c14b 
    164220#else 
    165221   !!---------------------------------------------------------------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/trcsms_c14b.F90

    r1736 r2038  
    1717   USE par_trc      ! TOP parameters 
    1818   USE trc          ! TOP variables 
    19    USE trdmld_trc_oce 
    20    USE trdmld_trc 
     19   USE trdmod_oce 
     20   USE trdmod_trc 
    2121   USE iom 
    2222 
     
    126126       zpv  ,        &      !: piston velocity  
    127127       zdemi, ztra 
    128 #if defined key_trc_dia3d  && defined key_iomput 
     128#if defined key_diatrc  && defined key_iomput 
    129129      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d 
    130130#endif 
     
    259259            qtr_c14(ji,jj) = -zpv * zsol * zpco2at                                   & 
    260260                 &                       * ( trb(ji,jj,1,jpc14) - zatmbc14(ji,jj) )  & 
    261 #if defined key_off_degrad 
     261#if defined key_degrad 
    262262                 &                       * facvol(ji,jj,1)                           & 
    263263#endif 
     
    270270            qint_c14(ji,jj) = qint_c14(ji,jj) + qtr_c14(ji,jj) * rdt 
    271271 
    272 # if defined key_trc_diaadd && ! defined key_iomput 
     272# if defined key_diatrc && ! defined key_iomput 
    273273            ! Save 2D diagnostics 
    274274            trc2d(ji,jj,jp_c14b0_2d    ) = qtr_c14 (ji,jj) 
     
    282282         DO jj = 1, jpj 
    283283            DO ji = 1, jpi 
    284 #if ! defined key_off_degrad 
     284#if ! defined key_degrad 
    285285               ztra = trn(ji,jj,jk,jpc14) * xaccum 
    286286#else 
     
    288288#endif 
    289289               tra(ji,jj,jk,jpc14) = tra(ji,jj,jk,jpc14) - ztra / rdt 
    290 #if defined key_trc_dia3d 
     290#if defined key_diatrc 
    291291               ! Save 3D diagnostics 
    292292# if ! defined key_iomput 
     
    300300      END DO 
    301301 
    302 #if defined key_trc_diaadd  && defined key_iomput 
     302#if defined key_diatrc  && defined key_iomput 
    303303      CALL iom_put( "qtrC14b"  , qtr_c14  ) 
    304304      CALL iom_put( "qintC14b" , qint_c14 ) 
    305305#endif 
    306 #if defined key_trc_dia3d  && defined key_iomput 
     306#if defined key_diatrc  && defined key_iomput 
    307307      CALL iom_put( "fdecay" , zw3d ) 
    308308#endif 
    309309      IF( l_trdtrc ) THEN 
    310          CALL trd_mod_trc( tra(:,:,:,jpc14), jpc14, jptrc_trd_sms, kt )   ! save trends 
     310         CALL trd_mod_trc( tra(:,:,:,jpc14), jpc14, jptra_trd_sms, kt )   ! save trends 
    311311      END IF 
    312312 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/par_cfc.F90

    r1253 r2038  
    3434   LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .TRUE.      !: CFC flag  
    3535   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  2          !: number of passive tracers 
    36    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd') 
    37    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_trc_diaadd') 
     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') 
    3838   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC 
    3939    
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcini_cfc.F90

    r1581 r2038  
    4646      REAL(wp) ::   zyy  ,  zyd 
    4747      !!---------------------------------------------------------------------- 
     48 
    4849 
    4950      IF(lwp) WRITE(numout,*) 
     
    9596      END DO 
    9697    
    97       DO jn = 31, 98      !   Read file 
    98          READ(inum,*) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
    99          WRITE(numout,'(f7.2, 4f8.2)' ) & 
     98      ! file starts in 1931 do jn represent the year in the century.jhh 
     99      ! Read file till the end 
     100      jn = 31 
     101      DO WHILE ( 1 /= 2 ) 
     102         READ(inum,*,END=100) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
     103         IF ( lwp) THEN 
     104           WRITE(numout,'(f7.2, 4f8.2)' ) & 
    100105            &         zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
     106         ENDIF 
     107         jn = jn + 1 
    101108      END DO 
     109 100  npyear = jn - 1 
     110      IF ( lwp) WRITE(numout,*) '    ', npyear ,' years read' 
    102111 
    103112      p_cfc(32,1:2,1) = 5.e-4      ! modify the values of the first years 
     
    138147 
    139148   END SUBROUTINE trc_ini_cfc 
    140     
     149  
    141150#else 
    142151   !!---------------------------------------------------------------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r1459 r2038  
    1818   USE par_trc      ! TOP parameters 
    1919   USE trc          ! TOP variables 
    20    USE trdmld_trc_oce 
    21    USE trdmld_trc 
     20   USE trdmod_oce 
     21   USE trdmod_trc 
    2222   USE iom 
    2323 
     
    3232   INTEGER , PUBLIC    ::   nyear_res      ! restoring time constant (year) 
    3333   INTEGER , PUBLIC    ::   nyear_beg      ! initial year (aa)  
     34   INTEGER , PUBLIC    ::   npyear         ! Number of years read in CFC1112 file 
    3435    
    3536   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc) ::   p_cfc    ! partial hemispheric pressure for CFC           
     
    9697      ! Temporal interpolation 
    9798      ! ---------------------- 
    98       iyear_beg = nyear + ( nyear_res - 1900 - nyear_beg  ) 
     99      iyear_beg = nyear - 1900 
    99100      IF ( nmonth <= 6 ) THEN 
    100          iyear_beg = iyear_beg - 2 + nyear_beg 
     101         iyear_beg = iyear_beg - 1 
    101102         im1       =  6 - nmonth + 1 
    102103         im2       =  6 + nmonth - 1 
    103104      ELSE 
    104          iyear_beg = iyear_beg - 1 + nyear_beg 
    105105         im1       = 12 - nmonth + 7 
    106106         im2       =      nmonth - 7 
     
    156156               ! trn in pico-mol/l idem qtr; ak in en m/s 
    157157               qtr_cfc(ji,jj,jl) = -zak_cfc * ( trb(ji,jj,1,jn) - zca_cfc )   & 
    158 #if defined key_off_degrad 
     158#if defined key_degrad 
    159159                  &                         * facvol(ji,jj,1)                           & 
    160160#endif 
     
    173173      !                                                     !----------------! 
    174174 
    175 #if defined key_trc_diaadd  
     175#if defined key_diatrc  
    176176      ! Save diagnostics , just for CFC11 
    177177# if ! defined key_iomput 
     
    187187          DO jn = jp_cfc0, jp_cfc1 
    188188            ztrcfc(:,:,:) = tra(:,:,:,jn) 
    189             CALL trd_mod_trc( ztrcfc, jn, jptrc_trd_sms, kt )   ! save trends 
     189            CALL trd_mod_trc( ztrcfc, jn, jptra_trd_sms, kt )   ! save trends 
    190190          END DO 
    191191      END IF 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/par_lobster.F90

    r1176 r2038  
    2020   LOGICAL, PUBLIC, PARAMETER ::   lk_lobster     = .TRUE.    !: LOBSTER flag  
    2121   INTEGER, PUBLIC, PARAMETER ::   jp_lobster     =  6        !: number of LOBSTER tracers 
    22    INTEGER, PUBLIC, PARAMETER ::   jp_lobster_2d  = 19        !: additional 2d output arrays ('key_trc_diaadd') 
    23    INTEGER, PUBLIC, PARAMETER ::   jp_lobster_3d  =  3        !: additional 3d output arrays ('key_trc_diaadd') 
     22   INTEGER, PUBLIC, PARAMETER ::   jp_lobster_2d  = 19        !: additional 2d output arrays ('key_diatrc') 
     23   INTEGER, PUBLIC, PARAMETER ::   jp_lobster_3d  =  3        !: additional 3d output arrays ('key_diatrc') 
    2424   INTEGER, PUBLIC, PARAMETER ::   jp_lobster_trd = 17       !: number of sms trends for LOBSTER 
    2525 
    2626   ! assign an index in trc arrays for each LOBSTER prognostic variables 
    27    INTEGER, PUBLIC, PARAMETER ::   jpdet          =  1        !: detritus                    [mmoleN/m3] 
    28    INTEGER, PUBLIC, PARAMETER ::   jpzoo          =  2        !: zooplancton concentration   [mmoleN/m3] 
    29    INTEGER, PUBLIC, PARAMETER ::   jpphy          =  3        !: phytoplancton concentration [mmoleN/m3] 
    30    INTEGER, PUBLIC, PARAMETER ::   jpno3          =  4        !: nitrate concentration       [mmoleN/m3] 
    31    INTEGER, PUBLIC, PARAMETER ::   jpnh4          =  5        !: ammonium concentration      [mmoleN/m3] 
    32    INTEGER, PUBLIC, PARAMETER ::   jpdom          =  6        !: dissolved organic matter    [mmoleN/m3] 
     27   INTEGER, PUBLIC, PARAMETER ::   jp_lob_det     =  1        !: detritus                    [mmoleN/m3] 
     28   INTEGER, PUBLIC, PARAMETER ::   jp_lob_zoo     =  2        !: zooplancton concentration   [mmoleN/m3] 
     29   INTEGER, PUBLIC, PARAMETER ::   jp_lob_phy     =  3        !: phytoplancton concentration [mmoleN/m3] 
     30   INTEGER, PUBLIC, PARAMETER ::   jp_lob_no3     =  4        !: nitrate concentration       [mmoleN/m3] 
     31   INTEGER, PUBLIC, PARAMETER ::   jp_lob_nh4     =  5        !: ammonium concentration      [mmoleN/m3] 
     32   INTEGER, PUBLIC, PARAMETER ::   jp_lob_dom     =  6        !: dissolved organic matter    [mmoleN/m3] 
    3333 
    3434   ! productive layer depth 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcbio.F90

    r1953 r2038  
    2020   USE lbclnk          !  
    2121   USE prtctl_trc      ! Print control for debbuging 
    22    USE trdmld_trc 
    23    USE trdmld_trc_oce 
     22   USE trdmod_trc 
    2423   USE iom 
    2524    
     
    5756      !!                                  source      sink 
    5857      !!         
    59       !!              IF 'key_trc_diabio' defined , the biogeochemical trends 
     58      !!              IF 'key_diabio' defined , the biogeochemical trends 
    6059      !!              for passive tracers are saved for futher diagnostics. 
    6160      !!--------------------------------------------------------------------- 
     
    7170      REAL(wp) ::   zfilpz, zfildz, zphya, zzooa, zno3a 
    7271      REAL(wp) ::   znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju 
    73 #if defined key_trc_diaadd 
     72#if defined key_diatrc 
    7473      REAL(wp) ::   ze3t 
    7574#endif 
    76 #if defined key_trc_diaadd && defined key_iomput 
     75#if defined key_diatrc && defined key_iomput 
    7776      REAL(wp), DIMENSION(jpi,jpj,17)     :: zw2d 
    78 # if defined key_trc_dia3d 
    7977      REAL(wp), DIMENSION(jpi,jpj,jpk,3) :: zw3d 
    80 # endif 
    8178#endif 
    8279      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::   ztrbio 
     
    9188 
    9289      fbod(:,:) = 0.e0 
    93 #if defined key_trc_diaadd && ! defined key_iomput 
     90#if defined key_diatrc && ! defined key_iomput 
    9491      DO jl = jp_lob0_2d, jp_lob1_2d 
    9592         trc2d(:,:,jl) = 0.e0 
    9693      END DO  
    9794#endif 
    98 #if defined key_trc_diaadd && defined key_iomput 
     95#if defined key_diatrc && defined key_iomput 
    9996      zw2d(:,:,:) = 0.e0 
    100 # if defined key_trc_dia3d 
    10197      zw3d(:,:,:,:) = 0.e0 
    102 # endif 
    10398#endif 
    10499 
     
    117112 
    118113               ! negative trophic variables DO not contribute to the fluxes 
    119                zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) ) 
    120                zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) ) 
    121                zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) ) 
    122                zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) ) 
    123                znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) ) 
    124                zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) ) 
     114               zdet = MAX( 0.e0, trn(ji,jj,jk,jp_lob_det) ) 
     115               zzoo = MAX( 0.e0, trn(ji,jj,jk,jp_lob_zoo) ) 
     116               zphy = MAX( 0.e0, trn(ji,jj,jk,jp_lob_phy) ) 
     117               zno3 = MAX( 0.e0, trn(ji,jj,jk,jp_lob_no3) ) 
     118               znh4 = MAX( 0.e0, trn(ji,jj,jk,jp_lob_nh4) ) 
     119               zdom = MAX( 0.e0, trn(ji,jj,jk,jp_lob_dom) ) 
    125120 
    126121               ! Limitations 
     
    194189 
    195190               ! tracer flux at totox-point added to the general trend 
    196                tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 
    197                tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 
    198                tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 
    199                tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 
    200                tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 
    201                tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
    202  
    203 #if defined key_trc_diabio 
     191               tra(ji,jj,jk,jp_lob_det) = tra(ji,jj,jk,jp_lob_det) + zdeta 
     192               tra(ji,jj,jk,jp_lob_zoo) = tra(ji,jj,jk,jp_lob_zoo) + zzooa 
     193               tra(ji,jj,jk,jp_lob_phy) = tra(ji,jj,jk,jp_lob_phy) + zphya 
     194               tra(ji,jj,jk,jp_lob_no3) = tra(ji,jj,jk,jp_lob_no3) + zno3a 
     195               tra(ji,jj,jk,jp_lob_nh4) = tra(ji,jj,jk,jp_lob_nh4) + znh4a 
     196               tra(ji,jj,jk,jp_lob_dom) = tra(ji,jj,jk,jp_lob_dom) + zdoma 
     197 
     198#if defined key_diabio 
    204199               trbio(ji,jj,jk,jp_lob0_trd     ) = zno3phy 
    205200               trbio(ji,jj,jk,jp_lob0_trd +  1) = znh4phy 
     
    238233                ENDIF 
    239234 
    240 #if defined key_trc_diaadd 
     235#if defined key_diatrc 
    241236               ! convert fluxes in per day 
    242237               ze3t = fse3t(ji,jj,jk) * 86400. 
     
    282277               zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 
    283278#endif 
    284 #if defined key_trc_dia3d  
     279#if defined key_diatrc  
    285280# if ! defined key_iomput 
    286281               trc3d(ji,jj,jk,jp_lob0_3d    ) = zno3phy * 86400      
     
    307302               !    trophic variables( det, zoo, phy, no3, nh4, dom) 
    308303               !       negative trophic variables DO not contribute to the fluxes 
    309                zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) ) 
    310                zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) ) 
    311                zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) ) 
    312                zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) ) 
    313                znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) ) 
    314                zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) ) 
     304               zdet = MAX( 0.e0, trn(ji,jj,jk,jp_lob_det) ) 
     305               zzoo = MAX( 0.e0, trn(ji,jj,jk,jp_lob_zoo) ) 
     306               zphy = MAX( 0.e0, trn(ji,jj,jk,jp_lob_phy) ) 
     307               zno3 = MAX( 0.e0, trn(ji,jj,jk,jp_lob_no3) ) 
     308               znh4 = MAX( 0.e0, trn(ji,jj,jk,jp_lob_nh4) ) 
     309               zdom = MAX( 0.e0, trn(ji,jj,jk,jp_lob_dom) ) 
    315310 
    316311               !    Limitations 
     
    363358 
    364359               ! tracer flux at totox-point added to the general trend 
    365                tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 
    366                tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 
    367                tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 
    368                tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 
    369                tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 
    370                tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
     360               tra(ji,jj,jk,jp_lob_det) = tra(ji,jj,jk,jp_lob_det) + zdeta 
     361               tra(ji,jj,jk,jp_lob_zoo) = tra(ji,jj,jk,jp_lob_zoo) + zzooa 
     362               tra(ji,jj,jk,jp_lob_phy) = tra(ji,jj,jk,jp_lob_phy) + zphya 
     363               tra(ji,jj,jk,jp_lob_no3) = tra(ji,jj,jk,jp_lob_no3) + zno3a 
     364               tra(ji,jj,jk,jp_lob_nh4) = tra(ji,jj,jk,jp_lob_nh4) + znh4a 
     365               tra(ji,jj,jk,jp_lob_dom) = tra(ji,jj,jk,jp_lob_dom) + zdoma 
    371366               ! 
    372 #if defined key_trc_diabio 
     367#if defined key_diabio 
    373368               trbio(ji,jj,jk,jp_lob0_trd     ) = zno3phy 
    374369               trbio(ji,jj,jk,jp_lob0_trd +  1) = znh4phy 
     
    406401                  !  trend number 17 in trcexp 
    407402                ENDIF 
    408 #if defined key_trc_diaadd && defined key_trc_dia3d 
     403#if defined key_diatrc 
    409404# if ! defined key_iomput 
    410405               trc3d(ji,jj,jk,jp_lob0_3d    ) =  zno3phy * 86400      
     
    421416      END DO 
    422417 
    423 #if defined key_trc_diaadd 
     418#if defined key_diatrc 
    424419      ! Lateral boundary conditions  
    425420# if ! defined key_iomput 
     
    452447#endif 
    453448 
    454 #if defined key_trc_diaadd && defined key_trc_dia3d 
     449#if defined key_diatrc 
    455450      ! Lateral boundary conditions  
    456451# if ! defined key_iomput 
     
    469464#endif 
    470465 
    471 #if defined key_trc_diabio 
     466#if defined key_diabio 
    472467      ! Lateral boundary conditions on trcbio 
    473468      DO jl = jp_lob0_trd, jp_lob1_trd 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcexp.F90

    r1953 r2038  
    2121   USE trctrp_lec 
    2222   USE prtctl_trc      ! Print control for debbuging 
    23    USE trdmld_trc 
    24    USE trdmld_trc_oce 
     23   USE trdmod_trc 
    2524   USE iom 
    2625 
     
    7574      IF( l_trdtrc )THEN 
    7675         ALLOCATE( ztrbio(jpi,jpj,jpk) ) 
    77          ztrbio(:,:,:) = tra(:,:,:,jpno3) 
     76         ztrbio(:,:,:) = tra(:,:,:,jp_lob_no3) 
    7877      ENDIF 
    7978 
     
    8281            DO ji = fs_2, fs_jpim1 
    8382               ze3t = 1. / fse3t(ji,jj,jk) 
    84                tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + ze3t * dmin3(ji,jj,jk) * fbod(ji,jj) 
     83               tra(ji,jj,jk,jp_lob_no3) = tra(ji,jj,jk,jp_lob_no3) + ze3t * dmin3(ji,jj,jk) * fbod(ji,jj) 
    8584            END DO 
    8685         END DO 
     
    9695         DO ji = fs_2, fs_jpim1 
    9796            ikbot = mbathy(ji,jj) - 1 
    98             tra(ji,jj,ikbot,jpno3) = tra(ji,jj,ikbot,jpno3) + sedlam * sedpocn(ji,jj) / fse3t(ji,jj,ikbot)  
     97            tra(ji,jj,ikbot,jp_lob_no3) = tra(ji,jj,ikbot,jp_lob_no3) + sedlam * sedpocn(ji,jj) / fse3t(ji,jj,ikbot)  
    9998            ! Deposition of organic matter in the sediment 
    100             zwork = vsed * trn(ji,jj,ikbot,jpdet) 
     99            zwork = vsed * trn(ji,jj,ikbot,jp_lob_det) 
    101100            sedpoca(ji,jj) = ( zwork + dminl(ji,jj) * fbod(ji,jj)   & 
    102101               &           - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * rdt 
     
    107106      DO jj = 2, jpjm1 
    108107         DO ji = fs_2, fs_jpim1 
    109             tra(ji,jj,1,jpno3) = tra(ji,jj,1,jpno3) + zgeolpoc * cmask(ji,jj) / areacot / fse3t(ji,jj,1) 
     108            tra(ji,jj,1,jp_lob_no3) = tra(ji,jj,1,jp_lob_no3) + zgeolpoc * cmask(ji,jj) / areacot / fse3t(ji,jj,1) 
    110109         END DO 
    111110      END DO 
     
    114113  
    115114      ! Oa & Ek: diagnostics depending on jpdia2d !          left as example 
    116 #if defined key_trc_diaadd 
     115#if defined key_diatrc 
    117116# if ! defined key_iomput 
    118117      trc2d(:,:,jp_lob0_2d + 18) = sedpocn(:,:) 
     
    124123      ! Leap-frog scheme (only in explicit case, otherwise the  
    125124      ! ----------------  time stepping is already done in trczdf) 
    126       IF( l_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd) ) THEN 
    127          zfact = 2. * rdttra(jk) * FLOAT( ndttrc )  
    128          IF( neuler == 0 .AND. kt == nittrc000 )   zfact = rdttra(jk) * FLOAT(ndttrc)  
     125      IF( ln_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd) ) THEN 
     126         zfact = 2. * rdttra(jk) * FLOAT( nn_dttrc )  
     127         IF( neuler == 0 .AND. kt == nittrc000 )   zfact = rdttra(jk) * FLOAT(nn_dttrc)  
    129128         sedpoca(:,:) =  sedpocb(:,:) + zfact * sedpoca(:,:)  
    130129      ENDIF 
     
    159158      ! 
    160159      IF( l_trdtrc ) THEN 
    161          ztrbio(:,:,:) = tra(:,:,:,jpno3) - ztrbio(:,:,:) 
     160         ztrbio(:,:,:) = tra(:,:,:,jp_lob_no3) - ztrbio(:,:,:) 
    162161         jl = jp_lob0_trd + 16 
    163162         CALL trd_mod_trc( ztrbio, jl, kt )   ! handle the trend 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcini_lobster.F90

    r1953 r2038  
    2020   USE oce_trc         ! ocean variables 
    2121   USE trc 
     22   USE lbclnk  
     23   USE lib_mpp  
    2224 
    2325   IMPLICIT NONE 
     
    4648      !!---------------------------------------------------------------------- 
    4749 
     50      !  Control consitency 
     51      CALL trc_ctl_lobster 
     52 
     53 
    4854      IF(lwp) WRITE(numout,*) 
    4955      IF(lwp) WRITE(numout,*) ' trc_ini_lobster :   LOBSTER biochemical model initialisation' 
    5056      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~' 
    51  
    5257 
    5358      ! initialization of fields for optical model 
     
    118123      ! Coastal mask  
    119124      ! ------------    
    120       cmask = 0.e0 
     125      cmask(:,:) = 0.e0 
    121126      DO ji = 2, jpi-1 
    122127         DO jj = 2, jpj-1 
     
    128133      END DO 
    129134 
    130       cmask( 1 ,:) = cmask(jpi-1,:) 
    131       cmask(jpi,:) = cmask( 2   ,:) 
    132  
    133       !!gm BUG !!!!!   not valid in mpp and also not valid for north fold   !!!!! 
     135      CALL lbc_lnk( cmask, 'T', 1. ) 
    134136 
    135137      ! Coastal surface 
    136138      ! --------------- 
    137139      areacot = 0.e0 
    138       DO ji = 2, jpi-1 
    139          DO jj = 2, jpj-1 
     140      DO ji = 1, jpi 
     141         DO jj = 1, jpj 
    140142            areacot = areacot + e1t(ji,jj) * e2t(ji,jj) * cmask(ji,jj) 
    141143         END DO 
    142144      END DO 
    143145      ! 
     146      IF( lk_mpp ) CALL mpp_sum( areacot )   ! sum over the global domain 
    144147 
    145148      ! Initialization of tracer concentration in case of  no restart  
     
    153156          
    154157         DO jk = 1, 7 
    155             trn(:,:,jk,jpdet) = 0.016 * tmask(:,:,jk) 
    156             trn(:,:,jk,jpzoo) = 0.018 * tmask(:,:,jk) 
    157             trn(:,:,jk,jpphy) = 0.036 * tmask(:,:,jk)  
    158             trn(:,:,jk,jpno3) = 1.e-5 * tmask(:,:,jk) 
    159             trn(:,:,jk,jpnh4) = 5.e-4 * tmask(:,:,jk) 
    160             trn(:,:,jk,jpdom) = 0.017 * tmask(:,:,jk) 
    161          END DO 
    162           
    163          trn(:,:, 8,jpdet) = 0.020   * tmask(:,:, 8) 
    164          trn(:,:, 8,jpzoo) = 0.027   * tmask(:,:, 8) 
    165          trn(:,:, 8,jpphy) = 0.041   * tmask(:,:, 8) 
    166          trn(:,:, 8,jpno3) = 0.00022 * tmask(:,:, 8) 
    167          trn(:,:, 8,jpnh4) = 0.0033  * tmask(:,:, 8) 
    168          trn(:,:, 8,jpdom) = 0.021   * tmask(:,:, 8) 
    169           
    170          trn(:,:, 9,jpdet) = 0.0556  * tmask(:,:, 9) 
    171          trn(:,:, 9,jpzoo) = 0.123   * tmask(:,:, 9) 
    172          trn(:,:, 9,jpphy) = 0.122   * tmask(:,:, 9) 
    173          trn(:,:, 9,jpno3) = 0.028   * tmask(:,:, 9) 
    174          trn(:,:, 9,jpnh4) = 0.024   * tmask(:,:, 9) 
    175          trn(:,:, 9,jpdom) = 0.06    * tmask(:,:, 9) 
    176           
    177          trn(:,:,10,jpdet) = 0.025   * tmask(:,:,10) 
    178          trn(:,:,10,jpzoo) = 0.016   * tmask(:,:,10) 
    179          trn(:,:,10,jpphy) = 0.029   * tmask(:,:,10) 
    180          trn(:,:,10,jpno3) = 2.462   * tmask(:,:,10) 
    181          trn(:,:,10,jpnh4) = 0.04    * tmask(:,:,10) 
    182          trn(:,:,10,jpdom) = 0.022   * tmask(:,:,10) 
    183           
    184          trn(:,:,11,jpdet) = 0.0057  * tmask(:,:,11) 
    185          trn(:,:,11,jpzoo) = 0.0005  * tmask(:,:,11) 
    186          trn(:,:,11,jpphy) = 0.0006  * tmask(:,:,11) 
    187          trn(:,:,11,jpno3) = 3.336   * tmask(:,:,11) 
    188          trn(:,:,11,jpnh4) = 0.005   * tmask(:,:,11) 
    189          trn(:,:,11,jpdom) = 0.004   * tmask(:,:,11) 
    190           
    191          trn(:,:,12,jpdet) = 0.002   * tmask(:,:,12) 
    192          trn(:,:,12,jpzoo) = 1.e-6   * tmask(:,:,12) 
    193          trn(:,:,12,jpphy) = 5.e-6   * tmask(:,:,12) 
    194          trn(:,:,12,jpno3) = 4.24    * tmask(:,:,12) 
    195          trn(:,:,12,jpnh4) = 0.001   * tmask(:,:,12) 
    196          trn(:,:,12,jpdom) = 3.e-5   * tmask(:,:,12) 
     158            trn(:,:,jk,jp_lob_det) = 0.016 * tmask(:,:,jk) 
     159            trn(:,:,jk,jp_lob_zoo) = 0.018 * tmask(:,:,jk) 
     160            trn(:,:,jk,jp_lob_phy) = 0.036 * tmask(:,:,jk)  
     161            trn(:,:,jk,jp_lob_no3) = 1.e-5 * tmask(:,:,jk) 
     162            trn(:,:,jk,jp_lob_nh4) = 5.e-4 * tmask(:,:,jk) 
     163            trn(:,:,jk,jp_lob_dom) = 0.017 * tmask(:,:,jk) 
     164         END DO 
     165          
     166         trn(:,:, 8,jp_lob_det) = 0.020   * tmask(:,:, 8) 
     167         trn(:,:, 8,jp_lob_zoo) = 0.027   * tmask(:,:, 8) 
     168         trn(:,:, 8,jp_lob_phy) = 0.041   * tmask(:,:, 8) 
     169         trn(:,:, 8,jp_lob_no3) = 0.00022 * tmask(:,:, 8) 
     170         trn(:,:, 8,jp_lob_nh4) = 0.0033  * tmask(:,:, 8) 
     171         trn(:,:, 8,jp_lob_dom) = 0.021   * tmask(:,:, 8) 
     172          
     173         trn(:,:, 9,jp_lob_det) = 0.0556  * tmask(:,:, 9) 
     174         trn(:,:, 9,jp_lob_zoo) = 0.123   * tmask(:,:, 9) 
     175         trn(:,:, 9,jp_lob_phy) = 0.122   * tmask(:,:, 9) 
     176         trn(:,:, 9,jp_lob_no3) = 0.028   * tmask(:,:, 9) 
     177         trn(:,:, 9,jp_lob_nh4) = 0.024   * tmask(:,:, 9) 
     178         trn(:,:, 9,jp_lob_dom) = 0.06    * tmask(:,:, 9) 
     179          
     180         trn(:,:,10,jp_lob_det) = 0.025   * tmask(:,:,10) 
     181         trn(:,:,10,jp_lob_zoo) = 0.016   * tmask(:,:,10) 
     182         trn(:,:,10,jp_lob_phy) = 0.029   * tmask(:,:,10) 
     183         trn(:,:,10,jp_lob_no3) = 2.462   * tmask(:,:,10) 
     184         trn(:,:,10,jp_lob_nh4) = 0.04    * tmask(:,:,10) 
     185         trn(:,:,10,jp_lob_dom) = 0.022   * tmask(:,:,10) 
     186          
     187         trn(:,:,11,jp_lob_det) = 0.0057  * tmask(:,:,11) 
     188         trn(:,:,11,jp_lob_zoo) = 0.0005  * tmask(:,:,11) 
     189         trn(:,:,11,jp_lob_phy) = 0.0006  * tmask(:,:,11) 
     190         trn(:,:,11,jp_lob_no3) = 3.336   * tmask(:,:,11) 
     191         trn(:,:,11,jp_lob_nh4) = 0.005   * tmask(:,:,11) 
     192         trn(:,:,11,jp_lob_dom) = 0.004   * tmask(:,:,11) 
     193          
     194         trn(:,:,12,jp_lob_det) = 0.002   * tmask(:,:,12) 
     195         trn(:,:,12,jp_lob_zoo) = 1.e-6   * tmask(:,:,12) 
     196         trn(:,:,12,jp_lob_phy) = 5.e-6   * tmask(:,:,12) 
     197         trn(:,:,12,jp_lob_no3) = 4.24    * tmask(:,:,12) 
     198         trn(:,:,12,jp_lob_nh4) = 0.001   * tmask(:,:,12) 
     199         trn(:,:,12,jp_lob_dom) = 3.e-5   * tmask(:,:,12) 
    197200          
    198201         DO jk=13,jpk 
    199             trn(:,:,jk,jpdet) = 0.e0 
    200             trn(:,:,jk,jpzoo) = 0.e0 
    201             trn(:,:,jk,jpphy) = 0.e0 
    202             trn(:,:,jk,jpnh4) = 0.e0 
    203             trn(:,:,jk,jpdom) = 0.e0 
    204          END DO 
    205           
    206          trn(:,:,13,jpno3) = 5.31  * tmask(:,:,13) 
    207          trn(:,:,14,jpno3) = 6.73  * tmask(:,:,14) 
    208          trn(:,:,15,jpno3) = 8.32  * tmask(:,:,15) 
    209          trn(:,:,16,jpno3) = 10.13 * tmask(:,:,16) 
    210          trn(:,:,17,jpno3) = 11.95 * tmask(:,:,17) 
    211          trn(:,:,18,jpno3) = 13.57 * tmask(:,:,18) 
    212          trn(:,:,19,jpno3) = 15.08 * tmask(:,:,19) 
    213          trn(:,:,20,jpno3) = 16.41 * tmask(:,:,20) 
    214          trn(:,:,21,jpno3) = 17.47 * tmask(:,:,21) 
    215          trn(:,:,22,jpno3) = 18.29 * tmask(:,:,22) 
    216          trn(:,:,23,jpno3) = 18.88 * tmask(:,:,23) 
    217          trn(:,:,24,jpno3) = 19.30 * tmask(:,:,24) 
    218          trn(:,:,25,jpno3) = 19.68 * tmask(:,:,25) 
    219          trn(:,:,26,jpno3) = 19.91 * tmask(:,:,26) 
    220          trn(:,:,27,jpno3) = 19.99 * tmask(:,:,27) 
    221          trn(:,:,28,jpno3) = 20.01 * tmask(:,:,28) 
    222          trn(:,:,29,jpno3) = 20.01 * tmask(:,:,29) 
    223          trn(:,:,30,jpno3) = 20.01 * tmask(:,:,30) 
     202            trn(:,:,jk,jp_lob_det) = 0.e0 
     203            trn(:,:,jk,jp_lob_zoo) = 0.e0 
     204            trn(:,:,jk,jp_lob_phy) = 0.e0 
     205            trn(:,:,jk,jp_lob_nh4) = 0.e0 
     206            trn(:,:,jk,jp_lob_dom) = 0.e0 
     207         END DO 
     208          
     209         trn(:,:,13,jp_lob_no3) = 5.31  * tmask(:,:,13) 
     210         trn(:,:,14,jp_lob_no3) = 6.73  * tmask(:,:,14) 
     211         trn(:,:,15,jp_lob_no3) = 8.32  * tmask(:,:,15) 
     212         trn(:,:,16,jp_lob_no3) = 10.13 * tmask(:,:,16) 
     213         trn(:,:,17,jp_lob_no3) = 11.95 * tmask(:,:,17) 
     214         trn(:,:,18,jp_lob_no3) = 13.57 * tmask(:,:,18) 
     215         trn(:,:,19,jp_lob_no3) = 15.08 * tmask(:,:,19) 
     216         trn(:,:,20,jp_lob_no3) = 16.41 * tmask(:,:,20) 
     217         trn(:,:,21,jp_lob_no3) = 17.47 * tmask(:,:,21) 
     218         trn(:,:,22,jp_lob_no3) = 18.29 * tmask(:,:,22) 
     219         trn(:,:,23,jp_lob_no3) = 18.88 * tmask(:,:,23) 
     220         trn(:,:,24,jp_lob_no3) = 19.30 * tmask(:,:,24) 
     221         trn(:,:,25,jp_lob_no3) = 19.68 * tmask(:,:,25) 
     222         trn(:,:,26,jp_lob_no3) = 19.91 * tmask(:,:,26) 
     223         trn(:,:,27,jp_lob_no3) = 19.99 * tmask(:,:,27) 
     224         trn(:,:,28,jp_lob_no3) = 20.01 * tmask(:,:,28) 
     225         trn(:,:,29,jp_lob_no3) = 20.01 * tmask(:,:,29) 
     226         trn(:,:,30,jp_lob_no3) = 20.01 * tmask(:,:,30) 
    224227 
    225228# elif defined key_gyre 
     
    227230         ! ---------------------- 
    228231         ! here:  init NO3=f(density) by asklod AS Kremeur 2005-07 
    229          trn(:,:,:,jpdet) = 0.1 * tmask(:,:,:) 
    230          trn(:,:,:,jpzoo) = 0.1 * tmask(:,:,:) 
    231          trn(:,:,:,jpnh4) = 0.1 * tmask(:,:,:) 
    232          trn(:,:,:,jpphy) = 0.1 * tmask(:,:,:) 
    233          trn(:,:,:,jpdom) = 1.0 * tmask(:,:,:) 
     232         trn(:,:,:,jp_lob_det) = 0.1 * tmask(:,:,:) 
     233         trn(:,:,:,jp_lob_zoo) = 0.1 * tmask(:,:,:) 
     234         trn(:,:,:,jp_lob_nh4) = 0.1 * tmask(:,:,:) 
     235         trn(:,:,:,jp_lob_phy) = 0.1 * tmask(:,:,:) 
     236         trn(:,:,:,jp_lob_dom) = 1.0 * tmask(:,:,:) 
    234237         DO jk = 1, jpk 
    235238            DO jj = 1, jpj 
    236239               DO ji = 1, jpi 
    237240                  IF( rhd(ji,jj,jk) <= 24.5e-3 ) THEN 
    238                      trn(ji,jj,jk,jpno3) = 2. * tmask(ji,jj,jk) 
     241                     trn(ji,jj,jk,jp_lob_no3) = 2. * tmask(ji,jj,jk) 
    239242                  ELSE 
    240                      trn(ji,jj,jk,jpno3) = ( 15.55 * ( rhd(ji,jj,jk) * 1000. ) - 380.11 ) * tmask(ji,jj,jk) 
     243                     trn(ji,jj,jk,jp_lob_no3) = ( 15.55 * ( rhd(ji,jj,jk) * 1000. ) - 380.11 ) * tmask(ji,jj,jk) 
    241244                  ENDIF 
    242245               END DO 
     
    259262   END SUBROUTINE trc_ini_lobster 
    260263 
     264   SUBROUTINE trc_ctl_lobster 
     265      !!---------------------------------------------------------------------- 
     266      !!                     ***  ROUTINE trc_ctl_lobster  *** 
     267      !! 
     268      !! ** Purpose :   control the cpp options, namelist and files  
     269      !!---------------------------------------------------------------------- 
     270      INTEGER :: jl, jn 
     271 
     272      IF(lwp) WRITE(numout,*) 
     273      IF(lwp) WRITE(numout,*) ' use LOBSTER biological model ' 
     274 
     275      ! Check number of tracers 
     276      ! ----------------------- 
     277      IF (jp_lobster /= 6) THEN 
     278          IF (lwp) THEN 
     279              WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     280              WRITE (numout,*) ' =======   ============= ' 
     281              WRITE (numout,*)                             & 
     282              &   ' STOP, change jp_lobster to 6 in '           & 
     283              &   ,'par_lobster.F90 ' 
     284          END IF 
     285          STOP 'TRC_CTL' 
     286      END IF 
     287      ! Check tracer names 
     288      ! ------------------ 
     289      IF(   ctrcnm(jp_lob_det) /= 'DET' .OR. ctrcnm(jp_lob_zoo) /= 'ZOO' .OR.   & 
     290         &  ctrcnm(jp_lob_phy) /= 'PHY' .OR. ctrcnm(jp_lob_no3) /= 'NO3' .OR.   & 
     291         &  ctrcnm(jp_lob_nh4) /= 'NH4' .OR. ctrcnm(jp_lob_dom) /= 'DOM' .OR.   & 
     292         &  ctrcnl(jp_lob_det) /= 'Detritus'                        .OR.   & 
     293         &  ctrcnl(jp_lob_zoo) /= 'Zooplankton concentration'       .OR.   & 
     294         &  ctrcnl(jp_lob_phy) /= 'Phytoplankton concentration'     .OR.   & 
     295         &  ctrcnl(jp_lob_no3) /= 'Nitrate concentration'           .OR.   & 
     296         &  ctrcnl(jp_lob_nh4) /= 'Ammonium concentration'          .OR.   & 
     297         &  ctrcnl(jp_lob_dom) /= 'Dissolved organic matter' ) THEN 
     298         ctrcnm(jp_lob_det)='DET' 
     299         ctrcnl(jp_lob_det)='Detritus' 
     300         ctrcnm(jp_lob_zoo)='ZOO' 
     301         ctrcnl(jp_lob_zoo)='Zooplankton concentration' 
     302         ctrcnm(jp_lob_phy)='PHY' 
     303         ctrcnl(jp_lob_phy)='Phytoplankton concentration' 
     304         ctrcnm(jp_lob_no3)='NO3' 
     305         ctrcnl(jp_lob_no3)='Nitrate concentration' 
     306         ctrcnm(jp_lob_nh4)='NH4' 
     307         ctrcnl(jp_lob_nh4)='Ammonium concentration' 
     308         ctrcnm(jp_lob_dom)='DOM' 
     309         ctrcnl(jp_lob_dom)='Dissolved organic matter' 
     310         IF(lwp) THEN 
     311            WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     312            WRITE (numout,*) ' =======   ============= ' 
     313            WRITE (numout,*) ' we force tracer names' 
     314            DO jl = 1, jp_lobster 
     315               jn = jp_lob0 + jl - 1 
     316               WRITE(numout,*) ' tracer nb: ',jn,' name = ',ctrcnm(jn), ctrcnl(jn) 
     317            END DO 
     318            WRITE(numout,*) ' ' 
     319         ENDIF 
     320      ENDIF 
     321 
     322      ! Check tracer units 
     323      DO jl = 1, jp_lobster 
     324         jn = jp_lob0 + jl - 1 
     325         IF( ctrcun(jn) /= 'mmole-N/m3') THEN 
     326            ctrcun(jn) = 'mmole-N/m3' 
     327            IF(lwp) THEN 
     328               WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     329               WRITE (numout,*) ' =======   ============= ' 
     330               WRITE (numout,*) ' we force tracer unit' 
     331               WRITE(numout,*) ' tracer  ',ctrcnm(jn), 'UNIT= ',ctrcun(jn) 
     332            ENDIF 
     333         ENDIF 
     334      END DO 
     335 
     336   END SUBROUTINE trc_ctl_lobster 
     337 
    261338#else 
    262339   !!---------------------------------------------------------------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcopt.F90

    r1953 r2038  
    7878      zparg  (:,:,1) = zpar0m(:,:) * 0.5 
    7979 
    80 !!gm optimisation : introduce zcoef and LOG computed once for all 
    81  
    8280      !                                          ! Photosynthetically Available Radiation (PAR) 
    8381      zcoef = 12 * redf / rcchl / rpig           ! -------------------------------------- 
     
    8583         DO jj = 1, jpj 
    8684            DO ji = 1, jpi 
    87 !!gm           zpig = MAX( TINY(0.), trn(ji,jj,jk-1,jpphy) ) * zcoef 
    88 !!gm           zkr  = xkr0 + xkrp * EXP( xlr * LOG(zpig) ) 
    89 !!gm           zkg  = xkg0 + xkgp * EXP( xlg * LOG(zpig) ) 
    90                zpig = LOG(  MAX( TINY(0.), trn(ji,jj,jk-1,jpphy) ) * zcoef  ) 
     85               zpig = LOG(  MAX( TINY(0.), trn(ji,jj,jk-1,jp_lob_phy) ) * zcoef  ) 
    9186               zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
    9287               zkg  = xkg0 + xkgp * EXP( xlg * zpig ) 
     
    9691        END DO 
    9792      END DO 
    98 !!gm optimisation : suppress one division 
    9993      DO jk = 1, jpkm1                                ! mean par at t-levels 
    10094         DO jj = 1, jpj 
    10195            DO ji = 1, jpi 
    102                zpig = LOG(  MAX( TINY(0.), trn(ji,jj,jk,jpphy) ) * zcoef  ) 
     96               zpig = LOG(  MAX( TINY(0.), trn(ji,jj,jk,jp_lob_phy) ) * zcoef  ) 
    10397               zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
    10498               zkg  = xkg0 + xkgp * EXP( xlg * zpig ) 
    105 !!gm           zparr(ji,jj,jk) = zparr(ji,jj,jk) / zkr / fse3t(ji,jj,jk) * ( 1 - EXP( -zkr * fse3t(ji,jj,jk) ) ) 
    106 !!gm           zparg(ji,jj,jk) = zparg(ji,jj,jk) / zkg / fse3t(ji,jj,jk) * ( 1 - EXP( -zkg * fse3t(ji,jj,jk) ) ) 
    10799               zparr(ji,jj,jk) = zparr(ji,jj,jk) / ( zkr * fse3t(ji,jj,jk) ) * ( 1 - EXP( -zkr * fse3t(ji,jj,jk) ) ) 
    108100               zparg(ji,jj,jk) = zparg(ji,jj,jk) / ( zkg * fse3t(ji,jj,jk) ) * ( 1 - EXP( -zkg * fse3t(ji,jj,jk) ) ) 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcrst_lobster.F90

    r1953 r2038  
    4343      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    4444 
    45       CALL iom_get( knum, jpdom_autoglo, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:) )  
    46       CALL iom_get( knum, jpdom_autoglo, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:) )  
     45      CALL iom_get( knum, jpdom_autoglo, 'SEDB'//ctrcnm(jp_lob_det), sedpocb(:,:) )  
     46      CALL iom_get( knum, jpdom_autoglo, 'SEDN'//ctrcnm(jp_lob_det), sedpocn(:,:) )  
    4747 
    4848   END SUBROUTINE trc_rst_read_lobster 
     
    6464      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    6565 
    66       CALL iom_rstput( kt, kitrst, knum, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:) ) 
    67       CALL iom_rstput( kt, kitrst, knum, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:) ) 
     66      CALL iom_rstput( kt, kitrst, knum, 'SEDB'//ctrcnm(jp_lob_det), sedpocb(:,:) ) 
     67      CALL iom_rstput( kt, kitrst, knum, 'SEDN'//ctrcnm(jp_lob_det), sedpocn(:,:) ) 
    6868 
    6969   END SUBROUTINE trc_rst_wri_lobster 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcsed.F90

    r1953 r2038  
    1818   USE sms_lobster 
    1919   USE lbclnk 
    20    USE trdmld_trc 
    21    USE trdmld_trc_oce 
     20   USE trdmod_trc 
    2221   USE iom 
    2322   USE prtctl_trc      ! Print control for debbuging 
     
    5352      !!                             tra = tra + dz(trn wn) 
    5453      !!         
    55       !!              IF 'key_trc_diabio' is defined, the now vertical advection 
     54      !!              IF 'key_diabio' is defined, the now vertical advection 
    5655      !!              trend of passive tracers is saved for futher diagnostics. 
    5756      !!--------------------------------------------------------------------- 
     
    6160      REAL(wp) ::   ztra 
    6261      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwork 
    63 #if defined key_trc_diaadd && defined key_iomput 
     62#if defined key_diatrc && defined key_iomput 
    6463      REAL(wp), DIMENSION(jpi,jpj) ::  zw2d 
    6564#endif 
     
    7776      ! -------------------------------------------- 
    7877 
    79       ! for detritus sedimentation only - jpdet 
     78      ! for detritus sedimentation only - jp_lob_det 
    8079      zwork(:,:,1  ) = 0.e0      ! surface value set to zero 
    8180      zwork(:,:,jpk) = 0.e0      ! bottom value  set to zero 
    8281 
    83 #if defined key_trc_diaadd && defined key_iomput 
     82#if defined key_diatrc && defined key_iomput 
    8483      zw2d(:,:) = 0. 
    8584# endif 
     
    8786      IF( l_trdtrc )THEN 
    8887         ALLOCATE( ztrbio(jpi,jpj,jpk) ) 
    89          ztrbio(:,:,:) = tra(:,:,:,jpdet) 
     88         ztrbio(:,:,:) = tra(:,:,:,jp_lob_det) 
    9089      ENDIF 
    9190 
    9291      ! tracer flux at w-point: we use -vsed (downward flux)  with simplification : no e1*e2 
    9392      DO jk = 2, jpkm1 
    94          zwork(:,:,jk) = -vsed * trn(:,:,jk-1,jpdet) 
     93         zwork(:,:,jk) = -vsed * trn(:,:,jk-1,jp_lob_det) 
    9594      END DO 
    9695 
     
    10099            DO ji = 1,jpi 
    101100               ztra  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
    102                tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + ztra 
    103 #if defined key_trc_diabio 
     101               tra(ji,jj,jk,jp_lob_det) = tra(ji,jj,jk,jp_lob_det) + ztra 
     102#if defined key_diabio 
    104103               trbio(ji,jj,jk,jp_lob0_trd + 7) = ztra 
    105104#endif 
    106 #if defined key_trc_diaadd 
     105#if defined key_diatrc 
    107106# if ! defined key_iomput 
    108107               trc2d(ji,jj,jp_lob0_2d + 7) = trc2d(ji,jj,jp_lob0_2d + 7) + ztra * fse3t(ji,jj,jk) * 86400. 
     
    115114      END DO 
    116115 
    117 #if defined key_trc_diabio 
     116#if defined key_diabio 
    118117      jl = jp_lob0_trd + 7 
    119118      CALL lbc_lnk (trbio(:,:,1,jl), 'T', 1. )    ! Lateral boundary conditions on trcbio 
    120119#endif 
    121 #if defined key_trc_diaadd 
     120#if defined key_diatrc 
    122121# if ! defined key_iomput 
    123122      jl = jp_lob0_2d + 7 
     
    131130 
    132131      IF( l_trdtrc ) THEN 
    133          ztrbio(:,:,:) = tra(:,:,:,jpdet) - ztrbio(:,:,:) 
     132         ztrbio(:,:,:) = tra(:,:,:,jp_lob_det) - ztrbio(:,:,:) 
    134133         jl = jp_lob0_trd + 7 
    135134         CALL trd_mod_trc( ztrbio, jl, kt )   ! handle the trend 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/trcsms_lobster.F90

    r1255 r2038  
    1919   USE trcsed 
    2020   USE trcexp 
    21    USE trdmld_trc_oce 
     21   USE trdmod_oce 
     22   USE trdmod_trc 
    2223   USE trdmld_trc 
    2324 
     
    5051 
    5152      CALL trc_opt( kt )      ! optical model 
    52  
    5353      CALL trc_bio( kt )      ! biological model 
    54  
    5554      CALL trc_sed( kt )      ! sedimentation model 
    56  
    5755      CALL trc_exp( kt )      ! export 
    5856 
     
    6058          DO jn = jp_lob0, jp_lob1 
    6159            ztrlob(:,:,:) = tra(:,:,:,jn) 
    62             CALL trd_mod_trc( ztrlob, jn, jptrc_trd_sms, kt )   ! save trends 
     60            CALL trd_mod_trc( ztrlob, jn, jptra_trd_sms, kt )   ! save trends 
    6361          END DO 
    6462      END IF 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90

    r1253 r2038  
    4444   LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc     = .TRUE.   !: PTS flag  
    4545   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_trc_diaadd') 
    47    INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: additional 3d output arrays ('key_trc_diaadd') 
     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') 
    4848   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_trd =  0       !: number of sms trends for MY_TRC 
    4949 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/trcini_my_trc.F90

    r1542 r2038  
    3737      !! ** Method  : - Read the namcfc namelist and check the parameter values 
    3838      !!---------------------------------------------------------------------- 
    39       !!---------------------------------------------------------------------- 
     39 
     40      !  Control consitency 
     41      CALL trc_ctl_my_trc 
    4042 
    4143      IF(lwp) WRITE(numout,*) 
     
    4850   END SUBROUTINE trc_ini_my_trc 
    4951    
     52   SUBROUTINE trc_ctl_my_trc 
     53      !!---------------------------------------------------------------------- 
     54      !!                     ***  ROUTINE trc_ctl_pisces  *** 
     55      !! 
     56      !! ** Purpose :   control the cpp options, namelist and files  
     57      !!---------------------------------------------------------------------- 
     58 
     59      INTEGER :: jl, jn 
     60 
     61      IF(lwp) WRITE(numout,*) 
     62      IF(lwp) WRITE(numout,*) ' use COLOR tracer ' 
     63 
     64      DO jl = 1, jp_my_trc 
     65         jn = jp_myt0 + jl - 1 
     66         WRITE(ctrcnm(jn),'(a,i2.2)') 'CLR',jn 
     67         ctrcnl(jn)='Color concentration' 
     68         ctrcun(jn)='N/A' 
     69      END DO 
     70 
     71 
     72   END SUBROUTINE trc_ctl_my_trc 
     73 
    5074#else 
    5175   !!---------------------------------------------------------------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/trcsms_my_trc.F90

    r1255 r2038  
    1515   USE oce_trc         ! Ocean variables 
    1616   USE trc             ! TOP variables 
    17    USE trdmld_trc_oce 
    18    USE trdmld_trc 
     17   USE trdmod_oce 
     18   USE trdmod_trc 
    1919 
    2020   IMPLICIT NONE 
     
    6464          DO jn = jp_myt0, jp_myt1 
    6565            ztrmyt(:,:,:) = tra(:,:,:,jn) 
    66             CALL trd_mod_trc( ztrmyt, jn, jptrc_trd_sms, kt )   ! save trends 
     66            CALL trd_mod_trc( ztrmyt, jn, jptra_trd_sms, kt )   ! save trends 
    6767          END DO 
    6868      END IF 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zflx.F90

    r1970 r2038  
    7575      REAL(wp) ::   zph, zah2, zbot, zdic, zalk, zsch_o2, zalka, zsch_co2 
    7676      REAL(wp), DIMENSION(jpi,jpj) ::   zkgco2, zkgo2, zh2co3 
    77 #if defined key_trc_diaadd && defined key_iomput 
     77#if defined key_diatrc && defined key_iomput 
    7878      REAL(wp), DIMENSION(jpi,jpj) ::  zcflx, zoflx, zkg, zdpco2, zdpo2 
    7979#endif 
     
    138138            ! Compute the piston velocity for O2 and CO2 
    139139            zkgwan = 0.3 * zws  + 2.5 * ( 0.5246 + 0.016256 * ztc + 0.00049946  * ztc2 ) 
    140 # if defined key_off_degrad 
     140# if defined key_degrad 
    141141            zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) * facvol(ji,jj,1) 
    142142#else 
     
    169169            tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy) + ( zfld16 - zflu16 ) / fse3t(ji,jj,1) 
    170170 
    171 #if defined key_trc_diaadd  
     171#if defined key_diatrc  
    172172            ! Save diagnostics 
    173173#  if ! defined key_iomput 
     
    228228      ENDIF 
    229229 
    230 # if defined key_trc_diaadd && defined key_iomput 
     230# if defined key_diatrc && defined key_iomput 
    231231      CALL iom_put( "Cflx" , zcflx  ) 
    232232      CALL iom_put( "Oflx" , zoflx  ) 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zlys.F90

    r1970 r2038  
    6565      REAL(wp) ::   zomegaca, zexcess, zexcess0 
    6666      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zco3 
    67 #if defined key_trc_dia3d && defined key_iomput 
     67#if defined key_diatrc && defined key_iomput 
    6868      REAL(wp) ::   zrfact2 
    6969      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss 
     
    7676      zco3(:,:,:) = 0. 
    7777 
    78 # if defined key_trc_dia3d && defined key_iomput 
     78# if defined key_diatrc && defined key_iomput 
    7979      zcaldiss(:,:,:) = 0. 
    8080# endif 
     
    146146               !       (ACCORDING TO THIS FORMULATION ALSO SOME PARTICULATE 
    147147               !       CACO3 GETS DISSOLVED EVEN IN THE CASE OF OVERSATURATION) 
    148 # if defined key_off_degrad 
     148# if defined key_degrad 
    149149              zdispot = kdca * zexcess * trn(ji,jj,jk,jpcal) * facvol(ji,jj,jk) 
    150150# else 
     
    160160              tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) +      zremco3 
    161161 
    162 # if defined key_trc_dia3d && defined key_iomput 
     162# if defined key_diatrc && defined key_iomput 
    163163              zcaldiss(ji,jj,jk) = zremco3  ! calcite dissolution 
    164164# endif 
     
    167167      END DO 
    168168 
    169 # if defined key_trc_diaadd &&  defined key_trc_dia3d 
     169# if defined key_diatrc 
    170170#  if ! defined key_iomput 
    171171      trc3d(:,:,:,jp_pcs0_3d    ) = hi  (:,:,:)          * tmask(:,:,:) 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zmeso.F90

    r1970 r2038  
    7474      REAL(wp),DIMENSION(jpi,jpj,jpk) :: zgrazfff,zgrazffe 
    7575      CHARACTER (len=25) :: charout 
    76 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
     76#if defined key_diatrc && defined key_iomput 
    7777      REAL(wp) :: zrfact2 
    7878#endif 
     
    102102 
    103103               zcompam = MAX( ( trn(ji,jj,jk,jpmes) - 1.e-9 ), 0.e0 ) 
    104 # if defined key_off_degrad 
     104# if defined key_degrad 
    105105               zfact   = zstep * tgfunc(ji,jj,jk) * zcompam * facvol(ji,jj,jk) 
    106106# else 
     
    140140 
    141141               zgraze2 = grazrat2 * zstep * Tgfunc2(ji,jj,jk) * zdenom    & 
    142 # if defined key_off_degrad 
     142# if defined key_degrad 
    143143                  &     * facvol(ji,jj,jk)          & 
    144144# endif 
     
    168168!    ---------------------------------- 
    169169# if ! defined key_kriest 
    170 #   if ! defined key_off_degrad 
     170#   if ! defined key_degrad 
    171171               zgrazffe(ji,jj,jk) = grazflux * zstep * wsbio4(ji,jj,jk)          & 
    172172                  &                 * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
     
    181181!!               zgrazffe(ji,jj,jk) = 0.5 * 1.3e-2 / 5.5e-7 * 0.3 * zstep * wsbio3(ji,jj,jk)     & 
    182182!!                  &     * tgfunc(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes)    & 
    183 #  if defined key_off_degrad 
     183#  if defined key_degrad 
    184184!!                  &     * facvol(ji,jj,jk)          & 
    185185#  endif 
     
    187187!!--------------------------- KRIEST3 ------------------------------------------- 
    188188 
    189 #  if ! defined key_off_degrad 
     189#  if ! defined key_degrad 
    190190              zgrazffe(ji,jj,jk) = grazflux * zstep * wsbio3(ji,jj,jk)     & 
    191191                  &                * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
     
    202202      END DO 
    203203       
    204 #if defined key_trc_dia3d 
     204#if defined key_diatrc 
    205205      ! Total grazing ( grazing by microzoo is already computed in p4zmicro )  
    206206      grazing(:,:,:) = grazing(:,:,:) + (  zgrazd  (:,:,:) + zgrazz  (:,:,:) + zgrazn(:,:,:) & 
     
    281281 
    282282               zprcaca = xfracal(ji,jj,jk) * unass2 * zgrazn(ji,jj,jk) 
    283 #if defined key_trc_dia3d 
     283#if defined key_diatrc 
    284284               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    285285#endif 
     
    314314      END DO 
    315315      ! 
    316 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
     316#if defined key_diatrc && defined key_iomput 
    317317      zrfact2 = 1.e3 * rfact2r 
    318318      ! Total grazing of phyto by zoo 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zmicro.F90

    r1970 r2038  
    8484      zgrazpf(:,:,:) = 0. 
    8585 
    86 #if defined key_trc_dia3d 
     86#if defined key_diatrc 
    8787      grazing(:,:,:) = 0.  !: Initialisation of  grazing 
    8888#endif 
     
    9595 
    9696               zcompaz = MAX( ( trn(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 ) 
    97 # if defined key_off_degrad 
     97# if defined key_degrad 
    9898               zfact   = zstep * tgfunc(ji,jj,jk) * zcompaz *facvol(ji,jj,jk) 
    9999# else 
     
    132132 
    133133               zgraze = grazrat * zstep * tgfunc(ji,jj,jk)     & 
    134 # if defined key_off_degrad 
     134# if defined key_degrad 
    135135                  &      * facvol(ji,jj,jk)         & 
    136136# endif 
     
    155155      END DO 
    156156       
    157 #if defined key_trc_dia3d 
     157#if defined key_diatrc 
    158158      ! Grazing by microzooplankton 
    159159      grazing(:,:,:) = grazing(:,:,:) + zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:)  
     
    220220                 &     - (1.-unass) * zgrazmf(ji,jj,jk) 
    221221               zprcaca = xfracal(ji,jj,jk) * unass * zgrazp(ji,jj,jk) 
    222 #if defined key_trc_dia3d 
     222#if defined key_diatrc 
    223223               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    224224#endif 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zmort.F90

    r1953 r2038  
    8989 
    9090 
    91 #if defined key_trc_dia3d 
     91#if defined key_diatrc 
    9292     prodcal(:,:,:) = 0.  !: Initialisation of calcite production variable 
    9393#endif 
     
    103103!     ----------------------------------------------------------------- 
    104104               zrespp = wchl * 1.e6 * zstep * xdiss(ji,jj,jk)   & 
    105 # if defined key_off_degrad 
     105# if defined key_degrad 
    106106                  &        * facvol(ji,jj,jk)     & 
    107107# endif 
     
    113113!     ---------------------------------------------------------- 
    114114               ztortp = mprat * zstep * trn(ji,jj,jk,jpphy)          & 
    115 # if defined key_off_degrad 
     115# if defined key_degrad 
    116116                  &          * facvol(ji,jj,jk)     & 
    117117# endif 
     
    130130               tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zmortp * zfactfe 
    131131               zprcaca = xfracal(ji,jj,jk) * zmortp 
    132 #if defined key_trc_dia3d 
     132#if defined key_diatrc 
    133133               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    134134#endif 
     
    192192 
    193193               zrespp2  = 1.e6 * zstep * (  wchl + wchld * ( 1.- xlimdia(ji,jj,jk) )  )    & 
    194 # if defined key_off_degrad 
     194# if defined key_degrad 
    195195                  &       * facvol(ji,jj,jk)       & 
    196196# endif 
     
    201201!     ------------------------ 
    202202               ztortp2  = mprat2 * zstep * trn(ji,jj,jk,jpdia)     & 
    203 # if defined key_off_degrad 
     203# if defined key_degrad 
    204204                  &        * facvol(ji,jj,jk)       & 
    205205# endif 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zopt.F90

    r1970 r2038  
    1616   USE trc            ! tracer variables 
    1717   USE oce_trc        ! tracer-ocean share variables 
    18    USE trc_oce        ! ocean-tracer share variables 
    1918   USE sms_pisces     ! Source Minus Sink of PISCES 
    2019   USE iom 
     
    227226      END DO 
    228227 
    229 #if defined key_trc_diaadd 
     228#if defined key_diatrc 
    230229# if ! defined key_iomput 
    231230      ! save for outputs 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zprod.F90

    r1970 r2038  
    7979      REAL(wp) ::   zpislopen  , zpislope2n 
    8080      REAL(wp) ::   zrum, zcodel, zargu, zvol 
    81 #if defined key_trc_diaadd && defined key_trc_dia3d 
     81#if defined key_diatrc 
    8282      REAL(wp) ::   zrfact2 
    8383#endif 
     
    109109      ! Computation of the optimal production 
    110110 
    111 # if defined key_off_degrad 
     111# if defined key_degrad 
    112112      prmax(:,:,:) = 0.6 / rday * tgfunc(:,:,:) * facvol(:,:,:) 
    113113# else 
     
    335335          DO ji = 1, jpi 
    336336             zvol = cvol(ji,jj,jk) 
    337 #if defined key_off_degrad 
     337#if defined key_degrad 
    338338             zvol = zvol * facvol(ji,jj,jk) 
    339339#endif 
     
    353353      ENDIF 
    354354 
    355 #if defined key_trc_diaadd && defined key_trc_dia3d && ! defined key_iomput 
     355#if defined key_diatrc && ! defined key_iomput 
    356356      !   Supplementary diagnostics 
    357357      zrfact2 = 1.e3 * rfact2r 
     
    367367#endif 
    368368 
    369 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 
     369#if defined key_diatrc && defined key_iomput 
    370370      zrfact2 = 1.e3 * rfact2r 
    371371      IF ( jnt == nrdttrc ) then 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zrem.F90

    r1953 r2038  
    136136!     ---------------------------------------------------------------- 
    137137               zremik = xremik * xstep / 1.e-6 * xlimbac(ji,jj,jk)         & 
    138 # if defined key_off_degrad 
     138# if defined key_degrad 
    139139                  &            * facvol(ji,jj,jk)              & 
    140140# endif 
     
    172172!    ---------------------------------------------------------- 
    173173               zonitr  = nitrif * xstep * trn(ji,jj,jk,jpnh4) / ( 1.+ emoy(ji,jj,jk) )     & 
    174 # if defined key_off_degrad 
     174# if defined key_degrad 
    175175                  &      * facvol(ji,jj,jk)              & 
    176176# endif 
     
    234234!    ------------------------------------------------------------- 
    235235               zremip = xremip * xstep * tgfunc(ji,jj,jk)   & 
    236 # if defined key_off_degrad 
     236# if defined key_degrad 
    237237                  &            * facvol(ji,jj,jk)              & 
    238238# endif 
     
    289289               zsatur2 = zsatur * ( 1. + tn(ji,jj,jk) / 400.)**4 
    290290               znusil  = 0.225  * ( 1. + tn(ji,jj,jk) / 15.) * zsatur + 0.775 * zsatur2**9 
    291 #    if defined key_off_degrad 
     291#    if defined key_degrad 
    292292               zsiremin = xsirem * xstep * znusil * facvol(ji,jj,jk) 
    293293# else 
     
    350350#endif 
    351351 
    352 # if defined key_off_degrad 
     352# if defined key_degrad 
    353353               zscave = zfeequi * zlam1b * xstep  * facvol(ji,jj,jk) 
    354354# else 
     
    374374#endif 
    375375 
    376 # if defined key_off_degrad 
     376# if defined key_degrad 
    377377               zaggdfe = zlam1b * xstep * 0.5 * ( trn(ji,jj,jk,jpfer) - zfeequi ) * facvol(ji,jj,jk) 
    378378# else 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zsed.F90

    r1970 r2038  
    9393      REAL(wp), DIMENSION(jpi,jpj)     ::   zsidep 
    9494      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   znitrpot, zirondep 
    95 #if defined key_diaadd || defined key_trc_dia3d  
     95#if defined key_diatrc  
    9696      REAL(wp) :: zrfact2 
    9797# if defined key_iomput 
     
    286286               IF( zlim <= 0.2 )   zlim = 0.01 
    287287               znitrpot(ji,jj,jk) = MAX( 0.e0, ( 0.6 * tgfunc(ji,jj,jk) - 2.15 ) / rday )   & 
    288 # if defined key_off_degrad 
     288# if defined key_degrad 
    289289               &                  * facvol(ji,jj,jk)   & 
    290290# endif 
     
    325325      END DO 
    326326 
    327 #if defined key_trc_diaadd || defined key_trc_dia3d 
     327#if defined key_diatrc 
    328328      zrfact2 = 1.e+3 * rfact2r 
    329329#  if  ! defined key_iomput 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/p4zsink.F90

    r1970 r2038  
    9797      REAL(wp) :: zdiv , zdiv1, zdiv2, zdiv3, zdiv4, zdiv5 
    9898      REAL(wp) :: zval1, zval2, zval3, zval4 
    99 #if defined key_trc_diaadd 
     99#if defined key_diatrc 
    100100      REAL(wp) :: zrfact2 
    101101      INTEGER  :: ik1 
     
    207207                     &            * (zfm*xkr_mass_max**2-xkr_mass_min**2)                  & 
    208208                     &            * (zeps-1.)**2/(zdiv2*zdiv3))            & 
    209 # if defined key_off_degrad 
     209# if defined key_degrad 
    210210                     &                 *facvol(ji,jj,jk)       & 
    211211# endif 
     
    219219                     &                    -zfm*xkr_mass_max**3*(1.+3.*((zeps-1.)/           & 
    220220                     &                    (zeps-2.)+(zeps-1.)/zdiv3)+(zeps-1.)/zdiv1))      & 
    221 #    if defined key_off_degrad 
     221#    if defined key_degrad 
    222222                     &                 *facvol(ji,jj,jk)             & 
    223223#    endif 
     
    225225 
    226226                  zagg3 = (  0.163*trn(ji,jj,jk,jpnum)**2*zfm**2*8. * xkr_mass_max**3   & 
    227 #    if defined key_off_degrad 
     227#    if defined key_degrad 
    228228                     &                 *facvol(ji,jj,jk)             & 
    229229#    endif 
     
    242242                     &                 ((zfm*zfm*xkr_mass_max**2*zsm-xkr_mass_min**2)     & 
    243243                     &                 *xkr_eta)/(zdiv*zdiv3*zdiv5) )                     & 
    244 # if defined key_off_degrad 
     244# if defined key_degrad 
    245245                     &                 *facvol(ji,jj,jk)        & 
    246246# endif 
     
    252252                     &                 /zdiv3-(xkr_mass_min**2-zfm*zsm*xkr_mass_max**2)    & 
    253253                     &                 /zdiv)                   & 
    254 # if defined key_off_degrad 
     254# if defined key_degrad 
    255255                     &                 *facvol(ji,jj,jk)        & 
    256256# endif 
     
    266266                  zaggdoc = ( 0.4 * trn(ji,jj,jk,jpdoc)               & 
    267267                     &        + 1018.  * trn(ji,jj,jk,jppoc)  ) * xstep    & 
    268 # if defined key_off_degrad 
     268# if defined key_degrad 
    269269                     &        * facvol(ji,jj,jk)                              & 
    270270# endif 
     
    281281      END DO 
    282282 
    283 #if defined key_trc_diaadd 
     283#if defined key_diatrc 
    284284      zrfact2 = 1.e3 * rfact2r 
    285285      ik1 = iksed + 1 
     
    474474      REAL(wp) ::   zagg , zaggfe, zaggdoc, zaggdoc2 
    475475      REAL(wp) ::   zfact, zwsmax 
    476 #if defined key_trc_dia3d 
     476#if defined key_diatrc 
    477477      REAL(wp) ::   zrfact2 
    478478      INTEGER  ::   ik1 
     
    552552               zfact = xstep * xdiss(ji,jj,jk) 
    553553               !  Part I : Coagulation dependent on turbulence 
    554 # if defined key_off_degrad 
     554# if defined key_degrad 
    555555               zagg1 = 940.* zfact * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jppoc) * facvol(ji,jj,jk) 
    556556               zagg2 = 1.054e4 * zfact * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpgoc) * facvol(ji,jj,jk) 
     
    563563 
    564564               !  Aggregation of small into large particles 
    565 # if defined key_off_degrad 
     565# if defined key_degrad 
    566566               zagg3 = 0.66 * xstep * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpgoc) * facvol(ji,jj,jk) 
    567567               zagg4 = 0.e0 * xstep * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jppoc) * facvol(ji,jj,jk) 
     
    574574 
    575575               ! Aggregation of DOC to small particles 
    576 #if defined key_off_degrad 
     576#if defined key_degrad 
    577577               zaggdoc = ( 80.* trn(ji,jj,jk,jpdoc) + 698. * trn(ji,jj,jk,jppoc) )       & 
    578578                  &      * facvol(ji,jj,jk)  * zfact * trn(ji,jj,jk,jpdoc) 
     
    595595      END DO 
    596596 
    597 #if defined key_trc_diaadd 
     597#if defined key_diatrc 
    598598      zrfact2 = 1.e3 * rfact2r 
    599599      ik1  = iksed + 1 
     
    651651 
    652652      DO jk = 1, jpkm1 
    653 # if defined key_off_degrad 
     653# if defined key_degrad 
    654654         zwsink2(:,:,jk+1) = -pwsink(:,:,jk) / rday * tmask(:,:,jk+1) * facvol(:,:,jk) 
    655655# else 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/par_pisces.F90

    r1152 r2038  
    3030   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .TRUE.  !: Kriest flag  
    3131   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  23     !: number of passive tracers 
    32    INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  13     !: additional 2d output ('key_trc_diaadd') 
    33    INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  18     !: additional 3d output ('key_trc_diaadd') 
     32   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  13     !: additional 2d output ('key_diatrc') 
     33   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  18     !: additional 3d output ('key_diatrc') 
    3434   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =   1     !: number of sms trends for PISCES 
    3535 
     
    6868   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .FALSE. !: Kriest flag  
    6969   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     = 24      !: number of PISCES passive tracers 
    70    INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  = 13      !: additional 2d output ('key_trc_diaadd') 
    71    INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  = 11      !: additional 3d output ('key_trc_diaadd') 
     70   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  = 13      !: additional 2d output ('key_diatrc') 
     71   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  = 11      !: additional 3d output ('key_diatrc') 
    7272   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  1      !: number of sms trends for PISCES 
    7373 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r1970 r2038  
    6262   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xlimbac    !: ?? 
    6363   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xdiss      !: ?? 
    64 #if defined key_trc_dia3d 
     64#if defined key_diatrc 
    6565   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   prodcal    !: Calcite production 
    6666   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazing    !: Total zooplankton grazing 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/trcini_pisces.F90

    r1953 r2038  
    5555 
    5656 
     57      !  Control consitency 
     58      CALL trc_ctl_pisces 
     59 
     60 
    5761      IF(lwp) WRITE(numout,*) 
    5862      IF(lwp) WRITE(numout,*) ' trc_ini_pisces :   PISCES biochemical model initialisation' 
    5963      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    6064 
    61  
    6265      !                                            ! Time-step 
    63       rfact   = rdttra(1) * float(ndttrc)          ! --------- 
     66      rfact   = rdttra(1) * float(nn_dttrc)          ! --------- 
    6467      rfactr  = 1. / rfact 
    6568      rfact2  = rfact / float(nrdttrc) 
     
    128131      ! 
    129132   END SUBROUTINE trc_ini_pisces 
    130     
     133  
     134   SUBROUTINE trc_ctl_pisces 
     135      !!---------------------------------------------------------------------- 
     136      !!                     ***  ROUTINE trc_ctl_pisces  *** 
     137      !! 
     138      !! ** Purpose :   control the cpp options, namelist and files  
     139      !!---------------------------------------------------------------------- 
     140 
     141      IF(lwp) WRITE(numout,*) 
     142      IF(lwp) WRITE(numout,*) ' use PISCES biological model ' 
     143 
     144   ! Check number of tracers 
     145   ! ----------------------- 
     146#if  defined key_kriest 
     147      IF( jp_pisces /= 23) THEN 
     148#else 
     149      IF( jp_pisces /= 24) THEN 
     150#endif 
     151          IF (lwp) THEN 
     152              WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     153              WRITE (numout,*) ' =======   ============= ' 
     154              WRITE (numout,*)                               & 
     155              &   ' STOP, change jp_pisces',               & 
     156              &   ' in par_pisces.F90' 
     157          END IF 
     158          STOP 'TRC_CTL' 
     159      END IF 
     160 
     161   END SUBROUTINE trc_ctl_pisces 
     162   
    131163#else 
    132164   !!---------------------------------------------------------------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90

    r1970 r2038  
    130130               DO ji = 1, jpi 
    131131                  zvol = cvol(ji,jj,jk) 
    132 #  if defined key_off_degrad 
     132#  if defined key_degrad 
    133133                  zvol = zvol * facvol(ji,jj,jk) 
    134134#  endif 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90

    r1753 r2038  
    2626   USE p4zflx          !  
    2727 
    28    USE trdmld_trc_oce 
    29    USE trdmld_trc 
     28   USE trdmod_oce 
     29   USE trdmod_trc 
    3030 
    3131   USE sedmodel 
     
    9494          DO jn = jp_pcs0, jp_pcs1 
    9595            ztrpis(:,:,:) = tra(:,:,:,jn) 
    96             CALL trd_mod_trc( ztrpis, jn, jptrc_trd_sms, kt )   ! save trends 
     96            CALL trd_mod_trc( ztrpis, jn, jptra_trd_sms, kt )   ! save trends 
    9797          END DO 
    9898      END IF 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/oce_trc.F90

    r1753 r2038  
    3232   USE par_oce , ONLY :   jpkdta   =>   jpkdta     !: number of levels            > or = jpk 
    3333   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option 
     34   USE par_oce , ONLY :   jp_tem   =>   jp_tem     !: indice for temperature 
     35   USE par_oce , ONLY :   jp_sal   =>   jp_sal     !: indice for salinity 
    3436 
    3537   !* IO manager * 
     
    112114   USE dom_oce , ONLY :   ln_zco     =>  ln_zco      !: z-coordinate flag 
    113115   USE dom_oce , ONLY :   lk_zco     =>  lk_zco      !: z-coordinate flag (1D or 3D arrays) 
    114    USE dom_oce , ONLY :   hbatt      =>   hbatt      !: ocean depth at the vertical of  t-point (m) 
    115    USE dom_oce , ONLY :   hbatu      =>   hbatu      !: ocean depth at the vertical of  u-point (m) 
    116    USE dom_oce , ONLY :   hbatv      =>   hbatv      !: ocean depth at the vertical of w-point (m) 
    117    USE dom_oce , ONLY :   gsigt      =>   gsigt      !: model level depth coefficient at T-levels 
    118    USE dom_oce , ONLY :   gsigw      =>   gsigw      !: model level depth coefficient at W-levels 
    119    USE dom_oce , ONLY :   gsi3w      =>   gsi3w      !: model level depth coef at w-levels (defined as the sum of e3w) 
    120    USE dom_oce , ONLY :   esigt      =>   esigt      !: vertical scale factor coef. at t-levels 
    121    USE dom_oce , ONLY :   esigw      =>   esigw      !: vertical scale factor coef. at w-levels 
    122    USE dom_oce , ONLY :   lk_vvl     => lk_vvl       !: variable grid flag 
     116   USE dom_oce , ONLY :   hbatt      =>  hbatt      !: ocean depth at the vertical of  t-point (m) 
     117   USE dom_oce , ONLY :   hbatu      =>  hbatu      !: ocean depth at the vertical of  u-point (m) 
     118   USE dom_oce , ONLY :   hbatv      =>  hbatv      !: ocean depth at the vertical of w-point (m) 
     119   USE dom_oce , ONLY :   gsigt      =>  gsigt      !: model level depth coefficient at T-levels 
     120   USE dom_oce , ONLY :   gsigw      =>  gsigw      !: model level depth coefficient at W-levels 
     121   USE dom_oce , ONLY :   gsi3w      =>  gsi3w      !: model level depth coef at w-levels (defined as the sum of e3w) 
     122   USE dom_oce , ONLY :   esigt      =>  esigt      !: vertical scale factor coef. at t-levels 
     123   USE dom_oce , ONLY :   esigw      =>  esigw      !: vertical scale factor coef. at w-levels 
     124   USE dom_oce , ONLY :   lk_vvl     =>  lk_vvl       !: variable grid flag 
    123125 
    124126   !* masks, bathymetry * 
     
    129131   USE dom_oce , ONLY :   vmask      =>   vmask      !: land/ocean mask at v-points  
    130132   USE dom_oce , ONLY :   fmask      =>   fmask      !: land/ocean mask at f-points  
    131 # if defined key_off_degrad 
     133# if defined key_degrad 
    132134   USE dom_oce , ONLY :   facvol     =>   facvol     !: volume factor for degradation 
    133135# endif 
     
    166168   USE oce , ONLY :   tn      =>    tn      !: pot. temperature (celsius) 
    167169   USE oce , ONLY :   sn      =>    sn      !: salinity (psu) 
     170   USE oce , ONLY :   tsn     =>    tsn     !: 4D array contaning ( tn, sn ) 
     171   USE oce , ONLY :   tsb     =>    tsb     !: 4D array contaning ( tb, sb ) 
     172   USE oce , ONLY :   tsa     =>    tsa     !: 4D array contaning ( ta, sa ) 
    168173   USE oce , ONLY :   rhop    =>    rhop    !: potential volumic mass (kg m-3)  
    169174   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 
    170175   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s) 
    171 #if defined key_off_tra 
     176   USE oce , ONLY :   l_traldf_rot => l_traldf_rot  !: rotated laplacian operator for lateral diffusion 
     177#if defined key_offline 
    172178   USE oce , ONLY :   gtu     =>    gtu     !: t-, s- and rd horizontal gradient at u- and 
    173179   USE oce , ONLY :   gsu     =>    gsu     !: v-points at bottom ocean level 
     
    196202   USE sbcrnf  , ONLY :   rnfmsk_z   =>    rnfmsk_z   !: mixed adv scheme in runoffs vicinity (vert.) 
    197203 
    198    !* bottom boundary layer * 
    199 # if   defined key_trabbl_dif   ||   defined key_trabbl_adv 
    200 # if ! defined key_off_tra  
    201    USE trabbl , ONLY :   atrbbl   =>   rn_ahtbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s) 
    202 # else  
    203    USE trabbl, ONLY :   bblx   => bblx         !: ??? 
    204    USE trabbl, ONLY :   bbly   => bbly         !: ??? 
    205 #  endif 
    206 # endif 
     204   USE trc_oce 
    207205 
    208206   !* lateral diffusivity (tracers) * 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/par_trc.F90

    r1970 r2038  
    4040   LOGICAL, PUBLIC, PARAMETER ::   lk_trc_c1d   = .FALSE.  !: 1D pass. tracer configuration flag 
    4141# endif 
    42    ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 
    43 # if defined key_trc_diatrd 
    44    ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 
    45    INTEGER, PARAMETER ::   jptrc_xad     =  1   !: x- horizontal advection 
    46    INTEGER, PARAMETER ::   jptrc_yad     =  2   !: y- horizontal advection 
    47    INTEGER, PARAMETER ::   jptrc_zad     =  3   !: z- vertical   advection 
    48    INTEGER, PARAMETER ::   jptrc_xdf     =  4   !: lateral       diffusion 
    49    INTEGER, PARAMETER ::   jptrc_ydf     =  5   !: lateral       diffusion 
    50    INTEGER, PARAMETER ::   jptrc_zdf     =  6   !: vertical diffusion (Kz) 
    51    INTEGER, PARAMETER ::   jptrc_sbc     =  7   !: surface boundary condition 
    52 #if ! defined key_trcldf_eiv && ! defined key_trcdmp 
    53    INTEGER, PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc 
    54 #endif 
    55 #if defined key_trcldf_eiv && defined key_trcdmp 
    56    INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
    57    INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
    58    INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
    59    INTEGER, PARAMETER ::   jptrc_dmp     = 11   !: damping 
    60    INTEGER, PARAMETER ::   jpdiatrc      = 11   !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 
    61 #endif 
    62 #if defined key_trcldf_eiv && ! defined key_trcdmp 
    63    INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
    64    INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
    65    INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
    66    INTEGER, PARAMETER ::   jpdiatrc      = 10   !: trends: 3*(advection + diffusion + eiv ) + sbc  
    67 #endif 
    68 #if ! defined key_trcldf_eiv && defined key_trcdmp 
    69    INTEGER, PARAMETER ::   jptrc_dmp     =  8   !: damping 
    70    INTEGER, PARAMETER ::   jpdiatrc      =  8   !: trends: 3*(advection + diffusion       ) + sbc + damping 
    71 #endif 
    72 #endif 
    7342 
    7443   REAL(wp), PUBLIC  :: rtrn  = 1.e-15      !: truncation value      
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90

    r1542 r2038  
    3434   INTEGER, PUBLIC                   ::   numnat   !: the number of the passive tracer NAMELIST 
    3535   LOGICAL, PUBLIC, DIMENSION(jptra) ::   lutini   !:  initialisation from FILE or not (NAMELIST) 
    36    LOGICAL, PUBLIC, DIMENSION(jptra) ::   lutsav   !:  logical for saving tracer or not 
    37    INTEGER, PUBLIC, DIMENSION(jptra) ::   nutini   !: FORTRAN LOGICAL UNIT for initialisation file 
     36   LOGICAL, PUBLIC, DIMENSION(jptra) ::   lutsav   !:  save the tracer or not 
    3837 
    3938   !! passive tracers fields (before,now,after) 
     
    4746   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trb   !: traceur concentration for before time step 
    4847 
     48   !! isopycnal scheme for passive tracers 
     49   !! ------------------------------------   
     50   REAL(wp), PUBLIC ::   ahtrb0     !: background diffusivity coefficient for passive tracer (m2/s) 
     51 
     52#if ! defined key_zco 
     53   !! interpolated gradient 
     54   !!--------------------------------------------------   
     55   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtru   !: horizontal gradient at u-points at bottom ocean level 
     56   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtrv   !: horizontal gradient at v-points at bottom ocean level 
     57#endif 
    4958    
    5059   !! passive tracers restart (input and output) 
    5160   !! ------------------------------------------   
    52    INTEGER , PUBLIC  ::  ndttrc     !: frequency of step on passive tracers 
    53    INTEGER , PUBLIC  ::  nittrc000  !: first time step of passive tracers model 
    54    LOGICAL , PUBLIC  ::  ln_rsttr     !: boolean term for restart i/o for passive tracers (namelist) 
    55    LOGICAL , PUBLIC  ::  lrst_trc   !: logical to control the trc restart write 
    56    INTEGER , PUBLIC  ::  nutwrs     !: output FILE for passive tracers restart 
    57    INTEGER , PUBLIC  ::  nutrst     !: logical unit for restart FILE for passive tracers 
    58    INTEGER , PUBLIC  ::  nrsttr     !: control of the time step ( 0 or 1 ) for pass. tr. 
     61   INTEGER , PUBLIC  ::  nn_dttrc      !: frequency of step on passive tracers 
     62   INTEGER , PUBLIC  ::  nittrc000     !: first time step of passive tracers model 
     63   LOGICAL , PUBLIC  ::  ln_rsttr      !: boolean term for restart i/o for passive tracers (namelist) 
     64   LOGICAL , PUBLIC  ::  lrst_trc      !: logical to control the trc restart write 
     65   INTEGER , PUBLIC  ::  nutwrs        !: output FILE for passive tracers restart 
     66   INTEGER , PUBLIC  ::  nutrst        !: logical unit for restart FILE for passive tracers 
     67   INTEGER , PUBLIC  ::  nn_rsttr      !: control of the time step ( 0 or 1 ) for pass. tr. 
    5968   CHARACTER(len=50) ::  cn_trcrst_in  !: suffix of pass. tracer restart name (input) 
    6069   CHARACTER(len=50) ::  cn_trcrst_out !: suffix of pass. tracer restart name (output) 
     
    6271   !! information for outputs 
    6372   !! -------------------------------------------------- 
    64    INTEGER , PUBLIC ::   nwritetrc   !: time step frequency for concentration outputs (namelist) 
     73   INTEGER , PUBLIC ::   nn_writetrc   !: time step frequency for concentration outputs (namelist) 
    6574    
    66 # if defined key_trc_diaadd && ! defined key_iomput 
     75# if defined key_diatrc && ! defined key_iomput 
    6776   !! additional 2D/3D outputs namelist 
    6877   !! -------------------------------------------------- 
     
    8089# endif 
    8190 
    82 #if defined key_trc_diabio || defined key_trdmld_trc 
     91#if defined key_diabio || defined key_trdmld_trc 
    8392   CHARACTER(len=8),  DIMENSION(jpdiabio) ::   ctrbio   !: biological trends name      (NAMELIST) 
    8493   CHARACTER(len=20), DIMENSION(jpdiabio) ::   ctrbiu   !: biological trends unit      (NAMELIST) 
     
    8695   INTEGER ::   nwritebio   !: time step frequency for biological outputs (NAMELIST) 
    8796#endif 
    88 # if defined key_trc_diabio 
     97# if defined key_diabio 
    8998   !! Biological trends 
    9099   !! ----------------- 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trcdia.F90

    r1970 r2038  
    1717   !! trc_dia     : main routine of output passive tracer 
    1818   !! trcdit_wr   : outputs of concentration fields 
    19    !! trcdid_wr   : outputs of dvection-diffusion trends 
    2019   !! trcdii_wr   : outputs of additional 2D/3D diagnostics 
    2120   !! trcdib_wr   : outputs of biological fields 
     
    2423   USE oce_trc 
    2524   USE trc 
    26    USE trp_trc 
    2725   USE par_trc 
    28    USE trdmld_trc_oce, ONLY : luttrd 
    2926   USE dianam    ! build name of file (routine) 
    3027   USE in_out_manager  ! I/O manager 
     
    4542   INTEGER , DIMENSION (jpij*jpk) ::   ndext50   !: integer arrays for ocean 3D index 
    4643   INTEGER , DIMENSION (jpij)     ::   ndext51   !: integer arrays for ocean surface index 
    47 # if defined key_trc_diaadd 
     44# if defined key_diatrc 
    4845   INTEGER  ::   nitd      !: id for additional array output file 
    4946   INTEGER  ::   ndepitd   !: id for depth mesh 
    5047   INTEGER  ::   nhoritd   !: id for horizontal mesh 
    5148# endif 
    52 # if defined key_trc_diatrd 
    53    INTEGER , DIMENSION (jptra) ::   nit6      !: id for additional array output file 
    54    INTEGER , DIMENSION (jptra) ::   ndepit6   !: id for depth mesh 
    55    INTEGER , DIMENSION (jptra) ::   nhorit6   !: id for horizontal mesh 
    56 # endif 
    57 # if defined key_trc_diabio 
     49# if defined key_diabio 
    5850   INTEGER  ::   nitb        !:         id.         for additional array output file 
    5951   INTEGER  ::   ndepitb   !:  id for depth mesh 
     
    8274       
    8375      CALL trcdit_wr( kt, kindic )      ! outputs for tracer concentration 
    84       CALL trcdid_wr( kt, kindic )      ! outputs for dynamical trends 
    8576      CALL trcdii_wr( kt, kindic )      ! outputs for additional arrays 
    8677      CALL trcdib_wr( kt, kindic )      ! outputs for biological trends 
     
    111102      LOGICAL ::   ll_print = .FALSE. 
    112103      CHARACTER (len=40) :: clhstnam, clop 
    113 #if defined key_off_tra 
     104#if defined key_offline 
    114105      INTEGER ::   inum = 11             ! temporary logical unit 
    115106#endif 
     
    133124      ENDIF 
    134125# if defined key_diainstant 
    135       zsto = nwritetrc * rdt 
     126      zsto = nn_writetrc * rdt 
    136127      clop = "inst("//TRIM(clop)//")" 
    137128# else 
     
    139130      clop = "ave("//TRIM(clop)//")" 
    140131# endif 
    141       zout = nwritetrc * zdt 
     132      zout = nn_writetrc * zdt 
    142133 
    143134      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    168159            &                    ' limit storage in depth = ', ipk 
    169160 
    170 #if defined key_off_tra 
     161#if defined key_offline 
    171162        ! WRITE root name in date.file for use by postpro 
    172163         IF(lwp) THEN 
    173             CALL dia_nam( clhstnam, nwritetrc,' ' ) 
     164            CALL dia_nam( clhstnam, nn_writetrc,' ' ) 
    174165            CALL ctlopn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 1, numout, lwp, narea ) 
    175166            WRITE(inum,*) clhstnam 
     
    179170 
    180171         ! Define the NETCDF files for passive tracer concentration 
    181          CALL dia_nam( clhstnam, nwritetrc, 'ptrc_T' ) 
     172         CALL dia_nam( clhstnam, nn_writetrc, 'ptrc_T' ) 
    182173         IF(lwp)WRITE(numout,*)" Name of NETCDF file ", clhstnam 
    183174 
     
    216207      ! --------------------------------------- 
    217208 
    218       IF( lwp .AND. MOD( itmod, nwritetrc ) == 0 ) THEN 
     209      IF( lwp .AND. MOD( itmod, nn_writetrc ) == 0 ) THEN 
    219210         WRITE(numout,*) 'trcdit_wr : write NetCDF passive tracer concentrations at ', kt, 'time-step' 
    220211         WRITE(numout,*) '~~~~~~~~~ ' 
     
    233224   END SUBROUTINE trcdit_wr 
    234225 
    235 # if defined key_trc_diatrd 
    236  
    237    SUBROUTINE trcdid_wr( kt, kindic ) 
    238       !!---------------------------------------------------------------------- 
    239       !!                     ***  ROUTINE trcdid_wr  *** 
    240       !! 
    241       !! ** Purpose :   output of passive tracer : advection-diffusion trends 
    242       !! 
    243       !! ** Method  :   At the beginning of the first time step (nit000), define all 
    244       !!             the NETCDF files and fields for concentration of passive tracer 
    245       !! 
    246       !!        At each time step call histdef to compute the mean if necessary 
    247       !!        Each nwritetrd time step, output the instantaneous or mean fields 
    248       !! 
    249       !!        IF kindic <0, output of fields before the model interruption. 
    250       !!        IF kindic =0, time step loop 
    251       !!        IF kindic >0, output of fields before the time step loop 
    252       !!---------------------------------------------------------------------- 
    253       INTEGER, INTENT( in ) ::   kt          ! ocean time-step 
    254       INTEGER, INTENT( in ) ::   kindic      ! indicator of abnormal termination 
    255       !! 
    256       LOGICAL ::   ll_print = .FALSE. 
    257       CHARACTER (len=40) ::   clhstnam, clop 
    258       CHARACTER (len=20) ::   cltra, cltrau 
    259       CHARACTER (len=80) ::   cltral 
    260       CHARACTER (len=10) ::   csuff 
    261       INTEGER  ::   jn, jl, ikn 
    262       INTEGER  ::   iimi, iima, ijmi, ijma, ipk, it, itmod 
    263       REAL(wp) ::   zsto, zout, zdt 
    264       !!---------------------------------------------------------------------- 
    265  
    266       ! 0. Initialisation 
    267       ! ----------------- 
    268        
    269  
    270       ! local variable for debugging 
    271       ll_print = .FALSE. 
    272       ll_print = ll_print .AND. lwp 
    273       ! 
    274       ! Define frequency of output and means 
    275       zdt = rdt 
    276       IF( ln_mskland )   THEN   ;   clop = "only(x)"   ! put 1.e+20 on land (very expensive!!) 
    277       ELSE                      ;   clop = "x"         ! no use of the mask value (require less cpu time) 
    278       ENDIF 
    279 #  if defined key_diainstant 
    280       zsto = nwritetrd * rdt 
    281       clop = "inst("//TRIM(clop)//")" 
    282 #  else 
    283       zsto = zdt 
    284       clop = "ave("//TRIM(clop)//")" 
    285 #  endif 
    286       zout = nwritetrd * zdt 
    287  
    288       ! Define indices of the horizontal output zoom and vertical limit storage 
    289       iimi = 1      ;      iima = jpi 
    290       ijmi = 1      ;      ijma = jpj 
    291       ipk = jpk 
    292  
    293       ! define time axis 
    294       itmod = kt - nittrc000 + 1 
    295       it    = kt 
    296  
    297       ! Define the NETCDF files (one per tracer) 
    298       IF( ll_print ) WRITE(numout,*) 'trcdid kt=', kt, ' kindic ', kindic 
    299        
    300        
    301       IF( kt == nittrc000 ) THEN 
    302  
    303          DO jn = 1, jptra 
    304             ! 
    305             IF( luttrd(jn) ) THEN      ! Define the file for dynamical trends - one per each tracer IF required 
    306  
    307                IF(lwp)WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma,  & 
    308                    &                   ' limit storage in depth = ', ipk 
    309                csuff='DY_'//ctrcnm(jn) 
    310                CALL dia_nam( clhstnam, nwritetrd, csuff ) 
    311                IF(lwp)WRITE(numout,*)   " Name of NETCDF file for dynamical trends",   & 
    312                   &                     " of tracer number : ",clhstnam 
    313  
    314                CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,       & 
    315                   &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,   & 
    316                   &          nittrc000-ndttrc, zjulian, zdt, nhorit6(jn),  & 
    317                   &          nit6(jn) , domain_id=nidom ) 
    318  
    319                ! Vertical grid for tracer trend - one per each tracer IF needed 
    320                CALL histvert( nit6(jn), 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepit6(jn) )  
    321              END IF 
    322           END DO 
    323  
    324           ! Declare all the output fields as NETCDF variables 
    325           DO jn = 1, jptra 
    326             IF( luttrd(jn) ) THEN 
    327                 DO jl = 1, jpdiatrc 
    328                   IF( jl == jptrc_xad ) THEN 
    329                       ! short and long title for x advection for tracer 
    330                       WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) 
    331                       WRITE (cltral,'("X advective trend for ",58a)') ctrcnl(jn)(1:58) 
    332                   END IF 
    333                   IF( jl == jptrc_yad ) THEN 
    334                       ! short and long title for y advection for tracer 
    335                       WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) 
    336                       WRITE (cltral,'("Y advective trend for ",58a)') ctrcnl(jn)(1:58) 
    337                   END IF 
    338                   IF( jl == jptrc_zad ) THEN 
    339                       ! short and long title for Z advection for tracer 
    340                       WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) 
    341                       WRITE (cltral,'("Z advective trend for ",58a)') ctrcnl(jn)(1:58) 
    342                   END IF 
    343                   IF( jl == jptrc_xdf ) THEN 
    344                       ! short and long title for X diffusion for tracer 
    345                       WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) 
    346                       WRITE (cltral,'("X diffusion trend for ",58a)') ctrcnl(jn)(1:58) 
    347                   END IF 
    348                   IF( jl == jptrc_ydf ) THEN 
    349                       ! short and long title for Y diffusion for tracer 
    350                       WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) 
    351                       WRITE (cltral,'("Y diffusion trend for ",58a)') ctrcnl(jn)(1:58) 
    352                   END IF 
    353                   IF( jl == jptrc_zdf ) THEN 
    354                       ! short and long title for Z diffusion for tracer 
    355                       WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) 
    356                       WRITE (cltral,'("Z diffusion trend for ",58a)') ctrcnl(jn)(1:58) 
    357                   END IF 
    358 # if defined key_trcldf_eiv 
    359                   IF( jl == jptrc_xei ) THEN 
    360                       ! short and long title for x gent velocity for tracer 
    361                       WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) 
    362                       WRITE (cltral,'("X gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 
    363                   END IF 
    364                   IF( jl == jptrc_yei ) THEN 
    365                       ! short and long title for y gent velocity for tracer 
    366                       WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) 
    367                       WRITE (cltral,'("Y gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 
    368                   END IF 
    369                   IF( jl == jptrc_zei ) THEN 
    370                       ! short and long title for Z gent velocity for tracer 
    371                       WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) 
    372                       WRITE (cltral,'("Z gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 
    373                   END IF 
    374 # endif 
    375 # if defined key_trcdmp 
    376                   IF( jl == jptrc_dmp ) THEN 
    377                       ! last trends for tracer damping : short and long title 
    378                       WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) 
    379                       WRITE (cltral,'("Tracer damping trend for ",55a)') ctrcnl(jn)(1:55) 
    380                   END IF 
    381 # endif 
    382                   IF( jl == jptrc_sbc ) THEN 
    383                       ! last trends for tracer damping : short and long title 
    384                       WRITE (cltra,'("SBC_",16a)') ctrcnm(jn) 
    385                       WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55) 
    386                   END IF 
    387                       WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55) 
    388                   END IF 
    389                   CALL FLUSH( numout ) 
    390                   cltrau = ctrcun(jn)      ! UNIT for tracer /trends 
    391                   CALL histdef( nit6(jn), cltra, cltral, cltrau, jpi,jpj,  & 
    392                      &          nhorit6(jn), ipk, 1, ipk,  ndepit6(jn), 32, clop ,  & 
    393                      &          zsto,zout ) 
    394                END DO 
    395             END IF 
    396          END DO 
    397          ! CLOSE netcdf Files 
    398           DO jn = 1, jptra 
    399              IF( luttrd(jn) )   CALL histend( nit6(jn) ) 
    400           END DO 
    401  
    402          IF(lwp) WRITE(numout,*) 
    403          IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization in trcdid' 
    404          IF(ll_print) CALL FLUSH(numout ) 
    405          ! 
    406       ENDIF 
    407  
    408       ! SOME diagnostics to DO first time 
    409  
    410       ! Start writing data 
    411       ! --------------------- 
    412  
    413       ! trends for tracer concentrations 
    414  
    415       IF( lwp .AND. MOD( itmod, nwritetrd ) == 0 ) THEN 
    416          WRITE(numout,*) 'trcdid_wr : write NetCDF dynamical trends at ', kt, 'time-step' 
    417          WRITE(numout,*) '~~~~~~ ' 
    418       ENDIF 
    419  
    420       DO jn = 1, jptra 
    421          IF( luttrd(jn) ) THEN 
    422             ikn = ikeep(jn)  
    423             DO jl = 1, jpdiatrc 
    424                ! short titles 
    425                IF( jl == jptrc_xad)   WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) 
    426                IF( jl == jptrc_yad)   WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) 
    427                IF( jl == jptrc_zad)   WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) 
    428                IF( jl == jptrc_xdf)   WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) 
    429                IF( jl == jptrc_ydf)   WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) 
    430                IF( jl == jptrc_zdf)   WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) 
    431 # if defined key_trcldf_eiv 
    432                IF( jl == jptrc_xei)   WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) 
    433                IF( jl == jptrc_yei)   WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) 
    434                IF( jl == jptrc_zei)   WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) 
    435 # endif 
    436 # if defined key_trcdmp 
    437                IF( jl == jptrc_dmp )  WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) 
    438 # endif 
    439                IF( jl == jptrc_sbc )  WRITE (cltra,'("SBC_",16a)') ctrcnm(jn) 
    440                ! 
    441                CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ikn,jl),ndimt50, ndext50) 
    442             END DO 
    443          END IF 
    444       END DO 
    445  
    446       ! Closing all files 
    447       ! ----------------- 
    448       IF( kt == nitend .OR. kindic < 0 ) THEN 
    449          DO jn = 1, jptra 
    450             IF( luttrd(jn) )   CALL histclo( nit6(jn) ) 
    451          END DO 
    452       ENDIF 
    453       ! 
    454  
    455    END SUBROUTINE trcdid_wr 
    456  
    457 # else 
    458  
    459    SUBROUTINE trcdid_wr( kt, kindic )                      ! Dummy routine 
    460       INTEGER, INTENT ( in ) ::   kt, kindic 
    461    END SUBROUTINE trcdid_wr 
    462  
    463 # endif 
    464  
    465 #if defined key_trc_diaadd 
     226#if defined key_diatrc 
    466227 
    467228   SUBROUTINE trcdii_wr( kt, kindic ) 
     
    506267      ENDIF 
    507268#  if defined key_diainstant 
    508       zsto = nwritedia * zdt 
     269      zsto = nn_writedia * zdt 
    509270      clop = "inst("//TRIM(clop)//")" 
    510271#  else 
     
    512273      clop = "ave("//TRIM(clop)//")" 
    513274#  endif 
    514       zout = nwritedia * zdt 
     275      zout = nn_writedia * zdt 
    515276 
    516277      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    534295         ! Define the T grid file for tracer auxiliary files 
    535296 
    536          CALL dia_nam( clhstnam, nwritedia, 'diad_T' ) 
     297         CALL dia_nam( clhstnam, nn_writedia, 'diad_T' ) 
    537298         IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam 
    538299 
     
    581342      ! --------------------- 
    582343 
    583       IF( lwp .AND. MOD( itmod, nwritedia ) == 0 ) THEN 
     344      IF( lwp .AND. MOD( itmod, nn_writedia ) == 0 ) THEN 
    584345         WRITE(numout,*) 'trcdii_wr : write NetCDF additional arrays at ', kt, 'time-step' 
    585346         WRITE(numout,*) '~~~~~~ ' 
     
    613374# endif 
    614375 
    615 # if defined key_trc_diabio 
     376# if defined key_diabio 
    616377 
    617378   SUBROUTINE trcdib_wr( kt, kindic ) 
     
    658419      ENDIF 
    659420#        if defined key_diainstant 
    660       zsto = nwritebio * zdt 
     421      zsto = nn_writebio * zdt 
    661422      clop = "inst("//TRIM(clop)//")" 
    662423#        else 
     
    664425      clop = "ave("//TRIM(clop)//")" 
    665426#        endif 
    666       zout = nwritebio * zdt 
     427      zout = nn_writebio * zdt 
    667428 
    668429      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    684445         ! Define the NETCDF files for biological trends 
    685446 
    686          CALL dia_nam(clhstnam,nwritebio,'biolog') 
     447         CALL dia_nam(clhstnam,nn_writebio,'biolog') 
    687448         IF(lwp)WRITE(numout,*) " Name of NETCDF file for biological trends ", clhstnam 
    688449         ! Horizontal grid : glamt and gphit 
     
    716477 
    717478      ! biological trends 
    718       IF( lwp .AND. MOD( itmod, nwritebio ) == 0 ) THEN 
     479      IF( lwp .AND. MOD( itmod, nn_writebio ) == 0 ) THEN 
    719480         WRITE(numout,*) 'trcdit_wr : write NetCDF biological trends at ', kt, 'time-step' 
    720481         WRITE(numout,*) '~~~~~~ ' 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trcini.F90

    r1970 r2038  
    1818   USE oce_trc 
    1919   USE trc 
    20    USE trp_trc 
    2120   USE trcrst 
    22    USE trcctl 
    23    USE trclec 
     21   USE trcnam          ! Namelist read 
    2422   USE trcini_cfc      ! CFC      initialisation 
    2523   USE trcini_lobster  ! LOBSTER  initialisation 
     
    2826   USE trcini_my_trc   ! MY_TRC   initialisation 
    2927   USE trcdta    
    30 #if defined key_off_tra  
     28#if defined key_offline 
    3129   USE daymod 
    3230#endif 
    33    USE zpshde_trc      ! partial step: hor. derivative  
     31   USE zpshde          ! partial step: hor. derivative   (zps_hde_trc routine) 
    3432   USE in_out_manager  ! I/O manager 
    3533   USE prtctl_trc      ! Print control passive tracers (prt_ctl_trc_init routine) 
     
    7876 
    7977      ! total volume of the ocean 
    80 #if ! defined key_off_degrad 
     78#if ! defined key_degrad 
    8179      areatot = SUM( cvol(:,:,:) ) 
    8280#else 
    83       areatot = SUM( cvol(:,:,:) * facvol(:,:,:) ) ! degrad option: reduction by facvol 
     81      areatot = SUM( cvol(:,:,:) * facvol(:,:,:) )  ! degrad option: reduction by facvol 
    8482#endif 
    85       IF( lk_mpp )   CALL mpp_sum( areatot )     ! sum over the global domain   
     83      IF( lk_mpp )   CALL mpp_sum( areatot )        ! sum over the global domain   
    8684 
    87                                   CALL trc_lec      ! READ passive tracers namelists 
     85                                  CALL trc_nam      ! read passive tracers namelists 
    8886 
    89                                   CALL trc_ctl      ! control consistency between parameters, cpp key 
     87      ! restart for passive tracer (input) 
     88      IF( ln_rsttr ) THEN 
     89         IF(lwp) WRITE(numout,*) '       read a restart file for passive tracer : ', cn_trcrst_in 
     90         IF(lwp) WRITE(numout,*) ' ' 
     91      ELSE 
     92         IF(lwp) WRITE(numout,*) 
     93         DO jn = 1, jptra 
     94            IF( lwp .AND. lutini(jn) )  &                  ! open input FILE only IF lutini(jn) is true 
     95            &  WRITE(numout,*) '        read an initial file  for passive tracer number :', jn, ' traceur : ', ctrcnm(jn)  
     96         END DO 
     97      ENDIF 
    9098 
    9199      IF( lk_lobster ) THEN   ;   CALL trc_ini_lobster      ! LOBSTER bio-model 
     
    110118 
    111119      IF( .NOT. ln_rsttr ) THEN  
    112 #if defined key_off_tra 
     120#if defined key_offline 
    113121         CALL day_init      ! calendar 
    114122#endif 
     
    130138       
    131139      IF( ln_zps .AND. .NOT. lk_trc_c1d )   &              ! Partial steps: before horizontal gradient of passive 
    132       &                     CALL zps_hde_trc( nittrc000, trb, gtru, gtrv )       ! tracers at the bottom ocean level 
     140      &                     CALL zps_hde_trc( nittrc000, jptra, trb, gtru, gtrv )       ! tracers at the bottom ocean level 
    133141 
    134142 
     
    136144      trai = 0.e0 
    137145      DO jn = 1, jptra 
    138 #if ! defined key_off_degrad 
     146#if ! defined key_degrad 
    139147         trai = trai + SUM( trn(:,:,:,jn) * cvol(:,:,:) ) 
    140148#else 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trcrst.F90

    r1970 r2038  
    2525   USE oce_trc 
    2626   USE trc 
    27    USE trctrp_lec 
     27   USE trcnam_trp 
    2828   USE lib_mpp 
    2929   USE iom 
     
    3333   USE trcrst_c14b     ! C14 bomb restart 
    3434   USE trcrst_my_trc   ! MY_TRC   restart 
    35 #if defined key_off_tra 
     35#if defined key_offline 
    3636    USE daymod 
    3737#endif 
     
    6767      !!---------------------------------------------------------------------- 
    6868      ! 
    69 # if ! defined key_off_tra 
     69# if ! defined key_offline 
    7070      IF( kt == nit000 ) lrst_trc = .FALSE.  
    7171# else 
     
    8282# endif 
    8383     ! to get better performances with NetCDF format: 
    84      ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*ndttrc + 1) 
    85      ! except if we write tracer restart files every tracer time step or if a tracer restart file was writen at nitend - 2*ndttrc + 1 
    86      IF( kt == nitrst - 2*ndttrc + 1 .OR. nstock == ndttrc .OR. ( kt == nitend - ndttrc + 1 .AND. .NOT. lrst_trc ) ) THEN 
     84     ! we open and define the tracer restart file one tracer time step before writing the data (-> at nitrst - 2*nn_dttrc + 1) 
     85     ! 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 
     86     IF( kt == nitrst - 2*nn_dttrc + 1 .OR. nstock == nn_dttrc .OR. ( kt == nitend - nn_dttrc + 1 .AND. .NOT. lrst_trc ) ) THEN 
    8787         ! beware of the format used to write kt (default is i8.8, that should be large enough) 
    8888         IF( nitrst > 1.0e9 ) THEN   ;   WRITE(clkt,*       ) nitrst 
     
    222222      !! 
    223223      !!   According to namelist parameter nrstdt, 
    224       !!       nrsttr = 0  no control on the date (nittrc000 is  arbitrary). 
    225       !!       nrsttr = 1  we verify that nit000 is equal to the last 
     224      !!       nn_rsttr = 0  no control on the date (nittrc000 is  arbitrary). 
     225      !!       nn_rsttr = 1  we verify that nit000 is equal to the last 
    226226      !!                   time step of previous run + 1. 
    227227      !!       In both those options, the  exact duration of the experiment 
     
    230230      !!       This is valid is the time step has remained constant. 
    231231      !! 
    232       !!       nrsttr = 2  the duration of the experiment in days (adatrj) 
     232      !!       nn_rsttr = 2  the duration of the experiment in days (adatrj) 
    233233      !!                    has been stored in the restart file. 
    234234      !!---------------------------------------------------------------------- 
     
    237237      ! 
    238238      REAL(wp) ::  zkt 
    239 #if defined key_off_tra 
     239#if defined key_offline 
    240240      REAL(wp) ::  zndastp 
    241241#endif 
     
    250250            WRITE(numout,*) '   previous time-step                               : ', NINT( zkt ) 
    251251            WRITE(numout,*) ' *** restart option' 
    252             SELECT CASE ( nrsttr ) 
    253             CASE ( 0 )   ;   WRITE(numout,*) ' nrsttr = 0 : no control of nittrc000' 
    254             CASE ( 1 )   ;   WRITE(numout,*) ' nrsttr = 1 : no control the date at nit000 (use ndate0 read in the namelist)' 
    255             CASE ( 2 )   ;   WRITE(numout,*) ' nrsttr = 2 : calendar parameters read in restart' 
     252            SELECT CASE ( nn_rsttr ) 
     253            CASE ( 0 )   ;   WRITE(numout,*) ' nn_rsttr = 0 : no control of nittrc000' 
     254            CASE ( 1 )   ;   WRITE(numout,*) ' nn_rsttr = 1 : no control the date at nit000 (use ndate0 read in the namelist)' 
     255            CASE ( 2 )   ;   WRITE(numout,*) ' nn_rsttr = 2 : calendar parameters read in restart' 
    256256            END SELECT 
    257257            WRITE(numout,*) 
    258258         ENDIF 
    259259         ! Control of date  
    260          IF( nittrc000  - NINT( zkt ) /= 1 .AND.  nrsttr /= 0 )                                  & 
     260         IF( nittrc000  - NINT( zkt ) /= 1 .AND.  nn_rsttr /= 0 )                                  & 
    261261            &   CALL ctl_stop( ' ===>>>> : problem with nit000 for the restart',                 & 
    262             &                  ' verify the restart file or rerun with nrsttr = 0 (namelist)' ) 
    263 #if defined key_off_tra 
     262            &                  ' verify the restart file or rerun with nn_rsttr = 0 (namelist)' ) 
     263#if defined key_offline 
    264264         ! define ndastp and adatrj 
    265          IF ( nrsttr == 2 ) THEN 
     265         IF ( nn_rsttr == 2 ) THEN 
    266266            CALL iom_get( numrtr, 'ndastp', zndastp )  
    267267            ndastp = NINT( zndastp ) 
     
    329329               DO ji = 1, jpi 
    330330                  zvol = cvol(ji,jj,jk) 
    331 #  if defined key_off_degrad 
     331#  if defined key_degrad 
    332332                  zvol = zvol * facvol(ji,jj,jk) 
    333333#  endif 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trcsms.F90

    r1254 r2038  
    4848      !!--------------------------------------------------------------------- 
    4949 
    50       IF ( MOD(kt,ndttrc) /= 0) RETURN      ! this ROUTINE is called only every ndttrc time step 
     50      IF ( MOD( kt, nn_dttrc) /= 0 ) RETURN      ! this ROUTINE is called only every ndttrc time step 
    5151 
    5252      IF( lk_lobster )   CALL trc_sms_lobster( kt )    ! main program of LOBSTER 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trcstp.F90

    r1457 r2038  
    1010   !! * Modules used 
    1111   USE oce_trc          ! ocean dynamics and active tracers variables 
    12    USE trp_trc 
     12   USE trc 
    1313   USE trctrp           ! passive tracers transport 
    1414   USE trcsms           ! passive tracers sources and sinks 
     
    1717   USE trcwri 
    1818   USE trcrst 
    19    USE trdmld_trc_oce 
     19   USE trdmod_trc_oce 
    2020   USE trdmld_trc 
    2121   USE iom 
     
    5252      CHARACTER (len=25)    ::  charout 
    5353 
    54       ! this ROUTINE is called only every ndttrc time step 
    55       IF( MOD( kt , ndttrc ) /= 0 ) RETURN 
     54      ! this ROUTINE is called only every nn_dttrc time step 
     55      IF( MOD( kt , nn_dttrc ) /= 0 ) RETURN 
    5656 
    5757      IF(ln_ctl) THEN 
     
    5959         CALL prt_ctl_trc_info(charout) 
    6060      ENDIF 
     61 
     62      tra(:,:,:,:) = 0. 
    6163 
    6264      IF( kt == nittrc000 .AND. lk_trdmld_trc  )  & 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trcwri.F90

    r1970 r2038  
    55   !!==================================================================================== 
    66   !! History :   1.0  !  2009-05 (C. Ethe)  Original code 
    7    !!                  !  2010-03 (C. Ethe, R. Seferian ) Add the tracer transport trends 
    87   !!---------------------------------------------------------------------- 
    98#if defined key_top &&  defined key_iomput 
     
    1211   !!---------------------------------------------------------------------- 
    1312   !! trc_wri_trc   :  outputs of concentration fields 
    14    !! trc_wri_trd   :  outputs of transport trends 
    1513   !!---------------------------------------------------------------------- 
    1614   USE dom_oce         ! ocean space and time domain variables 
    1715   USE oce_trc 
    18    USE trp_trc 
    1916   USE trc 
    20    USE trdmld_trc_oce, ONLY : luttrd 
    2117   USE iom 
    22 #if defined key_off_tra 
     18#if defined key_offline 
    2319   USE oce_trc 
    2420   USE dianam 
     
    5046 
    5147      ! 
    52       CALL iom_setkt  ( kt + ndttrc - 1 )       ! set the passive tracer time step 
     48      CALL iom_setkt  ( kt + nn_dttrc - 1 )       ! set the passive tracer time step 
    5349      CALL trc_wri_trc( kt              )       ! outputs for tracer concentration 
    54       CALL trc_wri_trd( kt              )       ! outputs for dynamical trends 
    5550      CALL iom_setkt  ( kt              )       ! set the model time step 
    5651      ! 
     
    6560      INTEGER, INTENT( in ) :: kt       ! ocean time-step 
    6661      INTEGER               :: jn 
    67       CHARACTER (len=20)    :: cltra, cltras 
    68 #if defined key_off_tra 
     62      CHARACTER (len=20)    :: cltra 
     63#if defined key_offline 
    6964      CHARACTER (len=40) :: clhstnam 
    7065      INTEGER ::   inum = 11            ! temporary logical unit 
     
    7267      !!--------------------------------------------------------------------- 
    7368  
    74 #if defined key_off_tra 
     69#if defined key_offline 
    7570      IF( kt == nittrc000 ) THEN 
    7671        ! WRITE root name in date.file for use by postpro 
    7772         IF(lwp) THEN 
    78             CALL dia_nam( clhstnam, nwritetrc,' ' ) 
     73            CALL dia_nam( clhstnam, nn_writetrc,' ' ) 
    7974            CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
    8075            WRITE(inum,*) clhstnam 
     
    9287   END SUBROUTINE trc_wri_trc 
    9388 
    94 # if defined key_trc_diatrd 
    95  
    96    SUBROUTINE trc_wri_trd( kt ) 
    97       !!---------------------------------------------------------------------- 
    98       !!                     ***  ROUTINE trc_wri_trd  *** 
    99       !! 
    100       !! ** Purpose :   output of passive tracer : advection-diffusion trends 
    101       !! 
    102       !!---------------------------------------------------------------------- 
    103       INTEGER, INTENT( in ) ::   kt          ! ocean time-step 
    104       !! 
    105       CHARACTER (len=3) ::   cltra 
    106       INTEGER  ::   jn, jl, ikn 
    107       !!---------------------------------------------------------------------- 
    108  
    109       DO jn = 1, jptra 
    110          IF( luttrd(jn) ) THEN 
    111             ikn = ikeep(jn) 
    112             DO jl = 1, jpdiatrc 
    113                IF( jl == jptrc_xad ) WRITE (cltra,"(3a)") 'XAD' ! x advection for tracer 
    114                IF( jl == jptrc_yad ) WRITE (cltra,"(3a)") 'YAD'  ! y advection for tracer 
    115                IF( jl == jptrc_zad ) WRITE (cltra,"(3a)") 'ZAD'  ! z advection for tracer 
    116                IF( jl == jptrc_xdf ) WRITE (cltra,"(3a)") 'XDF'  ! x diffusion for tracer 
    117                IF( jl == jptrc_ydf ) WRITE (cltra,"(3a)") 'YDF'  ! y diffusion for tracer 
    118                IF( jl == jptrc_zdf ) WRITE (cltra,"(3a)") 'ZDF'  ! z diffusion for tracer 
    119 # if defined key_trcldf_eiv 
    120                IF( jl == jptrc_xei ) WRITE (cltra,"(3a)") 'XGV'  ! x gent velocity for tracer 
    121                IF( jl == jptrc_yei ) WRITE (cltra,"(3a)") 'YGV'  ! y gent velocity for tracer 
    122                IF( jl == jptrc_zei ) WRITE (cltra,"(3a)") 'ZGV'  ! z gent velocity for tracer 
    123 # endif 
    124 # if defined key_trcdmp 
    125                IF( jl == jptrc_dmp ) WRITE (cltra,"(3a)") 'DMP'  ! damping 
    126 # endif 
    127                IF( jl == jptrc_sbc ) WRITE (cltra,"(3a)") 'SBC'  ! surface boundary conditions 
    128                ! write the trends 
    129                CALL iom_put( cltra, trtrd(:,:,:,ikn,jl) ) 
    130             END DO 
    131          END IF 
    132       END DO 
    133       ! 
    134    END SUBROUTINE trc_wri_trd 
    135  
    136 # else 
    137    SUBROUTINE trc_wri_trd( kt )                      ! Dummy routine 
    138       INTEGER, INTENT ( in ) ::   kt 
    139    END SUBROUTINE trc_wri_trd 
    140 #endif 
    14189#else 
    14290   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.