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 2047 for trunk – NEMO

Changeset 2047 for trunk


Ignore:
Timestamp:
2010-08-13T09:58:59+02:00 (14 years ago)
Author:
cetlod
Message:

Improve CFC and Bomb C14 models, see ticket:700

Location:
trunk/NEMO/TOP_SRC
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/C14b/par_c14b.F90

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

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

    r1801 r2047  
    5353      ! Check tracer names 
    5454      ! ------------------ 
    55       IF ( ctrcnm(jpc11) /= 'CFC11' .OR. ctrcnm(jpc12) /= 'CFC12' ) THEN  
    56             ctrcnm(jpc11) = 'CFC11' 
    57             ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 
    58             ctrcnm(jpc12) = 'CFC12' 
    59             ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration'  
     55      ctrcnm(jpc11) = 'CFC11' 
     56      ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 
     57 
     58      IF ( jp_cfc == 2 ) THEN 
     59          ctrcnm(jpc12) = 'CFC12' 
     60          ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration' 
    6061      ENDIF 
    6162 
    6263      IF(lwp) THEN 
    63          WRITE (numout,*) ' ===>>>> : w a r n i n g <<<<===' 
     64         WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     65         WRITE (numout,*) ' =======   ============= ' 
    6466         WRITE (numout,*) ' we force tracer names' 
    6567         DO jl = 1, jp_cfc 
     
    6870         END DO 
    6971         WRITE(numout,*) ' ' 
    70       ENDIF  
     72      ENDIF 
    7173 
    7274 
  • trunk/NEMO/TOP_SRC/CFC/trcini_cfc.F90

    r1581 r2047  
    2222 
    2323   PUBLIC   trc_ini_cfc   ! called by trcini.F90 module 
     24 
     25   CHARACTER (len=34) ::   clname = 'cfc1112.atm'   ! ??? 
    2426 
    2527   INTEGER  ::   inum                   ! unit number 
     
    5557      ! ---------------------------------------  
    5658      xphem (:,:)    = 0.e0 
    57       DO jl = 1, jp_cfc 
    58          jn = jp_cfc0 + jl - 1 
    59          DO jm = 1, jphem 
    60             DO js = 1, jpyear 
    61                p_cfc(js,jm,jn) = 0.0 
    62             END DO 
    63          END DO 
    64       END DO 
    65        
     59      p_cfc(:,:,:)   = 0.e0 
    6660       
    6761      ! Initialization of qint in case of  no restart  
     
    7367            WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 
    7468         ENDIF 
     69         qint_cfc(:,:,:) = 0.e0 
    7570         DO jl = 1, jp_cfc 
    7671            jn = jp_cfc0 + jl - 1 
    7772            trn     (:,:,:,jn) = 0.e0 
    78             qint_cfc(:,:  ,jn) = 0.e0 
    7973         END DO 
    8074      ENDIF 
     
    8882      IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 
    8983       
    90       CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     84      CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    9185      REWIND(inum) 
    9286       
     
    9589      END DO 
    9690    
    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)' ) & 
     91      ! file starts in 1931 do jn represent the year in the century.jhh 
     92      ! Read file till the end 
     93      jn = 31 
     94      DO WHILE ( 1 /= 2 ) 
     95         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) 
     96         IF ( lwp) THEN 
     97           WRITE(numout,'(f7.2, 4f8.2)' ) & 
    10098            &         zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
     99         ENDIF 
     100         jn = jn + 1 
    101101      END DO 
     102 100  npyear = jn - 1 
     103      IF ( lwp) WRITE(numout,*) '    ', npyear ,' years read' 
    102104 
    103105      p_cfc(32,1:2,1) = 5.e-4      ! modify the values of the first years 
  • trunk/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r1459 r2047  
    2727   PUBLIC   trc_sms_cfc       ! called in ???     
    2828 
    29    INTEGER , PUBLIC, PARAMETER ::   jpyear = 100   ! temporal parameter  
     29   INTEGER , PUBLIC, PARAMETER ::   jpyear = 150   ! temporal parameter  
    3030   INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres 
    3131   INTEGER , PUBLIC    ::   ndate_beg      ! initial calendar date (aammjj) for CFC 
    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 
  • trunk/NEMO/TOP_SRC/LOBSTER/par_lobster.F90

    r1176 r2047  
    1212 
    1313   IMPLICIT NONE 
    14    PUBLIC 
    1514 
    1615#if defined key_lobster 
  • trunk/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90

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

    r1152 r2047  
    1010   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1111   !!---------------------------------------------------------------------- 
    12    USE par_lobster, ONLY : jp_lobster      !: number of tracers in LOBSTER 
    13    USE par_lobster, ONLY : jp_lobster_2d   !: number of 2D diag in LOBSTER 
    14    USE par_lobster, ONLY : jp_lobster_3d   !: number of 3D diag in LOBSTER 
    15    USE par_lobster, ONLY : jp_lobster_trd  !: number of biological diag in LOBSTER 
     12   USE par_lobster, ONLY : jp_lpobster      !: number of tracers in LOBSTER 
     13   USE par_lobster, ONLY : jp_lpobster_2d   !: number of 2D diag in LOBSTER 
     14   USE par_lobster, ONLY : jp_lpobster_3d   !: number of 3D diag in LOBSTER 
     15   USE par_lobster, ONLY : jp_lpobster_trd  !: number of biological diag in LOBSTER 
    1616 
    1717   IMPLICIT NONE 
    18    PUBLIC 
    1918 
    20    INTEGER, PUBLIC, PARAMETER ::   jp_l      = jp_lobster      !: cumulative number of already defined TRC 
    21    INTEGER, PUBLIC, PARAMETER ::   jp_l_2d   = jp_lobster_2d   !: 
    22    INTEGER, PUBLIC, PARAMETER ::   jp_l_3d   = jp_lobster_3d   !: 
    23    INTEGER, PUBLIC, PARAMETER ::   jp_l_trd  = jp_lobster_trd  !: 
     19   INTEGER, PARAMETER ::   jp_lp      = jp_lpobster      !: cumulative number of already defined TRC 
     20   INTEGER, PARAMETER ::   jp_lp_2d   = jp_lpobster_2d   !: 
     21   INTEGER, PARAMETER ::   jp_lp_3d   = jp_lpobster_3d   !: 
     22   INTEGER, PARAMETER ::   jp_lp_trd  = jp_lpobster_trd  !: 
    2423 
    2524#if defined key_pisces  &&  defined key_kriest 
     
    3736   !    WARNING: be carefull about the order when reading the restart 
    3837        !   !!gm  this warning should be obsolet with IOM 
    39    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration  
    40    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity  
    41    INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration  
    42    INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration  
    43    INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration  
    44    INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration 
    45    INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration 
    46    INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration  
    47    INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration 
    48    INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration  
    49    INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration 
    50    INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration 
    51    INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration 
    52    INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration 
    53    INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_l + 15    !: Big iron particles Concentration 
    54    INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 16    !: number of particulate organic phosphate concentration 
    55    INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 17    !: Diatoms iron Concentration 
    56    INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 18    !: Diatoms Silicate Concentration 
    57    INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 19    !: Nano iron Concentration 
    58    INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 20    !: Nano Chlorophyll Concentration 
    59    INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 21    !: Diatoms Chlorophyll Concentration 
    60    INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 22    !: Nitrates Concentration 
    61    INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 23    !: Ammonium Concentration 
     38   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration  
     39   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity  
     40   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration  
     41   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration  
     42   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration  
     43   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration 
     44   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration 
     45   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration  
     46   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration 
     47   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration  
     48   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration 
     49   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration 
     50   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration 
     51   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration 
     52   INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_lp + 15    !: Big iron particles Concentration 
     53   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 16    !: number of particulate organic phosphate concentration 
     54   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 17    !: Diatoms iron Concentration 
     55   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 18    !: Diatoms Silicate Concentration 
     56   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 19    !: Nano iron Concentration 
     57   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 20    !: Nano Chlorophyll Concentration 
     58   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 21    !: Diatoms Chlorophyll Concentration 
     59   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 22    !: Nitrates Concentration 
     60   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 23    !: Ammonium Concentration 
    6261 
    6362#elif defined key_pisces 
     
    7574   !    WARNING: be carefull about the order when reading the restart 
    7675        !   !!gm  this warning should be obsolet with IOM 
    77    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration  
    78    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity  
    79    INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration  
    80    INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration  
    81    INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration  
    82    INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration 
    83    INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration 
    84    INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration  
    85    INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration 
    86    INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration  
    87    INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration 
    88    INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration 
    89    INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration 
    90    INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration 
    91    INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_l + 15    !: Big iron particles Concentration 
    92    INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_l + 16    !: big particulate organic phosphate concentration 
    93    INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 17    !: Small iron particles Concentration 
    94    INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 18    !: Diatoms iron Concentration 
    95    INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 19    !: Diatoms Silicate Concentration 
    96    INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 20    !: Nano iron Concentration 
    97    INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 21    !: Nano Chlorophyll Concentration 
    98    INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 22    !: Diatoms Chlorophyll Concentration 
    99    INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 23    !: Nitrates Concentration 
    100    INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 24    !: Ammonium Concentration 
     76   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration  
     77   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity  
     78   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration  
     79   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration  
     80   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration  
     81   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration 
     82   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration 
     83   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration  
     84   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration 
     85   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration  
     86   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration 
     87   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration 
     88   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration 
     89   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration 
     90   INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_lp + 15    !: Big iron particles Concentration 
     91   INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_lp + 16    !: big particulate organic phosphate concentration 
     92   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 17    !: Small iron particles Concentration 
     93   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 18    !: Diatoms iron Concentration 
     94   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 19    !: Diatoms Silicate Concentration 
     95   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 20    !: Nano iron Concentration 
     96   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 21    !: Nano Chlorophyll Concentration 
     97   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 22    !: Diatoms Chlorophyll Concentration 
     98   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 23    !: Nitrates Concentration 
     99   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 24    !: Ammonium Concentration 
    101100 
    102101#else 
     
    113112 
    114113   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 
    115    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_l + 1                  !: First index of PISCES tracers 
    116    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_l + jp_pisces          !: Last  index of PISCES tracers 
    117    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_l_2d + 1               !: First index of 2D diag 
    118    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_l_2d + jp_pisces_2d    !: Last  index of 2D diag 
    119    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_l_3d + 1               !: First index of 3D diag 
    120    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_l_3d + jp_pisces_3d    !: Last  index of 3d diag 
    121    INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_l_trd + 1              !: First index of bio diag 
    122    INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_l_trd + jp_pisces_trd  !: Last  index of bio diag 
     114   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_lp + 1                  !: First index of PISCES tracers 
     115   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_lp + jp_pisces          !: Last  index of PISCES tracers 
     116   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_lp_2d + 1               !: First index of 2D diag 
     117   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_lp_2d + jp_pisces_2d    !: Last  index of 2D diag 
     118   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_lp_3d + 1               !: First index of 3D diag 
     119   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_lp_3d + jp_pisces_3d    !: Last  index of 3d diag 
     120   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_lp_trd + 1              !: First index of bio diag 
     121   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_lp_trd + jp_pisces_trd  !: Last  index of bio diag 
    123122 
    124123 
  • trunk/NEMO/TOP_SRC/par_trc.F90

    r1836 r2047  
    2323 
    2424   IMPLICIT NONE 
    25    PUBLIC 
    2625 
    2726   ! Passive tracers : Total size 
    2827   ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays 
    29    INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_my_trc 
    30    INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d + jp_my_trc_2d 
    31    INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d + jp_my_trc_3d 
     28   INTEGER, PUBLIC,  PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_c14b    + jp_my_trc 
     29   INTEGER, PUBLIC,  PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d + jp_my_trc_2d 
     30   INTEGER, PUBLIC,  PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d + jp_my_trc_3d 
    3231   !                     ! total number of sms diagnostic arrays 
    33    INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd 
     32   INTEGER, PUBLIC,  PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 
    3433    
    3534   !  1D configuration ("key_c1d") 
     
    4342# if defined key_trc_diatrd 
    4443   ! 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 
     44   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xad     =  1   !: x- horizontal advection 
     45   INTEGER, PUBLIC,  PARAMETER ::   jptrc_yad     =  2   !: y- horizontal advection 
     46   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zad     =  3   !: z- vertical   advection 
     47   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xdf     =  4   !: lateral       diffusion 
     48   INTEGER, PUBLIC,  PARAMETER ::   jptrc_ydf     =  5   !: lateral       diffusion 
     49   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zdf     =  6   !: vertical diffusion (Kz) 
     50   INTEGER, PUBLIC,  PARAMETER ::   jptrc_sbc     =  7   !: surface boundary condition 
    5251#if ! defined key_trcldf_eiv && ! defined key_trcdmp 
    53    INTEGER, PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc 
     52   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc 
    5453#endif 
    5554#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 
     55   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
     56   INTEGER, PUBLIC,  PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
     57   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
     58   INTEGER, PUBLIC,  PARAMETER ::   jptrc_dmp     = 11   !: damping 
     59   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      = 11   !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 
    6160#endif 
    6261#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  
     62   INTEGER, PUBLIC,  PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection 
     63   INTEGER, PUBLIC,  PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection 
     64   INTEGER, PUBLIC,  PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection 
     65   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      = 10   !: trends: 3*(advection + diffusion + eiv ) + sbc  
    6766#endif 
    6867#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 
     68   INTEGER, PUBLIC,  PARAMETER ::   jptrc_dmp     =  8   !: damping 
     69   INTEGER, PUBLIC,  PARAMETER ::   jpdiatrc      =  8   !: trends: 3*(advection + diffusion       ) + sbc + damping 
    7170#endif 
    7271#endif 
Note: See TracChangeset for help on using the changeset viewer.