Changeset 8353


Ignore:
Timestamp:
2017-07-19T16:41:00+02:00 (2 months ago)
Author:
Tomas Lovato
Message:

3.6 stable: update TOP modules and shared configuraton files for CMIP6 (#1925)

Location:
branches/2015/nemo_v3_6_STABLE/NEMOGCM
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/field_def.xml

    r8102 r8353  
    10011001       <field id="CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3" /> 
    10021002       <field id="CFC11_E3T"   long_name="CFC11 * E3T"                              unit="umol/m2"  > CFC11 * e3t </field > 
     1003       <field id="CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3" /> 
     1004       <field id="CFC12_E3T"   long_name="CFC12 * E3T"                              unit="umol/m2"  > CFC12 * e3t </field > 
     1005       <field id="SF6"         long_name="SF6 Concentration"                        unit="umol/m3" /> 
     1006       <field id="SF6_E3T"     long_name="SF6 * E3T"                                unit="umol/m2"  > SF6 * e3t </field > 
    10031007 
    10041008       <!-- Bomb C14 : variables available with key_c14b --> 
     
    11251129 
    11261130       <!-- CFC11 : variables available with key_cfc --> 
    1127        <field id="qtrCFC11"    long_name="Air-sea flux of CFC-11"                  unit="mol/m2/s"   /> 
    1128        <field id="qintCFC11"   long_name="Cumulative air-sea flux of CFC-11"       unit="mol/m2"     /> 
     1131       <field id="qtr_CFC11"   long_name="Air-sea flux of CFC-11"                  unit="mol/m2/s"   /> 
     1132       <field id="qint_CFC11"  long_name="Cumulative air-sea flux of CFC-11"       unit="mol/m2"     /> 
     1133       <field id="qtr_CFC12"   long_name="Air-sea flux of CFC-12"                  unit="mol/m2/s"   /> 
     1134       <field id="qint_CFC12"  long_name="Cumulative air-sea flux of CFC-12"       unit="mol/m2"     /> 
     1135       <field id="qtr_SF6"     long_name="Air-sea flux of SF6"                     unit="mol/m2/s"   /> 
     1136       <field id="qint_SF6"    long_name="Cumulative air-sea flux of SF6"          unit="mol/m2"     /> 
    11291137 
    11301138       <!-- Bomb C14 : variables available with key_c14b --> 
    1131        <field id="qtrC14b"     long_name="Air-sea flux of Bomb C14"                unit="mol/m2/s"   /> 
    1132        <field id="qintC14b"    long_name="Cumulative air-sea flux of Bomb C14"     unit="mol/m2"     /> 
     1139       <field id="qtr_C14b"    long_name="Air-sea flux of Bomb C14"                unit="mol/m2/s"   /> 
     1140       <field id="qint_C14b"   long_name="Cumulative air-sea flux of Bomb C14"     unit="mol/m2"     /> 
    11331141       <field id="fdecay"      long_name="Radiactive decay of Bomb C14"            unit="mol/m3"  grid_ref="grid_T_3D"  /> 
    11341142     </field_group> 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref

    r4147 r8353  
    88   ndate_beg  = 300101    !  datedeb1 
    99   nyear_res  = 1932      !  iannee1 
     10   ! Formatted file of annual hemisperic CFCs concentration in the atmosphere (ppt) 
     11   clnamecfc   = 'CFCs_CMIP6.dat' 
    1012/ 
    1113!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90

    r7491 r8353  
    2525   USE par_c14b   , ONLY : jp_c14b_trd     !: number of tracers in C14 
    2626 
     27   USE par_my_trc , ONLY : jp_my_trc       !: number of tracers in MY_TRC 
     28   USE par_my_trc , ONLY : jp_my_trc_2d    !: number of 2D diag in MY_TRC 
     29   USE par_my_trc , ONLY : jp_my_trc_3d    !: number of 3D diag in MY_TRC 
     30   USE par_my_trc , ONLY : jp_my_trc_trd   !: number of biological diag in MY_TRC 
     31 
    2732   IMPLICIT NONE 
    2833 
    29    INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_cfc     + jp_c14b     !:  
    30    INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !: 
    31    INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !: 
    32    INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !: 
     34   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_my_trc     + jp_cfc     + jp_c14b     !:  
     35   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_my_trc_2d  + jp_cfc_2d  + jp_c14b_2d  !: 
     36   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_my_trc_3d  + jp_cfc_3d  + jp_c14b_3d  !: 
     37   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_my_trc_trd + jp_cfc_trd + jp_c14b_trd !: 
    3338 
    3439#if defined key_age 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90

    r7491 r8353  
    1414   USE oce_trc         ! Ocean variables 
    1515   USE trcsms_age      ! AGE specific variable 
     16   USE trc 
    1617 
    1718   IMPLICIT NONE 
     
    4445      NAMELIST/namage/ rn_age_depth, rn_age_kill_rate  
    4546      !!---------------------------------------------------------------------- 
     47      ! Variable setting 
     48      ctrcnm    (jp_age0) = 'Age' 
     49      ctrcln    (jp_age0) = 'Sea water age since surface contact' 
     50      ctrcun    (jp_age0) = 'year' 
     51      ln_trc_ini(jp_age0) = .false. 
    4652      !                             ! Open namelist files 
    4753      CALL ctl_opn( numnatg_ref, 'namelist_age_ref'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/par_c14b.F90

    r3680 r8353  
    1111   USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES 
    1212 
     13   USE par_my_trc , ONLY : jp_my_trc       !: number of tracers in MY_TRC 
     14   USE par_my_trc , ONLY : jp_my_trc_2d    !: number of 2D diag in MY_TRC 
     15   USE par_my_trc , ONLY : jp_my_trc_3d    !: number of 3D diag in MY_TRC 
     16   USE par_my_trc , ONLY : jp_my_trc_trd   !: number of biological diag in MY_TRC 
     17 
    1318   USE par_cfc    , ONLY : jp_cfc          !: number of tracers in CFC 
    1419   USE par_cfc    , ONLY : jp_cfc_2d       !: number of 2D diag in CFC 
     
    1924   IMPLICIT NONE 
    2025 
    21    INTEGER, PARAMETER ::   jp_lb      =  jp_pisces     + jp_cfc     !: cum. number of pass. tracers 
    22    INTEGER, PARAMETER ::   jp_lb_2d   =  jp_pisces_2d  + jp_cfc_2d  !: 
    23    INTEGER, PARAMETER ::   jp_lb_3d   =  jp_pisces_3d  + jp_cfc_3d  !: 
    24    INTEGER, PARAMETER ::   jp_lb_trd  =  jp_pisces_trd + jp_cfc_trd !: 
     26   INTEGER, PARAMETER ::   jp_lb      =  jp_pisces     + jp_my_trc     + jp_cfc     !: cum. number of pass. tracers 
     27   INTEGER, PARAMETER ::   jp_lb_2d   =  jp_pisces_2d  + jp_my_trc_2d  + jp_cfc_2d  !: 
     28   INTEGER, PARAMETER ::   jp_lb_3d   =  jp_pisces_3d  + jp_my_trc_3d  + jp_cfc_3d  !: 
     29   INTEGER, PARAMETER ::   jp_lb_trd  =  jp_pisces_trd + jp_my_trc_trd + jp_cfc_trd !: 
    2530    
    2631#if defined key_c14b 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90

    r4624 r8353  
    5555      NAMELIST/namc14dia/  c14dia2d, c14dia3d     ! additional diagnostics 
    5656      !!------------------------------------------------------------------- 
     57      ctrcnm    (jp_c14b0) = 'C14B' 
     58      ctrcln    (jp_c14b0) = 'Bomb C14 Concentration' 
     59      ctrcun    (jp_c14b0) = 'ration' 
     60      ln_trc_ini(jp_c14b0) = .false. 
     61      ln_trc_wri(jp_c14b0) = .true. 
    5762      !                             ! Open namelist file 
    5863      CALL ctl_opn( numnatb_ref, 'namelist_c14b_ref'  ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90

    r5215 r8353  
    291291      !     
    292292      IF( lk_iomput ) THEN 
    293         CALL iom_put( "qtrC14b"  , qtr_c14  ) 
    294         CALL iom_put( "qintC14b" , qint_c14 ) 
     293        CALL iom_put( "qtr_C14b"  , qtr_c14  ) 
     294        CALL iom_put( "qint_C14b" , qint_c14 ) 
    295295        CALL iom_put( "fdecay"   , zdecay   ) 
    296296      ELSE 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90

    r3680 r8353  
    1414   USE par_pisces , ONLY : jp_pisces_3d    !: number of 3D diag in PISCES 
    1515   USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES 
     16    
     17   USE par_my_trc , ONLY : jp_my_trc       !: number of tracers in MY_TRC 
     18   USE par_my_trc , ONLY : jp_my_trc_2d    !: number of 2D diag in MY_TRC 
     19   USE par_my_trc , ONLY : jp_my_trc_3d    !: number of 3D diag in MY_TRC 
     20   USE par_my_trc , ONLY : jp_my_trc_trd   !: number of biological diag in MY_TRC 
    1621 
    1722   IMPLICIT NONE 
    1823 
    19    INTEGER, PARAMETER ::   jp_lc      =  jp_pisces     !: cumulative number of passive tracers 
    20    INTEGER, PARAMETER ::   jp_lc_2d   =  jp_pisces_2d  !: 
    21    INTEGER, PARAMETER ::   jp_lc_3d   =  jp_pisces_3d  !: 
    22    INTEGER, PARAMETER ::   jp_lc_trd  =  jp_pisces_trd !: 
     24   INTEGER, PARAMETER ::   jp_lc      =  jp_pisces     + jp_my_trc     !: cumulative number of passive tracers 
     25   INTEGER, PARAMETER ::   jp_lc_2d   =  jp_pisces_2d  + jp_my_trc_2d  !: 
     26   INTEGER, PARAMETER ::   jp_lc_3d   =  jp_pisces_3d  + jp_my_trc_3d  !: 
     27   INTEGER, PARAMETER ::   jp_lc_trd  =  jp_pisces_trd + jp_my_trc_trd !: 
    2328    
    2429#if defined key_cfc 
     
    2732   !!--------------------------------------------------------------------- 
    2833   LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .TRUE.      !: CFC flag  
    29    INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  1          !: number of passive tracers 
    30    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2         !: additional 2d output arrays ('key_trc_diaadd') 
     34   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  2          !: number of passive tracers 
     35   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2 * jp_cfc !: additional 2d output arrays ('key_trc_diaadd') 
    3136   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_trc_diaadd') 
    3237   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC 
    33     
    34    ! assign an index in trc arrays for each CFC prognostic variables 
    35    INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lc + 1   !: CFC-11  
    36    INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lc + 2   !: CFC-12    
     38   ! Enable trace gases according to total number jp_cfc 
     39   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc11   = .false.     !: use CFC11 
     40   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc12   = .true.      !: use CFC12 
     41   LOGICAL, PUBLIC, PARAMETER ::   lp_sf6     = .true.      !: use SF6 
    3742#else 
    3843   !!--------------------------------------------------------------------- 
     
    4449   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: No CFC additional 3d output arrays  
    4550   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC 
     51   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc11   = .false.     !: use CFC11 
     52   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc12   = .false.     !: use CFC12 
     53   LOGICAL, PUBLIC, PARAMETER ::   lp_sf6     = .false.     !: use SF6 
    4654#endif 
    4755 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90

    r3294 r8353  
    2222   PUBLIC   trc_ini_cfc   ! called by trcini.F90 module 
    2323 
    24    CHARACTER (len=34) ::   clname = 'cfc1112.atm'   ! ??? 
    25  
    2624   INTEGER  ::   inum                   ! unit number 
    2725   REAL(wp) ::   ylats = -10.           ! 10 degrees south 
     
    4644      INTEGER  ::  iskip = 6   ! number of 1st descriptor lines 
    4745      REAL(wp) ::  zyy, zyd 
     46      CHARACTER(len = 20)  ::  cltra 
    4847      !!---------------------------------------------------------------------- 
    4948 
     
    5150      IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' 
    5251      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 
    53  
    54  
    55       IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 
     52      ! 
     53      IF(lwp) WRITE(numout,*) 'Read annual atmospheric concentrations from formatted file : ' // TRIM(clnamecfc) 
    5654       
    57       CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
     55      CALL ctl_opn( inum, clnamecfc, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    5856      REWIND(inum) 
    5957       
     
    6664      END DO 
    6765 100  jpyear = jn - 1 - iskip 
    68       IF ( lwp) WRITE(numout,*) '    ', jpyear ,' years read' 
     66      IF ( lwp) WRITE(numout,*) '   ---> ', jpyear ,' years read' 
    6967      !                                ! Allocate CFC arrays 
    7068 
    71       ALLOCATE( p_cfc(jpyear,jphem,2), STAT=ierr ) 
     69      ALLOCATE( p_cfc(jpyear,jphem,3), STAT=ierr ) 
    7270      IF( ierr > 0 ) THEN 
    7371         CALL ctl_stop( 'trc_ini_cfc: unable to allocate p_cfc array' )   ;   RETURN 
     
    8785         IF(lwp) THEN 
    8886            WRITE(numout,*) 
    89             WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 
     87            WRITE(numout,*) 'Initialisation of qint ; No restart : qint equal zero ' 
    9088         ENDIF 
    9189         qint_cfc(:,:,:) = 0._wp 
     
    105103      jn = 31 
    106104      DO  
    107         READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 
     105        READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1:2,1), p_cfc(jn,1:2,2), p_cfc(jn,1:2,3) 
    108106        IF( io < 0 ) exit 
    109107        jn = jn + 1 
    110108      END DO 
    111109 
    112       p_cfc(32,1:2,1) = 5.e-4      ! modify the values of the first years 
    113       p_cfc(33,1:2,1) = 8.e-4 
    114       p_cfc(34,1:2,1) = 1.e-6 
    115       p_cfc(35,1:2,1) = 2.e-3 
    116       p_cfc(36,1:2,1) = 4.e-3 
    117       p_cfc(37,1:2,1) = 6.e-3 
    118       p_cfc(38,1:2,1) = 8.e-3 
    119       p_cfc(39,1:2,1) = 1.e-2 
    120        
    121110      IF(lwp) THEN        ! Control print 
    122111         WRITE(numout,*) 
    123          WRITE(numout,*) ' Year   p11HN    p11HS    p12HN    p12HS ' 
     112         WRITE(numout,*) ' Year   c11NH     c11SH     c12NH     c12SH     SF6NH     SF6SH' 
    124113         DO jn = 30, jpyear 
    125             WRITE(numout, '( 1I4, 4F9.2)') jn, p_cfc(jn,1,1), p_cfc(jn,2,1), p_cfc(jn,1,2), p_cfc(jn,2,2) 
     114            WRITE(numout, '( 1I4, 6F10.4)') jn, p_cfc(jn,1:2,1), p_cfc(jn,1:2,2), p_cfc(jn,1:2,3) 
    126115         END DO 
    127116      ENDIF 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90

    r4624 r8353  
    4646      INTEGER ::  numonc      = -1   ! Logical unit for output namelist 
    4747      INTEGER :: ios                 ! Local integer output status for namelist read 
    48       INTEGER :: jl, jn 
     48      INTEGER :: jl, jn, cnt 
    4949      TYPE(DIAG), DIMENSION(jp_cfc_2d) :: cfcdia2d 
    5050      !! 
    51       NAMELIST/namcfcdate/ ndate_beg, nyear_res 
     51      NAMELIST/namcfcdate/ ndate_beg, nyear_res, clnamecfc 
    5252      NAMELIST/namcfcdia/  cfcdia2d     ! additional diagnostics 
    5353      !!---------------------------------------------------------------------- 
     
    6666      IF(lwm) WRITE ( numonc, namcfcdate ) 
    6767 
     68      jn = jp_cfc0 - 1 
     69      ! Variables setting 
     70      IF( lp_cfc11 ) THEN 
     71         jn = jn + 1 
     72         ctrcnm    (jn) = 'CFC11' 
     73         ctrcln    (jn) = 'Chlorofluoro carbon 11 Concentration' 
     74         ctrcun    (jn) = 'umolC/L' 
     75         ln_trc_ini(jn) = .false. 
     76         ln_trc_wri(jn) = .true. 
     77      ENDIF 
     78      ! 
     79      IF( lp_cfc12 ) THEN 
     80         jn = jn + 1 
     81         ctrcnm    (jn) = 'CFC12' 
     82         ctrcln    (jn) = 'Chlorofluoro carbon 12 Concentration' 
     83         ctrcun    (jn) = 'umolC/L' 
     84         ln_trc_ini(jn) = .false. 
     85         ln_trc_wri(jn) = .true. 
     86      ENDIF 
     87      ! 
     88      IF( lp_sf6 ) THEN 
     89         jn = jn + 1 
     90         ctrcnm    (jn) = 'SF6' 
     91         ctrcln    (jn) = 'Sulfur hexafluoride Concentration' 
     92         ctrcun    (jn) = 'umol/L' 
     93         ln_trc_ini(jn) = .false. 
     94         ln_trc_wri(jn) = .true. 
     95      ENDIF 
     96 
    6897      IF(lwp) THEN                  ! control print 
    69          WRITE(numout,*) 
     98         WRITE(numout,*) ' ' 
     99         WRITE(numout,*) ' CFCs' 
     100         WRITE(numout,*) ' ' 
    70101         WRITE(numout,*) ' trc_nam: Read namdates, namelist for CFC chemical model' 
    71102         WRITE(numout,*) ' ~~~~~~~' 
    72103         WRITE(numout,*) '    initial calendar date (aammjj) for CFC  ndate_beg = ', ndate_beg 
    73104         WRITE(numout,*) '    restoring time constant (year)          nyear_res = ', nyear_res 
     105         WRITE(numout,*) '    Atmospheric CFC concentrations file     clnamecfc = ', TRIM(clnamecfc) 
     106         WRITE(numout,*) '    Compute dynamics for CFC-11             lp_cfc11  = ', lp_cfc11 
     107         WRITE(numout,*) '    Compute dynamics for CFC-12             lp_cfc12  = ', lp_cfc12 
     108         WRITE(numout,*) '    Compute dynamics for SF6                lp_sf6    = ', lp_sf6 
    74109      ENDIF 
    75110      nyear_beg = ndate_beg / 10000 
    76111      IF(lwp) WRITE(numout,*) '    initial year (aa)                       nyear_beg = ', nyear_beg 
     112      ! 
     113      ! check consistency between CFC namelist and par_cfc setting 
     114      if ( jn - jp_cfc0 + 1 .ne. jp_cfc )  & 
     115      CALL ctl_stop( 'trc_nam_cfc: Number of selected CFCs is different from total CFC number (jp_cfc) specified in par_cfc.F90' ) 
    77116      ! 
    78117 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90

    r4996 r8353  
    2929 
    3030   INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres 
    31    INTEGER , PUBLIC            ::   jpyear         ! Number of years read in CFC1112 file 
     31   INTEGER , PUBLIC            ::   jpyear         ! Number of years read in input data file (in trcini_cfc) 
    3232   INTEGER , PUBLIC            ::   ndate_beg      ! initial calendar date (aammjj) for CFC 
    3333   INTEGER , PUBLIC            ::   nyear_res      ! restoring time constant (year) 
    3434   INTEGER , PUBLIC            ::   nyear_beg      ! initial year (aa)  
     35   CHARACTER(len=200), PUBLIC  ::   clnamecfc      ! Input filename of CFCs atm. concentrations 
    3536    
    3637   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   p_cfc    ! partial hemispheric pressure for CFC 
     
    3839   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qtr_cfc  ! flux at surface 
    3940   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qint_cfc ! cumulative flux  
     41   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   atm_cfc  ! partial hemispheric pressure for used CFC 
    4042   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   patm     ! atmospheric function 
    4143 
    42    REAL(wp), DIMENSION(4,2) ::   soa   ! coefficient for solubility of CFC [mol/l/atm] 
    43    REAL(wp), DIMENSION(3,2) ::   sob   !    "               " 
    44    REAL(wp), DIMENSION(4,2) ::   sca   ! coefficients for schmidt number in degre Celcius 
    45        
     44   REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   soa      ! coefficient for solubility of CFC [mol/l/atm] 
     45   REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sob      !    "               " 
     46   REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sca      ! coefficients for schmidt number in degrees Celsius 
    4647   !                          ! coefficients for conversion 
    4748   REAL(wp) ::   xconv1 = 1.0          ! conversion from to  
     
    8283      INTEGER  ::   im1, im2, ierr 
    8384      REAL(wp) ::   ztap, zdtap         
    84       REAL(wp) ::   zt1, zt2, zt3, zv2 
     85      REAL(wp) ::   zt1, zt2, zt3, zt4, zv2 
    8586      REAL(wp) ::   zsol      ! solubility 
    8687      REAL(wp) ::   zsch      ! schmidt number  
     
    120121         ! time interpolation at time kt 
    121122         DO jm = 1, jphem 
    122             zpatm(jm,jl) = (  p_cfc(iyear_beg, jm, jl) * FLOAT (im1)  & 
    123                &           +  p_cfc(iyear_end, jm, jl) * FLOAT (im2) ) / 12. 
     123            zpatm(jm,jl) = (  atm_cfc(iyear_beg, jm, jl) * REAL(im1, wp)  & 
     124               &           +  atm_cfc(iyear_end, jm, jl) * REAL(im2, wp) ) / 12. 
    124125         END DO 
    125126          
     
    148149   
    149150               ! Computation of speed transfert 
    150                !    Schmidt number 
     151               !    Schmidt number revised in Wanninkhof (2014) 
    151152               zt1  = tsn(ji,jj,1,jp_tem) 
    152153               zt2  = zt1 * zt1  
    153154               zt3  = zt1 * zt2 
    154                zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 
    155  
    156                !    speed transfert : formulae of wanninkhof 1992 
     155               zt4  = zt2 * zt2 
     156               zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 + sca(5,jl) * zt4 
     157 
     158               !    speed transfert : formulae revised in Wanninkhof (2014) 
    157159               zv2     = wndm(ji,jj) * wndm(ji,jj) 
    158160               zsch    = zsch / 660. 
    159                zak_cfc = ( 0.39 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1) 
     161               zak_cfc = ( 0.31 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1) 
    160162 
    161163               ! Input function  : speed *( conc. at equil - concen at surface ) 
     
    188190      ! 
    189191      IF( lk_iomput ) THEN 
    190          CALL iom_put( "qtrCFC11"  , qtr_cfc (:,:,1) ) 
    191          CALL iom_put( "qintCFC11" , qint_cfc(:,:,1) ) 
     192         DO jn = jp_cfc0, jp_cfc1 
     193            CALL iom_put( 'qtr_'//TRIM(ctrcnm(jn)) , qtr_cfc (:,:,jn) ) 
     194            CALL iom_put( 'qint_'//TRIM(ctrcnm(jn)), qint_cfc(:,:,jn) ) 
     195         ENDDO 
    192196      ELSE 
    193197         IF( ln_diatrc ) THEN 
    194             trc2d(:,:,jp_cfc0_2d    ) = qtr_cfc (:,:,1) 
    195             trc2d(:,:,jp_cfc0_2d + 1) = qint_cfc(:,:,1) 
     198            jl = 0 
     199            DO jn = jp_cfc0_2d, jp_cfc1_2d, 2 
     200               jl = jl + 1 
     201               trc2d(:,:,jn    ) = qtr_cfc (:,:,jl) 
     202               trc2d(:,:,jn + 1) = qint_cfc(:,:,jl) 
     203            ENDDO 
    196204         END IF 
    197205      END IF 
     
    215223      !!--------------------------------------------------------------------- 
    216224      INTEGER :: jn 
    217  
     225      !!---------------------------------------------------------------------- 
     226      ! 
     227      jn = 0  
    218228      ! coefficient for CFC11  
    219229      !---------------------- 
    220  
    221       ! Solubility 
    222       soa(1,1) = -229.9261  
    223       soa(2,1) =  319.6552 
    224       soa(3,1) =  119.4471 
    225       soa(4,1) =  -1.39165 
    226  
    227       sob(1,1) =  -0.142382 
    228       sob(2,1) =   0.091459 
    229       sob(3,1) =  -0.0157274 
    230  
    231       ! Schmidt number  
    232       sca(1,1) = 3501.8 
    233       sca(2,1) = -210.31 
    234       sca(3,1) =  6.1851 
    235       sca(4,1) = -0.07513 
     230      if ( lp_cfc11 ) then 
     231         jn = jn + 1 
     232         ! Solubility 
     233         soa(1,jn) = -229.9261  
     234         soa(2,jn) =  319.6552 
     235         soa(3,jn) =  119.4471 
     236         soa(4,jn) =  -1.39165 
     237 
     238         sob(1,jn) =  -0.142382 
     239         sob(2,jn) =   0.091459 
     240         sob(3,jn) =  -0.0157274 
     241 
     242         ! Schmidt number  
     243         sca(1,jn) = 3579.2 
     244         sca(2,jn) = -222.63 
     245         sca(3,jn) = 7.5749 
     246         sca(4,jn) = -0.14595 
     247         sca(5,jn) = 0.0011874 
     248 
     249         ! atm. concentration 
     250         atm_cfc(:,:,jn) = p_cfc(:,:,1) 
     251      endif 
    236252 
    237253      ! coefficient for CFC12  
    238254      !---------------------- 
    239  
    240       ! Solubility 
    241       soa(1,2) = -218.0971 
    242       soa(2,2) =  298.9702 
    243       soa(3,2) =  113.8049 
    244       soa(4,2) =  -1.39165 
    245  
    246       sob(1,2) =  -0.143566 
    247       sob(2,2) =   0.091015 
    248       sob(3,2) =  -0.0153924 
    249  
    250       ! schmidt number  
    251       sca(1,2) =  3845.4  
    252       sca(2,2) =  -228.95 
    253       sca(3,2) =  6.1908  
    254       sca(4,2) =  -0.067430 
     255      if ( lp_cfc12 ) then 
     256         jn = jn + 1 
     257         ! Solubility 
     258         soa(1,jn) = -218.0971 
     259         soa(2,jn) =  298.9702 
     260         soa(3,jn) =  113.8049 
     261         soa(4,jn) =  -1.39165 
     262 
     263         sob(1,jn) =  -0.143566 
     264         sob(2,jn) =   0.091015 
     265         sob(3,jn) =  -0.0153924 
     266 
     267         ! schmidt number  
     268         sca(1,jn) = 3828.1 
     269         sca(2,jn) = -249.86 
     270         sca(3,jn) = 8.7603 
     271         sca(4,jn) = -0.1716 
     272         sca(5,jn) = 0.001408 
     273 
     274         ! atm. concentration 
     275         atm_cfc(:,:,jn) = p_cfc(:,:,2) 
     276      endif 
     277 
     278      ! coefficient for SF6 
     279      !---------------------- 
     280      if ( lp_sf6 ) then 
     281         jn = jn + 1 
     282         ! Solubility 
     283         soa(1,jn) = -80.0343 
     284         soa(2,jn) = 117.232 
     285         soa(3,jn) =  29.5817 
     286         soa(4,jn) =   0.0 
     287 
     288         sob(1,jn) =  0.0335183  
     289         sob(2,jn) = -0.0373942  
     290         sob(3,jn) =  0.00774862 
     291 
     292         ! schmidt number 
     293         sca(1,jn) = 3177.5 
     294         sca(2,jn) = -200.57 
     295         sca(3,jn) = 6.8865 
     296         sca(4,jn) = -0.13335 
     297         sca(5,jn) = 0.0010877 
     298   
     299         ! atm. concentration 
     300         atm_cfc(:,:,jn) = p_cfc(:,:,3) 
     301       endif 
    255302 
    256303      IF( ln_rsttr ) THEN 
     
    272319      !!                     ***  ROUTINE trc_sms_cfc_alloc  *** 
    273320      !!---------------------------------------------------------------------- 
    274       ALLOCATE( xphem   (jpi,jpj)        ,     & 
    275          &      qtr_cfc (jpi,jpj,jp_cfc) ,     & 
    276          &      qint_cfc(jpi,jpj,jp_cfc) , STAT=trc_sms_cfc_alloc ) 
     321      ALLOCATE( xphem   (jpi,jpj)        , atm_cfc(jpyear,jphem,jp_cfc)  ,    & 
     322         &      qtr_cfc (jpi,jpj,jp_cfc) , qint_cfc(jpi,jpj,jp_cfc)      ,    & 
     323         &      soa(4,jp_cfc)    ,  sob(3,jp_cfc)   ,  sca(5,jp_cfc)     ,    & 
     324         &      STAT=trc_sms_cfc_alloc ) 
    277325         ! 
    278326      IF( trc_sms_cfc_alloc /= 0 ) CALL ctl_warn('trc_sms_cfc_alloc : failed to allocate arrays.') 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90

    r7494 r8353  
    1515   USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES 
    1616 
    17    USE par_cfc    , ONLY : jp_cfc          !: number of tracers in CFC 
    18    USE par_cfc    , ONLY : jp_cfc_2d       !: number of tracers in CFC 
    19    USE par_cfc    , ONLY : jp_cfc_3d       !: number of tracers in CFC 
    20    USE par_cfc    , ONLY : jp_cfc_trd      !: number of tracers in CFC 
    21  
    22    USE par_c14b   , ONLY : jp_c14b         !: number of tracers in C14 
    23    USE par_c14b   , ONLY : jp_c14b_2d      !: number of tracers in C14 
    24    USE par_c14b   , ONLY : jp_c14b_3d      !: number of tracers in C14 
    25    USE par_c14b   , ONLY : jp_c14b_trd     !: number of tracers in C14 
    26  
    27    USE par_age   , ONLY : jp_age         !: number of tracers in AGE 
    28    USE par_age   , ONLY : jp_age_2d      !: number of tracers in AGE 
    29    USE par_age   , ONLY : jp_age_3d      !: number of tracers in AGE 
    30    USE par_age   , ONLY : jp_age_trd     !: number of tracers in AGE 
    31  
    3217   IMPLICIT NONE 
    3318 
    34    INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_cfc     + jp_c14b     + jp_age      !:  
    35    INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  + jp_age_2d   !: 
    36    INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  + jp_age_3d   !: 
    37    INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_age_trd  !: 
     19   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     !:  
     20   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  !: 
     21   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  !: 
     22   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd !: 
    3823 
    3924#if defined key_my_trc 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcnam_my_trc.F90

    r3680 r8353  
    3636      !! 
    3737      !!---------------------------------------------------------------------- 
     38      INTEGER :: jn 
    3839      ! 
    3940      IF(lwp) WRITE(numout,*) 
    4041      IF(lwp) WRITE(numout,*) ' trc_nam_my_trc : read MY_TRC namelists' 
    4142      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~' 
     43      !  
     44      do jn = jp_myt0 , jp_myt1 
     45         ctrcnm    (jn) = 'NONAME' 
     46         ctrcln    (jn) = 'NO Long Name' 
     47         ctrcun    (jn) = 'NOUNIT' 
     48         ln_trc_ini(jn) = .false. 
     49         ln_trc_wri(jn) = .true. 
     50      enddo 
    4251      ! 
    43    END SUBROUTINE trc_nam_my_trc 
     52      END SUBROUTINE trc_nam_my_trc 
    4453    
    4554#else 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcice.F90

    r5385 r8353  
    5252      IF ( nn_ice_tr == 1 ) THEN 
    5353         IF( lk_pisces  )    CALL trc_ice_ini_pisces       ! PISCES  bio-model 
     54         IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers 
    5455         IF( lk_cfc     )    CALL trc_ice_ini_cfc          ! CFC     tracers 
    5556         IF( lk_c14b    )    CALL trc_ice_ini_c14b         ! C14 bomb  tracer 
    56          IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers 
    5757      ENDIF 
    5858 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r7494 r8353  
    9797 
    9898      IF( lk_pisces  )       CALL trc_ini_pisces       ! PISCES  bio-model 
     99      IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC    tracers 
    99100      IF( lk_cfc     )       CALL trc_ini_cfc          ! CFC       tracers 
    100101      IF( lk_c14b    )       CALL trc_ini_c14b         ! C14 bomb  tracer 
    101102      IF( lk_age     )       CALL trc_ini_age          ! AGE       tracer 
    102       IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC    tracers 
    103103 
    104104      CALL trc_ice_ini                                 ! Tracers in sea ice 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r7873 r8353  
    7979      ENDIF 
    8080 
     81      ! Call the ice module for tracers 
     82      ! ------------------------------- 
     83      CALL trc_nam_ice 
     84 
     85      ! namelist of SMS 
     86      ! --------------- 
     87      IF( lk_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model 
     88      ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used' 
     89      ENDIF 
     90 
     91      IF( lk_my_trc  ) THEN  ;   CALL trc_nam_my_trc       ! MY_TRC  tracers 
     92      ELSE                   ;   IF(lwp) WRITE(numout,*)  '          MY_TRC not used' 
     93      ENDIF 
     94 
     95      IF( lk_cfc     ) THEN   ;   CALL trc_nam_cfc         ! CFC     tracers 
     96      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used' 
     97      ENDIF 
     98 
     99      IF( lk_c14b    ) THEN  ;   CALL trc_nam_c14b         ! C14 bomb     tracers 
     100      ELSE                   ;   IF(lwp) WRITE(numout,*)  '          C14 not used' 
     101      ENDIF 
     102 
     103      IF( lk_age     ) THEN  ;   CALL trc_nam_age         ! AGE     tracer 
     104      ELSE                   ;   IF(lwp) WRITE(numout,*)  '          AGE not used' 
     105      ENDIF 
     106 
    81107     IF(lwp) THEN                   ! control print 
    82108         WRITE(numout,*) 
     
    119145      ENDIF 
    120146 
    121  
    122       ! Call the ice module for tracers 
    123       ! ------------------------------- 
    124       CALL trc_nam_ice 
    125  
    126       ! namelist of SMS 
    127       ! ---------------       
    128       IF( lk_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model 
    129       ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used' 
    130       ENDIF 
    131  
    132       IF( lk_cfc     ) THEN   ;   CALL trc_nam_cfc         ! CFC     tracers 
    133       ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used' 
    134       ENDIF 
    135  
    136       IF( lk_c14b    ) THEN  ;   CALL trc_nam_c14b         ! C14 bomb     tracers 
    137       ELSE                   ;   IF(lwp) WRITE(numout,*) '          C14 not used' 
    138       ENDIF 
    139  
    140       IF( lk_age     ) THEN  ;   CALL trc_nam_age         ! AGE     tracer 
    141       ELSE                   ;   IF(lwp) WRITE(numout,*) '          AGE not used' 
    142       ENDIF 
    143  
    144       IF( lk_my_trc  ) THEN  ;   CALL trc_nam_my_trc      ! MY_TRC  tracers 
    145       ELSE                   ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used' 
    146       ENDIF 
    147147      ! 
    148148   END SUBROUTINE trc_nam 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcsms.F90

    r7494 r8353  
    5050      ! 
    5151      IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES  
     52      IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers 
    5253      IF( lk_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC 
    5354      IF( lk_c14b    )   CALL trc_sms_c14b   ( kt )    ! surface fluxes of C14 
    5455      IF( lk_age     )   CALL trc_sms_age    ( kt )    ! AGE tracer 
    55       IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers 
    5656 
    5757      IF(ln_ctl) THEN      ! print mean trends (used for debugging) 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcwri.F90

    r7494 r8353  
    5858      ! --------------------------------------- 
    5959      IF( lk_pisces  )   CALL trc_wri_pisces     ! PISCES  
     60      IF( lk_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers 
    6061      IF( lk_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC 
    6162      IF( lk_c14b    )   CALL trc_wri_c14b       ! surface fluxes of C14 
    6263      IF( lk_age     )   CALL trc_wri_age        ! AGE tracer 
    63       IF( lk_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers 
    6464      ! 
    6565      IF( nn_timing == 1 )  CALL timing_stop('trc_wri') 
Note: See TracChangeset for help on using the changeset viewer.