Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/atmc14.dat
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/atmc14.dat	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/atmc14.dat	(revision 7041)
@@ -0,0 +1,245 @@
+ Year    South 30S-30N   North 
+ 1765.5       0        0      0
+ 1766.5       0        0      0
+ 1767.5       0        0      0
+ 1768.5       0        0      0
+ 1769.5       0        0      0
+ 1770.5       0        0      0
+ 1771.5       0        0      0
+ 1772.5       0        0      0
+ 1773.5       0        0      0
+ 1774.5       0        0      0
+ 1775.5       0        0      0
+ 1776.5       0        0      0
+ 1777.5       0        0      0
+ 1778.5       0        0      0
+ 1779.5       0        0      0
+ 1780.5       0        0      0
+ 1781.5       0        0      0
+ 1782.5       0        0      0
+ 1783.5       0        0      0
+ 1784.5       0        0      0
+ 1785.5       0        0      0
+ 1786.5       0        0      0
+ 1787.5       0        0      0
+ 1788.5       0        0      0
+ 1789.5       0        0      0
+ 1790.5       0        0      0
+ 1791.5       0        0      0
+ 1792.5       0        0      0
+ 1793.5       0        0      0
+ 1794.5       0        0      0
+ 1795.5       0        0      0
+ 1796.5       0        0      0
+ 1797.5       0        0      0
+ 1798.5       0        0      0
+ 1799.5       0        0      0
+ 1800.5       0        0      0
+ 1801.5       0        0      0
+ 1802.5       0        0      0
+ 1803.5       0        0      0
+ 1804.5       0        0      0
+ 1805.5       0        0      0
+ 1806.5       0        0      0
+ 1807.5       0        0      0
+ 1808.5       0        0      0
+ 1809.5       0        0      0
+ 1810.5       0        0      0
+ 1811.5       0        0      0
+ 1812.5       0        0      0
+ 1813.5       0        0      0
+ 1814.5       0        0      0
+ 1815.5       0        0      0
+ 1816.5       0        0      0
+ 1817.5       0        0      0
+ 1818.5       0        0      0
+ 1819.5       0        0      0
+ 1820.5       0        0      0
+ 1821.5       0        0      0
+ 1822.5       0        0      0
+ 1823.5       0        0      0
+ 1824.5       0        0      0
+ 1825.5       0        0      0
+ 1826.5       0        0      0
+ 1827.5       0        0      0
+ 1828.5       0        0      0
+ 1829.5       0        0      0
+ 1830.5       0        0      0
+ 1831.5       0        0      0
+ 1832.5       0        0      0
+ 1833.5       0        0      0
+ 1834.5       0        0      0
+ 1835.5       0        0      0
+ 1836.5       0        0      0
+ 1837.5       0        0      0
+ 1838.5       0        0      0
+ 1839.5       0        0      0
+ 1840.5    -0.9     -0.9   -0.9
+ 1841.5      -1       -1     -1
+ 1842.5    -1.2     -1.2   -1.2
+ 1843.5    -1.3     -1.3   -1.3
+ 1844.5    -1.5     -1.5   -1.5
+ 1845.5    -1.6     -1.6   -1.6
+ 1846.5    -1.7     -1.7   -1.7
+ 1847.5    -1.9     -1.9   -1.9
+ 1848.5      -2       -2     -2
+ 1849.5    -2.2     -2.2   -2.2
+ 1850.5    -2.3     -2.3   -2.3
+ 1851.5    -2.5     -2.5   -2.5
+ 1852.5    -2.6     -2.6   -2.6
+ 1853.5    -2.8     -2.8   -2.8
+ 1854.5      -3       -3     -3
+ 1855.5    -3.1     -3.1   -3.1
+ 1856.5    -3.3     -3.3   -3.3
+ 1857.5    -3.6     -3.6   -3.6
+ 1858.5    -3.8     -3.8   -3.8
+ 1859.5      -4       -4     -4
+ 1860.5    -4.2     -4.2   -4.2
+ 1861.5    -4.5     -4.5   -4.5
+ 1862.5    -4.7     -4.7   -4.7
+ 1863.5    -4.9     -4.9   -4.9
+ 1864.5    -5.2     -5.2   -5.2
+ 1865.5    -5.4     -5.4   -5.4
+ 1866.5    -5.4     -5.4   -5.4
+ 1867.5    -5.4     -5.4   -5.4
+ 1868.5    -5.4     -5.4   -5.4
+ 1869.5    -5.4     -5.4   -5.4
+ 1870.5    -5.4     -5.4   -5.4
+ 1871.5    -5.3     -5.3   -5.3
+ 1872.5    -5.3     -5.3   -5.3
+ 1873.5    -5.3     -5.3   -5.3
+ 1874.5    -5.3     -5.3   -5.3
+ 1875.5    -5.3     -5.3   -5.3
+ 1876.5    -5.3     -5.3   -5.3
+ 1877.5    -5.3     -5.3   -5.3
+ 1878.5    -5.2     -5.2   -5.2
+ 1879.5    -5.2     -5.2   -5.2
+ 1880.5    -5.2     -5.2   -5.2
+ 1881.5    -5.2     -5.2   -5.2
+ 1882.5    -5.2     -5.2   -5.2
+ 1883.5    -5.1     -5.1   -5.1
+ 1884.5    -5.1     -5.1   -5.1
+ 1885.5    -5.1     -5.1   -5.1
+ 1886.5    -4.9     -4.9   -4.9
+ 1887.5    -4.8     -4.8   -4.8
+ 1888.5    -4.6     -4.6   -4.6
+ 1889.5    -4.5     -4.5   -4.5
+ 1890.5      -7     -4.5     -2
+ 1891.5      -7     -4.5     -2
+ 1892.5      -7     -4.5     -2
+ 1893.5      -7     -4.5     -2
+ 1894.5      -7     -4.5     -2
+ 1895.5      -7     -4.5     -2
+ 1896.5    -7.3     -4.8   -2.3
+ 1897.5    -7.7     -5.2   -2.7
+ 1898.5      -8     -5.5     -3
+ 1899.5    -8.3     -5.8   -3.3
+ 1900.5    -8.7     -6.2   -3.7
+ 1901.5      -9     -6.5     -4
+ 1902.5    -9.3     -6.8   -4.3
+ 1903.5    -9.7     -7.2   -4.7
+ 1904.5     -10     -7.5     -5
+ 1905.5   -10.3     -7.8   -5.3
+ 1906.5   -10.7     -8.2   -5.7
+ 1907.5     -11     -8.5     -6
+ 1908.5   -11.3     -8.8   -6.3
+ 1909.5   -11.7     -9.2   -6.7
+ 1910.5     -12     -9.5     -7
+ 1911.5   -12.3     -9.8   -7.3
+ 1912.5   -12.7    -10.2   -7.7
+ 1913.5     -13    -10.5     -8
+ 1914.5   -13.3    -10.8   -8.3
+ 1915.5   -13.7    -11.2   -8.7
+ 1916.5     -14    -11.5     -9
+ 1917.5   -14.3    -11.8   -9.3
+ 1918.5   -14.7    -12.2   -9.7
+ 1919.5     -15    -12.5    -10
+ 1920.5   -15.3    -12.8  -10.3
+ 1921.5   -15.7    -13.2  -10.7
+ 1922.5     -16    -13.5    -11
+ 1923.5   -16.3    -13.8  -11.3
+ 1924.5   -16.7    -14.2  -11.7
+ 1925.5     -17    -14.5    -12
+ 1926.5   -17.3    -14.8  -12.3
+ 1927.5   -17.7    -15.2  -12.7
+ 1928.5     -18    -15.5    -13
+ 1929.5   -18.3    -15.8  -13.3
+ 1930.5   -18.7    -16.2  -13.7
+ 1931.5     -19    -16.5    -14
+ 1932.5   -19.3    -16.8  -14.3
+ 1933.5   -19.7    -17.2  -14.7
+ 1934.5     -20    -17.5    -15
+ 1935.5   -20.3    -17.8  -15.3
+ 1936.5   -20.7    -18.2  -15.7
+ 1937.5     -21    -18.5    -16
+ 1938.5   -21.3    -18.8  -16.3
+ 1939.5   -21.7    -19.2  -16.7
+ 1940.5   -22.2    -21.5  -20.2
+ 1941.5   -21.4    -20.8  -19.4
+ 1942.5   -21.6      -21  -19.6
+ 1943.5   -24.5    -23.9  -22.5
+ 1944.5   -23.7      -23  -21.7
+ 1945.5   -24.1    -23.4  -22.1
+ 1946.5   -23.6    -22.8  -21.6
+ 1947.5   -23.1    -22.2  -21.1
+ 1948.5   -24.3    -23.4  -22.3
+ 1949.5   -26.6    -25.9  -24.6
+ 1950.5   -26.8    -26.1  -24.8
+ 1951.5   -26.8      -26  -24.8
+ 1952.5   -26.9    -25.7  -24.9
+ 1953.5   -25.9    -23.5  -23.9
+ 1954.5   -23.8    -14.4  -21.1
+ 1955.5     -11     -6.4   -8.2
+ 1956.5    14.7     23.4   26.5
+ 1957.5    35.8     51.9     73
+ 1958.5    81.8    105.7  140.2
+ 1959.5   141.1    176.8    228
+ 1960.5   185.6    200.3  212.3
+ 1961.5   198.7    205.8  221.6
+ 1962.5   215.9    256.2  358.5
+ 1963.5   330.6    474.3  718.3
+ 1964.5   520.6    672.3  835.7
+ 1965.5   637.3    697.5  756.3
+ 1966.5   619.7    658.5  691.9
+ 1967.5   585.6    605.4  623.6
+ 1968.5   549.7    559.6  564.5
+ 1969.5   528.5    537.1  545.4
+ 1970.5     506    519.1  529.1
+ 1971.5     489    495.4  499.4
+ 1972.5   461.6    466.6  465.6
+ 1973.5   430.9    426.1  418.6
+ 1974.5   394.9    400.7  400.8
+ 1975.5   378.2    378.7  369.8
+ 1976.5   349.8    354.4  352.5
+ 1977.5   326.7      330  333.9
+ 1978.5   310.2    320.6  325.8
+ 1979.5     291    296.1  295.8
+ 1980.5   274.8      272  264.5
+ 1981.5   257.5    254.8  256.7
+ 1982.5   241.1    241.1  238.3
+ 1983.5   221.5      225  224.2
+ 1984.5   206.7    209.7  209.3
+ 1985.5   197.1      204  201.1
+ 1986.5   187.4    193.9  191.1
+ 1987.5   175.5    186.5  183.6
+ 1988.5   171.6    177.6  174.7
+ 1989.5   157.3    166.6  163.7
+ 1990.5   148.3    155.1  152.2
+ 1991.5   141.2    145.3  142.4
+ 1992.5   132.2    137.6  136.3
+ 1993.5   127.2    131.8  128.7
+ 1994.5   120.4    125.5  122.1
+ 1995.5   114.9      120  115.8
+ 1996.5   110.3    109.6  109.8
+ 1997.5   105.2    109.7    104
+ 1998.5   100.2    103.2  100.3
+ 1999.5    92.7     98.6   95.7
+ 2000.5    86.5     92.6   89.7
+ 2001.5    80.7     87.6   84.8
+ 2002.5    72.9     80.4   77.5
+ 2003.5    79.5     77.4   73.5
+ 2004.5    77.7       75   70.6
+ 2005.5    75.7       73     67
+ 2006.5      75       72     66
+ 2007.5      74       71     65
+ 2008.5      73       70     64
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/cfc1112.atm
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/cfc1112.atm	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/cfc1112.atm	(revision 7041)
@@ -0,0 +1,84 @@
+ % Atmospheric lifetimes are  44.0 for CFC-11 
+ %                       and 125.0 for CFC-12 
+ % rel=  0 
+ %        <-Northern Data-> <-Southern Data->
+ % Year    CFC-11  CFC-12    CFC-11  CFC-12 
+ %         (ppt)   (ppt)      (ppt)   (ppt)
+ 1931.50    0.00    0.00       0.00    0.00   
+ 1932.50    0.00    0.01       0.00    0.01   
+ 1933.50    0.00    0.02       0.00    0.01   
+ 1934.50    0.00    0.03       0.00    0.02   
+ 1935.50    0.00    0.04       0.00    0.03   
+ 1936.50    0.00    0.07       0.00    0.04   
+ 1937.50    0.00    0.11       0.00    0.07   
+ 1938.50    0.00    0.17       0.00    0.11   
+ 1939.50    0.01    0.25       0.00    0.17   
+ 1940.50    0.01    0.37       0.01    0.25   
+ 1941.50    0.02    0.53       0.01    0.36   
+ 1942.50    0.02    0.72       0.02    0.51   
+ 1943.50    0.03    0.94       0.02    0.69   
+ 1944.50    0.04    1.25       0.03    0.91   
+ 1945.50    0.05    1.65       0.04    1.21   
+ 1946.50    0.08    2.33       0.05    1.64   
+ 1947.50    0.14    3.42       0.08    2.33   
+ 1948.50    0.24    4.73       0.14    3.32   
+ 1949.50    0.42    6.10       0.25    4.48   
+ 1950.50    0.67    7.58       0.42    5.77   
+ 1951.50    1.02    9.23       0.66    7.19   
+ 1952.50    1.53   10.94       1.01    8.72   
+ 1953.50    2.21   12.82       1.49   10.37   
+ 1954.50    3.07   14.97       2.13   12.20   
+ 1955.50    4.11   17.40       2.93   14.25   
+ 1956.50    5.39   20.22       3.92   16.59   
+ 1957.50    6.84   23.45       5.11   19.28   
+ 1958.50    8.19   26.86       6.39   22.28   
+ 1959.50    9.47   30.58       7.63   25.52   
+ 1960.50   11.13   35.03       8.96   29.18   
+ 1961.50   13.38   40.12      10.63   33.42   
+ 1962.50   16.23   45.89      12.78   38.25   
+ 1963.50   19.72   52.66      15.47   43.80   
+ 1964.50   23.87   60.57      18.75   50.28   
+ 1965.50   28.57   69.53      22.61   57.76   
+ 1966.50   33.78   79.46      26.99   66.21   
+ 1967.50   39.63   90.60      31.91   75.67   
+ 1968.50   46.27  103.16      37.46   86.31   
+ 1969.50   53.96  117.17      43.80   98.25   
+ 1970.50   62.75  132.52      51.07  111.52   
+ 1971.50   72.36  149.00      59.27  126.02   
+ 1972.50   83.04  166.85      68.34  141.70   
+ 1973.50   95.27  186.59      78.54  158.82   
+ 1974.50  108.81  208.14      90.04  177.62   
+ 1975.50  121.86  229.37     102.29  197.54   
+ 1976.50  134.47  249.51     114.40  217.31   
+ 1977.50  146.47  268.67     126.28  236.49   
+ 1978.50  157.18  286.35     137.45  254.72   
+ 1979.50  166.67  303.74     147.60  272.00   
+ 1980.50  175.11  320.96     158.08  290.34   
+ 1981.50  182.81  337.33     166.54  306.90   
+ 1982.50  189.88  352.01     174.69  323.74   
+ 1983.50  197.72  367.69     183.03  341.15   
+ 1984.50  206.34  383.86     190.95  357.80   
+ 1985.50  216.12  401.25     200.50  376.45   
+ 1986.50  227.48  420.96     209.82  394.00   
+ 1987.50  239.67  441.49     220.60  412.82   
+ 1988.50  251.05  463.22     231.46  433.46   
+ 1989.50  257.28  481.80     240.38  452.97   
+ 1990.50  263.65  493.96     249.23  470.55   
+ 1991.50  266.33  504.64     254.53  484.07   
+ 1992.50  266.00  512.87     258.80  495.65   
+ 1993.50  267.58  520.12     260.56  504.49   
+ 1994.50  267.24  526.58     261.73  512.31   
+ 1995.50  266.38  531.59     261.29  518.39   
+ 1996.50  265.25  534.81     261.08  523.50   
+ 1997.50  263.84  537.67     260.16  528.18   
+ 1998.50  262.24  999.99     258.96  999.99   
+ 1999.50  260.72  999.99     257.75  999.99   
+ 2000.50  259.34  999.99     255.69  999.99   
+ 2001.50  257.13  999.99     253.54  999.99   
+ 2002.50  254.89  999.99     252.93  999.99   
+ 2003.50  251.89  999.99     250.62  999.99   
+ 2004.50  250.67  999.99     249.52  999.99   
+ 2005.50  249.49  999.99     247.45  999.99   
+ 2006.50  248.31  999.99     245.38  999.99
+ 2007.50  247.13  999.99     243.31  999.99
+ 2008.50  245.95  999.99     241.24  999.99
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/domain_def.xml
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/domain_def.xml	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/domain_def.xml	(revision 7041)
@@ -0,0 +1,1 @@
+link ../../SHARED/domain_def.xml
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/field_def.xml
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/field_def.xml	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/field_def.xml	(revision 7041)
@@ -0,0 +1,1 @@
+link ../../SHARED/field_def.xml
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/iodef.xml
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/iodef.xml	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/iodef.xml	(revision 7041)
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<simulation> 
+
+ <context id="nemo" time_origin="1950-01-01 00:00:00" >
+    
+    <!-- $id$ -->
+    
+    <!-- 
+============================================================================================================
+=                                  definition of all existing variables                                    =
+=                                            DO NOT CHANGE                                                 =
+============================================================================================================
+    -->
+    <field_definition src="./field_def.xml"/>
+    <!-- 
+============================================================================================================
+=                                           output files definition                                        =
+=                                            Define your own files                                         =
+=                                         put the variables you want...                                    =
+============================================================================================================
+    -->
+    
+    <file_definition type="multiple_file" name="@expname@_@freq@_@startdate@_@enddate@" sync_freq="10d" min_digits="4">
+    
+      <file_group id="1ts" output_freq="1ts"  output_level="10" enabled=".TRUE."/> <!-- 1 time step files -->
+
+      <file_group id="1h" output_freq="1h"  output_level="10" enabled=".TRUE."/> <!-- 1h files -->
+
+      <file_group id="2h" output_freq="2h"  output_level="10" enabled=".TRUE."/> <!-- 2h files -->
+
+      <file_group id="3h" output_freq="3h"  output_level="10" enabled=".TRUE."/> <!-- 3h files -->     
+
+      <file_group id="4h" output_freq="4h"  output_level="10" enabled=".TRUE."/> <!-- 4h files -->
+
+      <file_group id="6h" output_freq="6h"  output_level="10" enabled=".TRUE."/> <!-- 6h files -->     
+
+      <file_group id="1d" output_freq="1d"  output_level="10" enabled=".TRUE."> <!-- 1d files -->
+	<file id="file1" name_suffix="_grid_T" description="ocean T grid variables" >
+	  <field field_ref="sst"          name="tos"   />
+	  <field field_ref="sss"          name="sos"   />
+	  <field field_ref="ssh"          name="zos"   />
+	</file>
+
+        <file id="file2" name_suffix="_ptrc_T" description="passive tracers variables" >
+           <field field_ref="Age"    operation="average" freq_op="1d" > @Age_e3t / @e3t </field>
+           <field field_ref="CFC11"  operation="average" freq_op="1d" > @CFC11_e3t / @e3t </field>
+           <field field_ref="RC14"   operation="average" freq_op="1d" > @RC14_e3t / @e3t </field>
+         </file>
+      </file_group>
+      
+      <file_group id="3d" output_freq="3d"  output_level="10" enabled=".TRUE."/> <!-- 3d files -->
+      
+      <file_group id="5d" output_freq="5d"  output_level="10" enabled=".TRUE.">  <!-- 5d files -->   
+      </file_group>
+
+      <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."/> <!-- real monthly files -->
+      <file_group id="2m" output_freq="2mo" output_level="10" enabled=".TRUE."/> <!-- real 2m files -->
+      <file_group id="3m" output_freq="3mo" output_level="10" enabled=".TRUE."/> <!-- real 3m files -->
+      <file_group id="4m" output_freq="4mo" output_level="10" enabled=".TRUE."/> <!-- real 4m files -->
+      <file_group id="6m" output_freq="6mo" output_level="10" enabled=".TRUE."/> <!-- real 6m files -->
+
+      <file_group id="1y"  output_freq="1y" output_level="10" enabled=".TRUE."/> <!-- real yearly files -->
+      <file_group id="2y"  output_freq="2y" output_level="10" enabled=".TRUE."/> <!-- real 2y files -->
+      <file_group id="5y"  output_freq="5y" output_level="10" enabled=".TRUE."/> <!-- real 5y files -->
+      <file_group id="10y" output_freq="10y" output_level="10" enabled=".TRUE."/> <!-- real 10y files -->
+
+   </file_definition>
+    
+    <!-- 
+============================================================================================================
+= grid definition = = DO NOT CHANGE =
+============================================================================================================
+    -->
+    
+   <axis_definition>  
+      <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" />
+      <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" />
+      <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" />
+      <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" />
+      <axis id="nfloat"  long_name="Float number"       unit="1"                 />
+      <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 />
+      <axis id="ncatice" long_name="Ice category"       unit="1"                 />
+      <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              />
+      <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              />
+   </axis_definition> 
+    
+   <domain_definition src="./domain_def.xml"/>
+   
+   <grid_definition>    
+     <grid id="grid_T_2D" domain_ref="grid_T"/>
+     <grid id="grid_T_3D" domain_ref="grid_T" axis_ref="deptht"/>
+     <grid id="grid_U_2D" domain_ref="grid_U"/>
+     <grid id="grid_U_3D" domain_ref="grid_U" axis_ref="depthu"/>
+     <grid id="grid_V_2D" domain_ref="grid_V"/>
+     <grid id="grid_V_3D" domain_ref="grid_V" axis_ref="depthv"/>
+     <grid id="grid_W_2D" domain_ref="grid_W"/>
+     <grid id="grid_W_3D" domain_ref="grid_W" axis_ref="depthw"/>
+     <grid id="gznl_T_2D" domain_ref="gznl"/>
+     <grid id="gznl_T_3D" domain_ref="gznl" axis_ref="deptht"/>
+     <grid id="gznl_W_3D" domain_ref="gznl" axis_ref="depthw"/>
+    </grid_definition>   
+  </context>
+  
+
+  <context id="xios">
+
+      <variable_definition>
+	
+     <!-- 
+        We must have buffer_size > jpi*jpj*jpk*8 (with jpi and jpj the subdomain size)
+-->
+	  <variable id="buffer_size"               type="integer">50000000</variable>
+	  <variable id="buffer_server_factor_size" type="integer">2</variable>
+	  <variable id="info_level"                type="integer">0</variable>
+	  <variable id="using_server"              type="boolean">false</variable>
+	  <variable id="using_oasis"               type="boolean">false</variable>
+	  <variable id="oasis_codes_id"            type="string" >oceanx</variable>
+	
+      </variable_definition>
+               
+  </context>
+  
+</simulation>
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_cfg
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_cfg	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_cfg	(revision 7041)
@@ -0,0 +1,258 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/OPA  Configuration namelist : used to overwrite defaults values defined in SHARED/namelist_ref
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!-----------------------------------------------------------------------
+&namrun        !   parameters of the run
+!-----------------------------------------------------------------------
+   nn_no       =       0   !  job number (no more used...)
+   cn_exp      =  "ORCA2"  !  experience name
+   nn_it000    =       1   !  first time step
+   nn_itend    =      75   !  last  time step (std 5475)
+   nn_date0    = 19600101  
+   nn_stock    =    5475   !  frequency of creation of a restart file (modulo referenced to 1)
+   ln_mskland  = .true.   !  mask land points in NetCDF outputs (costly: + ~15%)
+   ln_clobber  = .true.    !  clobber (overwrite) an existing file
+/
+!-----------------------------------------------------------------------
+&namcfg        !   parameters of the configuration
+!-----------------------------------------------------------------------
+   cp_cfg      =  "orca"               !  name of the configuration
+   jp_cfg      =       2               !  resolution of the configuration
+   jpidta      =     182               !  1st lateral dimension ( >= jpi )
+   jpjdta      =     149               !  2nd    "         "    ( >= jpj )
+   jpkdta      =      31               !  number of levels      ( >= jpk )
+   jpiglo      =     182               !  1st dimension of global domain --> i =jpidta
+   jpjglo      =     149               !  2nd    -                  -    --> j  =jpjdta
+   jpizoom     =       1               !  left bottom (i,j) indices of the zoom
+   jpjzoom     =       1               !  in data domain indices
+   jperio      =       4               !  lateral cond. type (between 0 and 6)
+/
+!-----------------------------------------------------------------------
+&namzgr        !   vertical coordinate
+!-----------------------------------------------------------------------
+   ln_zps      = .true.    !  z-coordinate - partial steps
+   ln_linssh   = .true.    !  linear free surface
+/
+!-----------------------------------------------------------------------
+&namdom        !   space and time domain (bathymetry, mesh, timestep)
+!-----------------------------------------------------------------------
+   nn_msh      =    0      !  create (=1) a mesh file or not (=0)
+   jphgr_msh   =       0               !  type of horizontal mesh
+   ppglam0     =  999999.0             !  longitude of first raw and column T-point (jphgr_msh = 1)
+   ppgphi0     =  999999.0             ! latitude  of first raw and column T-point (jphgr_msh = 1)
+   ppe1_deg    =  999999.0             !  zonal      grid-spacing (degrees)
+   ppe2_deg    =  999999.0             !  meridional grid-spacing (degrees)
+   ppe1_m      =  999999.0             !  zonal      grid-spacing (degrees)
+   ppe2_m      =  999999.0             !  meridional grid-spacing (degrees)
+   ppsur       =   -4762.96143546300   !  ORCA r4, r2 and r05 coefficients
+   ppa0        =     255.58049070440   ! (default coefficients)
+   ppa1        =     245.58132232490   !
+   ppkth       =      21.43336197938   !
+   ppacr       =       3.0             !
+   ppdzmin     =  999999.              !  Minimum vertical spacing
+   pphmax      =  999999.              !  Maximum depth
+   ldbletanh   =  .FALSE.              !  Use/do not use double tanf function for vertical coordinates
+   ppa2        =  999999.              !  Double tanh function parameters
+   ppkth2      =  999999.              !
+   ppacr2      =  999999.              !
+/
+!-----------------------------------------------------------------------
+&namcrs        !   Grid coarsening for dynamics output and/or
+               !   passive tracer coarsened online simulations
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtsd    !   data : Temperature  & Salinity
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc        !   Surface Boundary Condition (surface module)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_core   !   namsbc_core  CORE bulk formulae
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_rnf    !   runoffs namelist surface boundary condition
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_ssr    !   surface boundary condition : sea surface restoring
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_alb    !   albedo parameters
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namberg       !   iceberg parameters
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nambfr        !   bottom friction
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nambbc        !   bottom temperature boundary condition                (default: NO)
+!-----------------------------------------------------------------------
+   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom
+/
+!-----------------------------------------------------------------------
+&nambbl        !   bottom boundary layer scheme
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nameos        !   ocean physical parameters
+!-----------------------------------------------------------------------
+   ln_teos10    = .true.         !  = Use TEOS-10 equation of state
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer
+!-----------------------------------------------------------------------
+   ln_traadv_fct =  .true.    !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+      nn_fct_zts =  0               !  > 1 , 2nd order FCT scheme with vertical sub-timestepping
+      !                             !        (number of sub-timestep = nn_fct_zts)
+/
+!-----------------------------------------------------------------------
+&namtra_adv_mle !  mixed layer eddy parametrisation (Fox-Kemper param)
+!-----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------------------
+&namtra_ldf    !   lateral diffusion scheme for tracers
+!----------------------------------------------------------------------------------
+   !                       !  Operator type:
+   ln_traldf_lap   =  .true.   !    laplacian operator
+   ln_traldf_blp   =  .false.  !  bilaplacian operator
+   !                       !  Direction of action:
+   ln_traldf_lev   =  .false.  !  iso-level
+   ln_traldf_hor   =  .false.  !  horizontal (geopotential)
+   ln_traldf_iso   =  .true.   !  iso-neutral (standard operator)
+   ln_traldf_triad =  .false.  !  iso-neutral (triad    operator)
+   !
+   !		       	         !  iso-neutral options:        
+   ln_traldf_msc   =  .true.   !  Method of Stabilizing Correction (both operators)
+   rn_slpmax       =   0.01    !  slope limit                      (both operators)
+   ln_triad_iso    =  .false.  !  pure horizontal mixing in ML              (triad only)
+   rn_sw_triad     =  1        !  =1 switching triad ; =0 all 4 triads used (triad only)
+   ln_botmix_triad =  .false.  !  lateral mixing on bottom                  (triad only)
+   !
+   !                       !  Coefficients:
+   nn_aht_ijk_t    = 20        !  space/time variation of eddy coef
+   !                                !   =-20 (=-30)    read in eddy_diffusivity_2D.nc (..._3D.nc) file
+   !                                !   =  0           constant
+   !                                !   = 10 F(k)      =ldf_c1d
+   !                                !   = 20 F(i,j)    =ldf_c2d
+   !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+   !                                !   = 30 F(i,j,k)  =ldf_c2d + ldf_c1d
+   !                                !   = 31 F(i,j,k,t)=F(local velocity)
+   rn_aht_0        = 2000.     !  lateral eddy diffusivity   (lap. operator) [m2/s]
+   rn_bht_0        = 1.e+12    !  lateral eddy diffusivity (bilap. operator) [m4/s]
+/
+!----------------------------------------------------------------------------------
+&namtra_ldfeiv !   eddy induced velocity param.
+!----------------------------------------------------------------------------------
+   ln_ldfeiv     =.true.   ! use eddy induced velocity parameterization
+   ln_ldfeiv_dia =.true.   ! diagnose eiv stream function and velocities
+   rn_aeiv_0     = 2000.   ! eddy induced velocity coefficient   [m2/s]
+   nn_aei_ijk_t  = 21      ! space/time variation of the eiv coeficient
+   !                                !   =-20 (=-30)    read in eddy_induced_velocity_2D.nc (..._3D.nc) file
+   !                                !   =  0           constant
+   !                                !   = 10 F(k)      =ldf_c1d
+   !                                !   = 20 F(i,j)    =ldf_c2d
+   !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+   !                                !   = 30 F(i,j,k)  =ldf_c2d + ldf_c1d
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namdyn_vor    !   option of physics/algorithm (not control by CPP keys)
+!-----------------------------------------------------------------------
+   ln_dynvor_ene = .false. !  enstrophy conserving scheme
+   ln_dynvor_ens = .false. !  energy conserving scheme
+   ln_dynvor_mix = .false. !  mixed scheme
+   ln_dynvor_een = .true.  !  energy & enstrophy scheme
+      nn_een_e3f = 0             !  e3f = masked averaging of e3t divided by 4 (=0) or by the sum of mask (=1)
+/
+!-----------------------------------------------------------------------
+&namdyn_hpg    !   Hydrostatic pressure gradient option
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namdyn_spg    !   surface pressure gradient
+!-----------------------------------------------------------------------
+   ln_dynspg_ts  = .true.  !  split-explicit free surface
+/
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum
+!-----------------------------------------------------------------------
+   !                       !  Type of the operator :
+   !                           !  no diffusion: set ln_dynldf_lap=..._blp=F 
+   ln_dynldf_lap =  .true.     !    laplacian operator
+   ln_dynldf_blp =  .false.    !  bilaplacian operator
+   !                       !  Direction of action  :
+   ln_dynldf_lev =  .true.     !  iso-level
+   ln_dynldf_hor =  .false.    !  horizontal (geopotential)
+   ln_dynldf_iso =  .false.    !  iso-neutral
+   !                       !  Coefficient
+   nn_ahm_ijk_t  = -30         !  space/time variation of eddy coef
+   !                                !  =-30  read in eddy_viscosity_3D.nc file
+   !                                !  =-20  read in eddy_viscosity_2D.nc file
+   !                                !  =  0  constant 
+   !                                !  = 10  F(k)=c1d
+   !                                !  = 20  F(i,j)=F(grid spacing)=c2d
+   !                                !  = 30  F(i,j,k)=c2d*c1d
+   !                                !  = 31  F(i,j,k)=F(grid spacing and local velocity)
+   rn_ahm_0      =  40000.     !  horizontal laplacian eddy viscosity   [m2/s]
+   rn_ahm_b      =      0.     !  background eddy viscosity for ldf_iso [m2/s]
+   rn_bhm_0      = 1.e+12      !  horizontal bilaplacian eddy viscosity [m4/s]
+/
+!-----------------------------------------------------------------------
+&namzdf        !   vertical physics
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  ("key_zdftke")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namzdf_ddm    !   double diffusive mixing parameterization             ("key_zdfddm")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namzdf_tmx    !   tidal mixing parameterization                        ("key_zdftmx")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints & Benchmark
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namptr       !   Poleward Transport Diagnostic
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namhsb       !  Heat and salt budgets
+!-----------------------------------------------------------------------
+/
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ice_cfg
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ice_cfg	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ice_cfg	(revision 7041)
@@ -0,0 +1,137 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! LIM3 namelist :  
+!!              1 - Generic parameters                 (namicerun)
+!!              2 - Ice initialization                 (namiceini)
+!!              3 - Ice discretization                 (namiceitd)
+!!              4 - Ice dynamics and transport         (namicedyn)
+!!              5 - Ice thermodynamics                 (namicethd)
+!!              6 - Ice salinity                       (namicesal)
+!!              7 - Ice mechanical redistribution      (namiceitdme)
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!------------------------------------------------------------------------------
+&namicerun     !   Generic parameters
+!------------------------------------------------------------------------------
+   jpl            =    5           !  number of ice  categories
+   nlay_i         =    2           !  number of ice  layers
+   nlay_s         =    1           !  number of snow layers (only 1 is working)
+   cn_icerst_in  = "restart_ice"   !  suffix of ice restart name (input)
+   cn_icerst_indir = "."           !  directory from which to read input ice restarts
+   cn_icerst_out = "restart_ice"   !  suffix of ice restart name (output)
+   cn_icerst_outdir = "."          !  directory in which to write output ice restarts
+   ln_limdyn     = .true.          !  ice dynamics (T) or thermodynamics only (F)
+   rn_amax_n     = 0.999           !  maximum tolerated ice concentration NH
+   rn_amax_s     = 0.999           !  maximum tolerated ice concentration SH
+   ln_limdiahsb  = .false.         !  check the heat and salt budgets (T) or not (F)
+   ln_limdiaout  = .true.          !  output the heat and salt budgets (T) or not (F)
+   ln_icectl     = .false.         !  ice points output for debug (T or F)
+   iiceprt       = 10              !  i-index for debug
+   jiceprt       = 10              !  j-index for debug
+/
+!------------------------------------------------------------------------------
+&namiceini     !   Ice initialization
+!------------------------------------------------------------------------------
+   ln_iceini      = .true.         !  activate ice initialization (T) or not (F)
+   rn_thres_sst   =  2.0           !  maximum water temperature with initial ice (degC)
+   rn_hts_ini_n   =  0.3           !  initial real snow thickness (m), North
+   rn_hts_ini_s   =  0.3           !        "            "             South
+   rn_hti_ini_n   =  3.0           !  initial real ice thickness  (m), North
+   rn_hti_ini_s   =  1.0           !        "            "             South
+   rn_ati_ini_n   =  0.9           !  initial ice concentration   (-), North
+   rn_ati_ini_s   =  0.9           !        "            "             South
+   rn_smi_ini_n   =  6.3           !  initial ice salinity     (g/kg), North
+   rn_smi_ini_s   =  6.3           !        "            "             South
+   rn_tmi_ini_n   =  270.          !  initial ice/snw temperature (K), North
+   rn_tmi_ini_s   =  270.          !        "            "             South
+/
+!------------------------------------------------------------------------------
+&namiceitd     !   Ice discretization
+!------------------------------------------------------------------------------
+   nn_catbnd      =    2           !  computation of ice category boundaries based on
+                                   !      1: tanh function
+                                   !      2: h^(-alpha), function of rn_himean
+   rn_himean      =    2.0         !  expected domain-average ice thickness (m), nn_catbnd = 2 only
+/
+!------------------------------------------------------------------------------
+&namicedyn     !   Ice dynamics and transport
+!------------------------------------------------------------------------------
+   nn_icestr      =    0           !  ice strength parameteriztaion                      
+                                   !     0: Hibler_79     P = pstar*<h>*exp(-c_rhg*A)
+                                   !     1: Rothrock_75   P = Cf*coeff*integral(wr.h^2)    
+   ln_icestr_bvf  =    .false.     !  ice strength function brine volume (T) or not (F)     
+   rn_pe_rdg      =   17.0         !  ridging work divided by pot. energy change in ridging, if nn_icestr = 1
+   rn_pstar       =    2.0e+04     !  ice strength thickness parameter (N/m2), nn_icestr = 0 
+   rn_crhg        =   20.0         !  ice strength conc. parameter (-), nn_icestr = 0       
+   rn_cio         =    5.0e-03     !  ice-ocean drag coefficient           (-)             
+   rn_creepl      =    1.0e-12     !  creep limit (s-1)                                   
+   rn_ecc         =    2.0         !  eccentricity of the elliptical yield curve          
+   nn_nevp        =  120           !  number of EVP subcycles                             
+   rn_relast      =    0.333       !  ratio of elastic timescale to ice time step: Telast = dt_ice * rn_relast 
+                                   !     advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300)
+   nn_ahi0        =    2           !  horizontal diffusivity computation
+                                   !     0: use rn_ahi0_ref
+                                   !     1: use rn_ahi0_ref x mean grid cell length / ( 2deg mean grid cell length )
+                                   !     2: use rn_ahi0_ref x grid cell length      / ( 2deg mean grid cell length )
+   rn_ahi0_ref    = 350.0          !  horizontal sea ice diffusivity (m2/s) 
+                                   !     if nn_ahi0 > 0, rn_ahi0_ref is the reference value at a nominal 2 deg resolution
+/
+!------------------------------------------------------------------------------
+&namicehdf     !   Ice horizontal diffusion
+!------------------------------------------------------------------------------
+   nn_convfrq     = 5              !  convergence check frequency of the Crant-Nicholson scheme (perf. optimization)
+/
+!------------------------------------------------------------------------------
+&namicethd     !   Ice thermodynamics
+!------------------------------------------------------------------------------
+   rn_hnewice  = 0.1               !  thickness for new ice formation in open water (m)
+   ln_frazil   = .false.           !  use frazil ice collection thickness as a function of wind (T) or not (F)
+   rn_maxfrazb = 1.0               !  maximum fraction of frazil ice collecting at the ice base
+   rn_vfrazb   = 0.417             !  thresold drift speed for frazil ice collecting at the ice bottom (m/s)
+   rn_Cfrazb   = 5.0               !  squeezing coefficient for frazil ice collecting at the ice bottom
+   rn_himin    = 0.10              !  minimum ice thickness (m) used in remapping, must be smaller than rn_hnewice
+   rn_betas    = 0.66              !  exponent in lead-ice repratition of snow precipitation
+                                   !     betas = 1 -> equipartition, betas < 1 -> more on leads
+   rn_kappa_i  = 1.0               !  radiation attenuation coefficient in sea ice (m-1)
+   nn_conv_dif = 50                !  maximal number of iterations for heat diffusion computation
+   rn_terr_dif = 0.0001            !  maximum temperature after heat diffusion (degC)
+   nn_ice_thcon= 1                 !  sea ice thermal conductivity
+                                   !     0: k = k0 + beta.S/T (Untersteiner, 1964)
+                                   !     1: k = k0 + beta1.S/T - beta2.T (Pringle et al., 2007)
+   nn_monocat  = 0                 !  virtual ITD mono-category parameterizations (1, jpl = 1 only) or not (0)
+                                   !     2: simple piling instead of ridging --- temporary option
+                                   !     3: activate G(he) only              --- temporary option
+                                   !     4: activate lateral melting only    --- temporary option
+  ln_it_qnsice = .true.            !  iterate the surface non-solar flux with surface temperature (T) or not (F)
+/
+!------------------------------------------------------------------------------
+&namicesal     !   Ice salinity
+!------------------------------------------------------------------------------
+   nn_icesal   =  2                !  ice salinity option
+                                   !     1: constant ice salinity (S=rn_icesal)
+                                   !     2: varying salinity parameterization S(z,t)
+                                   !     3: prescribed salinity profile S(z), Schwarzacher, 1959
+   rn_icesal   =  4.               !  ice salinity (g/kg, nn_icesal = 1 only)
+   rn_sal_gd   =  5.               !  restoring ice salinity, gravity drainage (g/kg)
+   rn_time_gd  =  1.73e+6          !  restoring time scale, gravity drainage  (s)
+   rn_sal_fl   =  2.               !  restoring ice salinity, flushing (g/kg)
+   rn_time_fl  =  8.64e+5          !  restoring time scale, flushing (s)
+   rn_simax    = 20.               !  maximum tolerated ice salinity (g/kg)
+   rn_simin    =  0.1              !  minimum tolerated ice salinity (g/kg)
+/
+!------------------------------------------------------------------------------
+&namiceitdme   !   Ice mechanical redistribution (ridging and rafting)
+!------------------------------------------------------------------------------
+   rn_Cs       =   0.5             !  fraction of shearing energy contributing to ridging
+   rn_fsnowrdg =   0.5             !  snow volume fraction that survives in ridging
+   rn_fsnowrft =   0.5             !  snow volume fraction that survives in rafting
+   nn_partfun  =   1               !  type of ridging participation function
+                                   !     0: linear (Thorndike et al, 1975)
+                                   !     1: exponential (Lipscomb, 2007
+   rn_gstar    =   0.15            !  fractional area of thin ice being ridged (nn_partfun = 0)
+   rn_astar    =   0.05            !  exponential measure of ridging ice fraction (nn_partfun = 1)
+   rn_hstar    = 100.0             !  determines the maximum thickness of ridged ice (m) (Hibler, 1980)
+   ln_rafting  =   .true.          !  rafting activated (T) or not (F)
+   rn_hraft    =   0.75            !  threshold thickness for rafting (m)
+   rn_craft    =   5.0             !  squeezing coefficient used in the rafting function
+   rn_por_rdg  =   0.3             !  porosity of newly ridged ice (Lepparanta et al., 1995)
+/
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ice_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ice_ref	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ice_ref	(revision 7041)
@@ -0,0 +1,1 @@
+link ../../SHARED/namelist_ice_lim3_ref
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ref	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_ref	(revision 7041)
@@ -0,0 +1,1 @@
+link ../../SHARED/namelist_ref
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_top_cfg
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_top_cfg	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_top_cfg	(revision 7041)
@@ -0,0 +1,62 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/TOP1 :   - tracer run information                (namtrc_run)
+!!               - tracer definition                     (namtrc    )
+!!               - tracer data initialisation            (namtrc_dta)
+!!               - tracer advection                      (namtrc_adv)
+!!               - tracer lateral diffusion              (namtrc_ldf)
+!!               - tracer vertical physics               (namtrc_zdf)
+!!               - tracer newtonian damping              (namtrc_dmp)
+!!               - dynamical tracer trends               (namtrc_trd)
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!-----------------------------------------------------------------------
+&namtrc_run      !   run information
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc          !   tracers definition
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_dta      !    Initialisation from data input file
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_adv      !   advection scheme for passive tracer 
+!-----------------------------------------------------------------------
+   ln_trcadv_fct =  .true.  !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+/
+!-----------------------------------------------------------------------
+&namtrc_ldf      !   lateral diffusion scheme for passive tracer 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_zdf      !   vertical physics
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_rad      !  treatment of negative concentrations 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_dmp      !   passive tracer newtonian damping   
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_ice      !    Representation of sea ice growth & melt effects
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_trd      !   diagnostics on tracer trends                       ('key_trdtrc')
+!                          or mixed-layer trends                        ('key_trdmld_trc')
+!----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------
+&namtrc_bc       !   data for boundary conditions
+!-----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------
+&namtrc_bdy      !   Setup of tracer boundary conditions
+!-----------------------------------------------------------------------
+/
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_top_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_top_ref	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_top_ref	(revision 7041)
@@ -0,0 +1,1 @@
+link ../../SHARED/namelist_top_ref
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_cfg
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_cfg	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_cfg	(revision 7041)
@@ -0,0 +1,54 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! Inert tracers reference namelist 
+!!       1  - AGE                (namage)
+!!       1  - CFC                (namcfc)
+!!       2  - C14               (namc14_typ, namc14_sbc, namc14_fcg)
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namage         !   AGE - dates
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+/
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namcfcdate     !   CFC 
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_typ     !  C14 - type of C14 tracer, default values of C14/C and pco2
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_sbc     !  C14 - surface BC
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_dia     !  additional diagnostics
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+      ln_c14dia=.true.                                   !                ! 
+      c14dia3d(1)  = 'DeltaC14'            ! Delta C14 (permil)
+      c14dia3d(2)  = 'C14Age'              ! Radioage (yr)
+      c14dia2d(1)  = 'qtr_c14'             ! Air-sea flux  (1/m2/s)
+      c14dia2d(2)  = 'qint_c14'            ! Cumulative air-sea flux (1/m2)
+      c14dia2d(3)  = 'RAge'                ! Reservoir Age (yr)
+      c14dia0d(1)  = 'AtmCO2'              ! Global atmospheric CO2 (ppm)
+      c14dia0d(2)  = 'AtmC14'              ! Global atmospheric Delta-C14 (permil)
+      c14dia0d(3)  = 'K_C14'               ! Global 14C/C exchange velocity (m/yr)
+      c14dia0d(4)  = 'K_CO2'               ! Global CO2 piston velocity (cm/h)
+      c14dia0d(5)  = 'C14Inv'              ! Radiocarbon ocean inventory (10^26 atoms)
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_fcg     !  files & dates
+!               !  For Paleo-historical: specify tyrc14_beg in yr BP
+!               !  For Bomb: tyrc14_beg=0
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+   cfileco2    = 'splco2.dat'  !  atmospheric co2 - Bomb
+   cfilec14    = 'atmc14.dat'  !  atmospheric c14 - Bomb
+   tyrc14_beg  = 0.00          !  starting year of experiment - Bomb
+!   cfileco2    = 'ByrdEdcCO2.txt' !  atmospheric co2 - Paleo
+!   cfilec14    = 'intcal13.14c'   !  atmospheric c14 - Paleo
+!   tyrc14_beg  =  35000.00        !  starting year of experiment - Paleo (yr BP)
+/
+!
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_ref	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_ref	(revision 7041)
@@ -0,0 +1,1 @@
+link ../../SHARED/namelist_trc_ref
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/splco2.dat
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/splco2.dat	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/splco2.dat	(revision 7041)
@@ -0,0 +1,482 @@
+#  4  452
+#   Weighted smoothing spline fit
+# Ice core and Mauna Loa CO2                                       
+# 50% attenuation at     23.4968    ; REG =     100.000 
+#     Time     Smoothed data   
+ 1765.0  277.9514
+ 1765.5  277.9652
+ 1766.0  277.9797
+ 1766.5  277.9949
+ 1767.0  278.0108
+ 1767.5  278.0275
+ 1768.0  278.0448
+ 1768.5  278.0628
+ 1769.0  278.0816
+ 1769.5  278.1011
+ 1770.0  278.1213
+ 1770.5  278.1423
+ 1771.0  278.1640
+ 1771.5  278.1864
+ 1772.0  278.2096
+ 1772.5  278.2335
+ 1773.0  278.2581
+ 1773.5  278.2835
+ 1774.0  278.3097
+ 1774.5  278.3366
+ 1775.0  278.3642
+ 1775.5  278.3927
+ 1776.0  278.4218
+ 1776.5  278.4518
+ 1777.0  278.4825
+ 1777.5  278.5140
+ 1778.0  278.5463
+ 1778.5  278.5793
+ 1779.0  278.6132
+ 1779.5  278.6478
+ 1780.0  278.6832
+ 1780.5  278.7194
+ 1781.0  278.7564
+ 1781.5  278.7942
+ 1782.0  278.8327
+ 1782.5  278.8721
+ 1783.0  278.9123
+ 1783.5  278.9533
+ 1784.0  278.9951
+ 1784.5  279.0378
+ 1785.0  279.0812
+ 1785.5  279.1255
+ 1786.0  279.1706
+ 1786.5  279.2165
+ 1787.0  279.2633
+ 1787.5  279.3109
+ 1788.0  279.3593
+ 1788.5  279.4085
+ 1789.0  279.4586
+ 1789.5  279.5096
+ 1790.0  279.5614
+ 1790.5  279.6140
+ 1791.0  279.6676
+ 1791.5  279.7219
+ 1792.0  279.7772
+ 1792.5  279.8332
+ 1793.0  279.8902
+ 1793.5  279.9480
+ 1794.0  280.0067
+ 1794.5  280.0662
+ 1795.0  280.1266
+ 1795.5  280.1878
+ 1796.0  280.2499
+ 1796.5  280.3129
+ 1797.0  280.3767
+ 1797.5  280.4414
+ 1798.0  280.5069
+ 1798.5  280.5732
+ 1799.0  280.6401
+ 1799.5  280.7077
+ 1800.0  280.7759
+ 1800.5  280.8447
+ 1801.0  280.9139
+ 1801.5  280.9836
+ 1802.0  281.0537
+ 1802.5  281.1241
+ 1803.0  281.1948
+ 1803.5  281.2657
+ 1804.0  281.3369
+ 1804.5  281.4081
+ 1805.0  281.4794
+ 1805.5  281.5508
+ 1806.0  281.6221
+ 1806.5  281.6933
+ 1807.0  281.7644
+ 1807.5  281.8354
+ 1808.0  281.9060
+ 1808.5  281.9764
+ 1809.0  282.0465
+ 1809.5  282.1161
+ 1810.0  282.1853
+ 1810.5  282.2540
+ 1811.0  282.3222
+ 1811.5  282.3897
+ 1812.0  282.4566
+ 1812.5  282.5228
+ 1813.0  282.5882
+ 1813.5  282.6528
+ 1814.0  282.7166
+ 1814.5  282.7794
+ 1815.0  282.8412
+ 1815.5  282.9021
+ 1816.0  282.9619
+ 1816.5  283.0205
+ 1817.0  283.0779
+ 1817.5  283.1343
+ 1818.0  283.1896
+ 1818.5  283.2438
+ 1819.0  283.2971
+ 1819.5  283.3495
+ 1820.0  283.4011
+ 1820.5  283.4519
+ 1821.0  283.5020
+ 1821.5  283.5513
+ 1822.0  283.6001
+ 1822.5  283.6483
+ 1823.0  283.6959
+ 1823.5  283.7432
+ 1824.0  283.7900
+ 1824.5  283.8365
+ 1825.0  283.8827
+ 1825.5  283.9286
+ 1826.0  283.9745
+ 1826.5  284.0201
+ 1827.0  284.0658
+ 1827.5  284.1115
+ 1828.0  284.1573
+ 1828.5  284.2032
+ 1829.0  284.2494
+ 1829.5  284.2958
+ 1830.0  284.3426
+ 1830.5  284.3898
+ 1831.0  284.4375
+ 1831.5  284.4857
+ 1832.0  284.5346
+ 1832.5  284.5842
+ 1833.0  284.6345
+ 1833.5  284.6856
+ 1834.0  284.7376
+ 1834.5  284.7906
+ 1835.0  284.8445
+ 1835.5  284.8995
+ 1836.0  284.9557
+ 1836.5  285.0131
+ 1837.0  285.0718
+ 1837.5  285.1318
+ 1838.0  285.1932
+ 1838.5  285.2561
+ 1839.0  285.3206
+ 1839.5  285.3866
+ 1840.0  285.4543
+ 1840.5  285.5233
+ 1841.0  285.5936
+ 1841.5  285.6647
+ 1842.0  285.7366
+ 1842.5  285.8088
+ 1843.0  285.8812
+ 1843.5  285.9535
+ 1844.0  286.0255
+ 1844.5  286.0971
+ 1845.0  286.1683
+ 1845.5  286.2390
+ 1846.0  286.3091
+ 1846.5  286.3786
+ 1847.0  286.4475
+ 1847.5  286.5157
+ 1848.0  286.5831
+ 1848.5  286.6498
+ 1849.0  286.7157
+ 1849.5  286.7808
+ 1850.0  286.8451
+ 1850.5  286.9087
+ 1851.0  286.9714
+ 1851.5  287.0332
+ 1852.0  287.0943
+ 1852.5  287.1544
+ 1853.0  287.2138
+ 1853.5  287.2722
+ 1854.0  287.3298
+ 1854.5  287.3865
+ 1855.0  287.4423
+ 1855.5  287.4972
+ 1856.0  287.5515
+ 1856.5  287.6052
+ 1857.0  287.6583
+ 1857.5  287.7111
+ 1858.0  287.7635
+ 1858.5  287.8158
+ 1859.0  287.8680
+ 1859.5  287.9202
+ 1860.0  287.9725
+ 1860.5  288.0250
+ 1861.0  288.0778
+ 1861.5  288.1310
+ 1862.0  288.1848
+ 1862.5  288.2392
+ 1863.0  288.2942
+ 1863.5  288.3501
+ 1864.0  288.4070
+ 1864.5  288.4648
+ 1865.0  288.5238
+ 1865.5  288.5840
+ 1866.0  288.6455
+ 1866.5  288.7084
+ 1867.0  288.7726
+ 1867.5  288.8382
+ 1868.0  288.9053
+ 1868.5  288.9737
+ 1869.0  289.0437
+ 1869.5  289.1151
+ 1870.0  289.1880
+ 1870.5  289.2624
+ 1871.0  289.3384
+ 1871.5  289.4160
+ 1872.0  289.4954
+ 1872.5  289.5764
+ 1873.0  289.6592
+ 1873.5  289.7439
+ 1874.0  289.8304
+ 1874.5  289.9188
+ 1875.0  290.0092
+ 1875.5  290.1014
+ 1876.0  290.1957
+ 1876.5  290.2918
+ 1877.0  290.3899
+ 1877.5  290.4898
+ 1878.0  290.5917
+ 1878.5  290.6954
+ 1879.0  290.8010
+ 1879.5  290.9083
+ 1880.0  291.0174
+ 1880.5  291.1281
+ 1881.0  291.2405
+ 1881.5  291.3543
+ 1882.0  291.4697
+ 1882.5  291.5864
+ 1883.0  291.7044
+ 1883.5  291.8237
+ 1884.0  291.9442
+ 1884.5  292.0658
+ 1885.0  292.1885
+ 1885.5  292.3122
+ 1886.0  292.4368
+ 1886.5  292.5622
+ 1887.0  292.6884
+ 1887.5  292.8154
+ 1888.0  292.9430
+ 1888.5  293.0711
+ 1889.0  293.1996
+ 1889.5  293.3284
+ 1890.0  293.4572
+ 1890.5  293.5860
+ 1891.0  293.7147
+ 1891.5  293.8430
+ 1892.0  293.9709
+ 1892.5  294.0982
+ 1893.0  294.2247
+ 1893.5  294.3504
+ 1894.0  294.4751
+ 1894.5  294.5987
+ 1895.0  294.7210
+ 1895.5  294.8422
+ 1896.0  294.9626
+ 1896.5  295.0822
+ 1897.0  295.2014
+ 1897.5  295.3202
+ 1898.0  295.4390
+ 1898.5  295.5578
+ 1899.0  295.6769
+ 1899.5  295.7964
+ 1900.0  295.9167
+ 1900.5  296.0378
+ 1901.0  296.1599
+ 1901.5  296.2834
+ 1902.0  296.4082
+ 1902.5  296.5348
+ 1903.0  296.6631
+ 1903.5  296.7935
+ 1904.0  296.9261
+ 1904.5  297.0609
+ 1905.0  297.1977
+ 1905.5  297.3365
+ 1906.0  297.4772
+ 1906.5  297.6196
+ 1907.0  297.7637
+ 1907.5  297.9093
+ 1908.0  298.0562
+ 1908.5  298.2043
+ 1909.0  298.3535
+ 1909.5  298.5036
+ 1910.0  298.6545
+ 1910.5  298.8061
+ 1911.0  298.9584
+ 1911.5  299.1113
+ 1912.0  299.2648
+ 1912.5  299.4189
+ 1913.0  299.5734
+ 1913.5  299.7285
+ 1914.0  299.8839
+ 1914.5  300.0397
+ 1915.0  300.1958
+ 1915.5  300.3522
+ 1916.0  300.5088
+ 1916.5  300.6656
+ 1917.0  300.8225
+ 1917.5  300.9796
+ 1918.0  301.1368
+ 1918.5  301.2941
+ 1919.0  301.4514
+ 1919.5  301.6087
+ 1920.0  301.7659
+ 1920.5  301.9232
+ 1921.0  302.0803
+ 1921.5  302.2373
+ 1922.0  302.3942
+ 1922.5  302.5508
+ 1923.0  302.7071
+ 1923.5  302.8628
+ 1924.0  303.0179
+ 1924.5  303.1723
+ 1925.0  303.3258
+ 1925.5  303.4783
+ 1926.0  303.6298
+ 1926.5  303.7800
+ 1927.0  303.9290
+ 1927.5  304.0764
+ 1928.0  304.2224
+ 1928.5  304.3668
+ 1929.0  304.5098
+ 1929.5  304.6515
+ 1930.0  304.7920
+ 1930.5  304.9312
+ 1931.0  305.0694
+ 1931.5  305.2066
+ 1932.0  305.3428
+ 1932.5  305.4782
+ 1933.0  305.6128
+ 1933.5  305.7468
+ 1934.0  305.8803
+ 1934.5  306.0135
+ 1935.0  306.1465
+ 1935.5  306.2795
+ 1936.0  306.4126
+ 1936.5  306.5461
+ 1937.0  306.6801
+ 1937.5  306.8148
+ 1938.0  306.9503
+ 1938.5  307.0871
+ 1939.0  307.2251
+ 1939.5  307.3647
+ 1940.0  307.5059
+ 1940.5  307.6490
+ 1941.0  307.7943
+ 1941.5  307.9417
+ 1942.0  308.0917
+ 1942.5  308.2444
+ 1943.0  308.3999
+ 1943.5  308.5586
+ 1944.0  308.7204
+ 1944.5  308.8857
+ 1945.0  309.0544
+ 1945.5  309.2267
+ 1946.0  309.4026
+ 1946.5  309.5824
+ 1947.0  309.7661
+ 1947.5  309.9538
+ 1948.0  310.1455
+ 1948.5  310.3415
+ 1949.0  310.5418
+ 1949.5  310.7465
+ 1950.0  310.9557
+ 1950.5  311.1696
+ 1951.0  311.3883
+ 1951.5  311.6119
+ 1952.0  311.8406
+ 1952.5  312.0746
+ 1953.0  312.3139
+ 1953.5  312.5587
+ 1954.0  312.8091
+ 1954.5  313.0653
+ 1955.0  313.3275
+ 1955.5  313.5958
+ 1956.0  313.8704
+ 1956.5  314.1514
+ 1957.0  314.4390
+ 1957.5  314.7334
+ 1958.0  315.0347
+ 1958.5  315.3430
+ 1959.0  315.6585
+ 1959.5  315.9810
+ 1960.0  316.3099
+ 1960.5  316.6444
+ 1961.0  316.9835
+ 1961.5  317.3266
+ 1962.0  317.6732
+ 1962.5  318.0236
+ 1963.0  318.3782
+ 1963.5  318.7385
+ 1964.0  319.1062
+ 1964.5  319.4833
+ 1965.0  319.8721
+ 1965.5  320.2745
+ 1966.0  320.6922
+ 1966.5  321.1253
+ 1967.0  321.5737
+ 1967.5  322.0377
+ 1968.0  322.5174
+ 1968.5  323.0131
+ 1969.0  323.5248
+ 1969.5  324.0520
+ 1970.0  324.5937
+ 1970.5  325.1487
+ 1971.0  325.7158
+ 1971.5  326.2941
+ 1972.0  326.8828
+ 1972.5  327.4806
+ 1973.0  328.0859
+ 1973.5  328.6966
+ 1974.0  329.3108
+ 1974.5  329.9296
+ 1975.0  330.5549
+ 1975.5  331.1889
+ 1976.0  331.8340
+ 1976.5  332.4917
+ 1977.0  333.1631
+ 1977.5  333.8474
+ 1978.0  334.5436
+ 1978.5  335.2500
+ 1979.0  335.9649
+ 1979.5  336.6871
+ 1980.0  337.4153
+ 1980.5  338.1481
+ 1981.0  338.8848
+ 1981.5  339.6254
+ 1982.0  340.3708
+ 1982.5  341.1221
+ 1983.0  341.8802
+ 1983.5  342.6460
+ 1984.0  343.4197
+ 1984.5  344.2017
+ 1985.0  344.9922
+ 1985.5  345.7917
+ 1986.0  346.6006
+ 1986.5  347.4193
+ 1987.0  348.2476
+ 1987.5  349.0837
+ 1988.0  349.9257
+ 1988.5  350.7702
+ 1989.0  351.6200
+ 1989.5  352.4700
+ 1990.0  353.3200
+ 1990.5  354.1700
+ 1991.0  354.9666
+ 1991.5  355.4840
+ 1992.0  355.9125
+ 1992.5  356.2656
+ 1993.0  356.4832
+ 1993.5  356.9545
+ 1994.0  357.6902
+ 1994.5  358.6209
+ 1995.0  359.6369
+ 1995.5  360.6260
+ 1996.0  361.5229
+ 1996.5  362.3600
+ 1997.0  362.8839
+ 1997.5  363.4538
+ 1998.0  364.7527
+ 1998.5  366.5040
+ 1999.0  367.6363
+ 1999.5  368.1512
+ 2000.0  368.5849
+ 2000.5  369.4103
+ 2001.0  370.3523
+ 2001.5  371.0773
+ 2002.0  371.9717
+ 2002.5  373.1636
+ 2003.0  374.4362
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/cpp_ORCA2_LIM3_TRC.fcm
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/cpp_ORCA2_LIM3_TRC.fcm	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/cpp_ORCA2_LIM3_TRC.fcm	(revision 7041)
@@ -0,0 +1,1 @@
+bld::tool::fppkeys key_trabbl key_lim3 key_zdftke key_zdfddm key_zdftmx key_top key_iomput key_mpp_mpi key_nosignedzero
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/field_def.xml
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/field_def.xml	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/field_def.xml	(revision 7041)
@@ -786,68 +786,78 @@
      <field_group id="ptrc_T" grid_ref="grid_T_3D">
        <field id="DIC"          long_name="Dissolved inorganic Concentration"        unit="mmol/m3" />
-       <field id="DIC_E3T"      long_name="DIC * E3T"                                unit="mmol/m2" > DIC * e3t </field >
+       <field id="DIC_e3t"      long_name="DIC * e3t"                                unit="mmol/m2" > DIC * e3t </field >
        <field id="Alkalini"     long_name="Total Alkalinity Concentration"           unit="mmol/m3" />
-       <field id="Alkalini_E3T" long_name="Alkalini * E3T"                           unit="mmol/m2"  > Alkalini * e3t </field >
+       <field id="Alkalini_e3t" long_name="Alkalini * e3t"                           unit="mmol/m2"  > Alkalini * e3t </field >
        <field id="O2"           long_name="Oxygen Concentration"                     unit="mmol/m3" />
-       <field id="O2_E3T"       long_name="O2 * E3T"                                 unit="mmol/m2"  > O2 * e3t </field >
+       <field id="O2_e3t"       long_name="O2 * e3t"                                 unit="mmol/m2"  > O2 * e3t </field >
        <field id="CaCO3"        long_name="Calcite Concentration"                    unit="mmol/m3" />
-       <field id="CaCO3_E3T"    long_name="CaCO3 * E3T"                              unit="mmol/m2"  > CaCO3 * e3t </field >
+       <field id="CaCO3_e3t"    long_name="CaCO3 * e3t"                              unit="mmol/m2"  > CaCO3 * e3t </field >
        <field id="PO4"          long_name="Phosphate Concentration"                  unit="mmol/m3" />
-       <field id="PO4_E3T"      long_name="PO4 * E3T"                                unit="mmol/m2"  > PO4 * e3t </field >
+       <field id="PO4_e3t"      long_name="PO4 * e3t"                                unit="mmol/m2"  > PO4 * e3t </field >
        <field id="POC"          long_name="Small organic carbon Concentration"       unit="mmol/m3" />
-       <field id="POC_E3T"      long_name="POC * E3T"                                unit="mmol/m2"  > POC * e3t </field >
+       <field id="POC_e3t"      long_name="POC * e3t"                                unit="mmol/m2"  > POC * e3t </field >
        <field id="Si"           long_name="Silicate Concentration"                   unit="mmol/m3" />
-       <field id="Si_E3T"       long_name="Si * E3T"                                 unit="mmol/m2"  > Si * e3t </field >
+       <field id="Si_e3t"       long_name="Si * e3t"                                 unit="mmol/m2"  > Si * e3t </field >
        <field id="PHY"          long_name="(Nano)Phytoplankton Concentration"        unit="mmol/m3" />
-       <field id="PHY_E3T"      long_name="PHY * E3T"                                unit="mmol/m2"  > PHY * e3t </field >
+       <field id="PHY_e3t"      long_name="PHY * e3t"                                unit="mmol/m2"  > PHY * e3t </field >
        <field id="ZOO"          long_name="(Micro)Zooplankton Concentration"         unit="mmol/m3" />
-       <field id="ZOO_E3T"      long_name="ZOO2 * E3T"                               unit="mmol/m2"  > ZOO * e3t </field >
+       <field id="ZOO_e3t"      long_name="ZOO2 * e3t"                               unit="mmol/m2"  > ZOO * e3t </field >
        <field id="DOC"          long_name="Dissolved organic Concentration"          unit="mmol/m3" />
-       <field id="DOC_E3T"      long_name="DOC * E3T"                                unit="mmol/m2"  > DOC * e3t </field >
+       <field id="DOC_e3t"      long_name="DOC * e3t"                                unit="mmol/m2"  > DOC * e3t </field >
        <field id="PHY2"         long_name="Diatoms Concentration"                    unit="mmol/m3" />
-       <field id="PHY2_E3T"     long_name="PHY2 * E3T"                               unit="mmol/m2"  > PHY2 * e3t </field >
+       <field id="PHY2_e3t"     long_name="PHY2 * e3t"                               unit="mmol/m2"  > PHY2 * e3t </field >
        <field id="ZOO2"         long_name="Mesozooplankton Concentration"            unit="mmol/m3" />
-       <field id="ZOO2_E3T"     long_name="ZOO2 * E3T"                               unit="mmol/m2"  > ZOO2 * e3t </field >
+       <field id="ZOO2_e3t"     long_name="ZOO2 * e3t"                               unit="mmol/m2"  > ZOO2 * e3t </field >
        <field id="DSi"          long_name="Diatoms Silicate Concentration"           unit="mmol/m3" />
-       <field id="DSi_E3T"      long_name="Dsi * E3T"                                unit="mmol/m2"  > DSi * e3t </field >
+       <field id="DSi_e3t"      long_name="Dsi * e3t"                                unit="mmol/m2"  > DSi * e3t </field >
        <field id="Fer"          long_name="Dissolved Iron Concentration"             unit="mmol/m3" />
-       <field id="Fer_E3T"      long_name="Fer * E3T"                                unit="mmol/m2"  > Fer * e3t </field >
+       <field id="Fer_e3t"      long_name="Fer * e3t"                                unit="mmol/m2"  > Fer * e3t </field >
        <field id="BFe"          long_name="Big iron particles Concentration"         unit="mmol/m3" />
-       <field id="BFe_E3T"      long_name="BFe * E3T"                                unit="mmol/m2"  > BFe * e3t </field >
+       <field id="BFe_e3t"      long_name="BFe * e3t"                                unit="mmol/m2"  > BFe * e3t </field >
        <field id="GOC"          long_name="Big organic carbon Concentration"         unit="mmol/m3" />
-       <field id="GOC_E3T"      long_name="GOC * E3T"                                unit="mmol/m2"  > GOC * e3t </field >
+       <field id="GOC_e3t"      long_name="GOC * e3t"                                unit="mmol/m2"  > GOC * e3t </field >
        <field id="SFe"          long_name="Small iron particles Concentration"       unit="mmol/m3" />
-       <field id="SFe_E3T"      long_name="SFe * E3T"                                unit="mmol/m2"  > SFe * e3t </field >
+       <field id="SFe_e3t"      long_name="SFe * e3t"                                unit="mmol/m2"  > SFe * e3t </field >
        <field id="DFe"          long_name="Diatoms iron  Concentration"              unit="mmol/m3" />
-       <field id="DFe_E3T"      long_name="DFe * E3T"                                unit="mmol/m2"  > DFe * e3t </field >
+       <field id="DFe_e3t"      long_name="DFe * e3t"                                unit="mmol/m2"  > DFe * e3t </field >
        <field id="GSi"          long_name="Sinking biogenic Silicate Concentration"  unit="mmol/m3" />
-       <field id="GSi_E3T"      long_name="GSi * E3T"                                unit="mmol/m2"  > GSi * e3t </field >
+       <field id="GSi_e3t"      long_name="GSi * e3t"                                unit="mmol/m2"  > GSi * e3t </field >
        <field id="NFe"          long_name="Nano iron Concentration"                  unit="mmol/m3" />
-       <field id="NFe_E3T"      long_name="NFe * E3T"                                unit="mmol/m2"  > NFe * e3t </field >
+       <field id="NFe_e3t"      long_name="NFe * e3t"                                unit="mmol/m2"  > NFe * e3t </field >
        <field id="NCHL"         long_name="Nano chlorophyl Concentration"            unit="mg/m3"   />
-       <field id="NCHL_E3T"     long_name="NCHL * E3T"                               unit="mmol/m2"  > NCHL * e3t </field >
+       <field id="NCHL_e3t"     long_name="NCHL * e3t"                               unit="mmol/m2"  > NCHL * e3t </field >
        <field id="DCHL"         long_name="Diatoms chlorophyl Concentration"         unit="mg/m3"   />
-       <field id="DCHL_E3T"     long_name="DCHL * E3T"                               unit="mmol/m2"  > DCHL * e3t </field >
+       <field id="DCHL_e3t"     long_name="DCHL * e3t"                               unit="mmol/m2"  > DCHL * e3t </field >
        <field id="NO3"          long_name="Nitrate Concentration"                    unit="mmol/m3" />
-       <field id="NO3_E3T"      long_name="NO3 * E3T"                                unit="mmol/m2"  > NO3 * e3t </field >
+       <field id="NO3_e3t"      long_name="NO3 * e3t"                                unit="mmol/m2"  > NO3 * e3t </field >
        <field id="NH4"          long_name="Ammonium Concentration"                   unit="mmol/m3" />
-       <field id="NH4_E3T"      long_name="NH4 * E3T"                                unit="mmol/m2"  > NH4 * e3t </field >
+       <field id="NH4_e3t"      long_name="NH4 * e3t"                                unit="mmol/m2"  > NH4 * e3t </field >
 
        <!-- PISCES with Kriest parametisation : variables available with key_kriest -->
        <field id="Num"         long_name="Number of organic particles"              unit="1" />
-       <field id="Num_E3T"     long_name="Num * E3T"                                unit="m"  > Num * e3t </field >
+       <field id="Num_e3t"     long_name="Num * e3t"                                unit="m"  > Num * e3t </field >
 
        <!-- PISCES light : variables available with key_pisces_reduced -->
        <field id="DET"         long_name="Detritus"                                 unit="mmol-N/m3" />
-       <field id="DET_E3T"     long_name="DET * E3T"                                unit="mmol-N/m2"  > DET * e3t </field >
+       <field id="DET_e3t"     long_name="DET * e3t"                                unit="mmol-N/m2"  > DET * e3t </field >
        <field id="DOM"         long_name="Dissolved Organic Matter"                 unit="mmol-N/m3" />
-       <field id="DOM_E3T"     long_name="DOM * E3T"                                unit="mmol-N/m2"  > DOM * e3t </field >
-
-       <!-- CFC11 : variables available with key_cfc -->
-       <field id="CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3" />
-       <field id="CFC11_E3T"   long_name="CFC11 * E3T"                              unit="umol/m2"  > CFC11 * e3t </field >
-       <!-- Bomb C14 : variables available with key_c14b -->
-       <field id="C14B"     long_name="Bomb C14 Concentration"                      unit="1"         />
-       <field id="C14B_E3T"    long_name="C14B * E3T"                               unit="m"  > C14B * e3t </field >
+       <field id="DOM_e3t"     long_name="DOM * e3t"                                unit="mmol-N/m2"  > DOM * e3t </field >
+
+       <!-- CFC11 : variables available with ln_cfc11 -->
+       <field id="CFC11"       long_name="Chlorofluoro carbon11 Concentration"      unit="umol/m3" />
+       <field id="CFC11_e3t"   long_name="CFC11 * e3t"                              unit="umol/m2"  > CFC11 * e3t </field >
+
+       <!-- CFC12 : variables available with ln_cfc12 -->
+       <field id="CFC12"       long_name="Chlorofluoro carbon12 Concentration"      unit="umol/m3" />
+       <field id="CFC12_e3t"   long_name="CFC12 * e3t"                              unit="umol/m2"  > CFC12 * e3t </field >
+
+       <!-- C14 : variables available with ln_c14 -->
+       <field id="RC14"        long_name="Radiocarbon ratio"                        unit="-"         />
+       <field id="RC14_e3t"    long_name="RC14 * e3t"                               unit="m"  > RC14 * e3t </field >
+
+       <!-- AGE : variables available with ln_age -->
+       <field id="Age"        long_name="Sea water age since surface contact"       unit="yr"         />
+       <field id="Age_e3t"    long_name="Age * e3t"                                 unit="yr * m"  > Age * e3t </field >
+
      </field_group>
 
@@ -961,26 +971,39 @@
        <field id="TDETSED"     long_name="TDETSED"                                 unit=""  /> 
 
-       <!-- CFC11 : variables available with key_cfc -->
-       <field id="qtrCFC11"    long_name="Air-sea flux of CFC-11"                  unit="mol/m2/s"   />
-       <field id="qintCFC11"   long_name="Cumulative air-sea flux of CFC-11"       unit="mol/m2"     />
-
-       <!-- Bomb C14 : variables available with key_c14b -->
-       <field id="qtrC14b"     long_name="Air-sea flux of Bomb C14"                unit="mol/m2/s"   />
-       <field id="qintC14b"    long_name="Cumulative air-sea flux of Bomb C14"     unit="mol/m2"     />
-       <field id="fdecay"      long_name="Radiactive decay of Bomb C14"            unit="mol/m3"  grid_ref="grid_T_3D"  />
+       <!-- CFC11 : variables available with ln_cfc11 -->
+       <field id="qtr_CFC11"    long_name="Air-sea flux of CFC-11"                  unit="mol/m2/s"   />
+       <field id="qint_CFC11"   long_name="Cumulative air-sea flux of CFC-11"       unit="mol/m2"     />
+
+       <!-- CFC12 : variables available with ln_cfc12 -->
+       <field id="qtr_CFC12"    long_name="Air-sea flux of CFC12"                  unit="mol/m2/s"   />
+       <field id="qint_CFC12"   long_name="Cumulative air-sea flux of CFC12"       unit="mol/m2"     />
+
+       <!--  C14 : variables available with ln_c14 -->
+       <field id="DeltaC14"     long_name="Delta C14"                              unit="permil" grid_ref="grid_T_3D"   />
+       <field id="C14Age"       long_name="Radiocarbon age"                        unit="yr"     grid_ref="grid_T_3D"   />
+       <field id="RAge"         long_name="Reservoir Age"                          unit="yr"     />
+       <field id="qtr_C14"      long_name="Air-sea flux of C14"                    unit="1/m2/s"   />
+       <field id="qint_C14"     long_name="Cumulative air-sea flux of C14"         unit="1/m2"     />
      </field_group>
 
-     <field_group id="PISCES_scalar"  domain_ref="1point" >
-       <field id="pno3tot"         long_name="global mean nitrate concentration"                  unit="mol/m3"   />
+     <field_group id="tracer_scalar"  domain_ref="1point" >
+     <!-- PISCES scalar  -->
+       <field id="pno3tot"         long_name="Global mean nitrate concentration"                  unit="mol/m3"   />
        <field id="ppo4tot"         long_name="global mean phosphorus concentration"               unit="mol/m3"   />
-       <field id="psiltot"         long_name="global mean silicate concentration"                 unit="mol/m3"   />
-       <field id="palktot"         long_name="global mean alkalinity concentration"               unit="mol/m3"   />
-       <field id="pfertot"         long_name="global mean iron concentration"                     unit="mol/m3"   />
-       <field id="tcflx"           long_name="total Flux of Carbon out of the ocean"              unit="mol/s"   />
-       <field id="tcflxcum"        long_name="cumulative total Flux of Carbon out of the ocean"   unit="mol/s"   />
-       <field id="tcexp"           long_name="total Carbon export at 100m"                        unit="mol/s"   />
-       <field id="tintpp"          long_name="global total integrated primary production"         unit="mol/s"   />
-       <field id="tnfix"           long_name="global total nitrogen fixation"                     unit="mol/s"   />
+       <field id="psiltot"         long_name="Global mean silicate concentration"                 unit="mol/m3"   />
+       <field id="palktot"         long_name="Global mean alkalinity concentration"               unit="mol/m3"   />
+       <field id="pfertot"         long_name="Global mean iron concentration"                     unit="mol/m3"   />
+       <field id="tcflx"           long_name="Total Flux of Carbon out of the ocean"              unit="mol/s"   />
+       <field id="tcflxcum"        long_name="Cumulative total Flux of Carbon out of the ocean"   unit="mol/s"   />
+       <field id="tcexp"           long_name="Total Carbon export at 100m"                        unit="mol/s"   />
+       <field id="tintpp"          long_name="Global total integrated primary production"         unit="mol/s"   />
+       <field id="tnfix"           long_name="Global total nitrogen fixation"                     unit="mol/s"   />
        <field id="tdenit"          long_name="Total denitrification"                              unit="mol/s"   />
+     <!-- C14 scalar  -->
+       <field id="AtmCO2"          long_name="Global atmospheric CO2"                             unit="ppm"   />
+       <field id="AtmC14"          long_name="Global atmospheric DeltaC14"                        unit="permil"   />
+       <field id="K_C14"           long_name="Global 14C/C exchange velocity"                     unit="m/yr"   />
+       <field id="K_CO2"           long_name="Global CO2 piston velocity"                         unit="cm/h"   />
+       <field id="C14Inv"          long_name="global Radiocarbon ocean inventory"                 unit="10^26 atoms"   />
      </field_group>
 
Index: anches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_c14b_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_c14b_ref	(revision 7040)
+++ 	(revision )
@@ -1,19 +1,0 @@
-!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-!! Bomb C14  :       1  - dates                             (namc14date)
-!! namelists    
-!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&namc14date     !   dates
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   ndate_beg_b  = 650101    !  datedeb1
-   nyear_res_b  = 1955      !  iannee1
-/
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&namc14dia     !   additional 2D/3D tracers diagnostics ("key_trc_diaadd")
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-!              !    name   !           title of the field          !     units      !
-!              !           !                                       !                !
-   c14dia2d(1)  = 'qtr_c14  ' , 'Air-sea flux                      ',  'mol/m2/s    '
-   c14dia2d(2)  = 'qint_c14 ' , 'Cumulative air-sea flux           ',  'mol/m2      '
-   c14dia3d(1)  = 'decay    ' , 'Radiactive decay                  ',  'mol/m3      '
-/
Index: anches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref	(revision 7040)
+++ 	(revision )
@@ -1,18 +1,0 @@
-!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-!! CFC  :       1  - dates                                 (namcfcdate)
-!! namelists    
-!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&namcfcdate     !   dates
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   ndate_beg  = 300101    !  datedeb1
-   nyear_res  = 1932      !  iannee1
-/
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&namcfcdia     !   additional 2D/3D tracers diagnostics 
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-!              !    name   !           title of the field          !     units      !
-!              !           !                                       !                !
-   cfcdia2d(1)  = 'qtr_c11 ' , 'Air-sea flux of CFC-11           ',  'mol/m2/s    '
-   cfcdia2d(2)  = 'qint_c11' , 'Cumulative air-sea flux of CFC-11 ', 'mol/m2      '
-/
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref	(revision 7041)
@@ -9,7 +9,12 @@
 !!              7  - parameters for calcite chemistry         (nampiscal)
 !!              8  - parameters for inputs deposition         (nampissed)
-!!              9  - parameters for Kriest parameterization   (nampiskrp, nampiskrs)
-!!              10 - additional 2D/3D  diagnostics            (nampisdia)
 !!              11 - Damping                                  (nampisdmp)
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&nampismod     !  Model used 
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+  ln_p2z = .false.        !  LOBSTER model used
+  ln_p4z = .true.         !  PISCES model used
+/
 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
@@ -248,53 +253,4 @@
 /
 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&nampiskrp     !   Kriest parameterization : parameters     "key_kriest"
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   xkr_eta      = 1.17    ! Sinking  exponent
-   xkr_zeta     = 2.28    ! N content exponent
-   xkr_ncontent = 5.7E-6  ! N content factor
-   xkr_mass_min = 0.0002  ! Minimum mass for Aggregates
-   xkr_mass_max = 1.      ! Maximum mass for Aggregates
-/
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&nampiskrs     !   Kriest parameterization : size classes  "key_kriest"
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   xkr_sfact    = 942.    ! Sinking factor
-   xkr_stick    = 0.5     ! Stickiness
-   xkr_nnano    = 2.337   ! Nbr of cell in nano size class
-   xkr_ndiat    = 3.718   ! Nbr of cell in diatoms size class
-   xkr_nmeso    = 7.147   ! Nbr of cell in mesozoo size class
-   xkr_naggr    = 9.877   ! Nbr of cell in aggregates  size class
-/
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&nampisdia     !   additional 2D/3D tracers diagnostics 
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-!              !    name   !           title of the field          !     units      !
-!              !           !                                       !                !  
-   pisdia2d(1)  = 'Cflx     ' , 'DIC flux                          ',  'molC/m2/s    '
-   pisdia2d(2)  = 'Oflx     ' , 'Oxygen flux                       ',  'molC/m2/s    '
-   pisdia2d(3)  = 'Kg       ' , 'Gas transfer                      ',  'mol/m2/s/uatm'
-   pisdia2d(4)  = 'Delc     ' , 'Delta CO2                         ',  'uatm         '
-   pisdia2d(5)  = 'PMO      ' , 'POC export                        ',  'molC/m2/s    '
-   pisdia2d(6)  = 'PMO2     ' , 'GOC export                        ',  'molC/m2/s    '
-   pisdia2d(7)  = 'ExpFe1   ' , 'Nano iron export                  ',  'molFe/m2/s   '
-   pisdia2d(8)  = 'ExpFe2   ' , 'Diatoms iron export               ',  'molFe/m2/s   '
-   pisdia2d(9)  = 'ExpSi    ' , 'Silicate export                   ',  'molSi/m2/s   '
-   pisdia2d(10) = 'ExpCaCO3 ' , 'Calcite export                    ',  'molC/m2/s    '
-   pisdia2d(11) = 'heup     ' , 'euphotic layer depth              ',  'm            '
-   pisdia2d(12) = 'Fedep    ' , 'Iron dep                          ',  'molFe/m2/s   '
-   pisdia2d(13) = 'Nfix     ' , 'Nitrogen Fixation                 ',  'molN/m2/s    '
-   pisdia3d(1)  = 'PH       ' , 'PH                                ',  '-            '
-   pisdia3d(2)  = 'CO3      ' , 'Bicarbonates                      ',  'mol/l        '
-   pisdia3d(3)  = 'CO3sat   ' , 'CO3 saturation                    ',  'mol/l        '
-   pisdia3d(4)  = 'PAR      ' , 'light penetration                 ',  'W/m2         '
-   pisdia3d(5)  = 'PPPHY    ' , 'Primary production of nanophyto   ',  'molC/m3/s    '
-   pisdia3d(6)  = 'PPPHY2   ' , 'Primary production of diatoms     ',  'molC/m3/s    '
-   pisdia3d(7)  = 'PPNEWN   ' , 'New Primary production of nano    ',  'molC/m3/s    '
-   pisdia3d(8)  = 'PPNEWD   ' , 'New Primary production of diat    ',  'molC/m3/s    '
-   pisdia3d(9)  = 'PBSi     ' , 'Primary production of Si diatoms  ',  'molSi/m3/s   '
-   pisdia3d(10) = 'PFeN     ' , 'Primary production of nano iron   ',  'molFe/m3/s   '
-   pisdia3d(11) = 'PFeD     ' , 'Primary production of diatoms iron',  'molFe/m3/s   '
-/
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 &nampisdmp     !  Damping 
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@@ -317,6 +273,4 @@
 !!              7  - general coefficients                       (namlobrat)
 !!              8  - optical parameters                         (namlobopt)
-
-!!              10 - biological diagnostics trends              (namlobdbi) 
 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
@@ -389,25 +343,2 @@
    rpig   = 0.7        ! chla/chla+pheo ratio
 /
-!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-&nampisdbi     !   biological diagnostics trends     
-!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-!                !  2D bio diagnostics   units : mmole/m2/s   ("key_trdmld_trc")
-!                !  name    !       title of the field      !     units      !
-   pisdiabio(1)  = 'NO3PHY' , 'Flux from NO3 to PHY          ',  'mmole/m3/s'
-   pisdiabio(2)  = 'NH4PHY' , 'Flux from NH4 to PHY          ',  'mmole/m3/s'
-   pisdiabio(3)  = 'PHYNH4' , 'Flux from PHY to NH4          ',  'mmole/m3/s'
-   pisdiabio(4)  = 'PHYDOM' , 'Flux from PHY to DOM          ',  'mmole/m3/s'
-   pisdiabio(5)  = 'PHYZOO' , 'Flux from PHY to ZOO          ',  'mmole/m3/s'
-   pisdiabio(6)  = 'PHYDET' , 'Flux from PHY to DET          ',  'mmole/m3/s'
-   pisdiabio(7)  = 'DETZOO' , 'Flux from DET to ZOO          ',  'mmole/m3/s'
-   pisdiabio(8)  = 'DETSED' , 'Flux from DET to SED          ',  'mmole/m3/s'
-   pisdiabio(9)  = 'ZOODET' , 'Flux from ZOO to DET          ',  'mmole/m3/s'
-   pisdiabio(10)  = 'ZOOBOD' , 'Zooplankton closure          ',  'mmole/m3/s'
-   pisdiabio(11)  = 'ZOONH4' , 'Flux from ZOO to NH4         ',  'mmole/m3/s'
-   pisdiabio(12)  = 'ZOODOM' , 'Flux from ZOO to DOM         ',  'mmole/m3/s'
-   pisdiabio(13)  = 'NH4NO3' , 'Flux from NH4 to NO3         ',  'mmole/m3/s'
-   pisdiabio(14)  = 'DOMNH4' , 'Flux from DOM to NH4         ',  'mmole/m3/s'
-   pisdiabio(15)  = 'DETNH4' , 'Flux from DET to NH4         ',  'mmole/m3/s'
-   pisdiabio(16)  = 'DETDOM' , 'Flux from DET to DOM         ',  'mmole/m3/s'
-   pisdiabio(17)  = 'SEDNO3' , 'NO3 remineralization from SED',  'mmole/m3/s'
-/
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_top_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_top_ref	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_top_ref	(revision 7041)
@@ -8,11 +8,10 @@
 !!               - tracer newtonian damping              (namtrc_dmp)
 !!               - dynamical tracer trends               (namtrc_trd)
-!!               - tracer output diagonstics             (namtrc_dia)
 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !-----------------------------------------------------------------------
 &namtrc_run      !   run information
 !-----------------------------------------------------------------------
+   jptra         =  3        ! Total number of tracers
    nn_dttrc      =  1        !  time step frequency for passive sn_tracers
-   nn_writetrc   =  5475     !  time step frequency for sn_tracer outputs
    ln_top_euler  = .false.   !  use Euler time-stepping for TOP
    ln_rsttr      = .false.   !  start from a restart file (T) or not (F)
@@ -28,7 +27,16 @@
 &namtrc          !   tracers definition
 !-----------------------------------------------------------------------
-   ln_trcdta     =   .true.  !  Initialisation from data input file (T) or not (F)
+   ln_age        =  .true.
+   ln_cfc11      =  .true.
+   ln_cfc12      =  .false.
+   ln_c14        =  .true.
+   ln_trcdta     =  .false.  !  Initialisation from data input file (T) or not (F)
    ln_trcdmp     =  .false.  !  add a damping termn (T) or not (F)
    ln_trcdmp_clo =  .false.  !  damping term (T) or not (F) on closed seas
+!
+!              !    name   !           title of the field              !   units    ! initial data from file or not !
+   sn_tracer(1)  = 'Age   ' , 'Sea water age since surface contact     ',  'yr'     ,      .false. 
+   sn_tracer(2)  = 'CFC11 ' , 'CFC11 Concentration                     ',  'umolC/L',      .false.
+   sn_tracer(3)  = 'RC14  ' , 'Radiocarbon ratio                       ',  '-'      ,      .false. 
 /
 !-----------------------------------------------------------------------
@@ -111,12 +119,4 @@
    ln_trdtrc(23) = .true.
 /
-!-----------------------------------------------------------------------
-&namtrc_dia      !   parameters for passive tracer additional diagnostics
-!----------------------------------------------------------------------
-   ln_diatrc     =  .true.   !  save additional diag. (T) or not (F)
-   ln_diabio     =  .true.   !  output biological trends
-   nn_writedia   =  5475     !  time step frequency for diagnostics
-   nn_writebio   =    10     !  frequency of biological outputs
-/
 !----------------------------------------------------------------------
 &namtrc_bc       !   data for boundary conditions
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_trc_ref
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_trc_ref	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_trc_ref	(revision 7041)
@@ -0,0 +1,49 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! Inert tracers reference namelist 
+!!       1  - AGE                (namage)
+!!       1  - CFC                (namcfc)
+!!       2  - C14               (namc14_typ, namc14_sbc, namc14_fcg)
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namage         !   AGE - dates
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+   rn_age_depth      = 10            ! depth over which age tracer reset to zero
+   rn_age_kill_rate  = -0.000138888  !  = -1/7200 recip of relaxation timescale (s) for  age tracer shallower than age_depth
+/
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namcfc     !   CFC 
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+   ndate_beg  = 300101    !  datedeb1
+   nyear_res  = 1932      !  iannee1
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_typ     !  C14 - type of C14 tracer, default values of C14/C and pco2
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+   kc14typ  = 0          ! Type of C14 tracer (0=equilibrium; 1=bomb transient; 2=past transient)
+   rc14at   = 1.0        ! Default value for atmospheric C14/C (used for equil run)
+   pco2at   = 280.0      ! Default value for atmospheric pcO2 [atm] (used for equil run)
+   rc14init = 0.85       ! Default value for initialization of ocean C14/C (when no restart)
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_sbc     !  C14 - surface BC
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+   ln_chemh = .true.     ! Chemical enhancement in piston vel.: yes/no
+   xkwind   = 0.360      ! Coefficient for gas exchange velocity
+   xdicsur  = 2.0        ! Reference DIC surface concentration (mol/m3)
+/
+!
+!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+&namc14_fcg     !  files & dates
+!               !  For Paleo-historical: specify tyrc14_beg in yr BP
+!               !  For Bomb: tyrc14_beg=0
+!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+   cfileco2    = 'splco2.dat'  !  atmospheric co2 - Bomb
+   cfilec14    = 'atmc14.dat'  !  atmospheric c14 - Bomb
+   tyrc14_beg  = 0.00          !  starting year of experiment - Bomb
+!   cfileco2    = 'ByrdEdcCO2.txt' !  atmospheric co2 - Paleo
+!   cfilec14    = 'intcal13.14c'   !  atmospheric c14 - Paleo
+!   tyrc14_beg  =  35000.00        !  starting year of experiment - Paleo (yr BP)
+/
+!
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/cfg.txt
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/cfg.txt	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/cfg.txt	(revision 7041)
@@ -11,2 +11,4 @@
 GYRE OPA_SRC
 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC
+ORCA2_LIM3_PISCES OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC
+ORCA2_LIM3_TRC OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90	(revision 7041)
@@ -0,0 +1,20 @@
+MODULE par_age
+   !!======================================================================
+   !!                        ***  par_age  ***
+   !! TOP :   set the AGE parameters
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id$ 
+   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+   IMPLICIT NONE
+
+   INTEGER, PUBLIC  :: jp_age    !: number of passive tracers in PISCES
+   INTEGER, PUBLIC  :: jp_age0   !: index of AGE passive tracers
+
+   LOGICAL, PUBLIC  :: ln_age
+
+   !!======================================================================
+END MODULE par_age
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcice_age.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcice_age.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcice_age.F90	(revision 7041)
@@ -0,0 +1,31 @@
+MODULE trcice_age
+   !!======================================================================
+   !!                         ***  MODULE trcice_age  ***
+   !!======================================================================
+   USE par_trc         ! TOP parameters
+   USE oce_trc         ! Ocean variables
+   USE trc             ! TOP variables
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_ice_ini_age       ! called by trcice.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id: trcice_ageb.F90 4990 2014-12-15 16:42:49Z timgraham $
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_ice_ini_age
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_ice_ageb  ***
+      !!
+      !!----------------------------------------------------------------------
+      !
+      !
+   END SUBROUTINE trc_ice_ini_age
+
+   !!======================================================================
+END MODULE trcice_age
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcini_age.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcini_age.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcini_age.F90	(revision 7041)
@@ -0,0 +1,73 @@
+MODULE trcini_age
+   !!======================================================================
+   !!                         ***  MODULE trcini_age  ***
+   !! TOP :   initialisation of the AGE tracer
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (G. Nurser, G. Madec, C. Ethe ) Original code
+   !!----------------------------------------------------------------------
+   !! trc_ini_age   : MY_TRC model initialisation
+   !!----------------------------------------------------------------------
+   USE oce_trc
+   USE trc
+   USE trcsms_age
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_ini_age   ! called by trcini.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id$ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_ini_age
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_ini_age  ***  
+      !!
+      !! ** Purpose :   initialization for AGE model
+      !!
+      !!----------------------------------------------------------------------
+      INTEGER    ::  jn
+      CHARACTER(len = 20)  ::  cltra
+
+
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) ' trc_ini_age: passive tracer age'
+      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+
+      jp_age   = 1
+      DO jn = 1, jptra
+        cltra = ctrcnm(jn) 
+        IF( cltra == 'AGE' .OR. cltra == 'Age' .OR. cltra == 'age' )   jp_age0 = jn     
+      ENDDO
+
+      IF( lwp ) THEN
+        WRITE(numout,*) ''
+        WRITE(numout,*) ' Index of age tracer in the passive tracer array   jp_age0 = ', jp_age0
+        WRITE(numout,*) 
+      ENDIF
+
+
+      rryear  = 1._wp / ( nyear_len(1) * rday )    ! recip number of seconds in one year
+
+      !! BUG in s-coordinate this does not work!
+      nlb_age = MINLOC( gdepw_1d, mask = gdepw_1d > rn_age_depth, dim = 1 ) ! shallowest W level Below age_depth
+                                                                            !  = shallowest T level wholly below age_depth
+      nl_age  = nlb_age - 1                                                 ! deepest    W level Above age_depth
+                                                                            !  = T level surrounding age_depth
+
+      nla_age = nl_age - 1                                                   ! deepest    T level wholly above age_depth
+
+      frac_kill_age = ( rn_age_depth - gdepw_1d(nl_age) ) / e3t_1d(nl_age)      ! fraction of level nl_age above age_depth
+      frac_add_age  = 1._wp -  frac_kill_age                                    ! fraction of level nl_age below age_depth
+
+      
+      IF( .NOT. ln_rsttr ) trn(:,:,:,jp_age0) = 0.
+      !
+   END SUBROUTINE trc_ini_age
+
+   !!======================================================================
+END MODULE trcini_age
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90	(revision 7041)
@@ -0,0 +1,62 @@
+MODULE trcnam_age
+   !!======================================================================
+   !!                         ***  MODULE trcnam_age  ***
+   !! TOP :   initialisation of some run parameters for Age tracer
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) 
+   !!----------------------------------------------------------------------
+   !! trc_nam_age      : AGE  tracer initialisation
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE trc         ! Ocean variables
+   USE trcsms_age      ! AGE specific variable
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_nam_age   ! called by trcnam.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id$
+   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_nam_age
+      !!-------------------------------------------------------------------
+      !!                  ***  ROUTINE trc_nam_age  ***
+      !!                 
+      !! ** Purpose :   Definition some run parameter for AGE model
+      !!
+      !! ** input   :   Namelist namage
+      !!----------------------------------------------------------------------
+      INTEGER :: ios                 ! Local integer output status for namelist read
+      !!
+      NAMELIST/namage/ rn_age_depth, rn_age_kill_rate 
+      !!----------------------------------------------------------------------
+
+      REWIND( numtrc_ref )              ! Namelist namagedate in reference namelist : AGE parameters
+      READ  ( numtrc_ref, namage, IOSTAT = ios, ERR = 901)
+901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namage in reference namelist', lwp )
+
+      REWIND( numtrc_cfg )              ! Namelist namagedate in configuration namelist : AGE parameters
+      READ  ( numtrc_cfg, namage, IOSTAT = ios, ERR = 902 )
+902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namage in configuration namelist', lwp )
+      IF(lwm) WRITE ( numonr, namage )
+
+      IF(lwp) THEN                  ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) ' trc_nam_age: Read namage, namelist for Age passive tracer'
+         WRITE(numout,*) ' ~~~~~~~'
+         WRITE(numout,*) '  depth over which age tracer reset to zero                              rn_age_depth      = ', rn_age_depth 
+         WRITE(numout,*) '  recip of relax. timescale (s) for age tracer shallower than age_depth  rn_age_kill_rate  = ', rn_age_kill_rate 
+      ENDIF
+
+      IF(lwm) CALL FLUSH ( numonr )     ! flush output namelist
+
+   END SUBROUTINE trc_nam_age
+   
+   !!======================================================================
+END MODULE trcnam_age
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcsms_age.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcsms_age.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcsms_age.F90	(revision 7041)
@@ -0,0 +1,77 @@
+MODULE trcsms_age
+   !!======================================================================
+   !!                         ***  MODULE trcsms_age  ***
+   !! TOP :   Main module of the AGE tracers
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
+   !!----------------------------------------------------------------------
+   !! trc_sms_age       : AGE model main routine
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE trc             ! TOP variables
+   USE trd_oce
+   USE trdtrc
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_sms_age       ! called by trcsms.F90 module
+
+   INTEGER , PUBLIC :: nl_age             ! T level surrounding age_depth
+   INTEGER , PUBLIC :: nla_age            ! T level wholly above age_depth
+   INTEGER , PUBLIC :: nlb_age            ! T level wholly below age_depth
+
+   REAL(wp), PUBLIC :: rn_age_depth       ! = 10       depth over which age tracer reset to zero
+   REAL(wp), PUBLIC :: rn_age_kill_rate   ! = -1./7200  recip of relaxation timescale (s) for  age tracer shallower than age_depth
+   
+   REAL(wp), PUBLIC :: rryear          !: recip number of seconds in one year
+   REAL(wp), PUBLIC :: frac_kill_age   !: fraction of level nl_age above age_depth where it is relaxed towards zero
+   REAL(wp), PUBLIC :: frac_add_age    !: fraction of level nl_age below age_depth where it is incremented
+
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id$
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_sms_age( kt )
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_sms_age  ***
+      !!
+      !! ** Purpose :   main routine of AGE model
+      !!
+      !! ** Method  : -
+      !!----------------------------------------------------------------------
+      !
+      INTEGER, INTENT(in) ::   kt   ! ocean time-step index
+      INTEGER ::   jn, jk   ! dummy loop index
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('trc_sms_age')
+      !
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) ' trc_sms_age:  AGE model'
+      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+
+
+      DO jk = 1, nla_age
+         tra(:,:,jk,jp_age0) = rn_age_kill_rate * trb(:,:,jk,jp_age0)
+      ENDDO
+      !
+      tra(:,:,nl_age,jp_age0) = frac_kill_age * rn_age_kill_rate * trb(:,:,nl_age,jp_age0)  &
+          &                   + frac_add_age  * rryear * tmask(:,:,nl_age)
+      !
+      DO jk = nlb_age, jpk
+         tra(:,:,jk,jp_age0) = tmask(:,:,jk) * rryear
+      ENDDO
+      !
+      IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_age0), jn, jptra_sms, kt )   ! save trends
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('trc_sms_age')
+      !
+   END SUBROUTINE trc_sms_age
+
+   !!======================================================================
+END MODULE trcsms_age
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcwri_age.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcwri_age.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcwri_age.F90	(revision 7041)
@@ -0,0 +1,56 @@
+MODULE trcwri_age
+   !!======================================================================
+   !!                       *** MODULE trcwri ***
+   !!    age :   Output of age tracers
+   !!======================================================================
+   !! History :   1.0  !  2009-05 (C. Ethe)  Original code
+   !!----------------------------------------------------------------------
+#if defined key_top &&  defined key_iomput
+   !!----------------------------------------------------------------------
+   !! trc_wri_age   :  outputs of concentration fields
+   !!----------------------------------------------------------------------
+   USE par_age     
+   USE trc         
+   USE iom
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC trc_wri_age 
+
+CONTAINS
+
+   SUBROUTINE trc_wri_age
+      !!---------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_wri_trc  ***
+      !!
+      !! ** Purpose :   output passive tracers fields 
+      !!---------------------------------------------------------------------
+      CHARACTER (len=20)   :: cltra
+      INTEGER              :: jn
+      !!---------------------------------------------------------------------
+
+      ! write the tracer concentrations in the file
+
+      cltra = TRIM( ctrcnm(jp_age0) )                  ! short title for tracer
+      CALL iom_put( cltra, trn(:,:,:,jp_age0) )
+
+      !
+   END SUBROUTINE trc_wri_age
+
+#else
+   !!----------------------------------------------------------------------
+   !!  Dummy module :                                     No passive tracer
+   !!----------------------------------------------------------------------
+   PUBLIC trc_wri_age
+CONTAINS
+   SUBROUTINE trc_wri_age                     ! Empty routine  
+   END SUBROUTINE trc_wri_age
+#endif
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id: trcwri_age.F90 3160 2011-11-20 14:27:18Z cetlod $ 
+   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
+   !!======================================================================
+END MODULE trcwri_age
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/par_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/par_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/par_c14.F90	(revision 7041)
@@ -0,0 +1,17 @@
+MODULE par_c14
+   !!======================================================================
+   !!                        ***  par_c14 ***
+   !! TOP :   set the C14 parameters
+   !!======================================================================
+   !! History :   2.0  !  2008-12  (C. Ethe, G. Madec)  revised architecture
+   !! History :        !  2015 (A.Mouchet) equilibrium + transient C14
+   !!----------------------------------------------------------------------
+
+   IMPLICIT NONE
+
+   INTEGER, PUBLIC ::  jp_c14    !: number of c14 tracer
+   INTEGER, PUBLIC ::  jp_c140   !: First index of C14 tracer
+
+   LOGICAL, PUBLIC ::  ln_c14
+
+END MODULE par_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/sms_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/sms_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/sms_c14.F90	(revision 7041)
@@ -0,0 +1,75 @@
+MODULE sms_c14
+   !!======================================================================
+   !!                      ***  MODULE trcsms_c14  ***
+   !! TOP :  C14 main module
+   !!======================================================================
+   !! History     -   ! 1994-05 ( J. Orr ) original code
+   !!            1.0  ! 2006-02 ( J.M. Molines )  Free form + modularity
+   !!            2.0  ! 2008-12 ( C. Ethe ) reorganisation
+   !!            4.0  ! 2011-02 ( A.R. Porter, STFC Daresbury ) Dynamic memory
+   !!                 ! 2015    (A. Mouchet) general C14 + update formulas
+   !!----------------------------------------------------------------------
+   !!   sms_c14 :  compute and add C14 suface forcing to C14 trends
+   !!----------------------------------------------------------------------
+   USE par_oce
+   USE par_trc
+
+
+   IMPLICIT NONE
+   PUBLIC  
+
+
+   LOGICAL  :: ln_chemh                             ! Chemical enhancement (yes/no)
+   INTEGER  :: kc14typ                              ! C14 tracer type
+   REAL(wp) :: tyrc14_beg                           ! year start atmospheric scenario !! See below
+   REAL(wp) :: pco2at, rc14at                       ! atm co2, atm 14C ratio (global, reference)
+   REAL(wp) :: rc14init                             ! ocean 14C ratio for initialization
+   REAL(wp) :: xkwind, xdicsur                      ! wind coeff, ref DIC
+   REAL(wp) :: rlam14                               ! C14 decay  rate
+
+   !
+   CHARACTER (len=20)                           :: cfileco2, cfilec14  ! Name of atmospheric forcing files
+   !
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)  ::   c14sbc   ! atmospheric c14 ratio
+   REAL(wp)                                     ::   co2sbc   ! atmospheric co2 pressure
+  
+   REAL(wp),  ALLOCATABLE, SAVE, DIMENSION(:,:) ::   exch_c14   ! exch. vel. for C14/C
+   REAL(wp),  ALLOCATABLE, SAVE, DIMENSION(:,:) ::   exch_co2   ! CO2 invasion rate
+   REAL(wp),  ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qtr_c14    ! flux at surface
+   REAL(wp),  ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qint_c14   ! cumulative flux
+
+   INTEGER , PARAMETER                          ::   nc14zon     = 3  ! number of zones for bomb c14
+   !
+   INTEGER                                       ::   nrecco2, nrecc14  ! nb record atm co2 & cc14
+   REAL(wp)                                      ::   tyrc14_now ! current yr for transient experiment relative to tyrc14_beg
+   INTEGER                                       ::   m1_co2, m1_c14  ! index of first co2 and c14 records to consider
+   INTEGER                                       ::   m2_co2, m2_c14  ! index of second co2 and c14 records to consider
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   bomb       ! C14 atm data (bomb - 3 zones)
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:)     ::   atmc14     ! C14 atm data (paleo - 1 zone)
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:)     ::   tyrc14     ! Time (yr) atmospheric C14 data
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   fareaz     ! Spatial Interpolation Factors
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:)     ::   spco2      ! Atmospheric CO2
+   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:)     ::   tyrco2     ! Time (yr) atmospheric CO2 data
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $                                                                    $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+
+   INTEGER FUNCTION sms_c14_alloc()
+      !!----------------------------------------------------------------------
+      !!                  ***  ROUTINE trc_sms_c14_alloc  ***
+      !!----------------------------------------------------------------------
+      sms_c14_alloc = 0
+      ALLOCATE( exch_c14(jpi,jpj)        ,  exch_co2(jpi,jpj)        ,   &
+         &      qtr_c14(jpi,jpj)         ,  qint_c14(jpi,jpj)        ,   &
+         &      c14sbc(jpi,jpj)          ,  STAT = sms_c14_alloc )
+         !
+      !
+   END FUNCTION sms_c14_alloc
+
+  !!======================================================================
+END MODULE sms_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcatm_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcatm_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcatm_c14.F90	(revision 7041)
@@ -0,0 +1,304 @@
+MODULE trcatm_c14
+   !!======================================================================
+   !!                     ***  MODULE  trcatm_c14  ***
+   !! TOP :  read and manages atmospheric values for radiocarbon model  
+   !!=====================================================================
+   !! History: Based on trcini_c14b & trcsms_c14b : 
+   !!          Anne Mouchet
+   !!----------------------------------------------------------------------
+   !!   trc_atm_c14_ini  : initialize c14atm & pco2atm
+   !!   trc_atm_c14      : read and time interpolate  c14atm & pco2atm
+   !!----------------------------------------------------------------------
+   USE par_trc       !  passive tracers parameters
+   USE oce_trc       !  shared variables between ocean and passive tracers
+   USE trc           !  passive tracers common variables
+   USE sms_c14    ! c14 simulation type, atm default values...
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_atm_c14         ! called in trcsms_c14.F90
+   PUBLIC   trc_atm_c14_ini     ! called in trcini_c14.F90
+   !
+   !!----------------------------------------------------------------------
+   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
+   !! $Id: trcatm_c14.F90 .... $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_atm_c14_ini
+      !!----------------------------------------------------------------------
+      !!                   ***  ROUTINE trc_c14_ini  ***
+      !!                    
+      !! ** Purpose :   initialisation of sbc for radiocarbon
+      !! 
+      !! ** Method  : 
+      !!----------------------------------------------------------------------
+      !
+      CHARACTER (len=20)        :: clfile                        ! forcing file name
+      INTEGER                   :: ji,jj,jn                        ! dummy loop indice
+      INTEGER                   :: ierr1,ierr2,ierr3,izco2         ! temporary integers
+      INTEGER                   :: inum1,inum2,incom,iyear         ! temporary integers
+      REAL(wp) ::   ys40 = -40.     ! 40 degrees south
+      REAL(wp) ::   ys20 = -20.     ! 20 degrees south
+      REAL(wp) ::   yn20 =  20.     ! 20 degrees north
+      REAL(wp) ::   yn40 =  40.     ! 40 degrees north
+      REAL(wp), POINTER, DIMENSION(:)   :: zco2, zyrco2  ! temporary arrays for swap
+      !
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('trc_atm_c14_ini')
+      !
+      
+      IF( lwp ) WRITE(numout,*) ' '
+      IF( lwp ) WRITE(numout,*) ' trc_atm_c14_ini : initialize atm CO2 & C14-ratio '
+      IF( lwp ) WRITE(numout,*) ' '
+      !
+      tyrc14_now = 0._wp   ! initialize
+      !
+      IF(kc14typ >= 1) THEN  ! Transient atmospheric forcing: CO2
+      !
+         clfile = TRIM( cfileco2 )
+         IF(lwp) WRITE(numout,*) 'Read CO2 atmospheric concentrations file ',clfile
+         CALL ctl_opn( inum1, clfile, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+         REWIND(inum1)
+      
+         READ(inum1,*) nrecco2,incom
+         DO jn = 1, incom        ! Skip over descriptor lines
+            READ(inum1,'(1x)')
+         END DO
+         ALLOCATE( spco2(nrecco2), tyrco2(nrecco2)       , STAT=ierr1 )
+         IF( ierr1 /= 0 )   CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate co2 arrays' )
+      ! get  CO2 data
+         DO jn = 1, nrecco2
+            READ(inum1, *)  tyrco2(jn), spco2(jn)
+         END DO
+         CLOSE(inum1)
+      !
+         IF(kc14typ==2) THEN
+            CALL wrk_alloc( nrecco2,zco2)
+            CALL wrk_alloc( nrecco2,zyrco2)
+            zco2(:)=spco2(:)
+            zyrco2(:)=tyrco2(:)
+      ! Set CO2 times on AD time scale & swap records : In CO2 file : youngest first
+            DO jn = 1, nrecco2
+               izco2=nrecco2-jn+1
+               spco2(izco2)=zco2(jn)
+               tyrco2(izco2)=1950._wp-zyrco2(jn)         ! BP to AD dates
+            END DO
+            CALL wrk_dealloc(nrecco2,zco2)
+            CALL wrk_dealloc(nrecco2,zyrco2)
+         ENDIF
+      !
+      !        ! Transient atmospheric forcing: Bomb C14 & Paleo C14 : open file
+      !
+         clfile = TRIM( cfilec14 )
+         IF (lwp) WRITE(numout,*) 'Read C-14 atmospheric concentrations file ',clfile
+         CALL ctl_opn( inum2, clfile, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+         REWIND(inum2)
+      !
+      ! Bomb C14: 3 zones for atm C14 !
+         IF(kc14typ == 1) THEN  ! Transient atmospheric forcing: Bomb C14
+      ! 
+            READ(inum2,*) nrecc14,incom
+            DO jn = 1, incom        ! Skip over descriptor lines
+               READ(inum2,'(1x)')
+            END DO
+            ALLOCATE( bomb(nrecc14,nc14zon), tyrc14(nrecc14)       , STAT=ierr2 )
+            IF( ierr2 /= 0 )   CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate c14 arrays' )
+      ! get bomb c14 data
+            DO jn = 1, nrecc14
+               READ(inum2,*) tyrc14(jn), bomb(jn,1), bomb(jn,2), bomb(jn,3)
+            END DO
+            CLOSE(inum2)
+
+       ! Linear  interpolation of the C-14 source fonction
+       ! in linear latitude bands  (20N,40N) and (20S,40S)
+       !------------------------------------------------------
+            ALLOCATE( fareaz  (jpi,jpj ,nc14zon) , STAT=ierr3 )
+            IF( ierr3 /= 0 )   CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate fareaz' )
+      !
+            DO jj = 1 , jpj                       ! from C14b package
+              DO ji = 1 , jpi
+                 IF( gphit(ji,jj) >= yn40 ) THEN
+                    fareaz(ji,jj,1) = 0.
+                    fareaz(ji,jj,2) = 0.
+                    fareaz(ji,jj,3) = 1.
+                 ELSE IF( gphit(ji,jj ) <= ys40) THEN
+                    fareaz(ji,jj,1) = 1.
+                    fareaz(ji,jj,2) = 0.
+                    fareaz(ji,jj,3) = 0.
+                 ELSE IF( gphit(ji,jj) >= yn20 ) THEN
+                    fareaz(ji,jj,1) = 0.
+                    fareaz(ji,jj,2) = 2. * ( 1. - gphit(ji,jj) / yn40 )
+                    fareaz(ji,jj,3) = 2. * gphit(ji,jj) / yn40 - 1.
+                 ELSE IF( gphit(ji,jj) <= ys20 ) THEN
+                    fareaz(ji,jj,1) = 2. * gphit(ji,jj) / ys40 - 1.
+                    fareaz(ji,jj,2) = 2. * ( 1. - gphit(ji,jj) / ys40 )
+                    fareaz(ji,jj,3) = 0.
+                 ELSE
+                    fareaz(ji,jj,1) = 0.
+                    fareaz(ji,jj,2) = 1.
+                    fareaz(ji,jj,3) = 0.
+                 ENDIF
+              END DO
+           END DO
+      !
+         ENDIF
+      !
+      ! Paleo C14: 1 zone for atm C14 !
+         IF(kc14typ == 2) THEN  ! Transient atmospheric forcing: Paleo C14
+      ! 
+            READ(inum2,*) nrecc14,incom
+            DO jn = 1, incom        ! Skip over descriptor lines
+               READ(inum2,'(1x)')
+            END DO
+            ALLOCATE( atmc14(nrecc14), tyrc14(nrecc14)       , STAT=ierr2 )
+            IF( ierr2 /= 0 )   CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate c14 arrays' )
+      ! get past c14 data
+            DO jn = 1, nrecc14
+               READ(inum2,*) iyear,incom,incom,atmc14(jn)
+               tyrc14(jn)=1950._wp-float(iyear)                ! BP to AD dates
+            END DO
+            CLOSE(inum2)
+      !
+         ENDIF
+      !
+      ! Note on dates: 
+      !   In files dates have dimension yr; either AD or BP; if BP date is changed into AD here
+      !   When dealing with dates previous to 0. AD one needs to set tyrc14_beg to the actual starting year
+      !   Do not forget to appropriately set nn_date0 and nn_rstctl in namelist
+      !                           AND        nn_rsttr in namelist_top  if offline run
+      !   All details are given in NEMO-C14.pdf report
+      !  
+         tyrc14_now=nyear                                ! actual initial yr - Bomb 
+         if(kc14typ == 2) tyrc14_now=nyear+tyrc14_beg-1  ! actual initial yr - Paleo
+      !                                     ! we suppose we start on tyrc14_now/01/01 @ 0h
+         m1_c14= 1
+         m1_co2= 1
+         DO jn = 1,nrecco2
+            IF ( tyrc14_now >= tyrco2(jn) ) m1_co2 = jn  ! index of first co2 record to consider
+         END DO
+         DO jn = 1,nrecc14
+            IF ( tyrc14_now >= tyrc14(jn) ) m1_c14 = jn  ! index of first c14 record to consider
+         END DO
+         IF (lwp) WRITE(numout,*) 'Initial yr for experiment', tyrc14_now
+         IF (lwp) WRITE(numout,*) '   CO2 & C14 start years:', tyrco2(m1_co2),tyrc14(m1_c14)
+      !
+         m2_c14= m1_c14
+         m2_co2= m1_co2
+      !
+      ENDIF
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('trc_atm_c14_ini')
+      !
+   END SUBROUTINE trc_atm_c14_ini
+
+
+   SUBROUTINE trc_atm_c14( kt, co2sbc, c14sbc )
+      !!----------------------------------------------------------------------
+      !!                   ***  ROUTINE trc_flx  ***
+      !!                    
+      !! ** Purpose :   provides sbc for co2 & c14 at kt
+      !! 
+      !! ** Method  :  read files
+      !!
+      !! ** Action  :   atmospheric values interpolated at time-step kt
+      !!----------------------------------------------------------------------
+      INTEGER                 , INTENT(in   )   ::   kt       ! ocean time-step
+      REAL(wp), DIMENSION(:,:), INTENT(  out)   ::   c14sbc   ! atm c14 ratio
+      REAL(wp),                 INTENT(  out)   ::   co2sbc   ! atm co2 p
+      INTEGER                                   ::   jz       ! dummy loop indice
+      REAL(wp)                              ::   zdint,zint   ! work
+      REAL(wp), DIMENSION(nc14zon)              ::   zonbc14  ! work
+      !
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('trc_atm_c14')
+      !
+      IF( kc14typ == 0) THEN
+         co2sbc=pco2at
+         c14sbc(:,:)=rc14at
+      ENDIF
+      !
+      IF(kc14typ >= 1) THEN  ! Transient C14 & CO2
+      !
+         tyrc14_now = tyrc14_now + ( rdt / ( rday * nyear_len(1)) )    !  current time step in yr relative to tyrc14_beg
+      !
+      ! CO2 --------------------------------------------------------
+      !
+      ! time interpolation of CO2 concentrations     ! if out of record keeps first/last value
+         IF( tyrc14_now > tyrco2(m2_co2) ) THEN     ! next interval
+           m1_co2 = m2_co2
+           m2_co2 = MIN ( m2_co2 + 1 , nrecco2 )
+         ENDIF
+      !
+         zdint  = tyrco2(m2_co2) - tyrco2(m1_co2)
+         co2sbc = spco2(m2_co2)                        ! if out of record keeps first/last value
+         zint = 0._wp
+         IF ( zdint > 0._wp ) THEN                     ! if within record interpolate:
+            zint = ( tyrco2(m2_co2) - tyrc14_now ) / zdint
+            co2sbc = spco2(m2_co2) + zint * ( spco2(m1_co2) - spco2(m2_co2) )
+         ENDIF
+      !
+         IF( lwp .AND.  kt == nitend )  THEN
+            WRITE(numout, '(3(A,F12.4))') 't1/tn/t2:',tyrco2(m1_co2),'/', tyrc14_now,'/',tyrco2(m2_co2)
+            WRITE(numout, *) 'CO2:',spco2(m1_co2),co2sbc ,spco2(m2_co2)
+         ENDIF
+      !
+      ! C14 --------------------------------------------------------
+      !
+      ! time interpolation of C14 concentrations 
+         IF ( tyrc14_now > tyrc14(m2_c14) ) THEN     ! next interval
+           m1_c14 = m2_c14
+           m2_c14 = MIN ( m2_c14 + 1 , nrecc14 )
+         ENDIF
+         zdint = tyrc14(m2_c14) - tyrc14(m1_c14)
+         zint=0._wp
+         IF ( zdint > 0._wp ) zint = ( tyrc14(m2_c14) - tyrc14_now ) / zdint ! if  within record
+         IF( lwp .AND.  kt == nitend )  &
+            &     WRITE(numout,'(3(A,F12.4))') 't1/tn/t2:',tyrc14(m1_c14),'/', tyrc14_now,'/',tyrc14(m2_c14)
+      !
+      ! ------- Bomb C14  ------------------------------------------
+      !
+         IF( kc14typ == 1) THEN
+      !                                          ! time interpolation
+          zonbc14(:) = bomb(m2_c14,:)                ! if out of record keeps first/last value
+      !                                          !    if within record interpolate:
+          IF ( zdint > 0._wp ) zonbc14(:) = bomb(m2_c14,:) + zint * ( bomb(m1_c14,:)  - bomb(m2_c14,:)  )
+      ! 
+            IF(lwp .AND.  kt == nitend )  &
+                 &      WRITE(numout, *)  'C14:',bomb(m1_c14,1),zonbc14(1),bomb(m2_c14,1)
+      !   Transform DeltaC14 --> C14 ratio
+            zonbc14(:) = 1._wp + zonbc14(:)/1.d03
+      !
+      !  For each (i,j)-box, with information from the fractional area
+      !  (zonmean), computes area-weighted mean to give the atmospheric C-14
+      !  ----------------------------------------------------------------
+            c14sbc(:,:) = zonbc14(1) * fareaz(:,:,1)   &
+               &          + zonbc14(2) * fareaz(:,:,2)   &
+               &          + zonbc14(3) * fareaz(:,:,3)
+         ENDIF
+      !
+      ! ------- Paleo C14  -----------------------------------------
+      !
+         IF( kc14typ == 2 ) THEN
+      !                                          ! time interpolation
+            zonbc14(1) = atmc14(m2_c14)          ! if out of record keeps first/last value
+         !                                       !    if within record interpolate:
+            IF ( zdint > 0._wp ) zonbc14(1) = atmc14(m2_c14) + zint * ( atmc14(m1_c14) - atmc14(m2_c14) )
+            IF(lwp .AND.  kt == nitend )  &
+                 &      WRITE(numout, *)  'C14: ',atmc14(m1_c14),zonbc14(1),atmc14(m2_c14)
+      !   Transform DeltaC14 --> C14 ratio
+            c14sbc(:,:) = 1._wp + zonbc14(1)/1.d03
+         ENDIF
+      !
+      ENDIF
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('trc_atm_c14')
+      !
+   END SUBROUTINE trc_atm_c14
+
+   !!======================================================================
+END MODULE trcatm_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcice_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcice_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcice_c14.F90	(revision 7041)
@@ -0,0 +1,31 @@
+MODULE trcice_c14
+   !!======================================================================
+   !!                         ***  MODULE trcice_c14  ***
+   !!======================================================================
+   USE par_trc         ! TOP parameters
+   USE oce_trc         ! Ocean variables
+   USE trc             ! TOP variables
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_ice_ini_c14       ! called by trcice.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id: trcice_c14b.F90 4990 2014-12-15 16:42:49Z timgraham $
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_ice_ini_c14
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_ice_c14b  ***
+      !!
+      !!----------------------------------------------------------------------
+      !
+      !
+   END SUBROUTINE trc_ice_ini_c14
+
+   !!======================================================================
+END MODULE trcice_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcini_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcini_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcini_c14.F90	(revision 7041)
@@ -0,0 +1,109 @@
+MODULE trcini_c14
+   !!======================================================================
+   !!                         ***  MODULE trcini_c14  ***
+   !! TOP :   initialisation of the C14 tracers
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
+   !! History :   3.0  !  2015 (A. Mouchet) C14 Code
+   !!----------------------------------------------------------------------
+   !! trc_ini_c14   : C14 model initialisation
+   !!----------------------------------------------------------------------
+   USE par_trc         ! TOP parameters
+   USE oce_trc
+   USE trc
+   USE sms_c14
+   USE trcatm_c14
+   USE trcnam_c14
+   USE iom
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_ini_c14   ! called by trcini.F90 module
+   
+   !
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id:               $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_ini_c14
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_ini_c14  ***  
+      !!
+      !! ** Purpose :   initialization for C14 model
+      !!
+      !! ** Method  : 
+      !!----------------------------------------------------------------------
+      !
+      REAL(wp) :: ztrai
+      INTEGER  :: jn
+      CHARACTER(len = 20)  ::  cltra
+      !!----------------------------------------------------------------------
+      !
+      !                       ! Allocate c14 arrays
+      IF( sms_c14_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trc_ini_c14: unable to allocate C14 arrays' )
+
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) ' trc_ini_c14: initialisation of C14 model'
+      !
+      jp_c14  = 1
+      DO jn = 1, jptra
+        cltra = ctrcnm(jn) 
+        IF( cltra == 'C14' .OR. cltra == 'RC14' .OR. cltra == 'C14b' )   jp_c140 = jn     
+      ENDDO
+
+      IF( lwp ) THEN
+        WRITE(numout,*) ''
+        WRITE(numout,*) ' Index of c14 tracer in the passive tracer array   jp_c140 = ', jp_c140
+        WRITE(numout,*) 
+      ENDIF
+
+      !
+      IF( .NOT. ln_rsttr )  THEN
+         !
+         IF(lwp) WRITE(numout,*) '                      ==>    PRESCRIBED initial VALUES'
+         IF(lwp) WRITE(numout,*) '                      ==>    Ocean C14/C :', rc14init 
+         !
+         trn(:,:,:,jp_c140) = rc14init * tmask(:,:,:)
+         !
+         qtr_c14(:,:) = 0._wp           ! Init of air-sea BC
+         !
+      ELSE
+
+        IF(lwp) WRITE(numout,*)
+        IF(lwp) WRITE(numout,*) ' trc_rst_read_c14 : Read specific variables for c14 model '
+        IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+        ! 
+        CALL iom_get( numrtr, 'co2sbc', co2sbc ) 
+        CALL iom_get( numrtr, jpdom_autoglo, 'c14sbc', c14sbc ) 
+        CALL iom_get( numrtr, jpdom_autoglo, 'exch_co2', exch_co2 ) 
+        CALL iom_get( numrtr, jpdom_autoglo, 'exch_c14', exch_c14 ) 
+        CALL iom_get( numrtr, jpdom_autoglo, 'qtr_c14', qtr_c14 )
+        !
+      END IF
+      !
+      IF( ( nn_rsttr == 0 ) .OR. ( .NOT. ln_rsttr ) ) THEN
+      !
+      !                         !  qint set to zero <=== Initial of transient
+      !                         !                   <=== Restart=false
+         IF(lwp) WRITE(numout,*) '                    ==>    qint reset to ZERO '
+         qint_c14(:,:) = 0._wp
+      !
+      ELSE
+        !
+        CALL iom_get( numrtr, jpdom_autoglo, 'qint_c14', qint_c14 ) 
+        !
+      ENDIF
+      !
+      CALL trc_atm_c14_ini   ! Init atm values
+      !
+      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+      !
+   END SUBROUTINE trc_ini_c14
+
+   !!======================================================================
+END MODULE trcini_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcnam_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcnam_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcnam_c14.F90	(revision 7041)
@@ -0,0 +1,109 @@
+MODULE trcnam_c14
+   !!======================================================================
+   !!                         ***  MODULE trcnam_c14  ***
+   !! TOP :   initialisation of some run parameters for C14 chemical model
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trcnam.cfc.h90
+   !! History :        !  2015 (A.Mouchet) equilibrium + transient C14
+   !!----------------------------------------------------------------------
+   !! trc_nam_c14      : C14 model initialisation
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE trc             ! TOP variables
+   USE sms_c14
+
+   IMPLICIT NONE
+   PRIVATE
+   !!
+   PUBLIC   trc_nam_c14   ! called by trcnam.F90 module
+   !!
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id: trcnam_c14.F90                       $ 
+   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_nam_c14
+      !!-------------------------------------------------------------------
+      !!                  ***  ROUTINE trc_nam_c14  ***
+      !!                 
+      !! ** Purpose :   Definition some run parameter for C14 model
+      !!
+      !! ** Method  :   Read the namc14 namelist and check the parameter 
+      !!       values called at the first timestep (nittrc000)
+      !!
+      !! ** input   :   Namelist namelist_c14
+      !!----------------------------------------------------------------------
+      INTEGER :: ios                 ! Local integer output status for namelist read
+      !! 
+      NAMELIST/namc14_typ/ kc14typ,rc14at, pco2at, rc14init   ! type of C14 tracer, default values of C14/C, pco2, & ocean r14
+      NAMELIST/namc14_sbc/ ln_chemh, xkwind, xdicsur          ! chem enh, wind coeff, ref DIC 
+      NAMELIST/namc14_fcg/ cfileco2, cfilec14, tyrc14_beg  ! for transient exps; atm forcing
+      !!-------------------------------------------------------------------
+
+      REWIND( numtrc_ref )              ! Namelist namc14_typ in reference namelist :
+      READ  ( numtrc_ref, namc14_typ, IOSTAT = ios, ERR = 901)
+901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_typ in reference namelist', lwp )
+
+      REWIND( numtrc_cfg )              ! Namelist namcfcdate in configuration namelist 
+      READ  ( numtrc_cfg, namc14_typ, IOSTAT = ios, ERR = 902)
+902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_typ in configuration namelist', lwp )
+      IF(lwm) WRITE ( numonr, namc14_typ )
+
+      IF(lwp) THEN                  ! control print
+         WRITE(numout,*) ' Namelist namc14_typ'
+         WRITE(numout,*)
+         WRITE(numout,*) ' Type of C14 tracer (0=equilibrium; 1=bomb transient; 2=past transient) kc14typ = ', kc14typ
+         WRITE(numout,*) ' Default value for atmospheric C14/C (used for equil run)               rc14at  = ', rc14at
+         WRITE(numout,*) ' Default value for atmospheric pcO2 [atm] (used for equil run)          pco2at  = ', pco2at
+         WRITE(numout,*) ' Default value for initial C14/C in the ocean (used for equil run)      rc14init= ', rc14init
+         WRITE(numout,*) '  '
+      ENDIF
+
+      REWIND( numtrc_ref )              ! Namelist namc14_typ in reference namelist :
+      READ  ( numtrc_ref, namc14_sbc, IOSTAT = ios, ERR = 903)
+903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_sbc in reference namelist', lwp )
+
+      REWIND( numtrc_cfg )              ! Namelist namcfcdate in configuration namelist 
+      READ  ( numtrc_cfg, namc14_sbc, IOSTAT = ios, ERR = 904)
+904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_sbc in configuration namelist', lwp )
+      IF(lwm) WRITE ( numonr, namc14_sbc )
+
+      IF(lwp) THEN                  ! control print
+         WRITE(numout,*) ' Namelist namc14_sbc'
+         WRITE(numout,*)
+         WRITE(numout,*) ' Chemical enhancement in piston velocity   ln_chemh = ', ln_chemh
+         WRITE(numout,*) ' Coefficient for gas exchange velocity     xkwind   = ', xkwind
+         WRITE(numout,*) ' Reference DIC concentration (mol/m3)      xdicsur  = ', xdicsur
+         WRITE(numout,*) '  '
+      ENDIF
+
+      REWIND( numtrc_ref )              ! Namelist namc14_typ in reference namelist :
+      READ  ( numtrc_ref, namc14_fcg, IOSTAT = ios, ERR = 905)
+905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_fcg in reference namelist', lwp )
+
+      REWIND( numtrc_cfg )              ! Namelist namcfcdate in configuration namelist 
+      READ  ( numtrc_cfg, namc14_fcg, IOSTAT = ios, ERR = 906)
+906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_fcg in configuration namelist', lwp )
+      IF(lwm) WRITE ( numonr, namc14_fcg )
+
+      IF(lwp) THEN                  ! control print
+         WRITE(numout,*) ' Namelist namc14_fcg'
+         WRITE(numout,*)
+         WRITE(numout,*) ' Atmospheric co2 file ( bomb )  cfileco2   = ', TRIM( cfileco2 )
+         WRITE(numout,*) ' Atmospheric c14 file ( bomb )  cfilec14   = ', TRIM( cfilec14 )
+         WRITE(numout,*) ' Starting year of experiment    tyrc14_beg = ', tyrc14_beg
+         WRITE(numout,*) '  '
+      ENDIF
+
+      !
+      IF( kc14typ == 2)    tyrc14_beg = 1950._wp - tyrc14_beg  ! BP to AD dates
+      ! set units 
+      rlam14 = LOG(2._wp) / 5730._wp / rsiyea    ! C14 decay  rate: yr^-1 --> s^-1
+      !                                          ! radiocarbon half-life is 5730 yr
+   END SUBROUTINE trc_nam_c14
+   
+   !!======================================================================
+END MODULE trcnam_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcsms_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcsms_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcsms_c14.F90	(revision 7041)
@@ -0,0 +1,169 @@
+MODULE trcsms_c14
+   !!======================================================================
+   !!                      ***  MODULE trcsms_c14  ***
+   !! TOP : Bomb C14 main module
+   !!======================================================================
+   !! History     -   ! 1994-05 ( J. Orr ) original code
+   !!            1.0  ! 2006-02 ( J.M. Molines )  Free form + modularity
+   !!            2.0  ! 2008-12 ( C. Ethe ) reorganisation
+   !!            4.0  ! 2011-02 ( A.R. Porter, STFC Daresbury ) Dynamic memory
+   !!                 ! 2015    (A. Mouchet) general C14 + update formulas
+   !!----------------------------------------------------------------------
+   !!   trc_sms_c14 :  compute and add C14 suface forcing to C14 trends
+   !!----------------------------------------------------------------------
+   USE oce_trc       ! Ocean variables
+   USE par_trc       ! TOP parameters
+   USE trc           ! TOP variables
+   USE trd_oce    ! trends
+   USE trdtrc    ! trends
+   USE sms_c14    ! atmospheric forcing
+   USE trcatm_c14    ! atmospheric forcing
+   USE iom
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_sms_c14       ! called in trcsms.F90
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $                                                                    $ 
+   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+CONTAINS
+
+   SUBROUTINE trc_sms_c14( kt )
+      !!----------------------------------------------------------------------
+      !!                  ***  ROUTINE trc_sms_c14  ***
+      !!
+      !! ** Purpose :   Compute the surface boundary contition on C14
+      !!      passive tracer associated with air-sea fluxes and add it to 
+      !!      the general trend of tracers equations.
+      !
+      !    Method: 
+      !          - transport the ratio C14/C as in Toggweiler et al. (JGR,1989)
+      !          - if on-line a passive tracer (jpcref; NO sms) allows compensating for
+      !            freshwater fluxes which should not impact the C14/C ratio
+      !
+      !        =>   Delta-C14= ( trn(...jp_c140) -1)*1000.
+      !!
+      !!----------------------------------------------------------------------
+      !
+      INTEGER, INTENT(in) ::   kt    ! ocean time-step index
+      !
+      INTEGER  :: ji, jj, jk         ! dummy loop indices 
+      REAL(wp) :: zt, ztp, zsk      ! dummy variables
+      REAL(wp) :: zsol              ! solubility
+      REAL(wp) :: zsch              ! schmidt number
+      REAL(wp) :: zv2               ! wind speed ( square)
+      REAL(wp) :: zpv               ! piston velocity
+      !!----------------------------------------------------------------------
+      !
+      IF( nn_timing == 1 )  CALL timing_start('trc_sms_c14')
+      !
+      IF( kt ==  nittrc000 ) THEN
+         IF(lwp) WRITE(numout,*)
+         IF(lwp) WRITE(numout,*) ' trc_sms_c14:  C14 model'
+         IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+      ENDIF
+      !
+ 
+      ! Get co2sbc & c14sbc(ji,jj): at 1st iter for all, at each time step for transient
+      IF( kc14typ >= 1 .OR.  kt ==  nittrc000 )   CALL trc_atm_c14( kt, co2sbc, c14sbc ) 
+
+      ! -------------------------------------------------------------------
+      !  Gas exchange coefficient (Wanninkhof, 1992, JGR, 97,7373-7382)
+      !  Schmidt number of CO2 in seawater (Wanninkhof, 1992 & 2014)
+      !  CO2 solubility (Weiss, 1974; Wanninkhof, 2014) 
+      ! -------------------------------------------------------------------
+
+      DO jj = 1, jpj
+         DO ji = 1, jpi  
+            IF( tmask(ji,jj,1) >  0.) THEN
+
+               zt   = MIN( 40., tsn(ji,jj,1,jp_tem))
+
+               !  Computation of solubility zsol in [mol/(L * atm)]
+               !   after Wanninkhof (2014) referencing Weiss (1974)
+               ztp  = ( zt + 273.16 ) * 0.01
+               zsk  = 0.027766 + ztp * ( -0.025888 + 0.0050578 * ztp )   ! [mol/(L * atm)]
+               zsol = EXP( -58.0931 + 90.5069 / ztp  + 22.2940 * LOG( ztp ) + zsk * tsn(ji,jj,1,jp_sal) )
+               ! convert solubilities [mol/(L * atm)] -> [mol/(m^3 * ppm)]
+               zsol = zsol * 1.e-03
+
+               ! Computes the Schmidt number of CO2 in seawater
+               !               Wanninkhof-2014
+               zsch = 2116.8 + zt * ( -136.25 + zt * (4.7353 + zt * (-0.092307 + 0.0007555 * zt ) ) )
+
+               ! Wanninkhof Piston velocity: zpv in units [m/s]
+               zv2 = xkwind * (wndm(ji,jj) * wndm(ji,jj))              ! wind speed module at T points
+               ! chemical enhancement (Wanninkhof & Knox, 1996)
+               IF( ln_chemh ) zv2 = zv2 + 2.5 * ( 0.5246 + zt * (0.016256 + 0.00049946  * zt ) )
+               zv2 = zv2/360000._wp                                    ! conversion cm/h -> m/s
+               !
+               zpv  = ( zv2 * SQRT( 660./ zsch ) ) * ( 1. - fr_i(ji,jj) ) * tmask(ji,jj,1)
+
+               ! CO2 piston velocity (m/s)
+               exch_co2(ji,jj)= zpv
+               ! CO2 invasion rate (mol/ppm/m2/s) = 1st part of 14C/C exchange velocity
+               exch_c14(ji,jj)= zpv * zsol
+            ELSE
+               exch_co2(ji,jj) = 0._wp
+               exch_c14(ji,jj) = 0._wp
+            ENDIF
+         END DO
+      END DO
+
+      ! Exchange velocity for 14C/C ratio (m/s)
+      zt = co2sbc / xdicsur
+      exch_c14(:,:) = zt * exch_c14(:,:)
+      !
+      ! Flux of C-14 from air-to-sea; units: (C14/C ratio) x m/s
+      !                               already masked
+      qtr_c14(:,:) = exch_c14(:,:) * ( c14sbc(:,:) - trb(:,:,1,jp_c140) )
+            
+      ! cumulation of air-to-sea flux at each time step
+      qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * rdttrc
+      !
+      ! Add the surface flux to the trend of jp_c140
+      DO jj = 1, jpj
+         DO ji = 1, jpi
+            tra(ji,jj,1,jp_c140) = tra(ji,jj,1,jp_c140) + qtr_c14(ji,jj) / e3t_n(ji,jj,1) 
+         END DO
+      END DO
+      !
+      ! Computation of decay effects on jp_c140
+      DO jk = 1, jpk
+         DO jj = 1, jpj
+            DO ji = 1, jpi
+               !
+               tra(ji,jj,jk,jp_c140) = tra(ji,jj,jk,jp_c140) - rlam14 * trb(ji,jj,jk,jp_c140) * tmask(ji,jj,jk) 
+               !
+            END DO
+         END DO
+      END DO
+
+      !
+      IF( lrst_trc ) THEN
+         IF(lwp) WRITE(numout,*)
+         IF(lwp) WRITE(numout,*) ' trc_rst_wri_c14 : Write specific variables from c14 model '
+         IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+      !
+         CALL iom_rstput( kt, nitrst, numrtw, 'co2sbc', co2sbc )       ! These five need      &
+         CALL iom_rstput( kt, nitrst, numrtw, 'c14sbc', c14sbc )     ! &    to be written   &
+         CALL iom_rstput( kt, nitrst, numrtw, 'exch_co2', exch_co2 ) ! &    for temporal    &
+         CALL iom_rstput( kt, nitrst, numrtw, 'exch_c14', exch_c14 ) ! &    averages        &
+         CALL iom_rstput( kt, nitrst, numrtw, 'qtr_c14', qtr_c14 )   ! &    to be coherent.
+         CALL iom_rstput( kt, nitrst, numrtw, 'qint_c14', qint_c14 ) ! Cumulative
+      !
+      ENDIF
+
+      IF( l_trdtrc )  CALL trd_trc( tra(:,:,:,jp_c140), jp_c14, jptra_sms, kt )   ! save trends
+      !
+      IF( nn_timing == 1 )  CALL timing_stop('trc_sms_c14')
+      !
+   END SUBROUTINE trc_sms_c14
+
+
+  !!======================================================================
+END MODULE trcsms_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcwri_c14.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcwri_c14.F90	(revision 7041)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcwri_c14.F90	(revision 7041)
@@ -0,0 +1,138 @@
+MODULE trcwri_c14
+   !!======================================================================
+   !!                       *** MODULE trcwri ***
+   !!    MY_SRC :   Additional outputs for C14 tracers
+   !!======================================================================
+   !! History :   1.0  !  2009-05 (C. Ethe)  Original code
+   !! History :   2.0  !  2015 (A. Mouchet)  adapted code for C14
+   !!----------------------------------------------------------------------
+#if defined key_top && defined key_iomput
+   !!----------------------------------------------------------------------
+   !! trc_wri_c14   :  outputs of ventilation fields
+   !!----------------------------------------------------------------------
+   USE oce_trc       ! Ocean variables
+   USE trc         ! passive tracers common variables 
+   USE iom         ! I/O manager 
+   USE sms_c14
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC trc_wri_c14
+   !
+   !   Standard ratio: 1.176E-12 ; Avogadro's nbr = 6.022E+23 at/mol ; bomb C14 traditionally reported as 1.E+26 atoms
+   REAL(wp), PARAMETER  :: atomc14 = 1.176 * 6.022E-15   ! conversion factor 
+
+
+CONTAINS
+
+   SUBROUTINE trc_wri_c14
+      !!---------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_wri_c14  ***
+      !!
+      !! ** Purpose :   output additional C14 tracers fields 
+      !!---------------------------------------------------------------------
+      CHARACTER (len=20)   :: cltra         ! short title for tracer
+      INTEGER              :: ji,jj,jk,jn   ! dummy loop indexes
+      REAL(wp)             :: zage,zarea,ztemp   ! temporary
+      REAL(wp), POINTER, DIMENSION(:,:)   :: zres, z2d ! temporary storage 2D
+      REAL(wp), POINTER, DIMENSION(:,:,:) :: z3d , zz3d ! temporary storage 3D
+      !!---------------------------------------------------------------------
+ 
+      ! write the tracer concentrations in the file
+      ! ---------------------------------------
+      cltra = TRIM( ctrcnm(jp_c140) )                  ! short title for tracer
+      CALL iom_put( cltra, trn(:,:,:,jp_c140) )
+
+      ! compute and write the tracer diagnostic in the file
+      ! ---------------------------------------
+      
+      IF( iom_use("DeltaC14") .OR. iom_use("C14Age") .OR. iom_use("RAge")   ) THEN
+         !
+         CALL wrk_alloc( jpi, jpj     , z2d, zres )
+         CALL wrk_alloc( jpi, jpj, jpk, z3d, zz3d )
+         !
+         zage = -1._wp / rlam14 / rsiyea  ! factor for radioages in year
+         z3d(:,:,:)  = 1._wp
+         zz3d(:,:,:) = 0._wp
+         !
+         DO jk = 1, jpkm1
+            DO jj = 1, jpj
+               DO ji = 1, jpi
+                  IF( tmask(ji,jj,jk) > 0._wp) THEN
+                     z3d (ji,jj,jk) = trn(ji,jj,jk,jp_c140)
+                     zz3d(ji,jj,jk) = LOG( z3d(ji,jj,jk) )
+                  ENDIF
+               ENDDO
+            ENDDO
+         ENDDO
+         zres(:,:) = z3d(:,:,1)
+
+         ! Reservoir age [yr]
+         z2d(:,:) =0._wp
+         jk = 1
+         DO jj = 1, jpj
+            DO ji = 1, jpi
+               ztemp = zres(ji,jj) / c14sbc(ji,jj)
+               IF( ztemp > 0._wp .AND. tmask(ji,jj,jk) > 0._wp ) z2d(ji,jj) = LOG( ztemp )
+            ENDDO
+         ENDDO
+         !
+         z3d(:,:,:) = 1.d03 * ( z3d(:,:,:) - 1._wp )
+         CALL iom_put( "DeltaC14" , z3d(:,:,:)  )  ! Delta C14 [permil]
+         CALL iom_put( "C14Age"   , zage * zz3d(:,:,:) )            !  Radiocarbon age [yr]
+
+         CALL iom_put( "qtr_c14", rsiyea * qtr_c14(:,:)  )            !  Radiocarbon surf flux [./m2/yr]
+         CALL iom_put( "qint_c14" , qint_c14  )                       ! cumulative flux [./m2]
+         CALL iom_put( "RAge" , zage * z2d(:,:) )                     ! Reservoir age [yr]
+         !
+         CALL wrk_dealloc( jpi, jpj     , z2d, zres )
+         CALL wrk_dealloc( jpi, jpj, jpk, z3d, zz3d )
+         !
+      ENDIF
+      !
+      !  0-D fields
+      !
+      CALL iom_put( "AtmCO2", co2sbc )  !     global atmospheric CO2 [ppm]
+    
+      IF( iom_use("AtmC14") ) THEN
+         zarea = glob_sum( e1e2t(:,:) )           ! global ocean surface
+         ztemp = glob_sum( c14sbc(:,:) * e1e2t(:,:) )
+         ztemp = ( ztemp / zarea - 1._wp ) * 1000._wp
+         CALL iom_put( "AtmC14" , ztemp )   ! Global atmospheric DeltaC14 [permil]
+      ENDIF
+      IF( iom_use("K_C14") ) THEN
+         ztemp = glob_sum ( exch_c14(:,:) * e1e2t(:,:) )
+         ztemp = rsiyea * ztemp / zarea
+         CALL iom_put( "K_C14" , ztemp )   ! global mean exchange velocity for C14/C ratio [m/yr]
+      ENDIF
+      IF( iom_use("K_CO2") ) THEN
+         zarea = glob_sum( e1e2t(:,:) )           ! global ocean surface
+         ztemp = glob_sum ( exch_co2(:,:) * e1e2t(:,:) )
+         ztemp = 360000._wp * ztemp / zarea       ! cm/h units: directly comparable with literature
+         CALL iom_put( "K_CO2", ztemp )  !  global mean CO2 piston velocity [cm/hr]
+      ENDIF
+      IF( iom_use("C14Inv") ) THEN
+         ztemp = glob_sum( trn(:,:,:,jp_c140) * cvol(:,:,:) )
+         ztemp = atomc14 * xdicsur * ztemp
+         CALL iom_put( "C14Inv", ztemp )  !  Radiocarbon ocean inventory [10^26 atoms]
+      END IF
+      !
+   END SUBROUTINE trc_wri_c14
+
+#else
+   !!----------------------------------------------------------------------
+   !!  Dummy module :                                     No C14 tracer
+   !!----------------------------------------------------------------------
+   PUBLIC trc_wri_c14
+CONTAINS
+   SUBROUTINE trc_wri_c14                     ! Empty routine  
+   END SUBROUTINE trc_wri_c14
+#endif
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
+   !! $Id: trcwri_c14 
+   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
+   !!======================================================================
+END MODULE trcwri_c14
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90	(revision 7041)
@@ -10,49 +10,12 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   USE par_pisces , ONLY : jp_pisces       !: number of tracers in PISCES
-   USE par_pisces , ONLY : jp_pisces_2d    !: number of 2D diag in PISCES
-   USE par_pisces , ONLY : jp_pisces_3d    !: number of 3D diag in PISCES
-   USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES
 
    IMPLICIT NONE
 
-   INTEGER, PARAMETER ::   jp_lc      =  jp_pisces     !: cumulative number of passive tracers
-   INTEGER, PARAMETER ::   jp_lc_2d   =  jp_pisces_2d  !:
-   INTEGER, PARAMETER ::   jp_lc_3d   =  jp_pisces_3d  !:
-   INTEGER, PARAMETER ::   jp_lc_trd  =  jp_pisces_trd !:
-   
-#if defined key_cfc
-   !!---------------------------------------------------------------------
-   !!   'key_cfc'   :                                          CFC tracers
-   !!---------------------------------------------------------------------
-   LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .TRUE.      !: CFC flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  1          !: number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd')
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_trc_diaadd')
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC
-   
-   ! assign an index in trc arrays for each CFC prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lc + 1   !: CFC-11 
-   INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lc + 2   !: CFC-12   
-#else
-   !!---------------------------------------------------------------------
-   !!   Default     :                                       No CFC tracers
-   !!---------------------------------------------------------------------
-   LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .FALSE.     !: CFC flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  0          !: No CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  0          !: No CFC additional 2d output arrays 
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: No CFC additional 3d output arrays 
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC
-#endif
+   INTEGER, PUBLIC  :: jp_cfc            !:  number of CFC passive tracers
+   INTEGER, PUBLIC  :: jpc11, jpc12      !:  index of CFC tracers
+   INTEGER, PUBLIC  :: jp_cfc0, jp_cfc1  !:  First/last index of CFC tracers
 
-   ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lc + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lc + jp_cfc  !: Last  index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lc_2d  + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lc_2d  + jp_cfc_2d  !: Last  index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lc_3d  + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lc_3d  + jp_cfc_3d  !: Last  index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lc_trd + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lc_trd + jp_cfc_trd  !: Last  index of CFC tracers
+   LOGICAL, PUBLIC  :: ln_cfc11, ln_cfc12, ll_cfc
 
    !!======================================================================
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcice_cfc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcice_cfc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcice_cfc.F90	(revision 7041)
@@ -5,8 +5,4 @@
    !!======================================================================
    !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
-   !!----------------------------------------------------------------------
-#if defined key_cfc
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                               CFC tracers
    !!----------------------------------------------------------------------
    !! trc_ice_cfc       : MY_TRC model main routine
@@ -40,14 +36,4 @@
    END SUBROUTINE trc_ice_ini_cfc
 
-
-#else
-   !!----------------------------------------------------------------------
-   !!   Dummy module                                        No MY_TRC model
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_ice_ini_cfc             ! Empty routine
-   END SUBROUTINE trc_ice_ini_cfc
-#endif
-
    !!======================================================================
 END MODULE trcice_cfc
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 7041)
@@ -6,7 +6,4 @@
    !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) 
    !!----------------------------------------------------------------------
-#if defined key_cfc
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                               CFC tracers
    !!----------------------------------------------------------------------
    !! trc_ini_cfc      : CFC model initialisation
@@ -46,4 +43,5 @@
       INTEGER  ::  iskip = 6   ! number of 1st descriptor lines
       REAL(wp) ::  zyy, zyd
+      CHARACTER(len = 20)  ::  cltra
       !!----------------------------------------------------------------------
 
@@ -52,4 +50,30 @@
       IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~'
 
+      
+      ! assign an index in trc arrays for each CFC prognostic variables
+      jp_cfc = 1 
+      IF( ln_cfc11 .AND. ln_cfc12 )  jp_cfc = 2
+
+      ! assign an index in trc arrays for each prognostic variables
+      DO jn = 1, jptra
+        cltra = ctrcnm(jn) 
+        IF( cltra == 'CFC11'  .OR. cltra == 'cfc11' )   jpc11 = jn 
+        IF( cltra == 'CFC12'  .OR. cltra == 'cfc12' )   jpc12 = jn 
+      ENDDO
+   
+      IF( jp_cfc == 1 ) THEN
+        IF( ln_cfc11 )  jp_cfc0  = jpc11
+        IF( ln_cfc12 )  jp_cfc0  = jpc12
+      ELSE
+        jp_cfc0 = MIN( jpc11, jpc12 ) 
+      ENDIF
+      jp_cfc1 = jp_cfc0 + jp_cfc - 1
+
+      IF( lwp ) THEN
+        WRITE(numout,*) ''
+        WRITE(numout,*) ' First index of CFC tracer in the passive tracer array   jp_cfc0 = ', jp_cfc0
+        WRITE(numout,*) ' Last  index of CFC tracer in the passive tracer array   jp_cfc1 = ', jp_cfc1
+        WRITE(numout,*) 
+      ENDIF
 
       IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm'
@@ -146,13 +170,4 @@
    END SUBROUTINE trc_ini_cfc
    
-#else
-   !!----------------------------------------------------------------------
-   !!   Dummy module                                         No CFC tracers
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_ini_cfc             ! Empty routine
-   END SUBROUTINE trc_ini_cfc
-#endif
-
    !!======================================================================
 END MODULE trcini_cfc
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90	(revision 7041)
@@ -6,15 +6,9 @@
    !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trcnam.cfc.h90
    !!----------------------------------------------------------------------
-#if defined key_cfc
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                               CFC tracers
-   !!----------------------------------------------------------------------
    !! trc_nam_cfc      : CFC model initialisation
    !!----------------------------------------------------------------------
    USE oce_trc         ! Ocean variables
-   USE par_trc         ! TOP parameters
    USE trc             ! TOP variables
    USE trcsms_cfc      ! CFC specific variable
-   USE iom             ! I/O manager
 
    IMPLICIT NONE
@@ -42,27 +36,18 @@
       !! ** input   :   Namelist namcfc
       !!----------------------------------------------------------------------
-      INTEGER ::  numnatc_ref = -1   ! Logical unit for reference CFC namelist
-      INTEGER ::  numnatc_cfg = -1   ! Logical unit for configuration CFC namelist
-      INTEGER ::  numonc      = -1   ! Logical unit for output namelist
       INTEGER :: ios                 ! Local integer output status for namelist read
       INTEGER :: jl, jn
-      TYPE(DIAG), DIMENSION(jp_cfc_2d) :: cfcdia2d
       !!
-      NAMELIST/namcfcdate/ ndate_beg, nyear_res
-      NAMELIST/namcfcdia/  cfcdia2d     ! additional diagnostics
+      NAMELIST/namcfc/ ndate_beg, nyear_res
       !!----------------------------------------------------------------------
-      !                             ! Open namelist files
-      CALL ctl_opn( numnatc_ref, 'namelist_cfc_ref'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
-      CALL ctl_opn( numnatc_cfg, 'namelist_cfc_cfg'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
-      IF(lwm) CALL ctl_opn( numonc, 'output.namelist.cfc', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
 
-      REWIND( numnatc_ref )              ! Namelist namcfcdate in reference namelist : CFC parameters
-      READ  ( numnatc_ref, namcfcdate, IOSTAT = ios, ERR = 901)
-901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdate in reference namelist', lwp )
+      REWIND( numtrc_ref )              ! Namelist namcfcdate in reference namelist : CFC parameters
+      READ  ( numtrc_ref, namcfc, IOSTAT = ios, ERR = 901)
+901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfc in reference namelist', lwp )
 
-      REWIND( numnatc_cfg )              ! Namelist namcfcdate in configuration namelist : CFC parameters
-      READ  ( numnatc_cfg, namcfcdate, IOSTAT = ios, ERR = 902 )
-902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdate in configuration namelist', lwp )
-      IF(lwm) WRITE ( numonc, namcfcdate )
+      REWIND( numtrc_cfg )              ! Namelist namcfcdate in configuration namelist : CFC parameters
+      READ  ( numtrc_cfg, namcfc, IOSTAT = ios, ERR = 902 )
+902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfc in configuration namelist', lwp )
+      IF(lwm) WRITE ( numonr, namcfc )
 
       IF(lwp) THEN                  ! control print
@@ -76,51 +61,8 @@
       IF(lwp) WRITE(numout,*) '    initial year (aa)                       nyear_beg = ', nyear_beg
       !
-
-      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
-         !
-         ! Namelist namcfcdia
-         ! -------------------
-         REWIND( numnatc_ref )              ! Namelist namcfcdia in reference namelist : CFC diagnostics
-         READ  ( numnatc_ref, namcfcdia, IOSTAT = ios, ERR = 903)
-903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdia in reference namelist', lwp )
-
-         REWIND( numnatc_cfg )              ! Namelist namcfcdia in configuration namelist : CFC diagnostics
-         READ  ( numnatc_cfg, namcfcdia, IOSTAT = ios, ERR = 904 )
-904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfcdia in configuration namelist', lwp )
-         IF(lwm) WRITE ( numonc, namcfcdia )
-
-         DO jl = 1, jp_cfc_2d
-            jn = jp_cfc0_2d + jl - 1
-            ctrc2d(jn) = TRIM( cfcdia2d(jl)%sname )
-            ctrc2l(jn) = TRIM( cfcdia2d(jl)%lname )
-            ctrc2u(jn) = TRIM( cfcdia2d(jl)%units )
-         END DO
-
-         IF(lwp) THEN                   ! control print
-            WRITE(numout,*)
-            WRITE(numout,*) ' Namelist : natadd'
-            DO jl = 1, jp_cfc_2d
-               jn = jp_cfc0_2d + jl - 1
-               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
-                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
-            END DO
-            WRITE(numout,*) ' '
-         ENDIF
-         !
-      ENDIF
-
-   IF(lwm) CALL FLUSH ( numonc )     ! flush output namelist CFC
+      IF(lwm) CALL FLUSH ( numonr )     ! flush output namelist CFC
 
    END SUBROUTINE trc_nam_cfc
    
-#else
-   !!----------------------------------------------------------------------
-   !!  Dummy module :                                                No CFC
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_nam_cfc                      ! Empty routine
-   END  SUBROUTINE  trc_nam_cfc
-#endif  
-
    !!======================================================================
 END MODULE trcnam_cfc
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90	(revision 7041)
@@ -7,8 +7,4 @@
    !!  NEMO      1.0  !  2004-03  (C. Ethe) free form + modularity
    !!            2.0  !  2007-12  (C. Ethe, G. Madec)  reorganisation
-   !!----------------------------------------------------------------------
-#if defined key_cfc
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                               CFC tracers
    !!----------------------------------------------------------------------
    !!   trc_sms_cfc  :  compute and add CFC suface forcing to CFC trends
@@ -159,7 +155,4 @@
                ! trn in pico-mol/l idem qtr; ak in en m/a
                qtr_cfc(ji,jj,jl) = -zak_cfc * ( trb(ji,jj,1,jn) - zca_cfc )   &
-#if defined key_degrad
-                  &                         * facvol(ji,jj,1)                           &
-#endif
                   &                         * tmask(ji,jj,1) * ( 1. - fr_i(ji,jj) )
                ! Add the surface flux to the trend
@@ -185,11 +178,8 @@
       !
       IF( lk_iomput ) THEN
-         CALL iom_put( "qtrCFC11"  , qtr_cfc (:,:,1) )
-         CALL iom_put( "qintCFC11" , qint_cfc(:,:,1) )
-      ELSE
-         IF( ln_diatrc ) THEN
-            trc2d(:,:,jp_cfc0_2d    ) = qtr_cfc (:,:,1)
-            trc2d(:,:,jp_cfc0_2d + 1) = qint_cfc(:,:,1)
-         END IF
+         DO jn = jp_cfc0, jp_cfc1
+            CALL iom_put( 'qtr_'//ctrcnm(jn) , qtr_cfc (:,:,jn) )
+            CALL iom_put( 'qint_'//ctrcnm(jn), qint_cfc(:,:,jn) )
+         ENDDO
       END IF
       !
@@ -277,14 +267,4 @@
    END FUNCTION trc_sms_cfc_alloc
 
-#else
-   !!----------------------------------------------------------------------
-   !!   Dummy module                                         No CFC tracers
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_sms_cfc( kt )       ! Empty routine
-      WRITE(*,*) 'trc_sms_cfc: You should not have seen this print! error?', kt
-   END SUBROUTINE trc_sms_cfc
-#endif
-
    !!======================================================================
 END MODULE trcsms_cfc
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcwri_cfc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcwri_cfc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcwri_cfc.F90	(revision 7041)
@@ -6,7 +6,5 @@
    !! History :   1.0  !  2009-05 (C. Ethe)  Original code
    !!----------------------------------------------------------------------
-#if defined key_top && defined key_cfc && defined key_iomput
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                           cfc model
+#if defined key_top && defined key_iomput
    !!----------------------------------------------------------------------
    !! trc_wri_cfc   :  outputs of concentration fields
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90	(revision 7041)
@@ -10,25 +10,6 @@
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   USE par_pisces , ONLY : jp_pisces       !: number of tracers in PISCES
-   USE par_pisces , ONLY : jp_pisces_2d    !: number of 2D diag in PISCES
-   USE par_pisces , ONLY : jp_pisces_3d    !: number of 3D diag in PISCES
-   USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES
-
-   USE par_cfc    , ONLY : jp_cfc          !: number of tracers in CFC
-   USE par_cfc    , ONLY : jp_cfc_2d       !: number of tracers in CFC
-   USE par_cfc    , ONLY : jp_cfc_3d       !: number of tracers in CFC
-   USE par_cfc    , ONLY : jp_cfc_trd      !: number of tracers in CFC
-
-   USE par_c14b   , ONLY : jp_c14b         !: number of tracers in C14
-   USE par_c14b   , ONLY : jp_c14b_2d      !: number of tracers in C14
-   USE par_c14b   , ONLY : jp_c14b_3d      !: number of tracers in C14
-   USE par_c14b   , ONLY : jp_c14b_trd     !: number of tracers in C14
 
    IMPLICIT NONE
-
-   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_cfc     + jp_c14b     !: 
-   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !:
-   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !:
-   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:
 
 #if defined key_my_trc
@@ -36,12 +17,6 @@
    !!   'key_my_trc'                     user defined tracers (MY_TRC)
    !!---------------------------------------------------------------------
-   LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc     = .TRUE.   !: PTS flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc     =  1       !: number of PTS tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_2d  =  0       !: additional 2d output arrays ('key_trc_diaadd')
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: additional 3d output arrays ('key_trc_diaadd')
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_trd =  0       !: number of sms trends for MY_TRC
-
-   ! assign an index in trc arrays for each PTS prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lm + 1     !: 1st MY_TRC tracer
+   LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc  = .TRUE.   !: PTS flag 
+   INTEGER, PUBLIC            ::   jp_my_trc      !: number of PTS tracers
 
 #else
@@ -49,21 +24,13 @@
    !!   Default                           No user defined tracers (MY_TRC)
    !!---------------------------------------------------------------------
-   LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc     = .FALSE.  !: MY_TRC flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc     =  0       !: No MY_TRC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_2d  =  0       !: No MY_TRC additional 2d output arrays 
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: No MY_TRC additional 3d output arrays 
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_trd =  0       !: number of sms trends for MY_TRC
+   LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc   = .FALSE.  !: MY_TRC flag 
+   INTEGER, PUBLIC            ::   jp_my_trc        !: No MY_TRC tracers
 #endif
 
    ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lm     + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lm     + jp_my_trc      !: Last  index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lm_2d  + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lm_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lm_3d  + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lm_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lm_trd + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lm_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers
+   INTEGER, PUBLIC ::   jp_myt0             !: First index of MY_TRC passive tracers
+   INTEGER, PUBLIC ::   jp_myt1             !: Last  index of MY_TRC passive tracers
 
+   INTEGER, PUBLIC ::   jpmyt0, jpmty1, jpmyt2         !: Last  index of MY_TRC passive tracers
    !!======================================================================
 END MODULE par_my_trc
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcini_my_trc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcini_my_trc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcini_my_trc.F90	(revision 7041)
@@ -37,4 +37,32 @@
       !! ** Method  : - Read the namcfc namelist and check the parameter values
       !!----------------------------------------------------------------------
+      INTEGER              ::  jn
+      CHARACTER(len = 20)  ::  cltra
+
+
+      jp_my_trc = 1
+      ! assign an index in trc arrays for each prognostic variables
+      DO jn = 1, jptra
+        cltra = ctrcnm(jn) 
+        IF( cltra == 'MYTRC'   .OR. cltra == 'mytrc'  )   jpmyt0 = jn 
+        IF( cltra == 'MYTRC1'  .OR. cltra == 'mytrc1' )   jpmyt1 = jn 
+        IF( cltra == 'MYTRC2'  .OR. cltra == 'mytrc2' )   jpmyt2 = jn 
+      ENDDO
+   
+      IF( jp_my_trc == 1 ) THEN
+        jp_myt0  = jpmyt0
+      ELSE
+        jp_myt0 = MIN( jpmyt0, jpmyt1, jpmyt2 ) 
+      ENDIF
+      jp_myt1 = jp_myt0 + jp_my_trc - 1
+
+
+      IF( lwp ) THEN
+        WRITE(numout,*) ''
+        WRITE(numout,*) ' First index of MYTRC model in the passive tracer array   jp_myt0 = ', jp_myt0
+        WRITE(numout,*) ' Last  index of MYTRC model in the passive tracer array   jp_myt1 = ', jp_myt1
+        WRITE(numout,*) 
+      ENDIF
+
 
       !                       ! Allocate MY_TRC arrays
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90	(revision 7041)
@@ -9,7 +9,7 @@
    !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90
    !!----------------------------------------------------------------------
-#if defined key_pisces_reduced
+#if defined key_pisces
    !!----------------------------------------------------------------------
-   !!   'key_pisces_reduced'                                     LOBSTER bio-model
+   !!   'key_pisces'                                     LOBSTER bio-model
    !!----------------------------------------------------------------------
    !!   p2z_bio        :  
@@ -86,6 +86,4 @@
       !!                                  source      sink
       !!        
-      !!              IF 'key_diabio' defined , the biogeochemical trends
-      !!              for passive tracers are saved for futher diagnostics.
       !!---------------------------------------------------------------------
       !!
@@ -109,5 +107,5 @@
       IF( nn_timing == 1 )  CALL timing_start('p2z_bio')
       !
-      IF( ln_diatrc .OR. lk_iomput ) THEN
+      IF( lk_iomput ) THEN
          CALL wrk_alloc( jpi, jpj,     17, zw2d )
          CALL wrk_alloc( jpi, jpj, jpk, 3, zw3d )
@@ -121,5 +119,5 @@
 
       xksi(:,:) = 0.e0        ! zooplakton closure ( fbod)
-      IF( ln_diatrc .OR. lk_iomput ) THEN
+      IF( lk_iomput ) THEN
          zw2d  (:,:,:) = 0.e0
          zw3d(:,:,:,:) = 0.e0
@@ -218,25 +216,5 @@
                tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
 
-
-               IF( ( ln_diabio .AND. .NOT. lk_iomput ) .OR. l_trdtrc ) THEN
-                  trbio(ji,jj,jk,jp_pcs0_trd     ) = zno3phy
-                  trbio(ji,jj,jk,jp_pcs0_trd +  1) = znh4phy
-                  trbio(ji,jj,jk,jp_pcs0_trd +  2) = zphynh4
-                  trbio(ji,jj,jk,jp_pcs0_trd +  3) = zphydom
-                  trbio(ji,jj,jk,jp_pcs0_trd +  4) = zphyzoo
-                  trbio(ji,jj,jk,jp_pcs0_trd +  5) = zphydet
-                  trbio(ji,jj,jk,jp_pcs0_trd +  6) = zdetzoo
-                  !  trend number 8 in p2zsed
-                  trbio(ji,jj,jk,jp_pcs0_trd +  8) = zzoodet
-                  trbio(ji,jj,jk,jp_pcs0_trd +  9) = zzoobod
-                  trbio(ji,jj,jk,jp_pcs0_trd + 10) = zzoonh4
-                  trbio(ji,jj,jk,jp_pcs0_trd + 11) = zzoodom
-                  trbio(ji,jj,jk,jp_pcs0_trd + 12) = znh4no3
-                  trbio(ji,jj,jk,jp_pcs0_trd + 13) = zdomnh4
-                  trbio(ji,jj,jk,jp_pcs0_trd + 14) = zdetnh4
-                  trbio(ji,jj,jk,jp_pcs0_trd + 15) = zdetdom
-                  !  trend number 17 in p2zexp
-                ENDIF
-                IF( ln_diatrc .OR. lk_iomput ) THEN
+                IF( lk_iomput ) THEN
                   ! convert fluxes in per day
                   ze3t = e3t_n(ji,jj,jk) * 86400._wp
@@ -340,24 +318,5 @@
                tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
                !
-               IF( ( ln_diabio .AND. .NOT. lk_iomput ) .OR. l_trdtrc ) THEN
-                  trbio(ji,jj,jk,jp_pcs0_trd     ) = zno3phy
-                  trbio(ji,jj,jk,jp_pcs0_trd +  1) = znh4phy
-                  trbio(ji,jj,jk,jp_pcs0_trd +  2) = zphynh4
-                  trbio(ji,jj,jk,jp_pcs0_trd +  3) = zphydom
-                  trbio(ji,jj,jk,jp_pcs0_trd +  4) = zphyzoo
-                  trbio(ji,jj,jk,jp_pcs0_trd +  5) = zphydet
-                  trbio(ji,jj,jk,jp_pcs0_trd +  6) = zdetzoo
-                  !  trend number 8 in p2zsed
-                  trbio(ji,jj,jk,jp_pcs0_trd +  8) = zzoodet
-                  trbio(ji,jj,jk,jp_pcs0_trd +  9) = zzoobod
-                  trbio(ji,jj,jk,jp_pcs0_trd + 10) = zzoonh4
-                  trbio(ji,jj,jk,jp_pcs0_trd + 11) = zzoodom
-                  trbio(ji,jj,jk,jp_pcs0_trd + 12) = znh4no3
-                  trbio(ji,jj,jk,jp_pcs0_trd + 13) = zdomnh4
-                  trbio(ji,jj,jk,jp_pcs0_trd + 14) = zdetnh4
-                  trbio(ji,jj,jk,jp_pcs0_trd + 15) = zdetdom
-                  !  trend number 17 in p2zexp 
-                ENDIF
-                IF( ln_diatrc .OR. lk_iomput ) THEN
+                IF( lk_iomput ) THEN
                   ! convert fluxes in per day
                   ze3t = e3t_n(ji,jj,jk) * 86400._wp
@@ -389,5 +348,5 @@
       END DO
 
-      IF( ln_diatrc .OR. lk_iomput ) THEN
+      IF( lk_iomput ) THEN
          DO jl = 1, 17 
             CALL lbc_lnk( zw2d(:,:,jl),'T', 1. )
@@ -420,43 +379,4 @@
         CALL iom_put( "FNH4NO3", zw3d(:,:,:,3) )
          !
-       ELSE
-          IF( ln_diatrc ) THEN
-            !
-            trc2d(:,:,jp_pcs0_2d    ) = zw2d(:,:,1) 
-            trc2d(:,:,jp_pcs0_2d + 1) = zw2d(:,:,2) 
-            trc2d(:,:,jp_pcs0_2d + 2) = zw2d(:,:,3) 
-            trc2d(:,:,jp_pcs0_2d + 3) = zw2d(:,:,4) 
-            trc2d(:,:,jp_pcs0_2d + 4) = zw2d(:,:,5) 
-            trc2d(:,:,jp_pcs0_2d + 5) = zw2d(:,:,6) 
-            trc2d(:,:,jp_pcs0_2d + 6) = zw2d(:,:,7) 
-                     ! trend number 8 is in p2zsed.F
-            trc2d(:,:,jp_pcs0_2d +  8) = zw2d(:,:,8) 
-            trc2d(:,:,jp_pcs0_2d +  9) = zw2d(:,:,9) 
-            trc2d(:,:,jp_pcs0_2d + 10) = zw2d(:,:,10) 
-            trc2d(:,:,jp_pcs0_2d + 11) = zw2d(:,:,11) 
-            trc2d(:,:,jp_pcs0_2d + 12) = zw2d(:,:,12) 
-            trc2d(:,:,jp_pcs0_2d + 13) = zw2d(:,:,13) 
-            trc2d(:,:,jp_pcs0_2d + 14) = zw2d(:,:,14) 
-            trc2d(:,:,jp_pcs0_2d + 15) = zw2d(:,:,15) 
-            trc2d(:,:,jp_pcs0_2d + 16) = zw2d(:,:,16) 
-            trc2d(:,:,jp_pcs0_2d + 17) = zw2d(:,:,17) 
-            ! trend number 19 is in p2zexp.F
-            trc3d(:,:,:,jp_pcs0_3d    ) = zw3d(:,:,:,1) 
-            trc3d(:,:,:,jp_pcs0_3d + 1) = zw3d(:,:,:,2) 
-            trc3d(:,:,:,jp_pcs0_3d + 2) = zw3d(:,:,:,3) 
-         ENDIF
-        !
-      ENDIF
-
-      IF( ln_diabio .AND. .NOT. lk_iomput )  THEN
-         DO jl = jp_pcs0_trd, jp_pcs1_trd
-            CALL lbc_lnk( trbio(:,:,1,jl),'T', 1. )
-         END DO 
-      ENDIF
-      !
-      IF( l_trdtrc ) THEN
-         DO jl = jp_pcs0_trd, jp_pcs1_trd
-            CALL trd_trc( trbio(:,:,:,jl), jl, kt )   ! handle the trend
-         END DO
       ENDIF
 
@@ -467,5 +387,5 @@
       ENDIF
       !
-      IF( ln_diatrc .OR. lk_iomput ) THEN
+      IF( lk_iomput ) THEN
          CALL wrk_dealloc( jpi, jpj,     17, zw2d )
          CALL wrk_dealloc( jpi, jpj, jpk, 3, zw3d )
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90	(revision 7041)
@@ -10,7 +10,7 @@
    !!             3.5  !  2012-03  (C. Ethe)  Merge PISCES-LOBSTER
    !!----------------------------------------------------------------------
-#if defined key_pisces_reduced
-   !!----------------------------------------------------------------------
-   !!   'key_pisces_reduced'                                     LOBSTER bio-model
+#if defined key_pisces
+   !!----------------------------------------------------------------------
+   !!   'key_pisces'                                     LOBSTER bio-model
    !!----------------------------------------------------------------------
    !!   p2z_exp        :  Compute loss of organic matter in the sediments
@@ -68,5 +68,4 @@
       INTEGER  ::   ji, jj, jk, jl, ikt
       REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrbio
       REAL(wp), POINTER, DIMENSION(:,:)   ::  zsedpoca
       CHARACTER (len=25) :: charout
@@ -80,8 +79,4 @@
       zsedpoca(:,:) = 0.
 
-      IF( l_trdtrc )  THEN
-         CALL wrk_alloc( jpi, jpj, jpk, ztrbio )   ! temporary save of trends
-         ztrbio(:,:,:) = tra(:,:,:,jpno3)
-      ENDIF
 
       ! VERTICAL DISTRIBUTION OF NEWLY PRODUCED BIOGENIC
@@ -126,9 +121,5 @@
  
       ! Oa & Ek: diagnostics depending on jpdia2d !          left as example
-      IF( lk_iomput ) THEN  
-         CALL iom_put( "SEDPOC" , sedpocn )
-      ELSE
-         IF( ln_diatrc )           trc2d(:,:,jp_pcs0_2d + 18) = sedpocn(:,:)
-      ENDIF
+      IF( lk_iomput )  CALL iom_put( "SEDPOC" , sedpocn )
 
       
@@ -160,11 +151,4 @@
       ENDIF
       !
-      IF( l_trdtrc ) THEN
-         ztrbio(:,:,:) = tra(:,:,:,jpno3) - ztrbio(:,:,:)
-         jl = jp_pcs0_trd + 16
-         CALL trd_trc( ztrbio, jl, kt )   ! handle the trend
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrbio )   ! temporary save of trends
-      ENDIF
-      !
       CALL wrk_dealloc( jpi, jpj, zsedpoca)   ! temporary save of trends
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90	(revision 7041)
@@ -11,7 +11,7 @@
    !!             3.2  !  2009-04  (C. Ethe, G. Madec)  minor optimisation + style
    !!----------------------------------------------------------------------
-#if defined key_pisces_reduced
-   !!----------------------------------------------------------------------
-   !!   'key_pisces_reduced'                                     LOBSTER bio-model
+#if defined key_pisces
+   !!----------------------------------------------------------------------
+   !!   'key_pisces'                                     LOBSTER bio-model
    !!----------------------------------------------------------------------
    !!   p2z_opt        :   Compute the light availability in the water column
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90	(revision 7041)
@@ -8,7 +8,7 @@
    !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90 + simplifications
    !!----------------------------------------------------------------------
-#if defined key_pisces_reduced
+#if defined key_pisces
    !!----------------------------------------------------------------------
-   !!   'key_pisces_reduced'                                     LOBSTER bio-model
+   !!   'key_pisces'                                     LOBSTER bio-model
    !!----------------------------------------------------------------------
    !!   p2z_sed        :  Compute loss of organic matter in the sediments
@@ -66,5 +66,5 @@
       CHARACTER (len=25) :: charout
       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra, ztrbio
+      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra
       !!---------------------------------------------------------------------
       !
@@ -79,8 +79,4 @@
       ! Allocate temporary workspace
       CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra )
-      IF( l_trdtrc ) THEN
-         CALL wrk_alloc( jpi, jpj, jpk, ztrbio )
-         ztrbio(:,:,:) = tra(:,:,:,jpdet)
-      ENDIF
 
       ! sedimentation of detritus  : upstream scheme
@@ -116,25 +112,8 @@
             CALL wrk_dealloc( jpi, jpj, zw2d )
          ENDIF
-      ELSE
-         IF( ln_diatrc ) THEN 
-            CALL wrk_alloc( jpi, jpj, zw2d )
-            zw2d(:,:) =  ztra(:,:,1) * e3t_n(:,:,1) * 86400._wp
-            DO jk = 2, jpkm1
-               zw2d(:,:) = zw2d(:,:) + ztra(:,:,jk) * e3t_n(:,:,jk) * 86400._wp
-            END DO
-            trc2d(:,:,jp_pcs0_2d + 7) = zw2d(:,:)
-            CALL wrk_dealloc( jpi, jpj, zw2d )
-         ENDIF
       ENDIF
       !
-      IF( ln_diabio .AND. .NOT. lk_iomput )  trbio(:,:,:,jp_pcs0_trd + 7) = ztra(:,:,:)
       CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra )
       !
-      IF( l_trdtrc ) THEN
-         ztrbio(:,:,:) = tra(:,:,:,jpdet) - ztrbio(:,:,:)
-         jl = jp_pcs0_trd + 7
-         CALL trd_trc( ztrbio, jl, kt )   ! handle the trend
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrbio )
-      ENDIF
 
       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90	(revision 7041)
@@ -7,7 +7,7 @@
    !!             2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture
    !!----------------------------------------------------------------------
-#if defined key_pisces_reduced
+#if defined key_pisces
    !!----------------------------------------------------------------------
-   !!   'key_pisces_reduced'                              LOBSTER bio-model
+   !!   'key_pisces'                              LOBSTER bio-model
    !!----------------------------------------------------------------------
    !!   p2zsms        :  Time loop of passive tracers sms
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90	(revision 7041)
@@ -67,7 +67,5 @@
       REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag
       REAL(wp) ::   ztrc, zdust
-#if ! defined key_kriest
       REAL(wp) ::   zdenom, zdenom2
-#endif
       REAL(wp), POINTER, DIMENSION(:,:,:) :: zTL1, zFe3, ztotlig
       REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1, zFeL2, zTL2, zFe2, zFeP
@@ -76,5 +74,4 @@
       REAL(wp) :: zxs, zfunc, zp, zq, zd, zr, zphi, zfff, zp3, zq2
       REAL(wp) :: ztfe, zoxy
-      REAL(wp) :: zstep
       !!---------------------------------------------------------------------
       !
@@ -212,8 +209,4 @@
          DO jj = 1, jpj
             DO ji = 1, jpi
-               zstep = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
                ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water. 
                ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]).
@@ -227,12 +220,9 @@
                   zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9
                ENDIF
-#if defined key_kriest
-               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 
-#else
-               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 
-#endif
+
+               ztrc = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 
                IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) ! dust in kg/m2/s
                zlam1b = 3.e-5 + xlamdust * zdust + xlam1 * ztrc
-               zscave = zfeequi * zlam1b * zstep
+               zscave = zfeequi * zlam1b * xstep
 
                ! Compute the different ratios for scavenging of iron
@@ -240,7 +230,5 @@
                ! ---------------------------------------------------------
                zdenom1 = xlam1 * trb(ji,jj,jk,jppoc) / zlam1b
-#if ! defined key_kriest
                zdenom2 = xlam1 * trb(ji,jj,jk,jpgoc) / zlam1b
-#endif
 
                !  Increased scavenging for very high iron concentrations found near the coasts 
@@ -252,5 +240,5 @@
                zdep    = MIN( 1., 1000. / gdept_n(ji,jj,jk) )
                zlam1b  = xlam1 * MAX( 0.e0, ( trb(ji,jj,jk,jpfer) * 1.e9 - ztotlig(ji,jj,jk) ) )
-               zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep * trb(ji,jj,jk,jpfer)
+               zcoag   = zfeequi * zlam1b * xstep + 1E-4 * ( 1. - zlamfac ) * zdep * xstep * trb(ji,jj,jk,jpfer)
 
                !  Compute the coagulation of colloidal iron. This parameterization 
@@ -260,18 +248,11 @@
                zlam1a  = ( 0.369  * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4  * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk)    &
                    &   + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) + 5.09E3 * trb(ji,jj,jk,jppoc) )
-               zaggdfea = zlam1a * zstep * zfecoll
-#if defined key_kriest
-               zaggdfeb = 0.
-               !
-               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zscave - zaggdfea - zaggdfeb - zcoag
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea + zaggdfeb
-#else
+               zaggdfea = zlam1a * xstep * zfecoll
                zlam1b = 3.53E3 *   trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk)
-               zaggdfeb = zlam1b * zstep * zfecoll
+               zaggdfeb = zlam1b * xstep * zfecoll
                !
                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zscave - zaggdfea - zaggdfeb - zcoag
                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea
                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 + zaggdfeb
-#endif
             END DO
          END DO
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90	(revision 7041)
@@ -167,7 +167,4 @@
             zkgwan = 0.251 * zws
             zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1)
-# if defined key_degrad
-            zkgwan = zkgwan * facvol(ji,jj,1)
-#endif 
             ! compute gas exchange for CO2 and O2
             zkgco2(ji,jj) = zkgwan * SQRT( 660./ zsch_co2 )
@@ -239,11 +236,4 @@
          !
          CALL wrk_dealloc( jpi, jpj, zw2d )
-      ELSE
-         IF( ln_diatrc ) THEN
-            trc2d(:,:,jp_pcs0_2d    ) = oce_co2(:,:) / e1e2t(:,:) * rfact2r 
-            trc2d(:,:,jp_pcs0_2d + 1) = zoflx(:,:) * 1000 * tmask(:,:,1) 
-            trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1) 
-            trc2d(:,:,jp_pcs0_2d + 3) = ( zpco2atm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
-         ENDIF
       ENDIF
       !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90	(revision 7041)
@@ -129,7 +129,4 @@
                !       CACO3 GETS DISSOLVED EVEN IN THE CASE OF OVERSATURATION)
                zdispot = kdca * zexcess * trb(ji,jj,jk,jpcal)
-# if defined key_degrad
-               zdispot = zdispot * facvol(ji,jj,jk)
-# endif
               !  CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3],
               !       AND [SUM(CO2)] DUE TO CACO3 DISSOLUTION/PRECIPITATION
@@ -150,10 +147,4 @@
          IF( iom_use( "CO3sat" ) ) CALL iom_put( "CO3sat", zco3sat(:,:,:) * 1.e+3            * tmask(:,:,:) )
          IF( iom_use( "DCAL"   ) ) CALL iom_put( "DCAL"  , zcaldiss(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) )
-      ELSE
-         IF( ln_diatrc ) THEN
-            trc3d(:,:,:,jp_pcs0_3d    ) = -1. * LOG10( hi(:,:,:) ) * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 1) = zco3(:,:,:)              * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 2) = zco3sat(:,:,:)           * tmask(:,:,:)
-         ENDIF
       ENDIF
       !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90	(revision 7041)
@@ -70,11 +70,8 @@
       REAL(wp) :: zcompadi, zcompaph, zcompapoc, zcompaz, zcompam
       REAL(wp) :: zgraze2 , zdenom, zdenom2
-      REAL(wp) :: zfact   , zstep, zfood, zfoodlim, zproport
+      REAL(wp) :: zfact   , zfood, zfoodlim, zproport
       REAL(wp) :: zmortzgoc, zfrac, zfracfe, zratio, zratio2
       REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotn, zgraztotf
       REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz2, zgrasrat, zgrasratn
-#if defined key_kriest
-      REAL znumpoc
-#endif
       REAL(wp) :: zrespz2, ztortz2, zgrazd, zgrazz, zgrazpof
       REAL(wp) :: zgrazn, zgrazpoc, zgraznf, zgrazf
@@ -96,10 +93,5 @@
             DO ji = 1, jpi
                zcompam   = MAX( ( trb(ji,jj,jk,jpmes) - 1.e-9 ), 0.e0 )
-# if defined key_degrad
-               zstep     = xstep * facvol(ji,jj,jk)
-# else
-               zstep     = xstep
-# endif
-               zfact     = zstep * tgfunc2(ji,jj,jk) * zcompam
+               zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam
 
                !  Respiration rates of both zooplankton
@@ -126,5 +118,5 @@
                zdenom    = zfoodlim / ( xkgraz2 + zfoodlim )
                zdenom2   = zdenom / ( zfood + rtrn )
-               zgraze2   = grazrat2 * zstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpmes) 
+               zgraze2   = grazrat2 * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpmes) 
 
                zgrazd    = zgraze2  * xprefc   * zcompadi  * zdenom2 
@@ -140,14 +132,11 @@
                !  ----------------------------------
                !  ----------------------------------
-# if ! defined key_kriest
-               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk)      &
+               zgrazffeg = grazflux  * xstep * wsbio4(ji,jj,jk)      &
                &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes)
                zgrazfffg = zgrazffeg * trb(ji,jj,jk,jpbfe) / (trb(ji,jj,jk,jpgoc) + rtrn)
-# endif
-               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk)     &
+               zgrazffep = grazflux  * xstep *  wsbio3(ji,jj,jk)     &
                &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpmes)
                zgrazfffp = zgrazffep * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn)
               !
-# if ! defined key_kriest
               zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg
               ! Compute the proportion of filter feeders
@@ -158,5 +147,5 @@
               zratio    = trb(ji,jj,jk,jpgsi) / ( trb(ji,jj,jk,jpgoc) + rtrn )
               zratio2   = zratio * zratio
-              zfrac     = zproport * grazflux  * zstep * wsbio4(ji,jj,jk)      &
+              zfrac     = zproport * grazflux  * xstep * wsbio4(ji,jj,jk)      &
                &          * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes)          &
                &          * ( 0.2 + 3.8 * zratio2 / ( 1.**2 + zratio2 ) )
@@ -171,14 +160,4 @@
               &   + zgrazpoc + zgrazffep + zgrazffeg
               zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg
-# else
-              zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep
-              ! Compute the proportion of filter feeders
-              zproport  = zgrazffep / ( zgraztot + rtrn )
-              zgrazffep = zproport * zgrazffep
-              zgrazfffp = zproport * zgrazfffp
-              zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep
-              zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn * quotan(ji,jj,jk) + zgrazpoc + zgrazffep
-              zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp
-# endif
 
               ! Total grazing ( grazing by microzoo is already computed in p4zmicro )
@@ -228,18 +207,9 @@
                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca
                tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca
-#if defined key_kriest
-              znumpoc = trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn )
-              tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2
-              tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso      &
-                 &   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn )
-              tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortzgoc - zgrazfffp - zgrazpof    &
-                 &                 + zgraztotf * unass2
-#else
-              tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac
-              tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac
-              tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe
-              tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg     &
-                 &                + zgraztotf * unass2 - zfracfe
-#endif
+               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac
+               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac
+               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe
+               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg     &
+                   &                + zgraztotf * unass2 - zfracfe
             END DO
          END DO
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90	(revision 7041)
@@ -71,5 +71,5 @@
       REAL(wp) :: zcompadi, zcompaz , zcompaph, zcompapoc
       REAL(wp) :: zgraze  , zdenom, zdenom2
-      REAL(wp) :: zfact   , zstep, zfood, zfoodlim
+      REAL(wp) :: zfact   , zfood, zfoodlim
       REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotn, zgraztotf
       REAL(wp) :: zgrarem, zgrafer, zgrapoc, zprcaca, zmortz
@@ -89,9 +89,5 @@
             DO ji = 1, jpi
                zcompaz = MAX( ( trb(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 )
-               zstep   = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
-               zfact   = zstep * tgfunc2(ji,jj,jk) * zcompaz
+               zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz
 
                !  Respiration rates of both zooplankton
@@ -115,5 +111,5 @@
                zdenom    = zfoodlim / ( xkgraz + zfoodlim )
                zdenom2   = zdenom / ( zfood + rtrn )
-               zgraze    = grazrat * zstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpzoo) 
+               zgraze    = grazrat * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpzoo) 
 
                zgrazp    = zgraze  * xpref2p * zcompaph  * zdenom2 
@@ -130,5 +126,5 @@
 
                ! Grazing by microzooplankton
-               IF( ln_diatrc .AND. lk_iomput )  zgrazing(ji,jj,jk) = zgraztot
+               IF( lk_iomput )  zgrazing(ji,jj,jk) = zgraztot
 
                !    Various remineralization and excretion terms
@@ -154,7 +150,4 @@
                tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig
                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig
-#if defined key_kriest
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zgrapoc * xkr_dmicro
-#endif
                !   Update the arrays TRA which contain the biological sources and sinks
                !   --------------------------------------------------------------------
@@ -180,8 +173,4 @@
                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca
                tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca
-#if defined key_kriest
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zmortz * xkr_dmicro &
-                                                         - zgrazm * trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn )
-#endif
             END DO
          END DO
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90	(revision 7041)
@@ -73,5 +73,5 @@
       REAL(wp) :: zsizerat, zcompaph
       REAL(wp) :: zfactfe, zfactch, zprcaca, zfracal
-      REAL(wp) :: ztortp , zrespp , zmortp , zstep
+      REAL(wp) :: ztortp , zrespp , zmortp
       CHARACTER (len=25) :: charout
       !!---------------------------------------------------------------------
@@ -84,8 +84,4 @@
             DO ji = 1, jpi
                zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - 1e-8 ), 0.e0 )
-               zstep    = xstep
-# if defined key_degrad
-               zstep    = zstep * facvol(ji,jj,jk)
-# endif
                !     When highly limited by macronutrients, very small cells 
                !     dominate the community. As a consequence, aggregation
@@ -95,5 +91,5 @@
                !     Squared mortality of Phyto similar to a sedimentation term during
                !     blooms (Doney et al. 1996)
-               zrespp = wchl * 1.e6 * zstep * xdiss(ji,jj,jk) * zcompaph * zsizerat 
+               zrespp = wchl * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * zsizerat 
 
                !     Phytoplankton mortality. This mortality loss is slightly
@@ -119,14 +115,8 @@
                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca
                tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca
-#if defined key_kriest
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortp
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortp * xkr_dnano + zrespp * xkr_ddiat
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zmortp * zfactfe
-#else
                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zfracal * zmortp
                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + ( 1. - zfracal ) * zmortp
                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ( 1. - zfracal ) * zmortp * zfactfe
                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zfracal * zmortp * zfactfe
-#endif
             END DO
          END DO
@@ -153,5 +143,5 @@
       INTEGER  ::  ji, jj, jk
       REAL(wp) ::  zfactfe,zfactsi,zfactch, zcompadi
-      REAL(wp) ::  zrespp2, ztortp2, zmortp2, zstep
+      REAL(wp) ::  zrespp2, ztortp2, zmortp2
       REAL(wp) ::  zlim2, zlim1
       CHARACTER (len=25) :: charout
@@ -176,17 +166,13 @@
                !    sticky and coagulate to sink quickly out of the euphotic zone
                !     ------------------------------------------------------------
-               zstep   = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
                !  Phytoplankton respiration 
                !     ------------------------
                zlim2   = xlimdia(ji,jj,jk) * xlimdia(ji,jj,jk)
                zlim1   = 0.25 * ( 1. - zlim2 ) / ( 0.25 + zlim2 ) 
-               zrespp2 = 1.e6 * zstep * (  wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia)
+               zrespp2 = 1.e6 * xstep * (  wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia)
 
                !     Phytoplankton mortality. 
                !     ------------------------
-               ztortp2 = mprat2 * zstep * trb(ji,jj,jk,jpdia)  / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi 
+               ztortp2 = mprat2 * xstep * trb(ji,jj,jk,jpdia)  / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi 
 
                zmortp2 = zrespp2 + ztortp2
@@ -202,14 +188,8 @@
                tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zmortp2 * zfactsi
                tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zmortp2 * zfactsi
-#if defined key_kriest
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortp2  
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortp2 * xkr_ddiat + zrespp2 * xkr_daggr
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zmortp2 * zfactfe
-#else
                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zrespp2 + 0.5 * ztortp2
                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + 0.5 * ztortp2
                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + 0.5 * ztortp2 * zfactfe
                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ( zrespp2 + 0.5 * ztortp2 ) * zfactfe
-#endif
             END DO
          END DO
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90	(revision 7041)
@@ -215,9 +215,4 @@
            IF( iom_use( "PAR"   ) ) CALL iom_put( "PAR"  , emoy(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation
         ENDIF
-      ELSE
-         IF( ln_diatrc ) THEN        ! save output diagnostics
-            trc2d(:,:,  jp_pcs0_2d + 10) = heup(:,:  ) * tmask(:,:,1)
-            trc3d(:,:,:,jp_pcs0_3d + 3)  = etot(:,:,:) * tmask(:,:,:)
-         ENDIF
       ENDIF
       !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90	(revision 7041)
@@ -110,5 +110,4 @@
       ! Computation of the optimal production
       prmax(:,:,:) = 0.6_wp * r1_rday * tgfunc(:,:,:) 
-      IF( lk_degrad )  prmax(:,:,:) = prmax(:,:,:) * facvol(:,:,:) 
 
       ! compute the day length depending on latitude and the day
@@ -482,17 +481,4 @@
           CALL wrk_dealloc( jpi, jpj, jpk, zw3d )
        ENDIF
-     ELSE
-        IF( ln_diatrc ) THEN
-           zfact = 1.e+3 * rfact2r
-           trc3d(:,:,:,jp_pcs0_3d + 4)  = zprorca (:,:,:) * zfact * tmask(:,:,:)
-           trc3d(:,:,:,jp_pcs0_3d + 5)  = zprorcad(:,:,:) * zfact * tmask(:,:,:)
-           trc3d(:,:,:,jp_pcs0_3d + 6)  = zpronew (:,:,:) * zfact * tmask(:,:,:)
-           trc3d(:,:,:,jp_pcs0_3d + 7)  = zpronewd(:,:,:) * zfact * tmask(:,:,:)
-           trc3d(:,:,:,jp_pcs0_3d + 8)  = zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:)
-           trc3d(:,:,:,jp_pcs0_3d + 9)  = zprofed (:,:,:) * zfact * tmask(:,:,:)
-#  if ! defined key_kriest
-           trc3d(:,:,:,jp_pcs0_3d + 10) = zprofen (:,:,:) * zfact * tmask(:,:,:)
-#  endif
-        ENDIF
      ENDIF
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90	(revision 7041)
@@ -72,8 +72,6 @@
       REAL(wp) ::   zbactfer, zorem, zorem2, zofer, zolimit
       REAL(wp) ::   zosil, ztem
-#if ! defined key_kriest
       REAL(wp) ::   zofer2
-#endif
-      REAL(wp) ::   zonitr, zstep, zfact
+      REAL(wp) ::   zonitr, zfact
       CHARACTER (len=25) :: charout
       REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac
@@ -115,12 +113,8 @@
          DO jj = 1, jpj
             DO ji = 1, jpi
-               zstep   = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
                ! DOC ammonification. Depends on depth, phytoplankton biomass
                ! and a limitation term which is supposed to be a parameterization
                !     of the bacterial activity. 
-               zremik = xremik * zstep / 1.e-6 * xlimbac(ji,jj,jk) * zdepbac(ji,jj,jk) 
+               zremik = xremik * xstep / 1.e-6 * xlimbac(ji,jj,jk) * zdepbac(ji,jj,jk) 
                zremik = MAX( zremik, 2.74e-4 * xstep )
                ! Ammonification in oxic waters with oxygen consumption
@@ -144,13 +138,9 @@
          DO jj = 1, jpj
             DO ji = 1, jpi
-               zstep   = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
                ! NH4 nitrification to NO3. Ceased for oxygen concentrations
                ! below 2 umol/L. Inhibited at strong light 
                ! ----------------------------------------------------------
-               zonitr  =nitrif * zstep * trb(ji,jj,jk,jpnh4) / ( 1.+ emoy(ji,jj,jk) ) * ( 1.- nitrfac(ji,jj,jk) ) 
-               denitnh4(ji,jj,jk) = nitrif * zstep * trb(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk) 
+               zonitr  =nitrif * xstep * trb(ji,jj,jk,jpnh4) / ( 1.+ emoy(ji,jj,jk) ) * ( 1.- nitrfac(ji,jj,jk) ) 
+               denitnh4(ji,jj,jk) = nitrif * xstep * trb(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk) 
                ! Update of the tracers trends
                ! ----------------------------
@@ -180,12 +170,7 @@
                   &              * trb(ji,jj,jk,jpfer) / ( 2.5E-10 + trb(ji,jj,jk,jpfer) )    &
                   &              * zdepprod(ji,jj,jk) * zdepbac(ji,jj,jk)
-#if defined key_kriest
-               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.05
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.05
-#else
                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.16
                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.12
                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zbactfer*0.04
-#endif
             END DO
          END DO
@@ -201,11 +186,7 @@
          DO jj = 1, jpj
             DO ji = 1, jpi
-               zstep   = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
                ! POC disaggregation by turbulence and bacterial activity. 
                ! --------------------------------------------------------
-               zremip = xremip * zstep * tgfunc(ji,jj,jk) * ( 1.- 0.55 * nitrfac(ji,jj,jk) ) 
+               zremip = xremip * xstep * tgfunc(ji,jj,jk) * ( 1.- 0.55 * nitrfac(ji,jj,jk) ) 
 
                ! POC disaggregation rate is reduced in anoxic zone as shown by
@@ -216,10 +197,6 @@
                zorem  = zremip * trb(ji,jj,jk,jppoc)
                zofer  = zremip * trb(ji,jj,jk,jpsfe)
-#if ! defined key_kriest
                zorem2 = zremip * trb(ji,jj,jk,jpgoc)
                zofer2 = zremip * trb(ji,jj,jk,jpbfe)
-#else
-               zorem2 = zremip * trb(ji,jj,jk,jpnum)
-#endif
 
                ! Update the appropriate tracers trends
@@ -228,14 +205,8 @@
                tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zorem
                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zofer
-#if defined key_kriest
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zorem
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zorem2
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zofer
-#else
                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zorem2 - zorem
                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) - zorem2
                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zofer2 - zofer
                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) - zofer2
-#endif
 
             END DO
@@ -252,8 +223,4 @@
          DO jj = 1, jpj
             DO ji = 1, jpi
-               zstep   = xstep
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
                ! Remineralization rate of BSi depedant on T and saturation
                ! ---------------------------------------------------------
@@ -272,5 +239,5 @@
                ztem     = MAX( tsn(ji,jj,1,jp_tem), 0. )
                zfactdep = xsilab * EXP(-( xsiremlab - xsirem ) * znusil2 * zdep / wsbio2 ) * ztem / ( ztem + 10. )
-               zsiremin = ( xsiremlab * zfactdep + xsirem * ( 1. - zfactdep ) ) * zstep * znusil
+               zsiremin = ( xsiremlab * zfactdep + xsirem * ( 1. - zfactdep ) ) * xstep * znusil
                zosil    = zsiremin * trb(ji,jj,jk,jpgsi)
                !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90	(revision 7041)
@@ -145,7 +145,4 @@
                 &  CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday )  * tmask(:,:,1) ) ! dust concentration at surface
             ENDIF
-         ELSE                                    
-            IF( ln_diatrc )  &
-              &  trc2d(:,:,jp_pcs0_2d + 11) = zirondep(:,:,1) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1)
          ENDIF
          CALL wrk_dealloc( jpi, jpj,      zpdep, zsidep )
@@ -196,6 +193,5 @@
       ENDIF
 
-      ! OA: Warning, the following part is necessary, especially with Kriest
-      ! to avoid CFL problems above the sediments
+      ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments
       ! --------------------------------------------------------------------
       DO jj = 1, jpj
@@ -217,10 +213,6 @@
            IF( tmask(ji,jj,1) == 1 ) THEN
               ikt = mbkt(ji,jj)
-# if defined key_kriest
-              zflx =    trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)    * 1E3 * 1E6 / 1E4
-# else
               zflx = (  trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   &
                 &     + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) )  * 1E3 * 1E6 / 1E4
-#endif
               zflx  = LOG10( MAX( 1E-3, zflx ) )
               zo2   = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) )
@@ -246,11 +238,6 @@
             IF( tmask(ji,jj,1) == 1 ) THEN
                ikt = mbkt(ji,jj) 
-# if defined key_kriest
-               zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwscal (ji,jj)
-               zwork2(ji,jj) = trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)
-# else
                zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj)
                zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 
-# endif
                ! For calcite, burial efficiency is made a function of saturation
                zfactcal      = MIN( excess(ji,jj,ikt), 0.2 )
@@ -278,9 +265,5 @@
             zws4 = zwsbio4(ji,jj) * zdep
             zwsc = zwscal (ji,jj) * zdep
-# if defined key_kriest
-            zsiloss = trb(ji,jj,ikt,jpgsi) * zws4
-# else
             zsiloss = trb(ji,jj,ikt,jpgsi) * zwsc
-# endif
             zcaloss = trb(ji,jj,ikt,jpcal) * zwsc
             !
@@ -305,5 +288,4 @@
             zws3 = zwsbio3(ji,jj) * zdep
             zrivno3 = 1. - zbureff(ji,jj)
-# if ! defined key_kriest
             tra(ji,jj,ikt,jpgoc) = tra(ji,jj,ikt,jpgoc) - trb(ji,jj,ikt,jpgoc) * zws4 
             tra(ji,jj,ikt,jppoc) = tra(ji,jj,ikt,jppoc) - trb(ji,jj,ikt,jppoc) * zws3
@@ -311,10 +293,4 @@
             tra(ji,jj,ikt,jpsfe) = tra(ji,jj,ikt,jpsfe) - trb(ji,jj,ikt,jpsfe) * zws3
             zwstpoc              = trb(ji,jj,ikt,jpgoc) * zws4 + trb(ji,jj,ikt,jppoc) * zws3
-# else
-            tra(ji,jj,ikt,jpnum) = tra(ji,jj,ikt,jpnum) - trb(ji,jj,ikt,jpnum) * zws4 
-            tra(ji,jj,ikt,jppoc) = tra(ji,jj,ikt,jppoc) - trb(ji,jj,ikt,jppoc) * zws3
-            tra(ji,jj,ikt,jpsfe) = tra(ji,jj,ikt,jpsfe) - trb(ji,jj,ikt,jpsfe) * zws3
-            zwstpoc = trb(ji,jj,ikt,jppoc) * zws3 
-# endif
 
 #if ! defined key_sed
@@ -346,9 +322,6 @@
                zlim = ( 1.- xnanono3(ji,jj,jk) - xnanonh4(ji,jj,jk) )
                IF( zlim <= 0.2 )   zlim = 0.01
-#if defined key_degrad
-               zfact = zlim * rfact2 * facvol(ji,jj,jk)
-#else
                zfact = zlim * rfact2
-#endif
+
                ztrfer = biron(ji,jj,jk)       / ( concfediaz + biron(ji,jj,jk)       )
                ztrpo4 = trb  (ji,jj,jk,jppo4) / ( concnnh4   + trb  (ji,jj,jk,jppo4) ) 
@@ -389,7 +362,4 @@
             ENDIF
          ENDIF
-      ELSE
-         IF( ln_diatrc )  &
-            &  trc2d(:,:,jp_pcs0_2d + 12) = nitrpot(:,:,1) * nitrfix * rno3 * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1)
       ENDIF
       !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90	(revision 7041)
@@ -37,31 +37,7 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkcal, sinksil   !: CaCO3 and BSi sinking fluxes
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer            !: Small BFe sinking fluxes
-#if ! defined key_kriest
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer2           !: Big iron sinking fluxes
-#endif
 
    INTEGER  :: ik100
-
-#if  defined key_kriest
-   REAL(wp) ::  xkr_sfact    !: Sinking factor
-   REAL(wp) ::  xkr_stick    !: Stickiness
-   REAL(wp) ::  xkr_nnano    !: Nbr of cell in nano size class
-   REAL(wp) ::  xkr_ndiat    !: Nbr of cell in diatoms size class
-   REAL(wp) ::  xkr_nmicro   !: Nbr of cell in microzoo size class
-   REAL(wp) ::  xkr_nmeso    !: Nbr of cell in mesozoo  size class
-   REAL(wp) ::  xkr_naggr    !: Nbr of cell in aggregates  size class
-
-   REAL(wp) ::  xkr_frac 
-
-   REAL(wp), PUBLIC ::  xkr_dnano       !: Size of particles in nano pool
-   REAL(wp), PUBLIC ::  xkr_ddiat       !: Size of particles in diatoms pool
-   REAL(wp), PUBLIC ::  xkr_dmicro      !: Size of particles in microzoo pool
-   REAL(wp), PUBLIC ::  xkr_dmeso       !: Size of particles in mesozoo pool
-   REAL(wp), PUBLIC ::  xkr_daggr       !: Size of particles in aggregates pool
-   REAL(wp), PUBLIC ::  xkr_wsbio_min   !: min vertical particle speed
-   REAL(wp), PUBLIC ::  xkr_wsbio_max   !: max vertical particle speed
-
-   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   xnumm   !:  maximum number of particles in aggregates
-#endif
 
    !!----------------------------------------------------------------------
@@ -72,5 +48,4 @@
 CONTAINS
 
-#if ! defined key_kriest
    !!----------------------------------------------------------------------
    !!   'standard sinking parameterisation'                  ???
@@ -91,5 +66,5 @@
       REAL(wp) ::   zagg1, zagg2, zagg3, zagg4
       REAL(wp) ::   zagg , zaggfe, zaggdoc, zaggdoc2, zaggdoc3
-      REAL(wp) ::   zfact, zwsmax, zmax, zstep
+      REAL(wp) ::   zfact, zwsmax, zmax
       CHARACTER (len=25) :: charout
       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d
@@ -191,9 +166,5 @@
             DO ji = 1, jpi
                !
-               zstep = xstep 
-# if defined key_degrad
-               zstep = zstep * facvol(ji,jj,jk)
-# endif
-               zfact = zstep * xdiss(ji,jj,jk)
+               zfact = xstep * xdiss(ji,jj,jk)
                !  Part I : Coagulation dependent on turbulence
                zagg1 = 25.9  * zfact * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jppoc)
@@ -203,6 +174,6 @@
 
                !  Aggregation of small into large particles
-               zagg3 =  47.1 * zstep * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpgoc)
-               zagg4 =  3.3  * zstep * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jppoc)
+               zagg3 =  47.1 * xstep * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpgoc)
+               zagg4 =  3.3  * xstep * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jppoc)
 
                zagg   = zagg1 + zagg2 + zagg3 + zagg4
@@ -214,11 +185,11 @@
                ! 3rd term is differential settling of DOC-POC
                zaggdoc  = ( ( 0.369 * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4 * trb(ji,jj,jk,jppoc) ) * zfact       &
-               &            + 2.4 * zstep * trb(ji,jj,jk,jppoc) ) * 0.3 * trb(ji,jj,jk,jpdoc)
+               &            + 2.4 * xstep * trb(ji,jj,jk,jppoc) ) * 0.3 * trb(ji,jj,jk,jpdoc)
                ! transfer of DOC to GOC : 
                ! 1st term is shear aggregation
                ! 2nd term is differential settling 
-               zaggdoc2 = ( 3.53E3 * zfact + 0.1 * zstep ) * trb(ji,jj,jk,jpgoc) * 0.3 * trb(ji,jj,jk,jpdoc)
+               zaggdoc2 = ( 3.53E3 * zfact + 0.1 * xstep ) * trb(ji,jj,jk,jpgoc) * 0.3 * trb(ji,jj,jk,jpdoc)
                ! tranfer of DOC to POC due to brownian motion
-               zaggdoc3 =  ( 5095. * trb(ji,jj,jk,jppoc) + 114. * 0.3 * trb(ji,jj,jk,jpdoc) ) *zstep * 0.3 * trb(ji,jj,jk,jpdoc)
+               zaggdoc3 =  ( 5095. * trb(ji,jj,jk,jppoc) + 114. * 0.3 * trb(ji,jj,jk,jpdoc) ) * xstep * 0.3 * trb(ji,jj,jk,jpdoc)
 
                !  Update the trends
@@ -281,14 +252,4 @@
           CALL wrk_dealloc( jpi, jpj, jpk, zw3d )
         ENDIF
-      ELSE
-         IF( ln_diatrc ) THEN
-            zfact = 1.e3 * rfact2r
-            trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik100) * zfact * tmask(:,:,1)
-            trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik100) * zfact * tmask(:,:,1)
-            trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik100) * zfact * tmask(:,:,1)
-            trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik100) * zfact * tmask(:,:,1)
-            trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik100) * zfact * tmask(:,:,1)
-            trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik100) * zfact * tmask(:,:,1)
-         ENDIF
       ENDIF
       !
@@ -320,450 +281,4 @@
       !
    END SUBROUTINE p4z_sink_init
-
-#else
-   !!----------------------------------------------------------------------
-   !!   'Kriest sinking parameterisation'        key_kriest          ???
-   !!----------------------------------------------------------------------
-
-   SUBROUTINE p4z_sink ( kt, knt )
-      !!---------------------------------------------------------------------
-      !!                ***  ROUTINE p4z_sink  ***
-      !!
-      !! ** Purpose :   Compute vertical flux of particulate matter due to
-      !!              gravitational sinking - Kriest parameterization
-      !!
-      !! ** Method  : - ???
-      !!---------------------------------------------------------------------
-      !
-      INTEGER, INTENT(in) :: kt, knt
-      !
-      INTEGER  :: ji, jj, jk, jit, niter1, niter2
-      REAL(wp) :: zagg1, zagg2, zagg3, zagg4, zagg5, zfract, zaggsi, zaggsh
-      REAL(wp) :: zagg , zaggdoc, zaggdoc1, znumdoc
-      REAL(wp) :: znum , zeps, zfm, zgm, zsm
-      REAL(wp) :: zdiv , zdiv1, zdiv2, zdiv3, zdiv4, zdiv5
-      REAL(wp) :: zval1, zval2, zval3, zval4
-      REAL(wp) :: zfact
-      INTEGER  :: ik1
-      CHARACTER (len=25) :: charout
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: znum3d 
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d
-      REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d
-      !!---------------------------------------------------------------------
-      !
-      IF( nn_timing == 1 )  CALL timing_start('p4z_sink')
-      !
-      CALL wrk_alloc( jpi, jpj, jpk, znum3d )
-      !
-      !     Initialisation of variables used to compute Sinking Speed
-      !     ---------------------------------------------------------
-
-      znum3d(:,:,:) = 0.e0
-      zval1 = 1. + xkr_zeta
-      zval2 = 1. + xkr_zeta + xkr_eta
-      zval3 = 1. + xkr_eta
-
-      !     Computation of the vertical sinking speed : Kriest et Evans, 2000
-      !     -----------------------------------------------------------------
-
-      DO jk = 1, jpkm1
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               IF( tmask(ji,jj,jk) /= 0.e0 ) THEN
-                  znum = trb(ji,jj,jk,jppoc) / ( trb(ji,jj,jk,jpnum) + rtrn ) / xkr_massp
-                  ! -------------- To avoid sinking speed over 50 m/day -------
-                  znum  = MIN( xnumm(jk), znum )
-                  znum  = MAX( 1.1      , znum )
-                  znum3d(ji,jj,jk) = znum
-                  !------------------------------------------------------------
-                  zeps  = ( zval1 * znum - 1. )/ ( znum - 1. )
-                  zfm   = xkr_frac**( 1. - zeps )
-                  zgm   = xkr_frac**( zval1 - zeps )
-                  zdiv  = MAX( 1.e-4, ABS( zeps - zval2 ) ) * SIGN( 1., ( zeps - zval2 ) )
-                  zdiv1 = zeps - zval3
-                  wsbio3(ji,jj,jk) = xkr_wsbio_min * ( zeps - zval1 ) / zdiv    &
-                     &             - xkr_wsbio_max *   zgm * xkr_eta  / zdiv
-                  wsbio4(ji,jj,jk) = xkr_wsbio_min *   ( zeps-1. )    / zdiv1   &
-                     &             - xkr_wsbio_max *   zfm * xkr_eta  / zdiv1
-                  IF( znum == 1.1)   wsbio3(ji,jj,jk) = wsbio4(ji,jj,jk)
-               ENDIF
-            END DO
-         END DO
-      END DO
-
-      wscal(:,:,:) = MAX( wsbio3(:,:,:), 30._wp )
-
-      !   INITIALIZE TO ZERO ALL THE SINKING ARRAYS
-      !   -----------------------------------------
-
-      sinking (:,:,:) = 0.e0
-      sinking2(:,:,:) = 0.e0
-      sinkcal (:,:,:) = 0.e0
-      sinkfer (:,:,:) = 0.e0
-      sinksil (:,:,:) = 0.e0
-
-     !   Compute the sedimentation term using p4zsink2 for all the sinking particles
-     !   -----------------------------------------------------
-
-      niter1 = niter1max
-      niter2 = niter2max
-
-      DO jit = 1, niter1
-        CALL p4z_sink2( wsbio3, sinking , jppoc, niter1 )
-        CALL p4z_sink2( wsbio3, sinkfer , jpsfe, niter1 )
-        CALL p4z_sink2( wscal , sinksil , jpgsi, niter1 )
-        CALL p4z_sink2( wscal , sinkcal , jpcal, niter1 )
-      END DO
-
-      DO jit = 1, niter2
-        CALL p4z_sink2( wsbio4, sinking2, jpnum, niter2 )
-      END DO
-
-     !  Exchange between organic matter compartments due to coagulation/disaggregation
-     !  ---------------------------------------------------
-
-      zval1 = 1. + xkr_zeta
-      zval2 = 1. + xkr_eta
-      zval3 = 3. + xkr_eta
-      zval4 = 4. + xkr_eta
-
-      DO jk = 1,jpkm1
-         DO jj = 1,jpj
-            DO ji = 1,jpi
-               IF( tmask(ji,jj,jk) /= 0.e0 ) THEN
-
-                  znum = trb(ji,jj,jk,jppoc)/(trb(ji,jj,jk,jpnum)+rtrn) / xkr_massp
-                  !-------------- To avoid sinking speed over 50 m/day -------
-                  znum  = min(xnumm(jk),znum)
-                  znum  = MAX( 1.1,znum)
-                  !------------------------------------------------------------
-                  zeps  = ( zval1 * znum - 1.) / ( znum - 1.)
-                  zdiv  = MAX( 1.e-4, ABS( zeps - zval3) ) * SIGN( 1., zeps - zval3 )
-                  zdiv1 = MAX( 1.e-4, ABS( zeps - 4.   ) ) * SIGN( 1., zeps - 4.    )
-                  zdiv2 = zeps - 2.
-                  zdiv3 = zeps - 3.
-                  zdiv4 = zeps - zval2
-                  zdiv5 = 2.* zeps - zval4
-                  zfm   = xkr_frac**( 1.- zeps )
-                  zsm   = xkr_frac**xkr_eta
-
-                  !    Part I : Coagulation dependant on turbulence
-                  !    ----------------------------------------------
-
-                  zagg1 =  0.163 * trb(ji,jj,jk,jpnum)**2               &
-                     &            * 2.*( (zfm-1.)*(zfm*xkr_mass_max**3-xkr_mass_min**3)    &
-                     &            * (zeps-1)/zdiv1 + 3.*(zfm*xkr_mass_max-xkr_mass_min)    &
-                     &            * (zfm*xkr_mass_max**2-xkr_mass_min**2)                  &
-                     &            * (zeps-1.)**2/(zdiv2*zdiv3)) 
-                  zagg2 =  2*0.163*trb(ji,jj,jk,jpnum)**2*zfm*                       &
-                     &                   ((xkr_mass_max**3+3.*(xkr_mass_max**2          &
-                     &                    *xkr_mass_min*(zeps-1.)/zdiv2                 &
-                     &                    +xkr_mass_max*xkr_mass_min**2*(zeps-1.)/zdiv3)    &
-                     &                    +xkr_mass_min**3*(zeps-1)/zdiv1)                  &
-                     &                    -zfm*xkr_mass_max**3*(1.+3.*((zeps-1.)/           &
-                     &                    (zeps-2.)+(zeps-1.)/zdiv3)+(zeps-1.)/zdiv1))    
-
-                  zagg3 =  0.163*trb(ji,jj,jk,jpnum)**2*zfm**2*8. * xkr_mass_max**3  
-                  
-                 !    Aggregation of small into large particles
-                 !    Part II : Differential settling
-                 !    ----------------------------------------------
-
-                  zagg4 =  2.*3.141*0.125*trb(ji,jj,jk,jpnum)**2*                       &
-                     &                 xkr_wsbio_min*(zeps-1.)**2                         &
-                     &                 *(xkr_mass_min**2*((1.-zsm*zfm)/(zdiv3*zdiv4)      &
-                     &                 -(1.-zfm)/(zdiv*(zeps-1.)))-                       &
-                     &                 ((zfm*zfm*xkr_mass_max**2*zsm-xkr_mass_min**2)     &
-                     &                 *xkr_eta)/(zdiv*zdiv3*zdiv5) )   
-
-                  zagg5 =   2.*3.141*0.125*trb(ji,jj,jk,jpnum)**2                         &
-                     &                 *(zeps-1.)*zfm*xkr_wsbio_min                        &
-                     &                 *(zsm*(xkr_mass_min**2-zfm*xkr_mass_max**2)         &
-                     &                 /zdiv3-(xkr_mass_min**2-zfm*zsm*xkr_mass_max**2)    &
-                     &                 /zdiv)  
-
-                  !
-                  !     Fractionnation by swimming organisms
-                  !     ------------------------------------
-
-                  zfract = 2.*3.141*0.125*trb(ji,jj,jk,jpmes)*12./0.12/0.06**3*trb(ji,jj,jk,jpnum)  &
-                    &      * (0.01/xkr_mass_min)**(1.-zeps)*0.1**2  &
-                    &      * 10000.*xstep
-
-                  !     Aggregation of DOC to small particles
-                  !     --------------------------------------
-
-                  zaggdoc = 0.83 * trb(ji,jj,jk,jpdoc) * xstep * xdiss(ji,jj,jk) * trb(ji,jj,jk,jpdoc)   &
-                     &        + 0.005 * 231. * trb(ji,jj,jk,jpdoc) * xstep * trb(ji,jj,jk,jpdoc)
-                  zaggdoc1 = 271. * trb(ji,jj,jk,jppoc) * xstep * xdiss(ji,jj,jk) * trb(ji,jj,jk,jpdoc)  &
-                     &  + 0.02 * 16706. * trb(ji,jj,jk,jppoc) * xstep * trb(ji,jj,jk,jpdoc)
-
-# if defined key_degrad
-                   zagg1   = zagg1   * facvol(ji,jj,jk)                 
-                   zagg2   = zagg2   * facvol(ji,jj,jk)                 
-                   zagg3   = zagg3   * facvol(ji,jj,jk)                 
-                   zagg4   = zagg4   * facvol(ji,jj,jk)                 
-                   zagg5   = zagg5   * facvol(ji,jj,jk)                 
-                   zaggdoc = zaggdoc * facvol(ji,jj,jk)                 
-                   zaggdoc1 = zaggdoc1 * facvol(ji,jj,jk)
-# endif
-                  zaggsh = ( zagg1 + zagg2 + zagg3 ) * rfact2 * xdiss(ji,jj,jk) / 1000.
-                  zaggsi = ( zagg4 + zagg5 ) * xstep / 10.
-                  zagg = 0.5 * xkr_stick * ( zaggsh + zaggsi )
-                  !
-                  znumdoc = trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn )
-                  tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zaggdoc + zaggdoc1
-                  tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zfract + zaggdoc / xkr_massp - zagg
-                  tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) - zaggdoc - zaggdoc1
-
-               ENDIF
-            END DO
-         END DO
-      END DO
-
-     ! Total primary production per year
-     t_oce_co2_exp = t_oce_co2_exp + glob_sum( ( sinking(:,:,ik100) * e1e2t(:,:) * tmask(:,:,1) )
-     !
-     IF( lk_iomput ) THEN
-        IF( knt == nrdttrc ) THEN
-          CALL wrk_alloc( jpi, jpj,      zw2d )
-          CALL wrk_alloc( jpi, jpj, jpk, zw3d )
-          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s
-          !
-          IF( iom_use( "EPC100" ) )  THEN
-              zw2d(:,:) = sinking(:,:,ik100) * zfact * tmask(:,:,1) ! Export of carbon at 100m
-              CALL iom_put( "EPC100"  , zw2d )
-          ENDIF
-          IF( iom_use( "EPN100" ) )  THEN
-              zw2d(:,:) = sinking2(:,:,ik100) * zfact * tmask(:,:,1) ! Export of number of aggregates ?
-              CALL iom_put( "EPN100"  , zw2d )
-          ENDIF
-          IF( iom_use( "EPCAL100" ) )  THEN
-              zw2d(:,:) = sinkcal(:,:,ik100) * zfact * tmask(:,:,1) ! Export of calcite at 100m
-              CALL iom_put( "EPCAL100"  , zw2d )
-          ENDIF
-          IF( iom_use( "EPSI100" ) )  THEN
-              zw2d(:,:) = sinksil(:,:,ik100) * zfact * tmask(:,:,1) ! Export of bigenic silica at 100m
-              CALL iom_put( "EPSI100"  , zw2d )
-          ENDIF
-          IF( iom_use( "EXPC" ) )  THEN
-              zw3d(:,:,:) = sinking(:,:,:) * zfact * tmask(:,:,:) ! Export of carbon in the water column
-              CALL iom_put( "EXPC"  , zw3d )
-          ENDIF
-          IF( iom_use( "EXPN" ) )  THEN
-              zw3d(:,:,:) = sinking(:,:,:) * zfact * tmask(:,:,:) ! Export of carbon in the water column
-              CALL iom_put( "EXPN"  , zw3d )
-          ENDIF
-          IF( iom_use( "EXPCAL" ) )  THEN
-              zw3d(:,:,:) = sinkcal(:,:,:) * zfact * tmask(:,:,:) ! Export of calcite 
-              CALL iom_put( "EXPCAL"  , zw3d )
-          ENDIF
-          IF( iom_use( "EXPSI" ) )  THEN
-              zw3d(:,:,:) = sinksil(:,:,:) * zfact * tmask(:,:,:) ! Export of bigenic silica
-              CALL iom_put( "EXPSI"  , zw3d )
-          ENDIF
-          IF( iom_use( "XNUM" ) )  THEN
-              zw3d(:,:,:) =  znum3d(:,:,:) * tmask(:,:,:) !  Number of particles on aggregats
-              CALL iom_put( "XNUM"  , zw3d )
-          ENDIF
-          IF( iom_use( "WSC" ) )  THEN
-              zw3d(:,:,:) = wsbio3(:,:,:) * tmask(:,:,:) ! Sinking speed of carbon particles
-              CALL iom_put( "WSC"  , zw3d )
-          ENDIF
-          IF( iom_use( "WSN" ) )  THEN
-              zw3d(:,:,:) = wsbio4(:,:,:) * tmask(:,:,:) ! Sinking speed of particles number
-              CALL iom_put( "WSN"  , zw3d )
-          ENDIF
-          !
-          CALL wrk_dealloc( jpi, jpj,      zw2d )
-          CALL wrk_dealloc( jpi, jpj, jpk, zw3d )
-      ELSE
-         IF( ln_diatrc ) THEN
-            zfact = 1.e3 * rfact2r
-            trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,ik100)  * zfact * tmask(:,:,1)
-            trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,ik100)  * zfact * tmask(:,:,1)
-            trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,ik100)  * zfact * tmask(:,:,1)
-            trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,ik100)  * zfact * tmask(:,:,1)
-            trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,ik100)  * zfact * tmask(:,:,1)
-            trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:)      * zfact * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:)      * zfact * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 13) = sinksil (:,:,:)      * zfact * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 14) = sinkcal (:,:,:)      * zfact * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 15) = znum3d  (:,:,:)              * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 16) = wsbio3  (:,:,:)              * tmask(:,:,:)
-            trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4  (:,:,:)              * tmask(:,:,:)
-         ENDIF
-      ENDIF
-
-      !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
-         WRITE(charout, FMT="('sink')")
-         CALL prt_ctl_trc_info(charout)
-         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
-      ENDIF
-      !
-      CALL wrk_dealloc( jpi, jpj, jpk, znum3d )
-      !
-      IF( nn_timing == 1 )  CALL timing_stop('p4z_sink')
-      !
-   END SUBROUTINE p4z_sink
-
-
-   SUBROUTINE p4z_sink_init
-      !!----------------------------------------------------------------------
-      !!                  ***  ROUTINE p4z_sink_init  ***
-      !!
-      !! ** Purpose :   Initialization of sinking parameters
-      !!                Kriest parameterization only
-      !!
-      !! ** Method  :   Read the nampiskrs namelist and check the parameters
-      !!      called at the first timestep 
-      !!
-      !! ** input   :   Namelist nampiskrs
-      !!----------------------------------------------------------------------
-      INTEGER  ::   jk, jn, kiter
-      INTEGER  ::   ios                 ! Local integer output status for namelist read
-      REAL(wp) ::   znum, zdiv
-      REAL(wp) ::   zws, zwr, zwl,wmax, znummax
-      REAL(wp) ::   zmin, zmax, zl, zr, xacc
-      !
-      NAMELIST/nampiskrs/ xkr_sfact, xkr_stick ,  &
-         &                xkr_nnano, xkr_ndiat, xkr_nmicro, xkr_nmeso, xkr_naggr
-      !!----------------------------------------------------------------------
-      !
-      IF( nn_timing == 1 )  CALL timing_start('p4z_sink_init')
-      !
-
-      REWIND( numnatp_ref )              ! Namelist nampiskrs in reference namelist : Pisces sinking Kriest
-      READ  ( numnatp_ref, nampiskrs, IOSTAT = ios, ERR = 901)
-901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in reference namelist', lwp )
-
-      REWIND( numnatp_cfg )              ! Namelist nampiskrs in configuration namelist : Pisces sinking Kriest
-      READ  ( numnatp_cfg, nampiskrs, IOSTAT = ios, ERR = 902 )
-902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in configuration namelist', lwp )
-      IF(lwm) WRITE ( numonp, nampiskrs )
-
-      IF(lwp) THEN
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist : nampiskrs'
-         WRITE(numout,*) '    Sinking factor                           xkr_sfact    = ', xkr_sfact
-         WRITE(numout,*) '    Stickiness                               xkr_stick    = ', xkr_stick
-         WRITE(numout,*) '    Nbr of cell in nano size class           xkr_nnano    = ', xkr_nnano
-         WRITE(numout,*) '    Nbr of cell in diatoms size class        xkr_ndiat    = ', xkr_ndiat
-         WRITE(numout,*) '    Nbr of cell in microzoo size class       xkr_nmicro   = ', xkr_nmicro
-         WRITE(numout,*) '    Nbr of cell in mesozoo size class        xkr_nmeso    = ', xkr_nmeso
-         WRITE(numout,*) '    Nbr of cell in aggregates size class     xkr_naggr    = ', xkr_naggr
-      ENDIF
-
-
-      ! max and min vertical particle speed
-      xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta
-      xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta
-      IF (lwp) WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max
-
-      !
-      !    effect of the sizes of the different living pools on particle numbers
-      !    nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337
-      !    diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718
-      !    mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147
-      !    aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877
-      !    doc aggregates = 1um
-      ! ----------------------------------------------------------
-
-      xkr_dnano = 1. / ( xkr_massp * xkr_nnano )
-      xkr_ddiat = 1. / ( xkr_massp * xkr_ndiat )
-      xkr_dmicro = 1. / ( xkr_massp * xkr_nmicro )
-      xkr_dmeso = 1. / ( xkr_massp * xkr_nmeso )
-      xkr_daggr = 1. / ( xkr_massp * xkr_naggr )
-
-      !!---------------------------------------------------------------------
-      !!    'key_kriest'                                                  ???
-      !!---------------------------------------------------------------------
-      !  COMPUTATION OF THE VERTICAL PROFILE OF MAXIMUM SINKING SPEED
-      !  Search of the maximum number of particles in aggregates for each k-level.
-      !  Bissection Method
-      !--------------------------------------------------------------------
-      IF (lwp) THEN
-        WRITE(numout,*)
-        WRITE(numout,*)'    kriest : Compute maximum number of particles in aggregates'
-      ENDIF
-
-      xacc     =  0.001_wp
-      kiter    = 50
-      zmin     =  1.10_wp
-      zmax     = xkr_mass_max / xkr_mass_min
-      xkr_frac = zmax
-
-      DO jk = 1,jpk
-         zl = zmin
-         zr = zmax
-         wmax = 0.5 * e3t_n(1,1,jk) * rday * float(niter1max) / rfact2
-         zdiv = xkr_zeta + xkr_eta - xkr_eta * zl
-         znum = zl - 1.
-         zwl =  xkr_wsbio_min * xkr_zeta / zdiv &
-            & - ( xkr_wsbio_max * xkr_eta * znum * &
-            &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) &
-            & - wmax
-
-         zdiv = xkr_zeta + xkr_eta - xkr_eta * zr
-         znum = zr - 1.
-         zwr =  xkr_wsbio_min * xkr_zeta / zdiv &
-            & - ( xkr_wsbio_max * xkr_eta * znum * &
-            &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) &
-            & - wmax
-iflag:   DO jn = 1, kiter
-            IF    ( zwl == 0._wp ) THEN   ;   znummax = zl
-            ELSEIF( zwr == 0._wp ) THEN   ;   znummax = zr
-            ELSE
-               znummax = ( zr + zl ) / 2.
-               zdiv = xkr_zeta + xkr_eta - xkr_eta * znummax
-               znum = znummax - 1.
-               zws =  xkr_wsbio_min * xkr_zeta / zdiv &
-                  & - ( xkr_wsbio_max * xkr_eta * znum * &
-                  &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) &
-                  & - wmax
-               IF( zws * zwl < 0. ) THEN   ;   zr = znummax
-               ELSE                        ;   zl = znummax
-               ENDIF
-               zdiv = xkr_zeta + xkr_eta - xkr_eta * zl
-               znum = zl - 1.
-               zwl =  xkr_wsbio_min * xkr_zeta / zdiv &
-                  & - ( xkr_wsbio_max * xkr_eta * znum * &
-                  &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) &
-                  & - wmax
-
-               zdiv = xkr_zeta + xkr_eta - xkr_eta * zr
-               znum = zr - 1.
-               zwr =  xkr_wsbio_min * xkr_zeta / zdiv &
-                  & - ( xkr_wsbio_max * xkr_eta * znum * &
-                  &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) &
-                  & - wmax
-               !
-               IF ( ABS ( zws )  <= xacc ) EXIT iflag
-               !
-            ENDIF
-            !
-         END DO iflag
-
-         xnumm(jk) = znummax
-         IF (lwp) WRITE(numout,*) '       jk = ', jk, ' wmax = ', wmax,' xnum max = ', xnumm(jk)
-         !
-      END DO
-      !
-      ik100 = 10        !  last level where depth less than 100 m
-      DO jk = jpkm1, 1, -1
-         IF( gdept_1d(jk) > 100. )  iksed = jk - 1
-      END DO
-      IF (lwp) WRITE(numout,*)
-      IF (lwp) WRITE(numout,*) ' Level corresponding to 100m depth ',  ik100 + 1
-      IF (lwp) WRITE(numout,*)
-      !
-      t_oce_co2_exp = 0._wp
-      !
-      IF( nn_timing == 1 )  CALL timing_stop('p4z_sink_init')
-      !
-  END SUBROUTINE p4z_sink_init
-
-#endif
 
    SUBROUTINE p4z_sink2( pwsink, psinkflx, jp_tra, kiter )
@@ -804,7 +319,4 @@
       END DO
       zwsink2(:,:,1) = 0.e0
-      IF( lk_degrad ) THEN
-         zwsink2(:,:,:) = zwsink2(:,:,:) * facvol(:,:,:)
-      ENDIF
 
 
@@ -890,9 +402,5 @@
          &      sinking(jpi,jpj,jpk) , sinking2(jpi,jpj,jpk)                      ,     &                
          &      sinkcal(jpi,jpj,jpk) , sinksil (jpi,jpj,jpk)                      ,     &                
-#if defined key_kriest
-         &      xnumm(jpk)                                                        ,     &                
-#else
          &      sinkfer2(jpi,jpj,jpk)                                             ,     &                
-#endif
          &      sinkfer(jpi,jpj,jpk)                                              , STAT=p4z_sink_alloc )                
          !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90	(revision 7041)
@@ -69,7 +69,4 @@
       INTEGER ::   ji, jj, jk, jnt, jn, jl
       REAL(wp) ::  ztra
-#if defined key_kriest
-      REAL(wp) ::  zcoef1, zcoef2
-#endif
       CHARACTER (len=25) :: charout
       !!---------------------------------------------------------------------
@@ -165,15 +162,4 @@
       END DO
 
-#if defined key_kriest
-      ! 
-      zcoef1 = 1.e0 / xkr_massp 
-      zcoef2 = 1.e0 / xkr_massp / 1.1
-      DO jk = 1,jpkm1
-         trb(:,:,jk,jpnum) = MAX(  trb(:,:,jk,jpnum), trb(:,:,jk,jppoc) * zcoef1 / xnumm(jk)  )
-         trb(:,:,jk,jpnum) = MIN(  trb(:,:,jk,jpnum), trb(:,:,jk,jppoc) * zcoef2              )
-      END DO
-      !
-#endif
-      !
       !
       IF( l_trdtrc ) THEN
@@ -212,10 +198,6 @@
       !! ** input   :   file 'namelist.trc.s' containing the following
       !!             namelist: natext, natbio, natsms
-      !!                       natkriest ("key_kriest")
       !!----------------------------------------------------------------------
       NAMELIST/nampisbio/ nrdttrc, wsbio, xkmort, ferat3, wsbio2, niter1max, niter2max
-#if defined key_kriest
-      NAMELIST/nampiskrp/ xkr_eta, xkr_zeta, xkr_ncontent, xkr_mass_min, xkr_mass_max
-#endif
       NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp
       NAMELIST/nampismass/ ln_check_mass
@@ -242,34 +224,4 @@
          WRITE(numout,*) '    Maximum number of iterations for GOC      niter2max =', niter2max
       ENDIF
-
-#if defined key_kriest
-
-      !                               ! nampiskrp : kriest parameters
-      !                               ! -----------------------------
-      REWIND( numnatp_ref )              ! Namelist nampiskrp in reference namelist : Pisces Kriest
-      READ  ( numnatp_ref, nampiskrp, IOSTAT = ios, ERR = 903)
-903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in reference namelist', lwp )
-
-      REWIND( numnatp_cfg )              ! Namelist nampiskrp in configuration namelist : Pisces Kriest
-      READ  ( numnatp_cfg, nampiskrp, IOSTAT = ios, ERR = 904 )
-904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in configuration namelist', lwp )
-      IF(lwm) WRITE ( numonp, nampiskrp )
-
-      IF(lwp) THEN
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist : nampiskrp'
-         WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta
-         WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta
-         WRITE(numout,*) '    N content factor                         xkr_ncontent = ', xkr_ncontent
-         WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min
-         WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max
-         WRITE(numout,*)
-     ENDIF
-
-
-     ! Computation of some variables
-     xkr_massp = xkr_ncontent * 7.625 * xkr_mass_min**xkr_zeta
-
-#endif
 
       REWIND( numnatp_ref )              ! Namelist nampisdmp in reference namelist : Pisces damping
@@ -503,7 +455,5 @@
             &                    + trn(:,:,:,jpzoo) + trn(:,:,:,jpmes)  &
             &                    + trn(:,:,:,jppoc)                     &
-#if ! defined key_kriest
             &                    + trn(:,:,:,jpgoc)                     &
-#endif
             &                    + trn(:,:,:,jpdoc)                     ) * cvol(:,:,:)  )
          !
@@ -517,7 +467,5 @@
             &                    + trn(:,:,:,jpzoo) + trn(:,:,:,jpmes)  &
             &                    + trn(:,:,:,jppoc)                     &
-#if ! defined key_kriest
             &                    + trn(:,:,:,jpgoc)                     &
-#endif
             &                    + trn(:,:,:,jpdoc)                     ) * cvol(:,:,:)  )
          po4budget = po4budget / areatot
@@ -545,7 +493,5 @@
          ferbudget = glob_sum( (   trn(:,:,:,jpfer) + trn(:,:,:,jpnfe)  &
             &                    + trn(:,:,:,jpdfe)                     &
-#if ! defined key_kriest
             &                    + trn(:,:,:,jpbfe)                     &
-#endif
             &                    + trn(:,:,:,jpsfe)                     &
             &                    + trn(:,:,:,jpzoo) * ferat3            &
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/par_sed.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/par_sed.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/par_sed.F90	(revision 7041)
@@ -24,9 +24,5 @@
 #endif
 
-#if defined key_kriest
-   INTEGER, PARAMETER :: jpdta = 11
-#else
    INTEGER, PARAMETER :: jpdta = 12
-#endif
 
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sed.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sed.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sed.F90	(revision 7041)
@@ -40,7 +40,5 @@
 
    USE p4zsink , ONLY :  sinking    =>   sinking         !: sinking flux for POC
-#if ! defined key_kriest
    USE p4zsink , ONLY :  sinking2   =>   sinking2        !: sinking flux for GOC
-#endif
    USE p4zsink , ONLY :  sinkcal    =>   sinkcal         !: sinking flux for calcite
    USE p4zsink , ONLY :  sinksil    =>   sinksil         !: sinking flux for opal ( dsi )
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/seddta.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/seddta.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/seddta.F90	(revision 7041)
@@ -55,7 +55,5 @@
 
       REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zdta
-#if ! defined key_kriest
       REAL(wp), DIMENSION(:)  , ALLOCATABLE :: zdtap, zdtag
-#endif 
 
 
@@ -97,11 +95,7 @@
       ENDIF
 
-
-#if ! defined key_kriest   
       ! Initialization of temporaries arrays  
       ALLOCATE( zdtap(jpoce) )    ;   zdtap(:)    = 0. 
       ALLOCATE( zdtag(jpoce) )    ;   zdtag(:)    = 0.  
-#endif
-
 
       IF( MOD( kt - 1, nfreq ) == 0 ) THEN
@@ -122,5 +116,4 @@
                   trc_data(ji,jj,5)  = trn  (ji,jj,ikt,jpoxy)
                   trc_data(ji,jj,6)  = trn  (ji,jj,ikt,jpsil)
-#   if ! defined key_kriest
                   trc_data(ji,jj,7 ) = sinksil (ji,jj,ikt)
                   trc_data(ji,jj,8 ) = sinking (ji,jj,ikt)
@@ -129,11 +122,4 @@
                   trc_data(ji,jj,11) = tsn     (ji,jj,ikt,jp_tem)
                   trc_data(ji,jj,12) = tsn     (ji,jj,ikt,jp_sal)
-#   else
-                  trc_data(ji,jj,7 ) = sinksil (ji,jj,ikt)
-                  trc_data(ji,jj,8 ) = sinking (ji,jj,ikt)
-                  trc_data(ji,jj,9 ) = sinkcal (ji,jj,ikt)
-                  trc_data(ji,jj,10) = tsn     (ji,jj,ikt,jp_tem)
-                  trc_data(ji,jj,11) = tsn     (ji,jj,ikt,jp_sal)       
-#   endif
                ENDIF
             ENDDO
@@ -147,5 +133,4 @@
          CALL iom_get( numbio, jpdom_data, 'O2BOT'      , trc_data(:,:,5 ) )
          CALL iom_get( numbio, jpdom_data, 'SIBOT'      , trc_data(:,:,6 ) )
-#   if ! defined key_kriest
          CALL iom_get( numbio, jpdom_data, 'OPALFLXBOT' , trc_data(:,:,7 ) ) 
          CALL iom_get( numbio, jpdom_data, 'POCFLXBOT'  , trc_data(:,:,8 ) ) 
@@ -154,11 +139,4 @@
          CALL iom_get( numoce, jpdom_data, 'TBOT'       , trc_data(:,:,11) ) 
          CALL iom_get( numoce, jpdom_data, 'SBOT'       , trc_data(:,:,12) ) 
-#   else
-         CALL iom_get( numbio, jpdom_data, 'OPALFLXBOT' , trc_data(:,:,7 ) ) 
-         CALL iom_get( numbio, jpdom_data, 'POCFLXBOT'  , trc_data(:,:,8 ) ) 
-         CALL iom_get( numbio, jpdom_data, 'CACO3FLXBOT', trc_data(:,:,9 ) ) 
-         CALL iom_get( numoce, jpdom_data, 'TBOT'       , trc_data(:,:,10) ) 
-         CALL iom_get( numoce, jpdom_data, 'SBOT'       , trc_data(:,:,11) ) 
-#   endif
 #endif
 
@@ -186,5 +164,4 @@
          !  Solid components : 
          !-----------------------
-#if ! defined key_kriest
          !  Sinking fluxes for OPAL in mol.m-2.s-1 ; conversion in mol.cm-2.s-1
          CALL pack_arr ( jpoce, rainrm_dta(1:jpoce,jsopal), trc_data(1:jpi,1:jpj,7), iarroce(1:jpoce) ) 
@@ -200,19 +177,4 @@
          CALL pack_arr ( jpoce,  temp(1:jpoce), trc_data(1:jpi,1:jpj,11), iarroce(1:jpoce) )
          CALL pack_arr ( jpoce,  salt(1:jpoce), trc_data(1:jpi,1:jpj,12), iarroce(1:jpoce) )
-#else
-         !  Sinking fluxes for OPAL in mol.m-2.s-1 ; conversion in mol.cm-2.s-1
-         CALL pack_arr ( jpoce, rainrm_dta(1:jpoce,jsopal), trc_data(1:jpi,1:jpj,7), iarroce(1:jpoce) ) 
-         rainrm_dta(1:jpoce,jsopal) = rainrm_dta(1:jpoce,jsopal) * 1e-4
-         !  Sinking fluxes for POC in mol.m-2.s-1 ; conversion in mol.cm-2.s-1
-         CALL pack_arr ( jpoce, rainrm_dta(1:jpoce,jspoc), trc_data(1:jpi,1:jpj,8) , iarroce(1:jpoce) )      
-         rainrm_dta(1:jpoce,jspoc) = rainrm_dta(1:jpoce,jspoc) * 1e-4
-         !  Sinking fluxes for Calcite in mol.m-2.s-1 ; conversion in mol.cm-2.s-1
-         CALL pack_arr ( jpoce,  rainrm_dta(1:jpoce,jscal), trc_data(1:jpi,1:jpj,9), iarroce(1:jpoce) )
-         rainrm_dta(1:jpoce,jscal) = rainrm_dta(1:jpoce,jscal) * 1e-4
-         ! vector temperature [°C] and salinity 
-         CALL pack_arr ( jpoce,  temp(1:jpoce), trc_data(1:jpi,1:jpj,10), iarroce(1:jpoce) )
-         CALL pack_arr ( jpoce,  salt(1:jpoce), trc_data(1:jpi,1:jpj,11), iarroce(1:jpoce) )
-
-#endif
         
          ! Clay rain rate in [mol/(cm**2.s)] 
@@ -252,7 +214,5 @@
 
       DEALLOCATE( zdta ) 
-#if ! defined key_kriest
       DEALLOCATE( zdtap    ) ;  DEALLOCATE( zdtag    ) 
-#endif      
 
       IF( kt == nitsedend )   THEN
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90	(revision 7041)
@@ -13,128 +13,52 @@
    IMPLICIT NONE
 
-#if defined key_pisces_reduced
+   INTEGER, PUBLIC    ::   jp_pisces   !: number of passive tracers in PISCES
+
+#if defined key_pisces
    !!---------------------------------------------------------------------
-   !!   'key_pisces_reduced'   :                                LOBSTER bio-model
+   !!   'key_pisces   :                                PISCES bio-model
    !!---------------------------------------------------------------------
    LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag 
-   LOGICAL, PUBLIC, PARAMETER ::   lk_p4z        = .FALSE. !: p4z flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  6      !: number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  19     !: additional 2d output 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =   3     !: additional 3d output 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =   17    !: number of sms trends for PISCES
-
-   ! assign an index in trc arrays for each LOBSTER prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jpdet     =  1        !: detritus                    [mmoleN/m3]
-   INTEGER, PUBLIC, PARAMETER ::   jpzoo     =  2        !: zooplancton concentration   [mmoleN/m3]
-   INTEGER, PUBLIC, PARAMETER ::   jpphy     =  3        !: phytoplancton concentration [mmoleN/m3]
-   INTEGER, PUBLIC, PARAMETER ::   jpno3     =  4        !: nitrate concentration       [mmoleN/m3]
-   INTEGER, PUBLIC, PARAMETER ::   jpnh4     =  5        !: ammonium concentration      [mmoleN/m3]
-   INTEGER, PUBLIC, PARAMETER ::   jpdom     =  6        !: dissolved organic matter    [mmoleN/m3]
-
    ! productive layer depth
-   INTEGER, PUBLIC, PARAMETER ::   jpkb      = 12        !: first vertical layers where biology is active
-   INTEGER, PUBLIC, PARAMETER ::   jpkbm1    = jpkb - 1  !: first vertical layers where biology is active
-
-#elif defined key_pisces  &&  defined key_kriest
-   !!---------------------------------------------------------------------
-   !!   'key_pisces' & 'key_kriest'                 PISCES bio-model + ???
-   !!---------------------------------------------------------------------
-   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag 
-   LOGICAL, PUBLIC, PARAMETER ::   lk_p4z        = .TRUE. !: p4z flag 
-   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .TRUE.  !: Kriest flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  23     !: number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  13     !: additional 2d output 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  18     !: additional 3d output 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =   1     !: number of sms trends for PISCES
-
-   ! assign an index in trc arrays for each LOBSTER prognostic variables
-   !    WARNING: be carefull about the order when reading the restart
-        !   !!gm  this warning should be obsolet with IOM
-   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity 
-   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: Diatoms Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnum = 15    !: Big iron particles Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 16    !: number of particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 17    !: Diatoms iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 18    !: (big) Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 19    !: Nano iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnch = 20    !: Nano Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdch = 21    !: Diatoms Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 22    !: Nitrates Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 23    !: Ammonium Concentration
-
-#elif defined key_pisces
-   !!---------------------------------------------------------------------
-   !!   'key_pisces'   :                         standard PISCES bio-model
-   !!---------------------------------------------------------------------
-   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag 
-   LOGICAL, PUBLIC, PARAMETER ::   lk_p4z        = .TRUE.  !: p4z flag 
-   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .FALSE. !: Kriest flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     = 24      !: number of PISCES passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  = 13      !: additional 2d output 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  = 11      !: additional 3d output 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  1      !: number of sms trends for PISCES
-
-   ! assign an index in trc arrays for each LOBSTER prognostic variables
-   !    WARNING: be carefull about the order when reading the restart
-        !   !!gm  this warning should be obsolet with IOM
-   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity 
-   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: Diatoms Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpbfe = 15    !: Big iron particles Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpgoc = 16    !: big particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 17    !: Small iron particles Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 18    !: Diatoms iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 19    !: (big) Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 20    !: Nano iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnch = 21    !: Nano Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdch = 22    !: Diatoms Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 23    !: Nitrates Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 24    !: Ammonium Concentration
+   INTEGER, PUBLIC ::   jpkb     !: first vertical layers where biology is active
+   INTEGER, PUBLIC ::   jpkbm1   !: first vertical layers where biology is active
 
 #else
    !!---------------------------------------------------------------------
-   !!   Default                                   No CFC geochemical model
-   !!---------------------------------------------------------------------
    LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .FALSE.  !: PISCES flag 
-   LOGICAL, PUBLIC, PARAMETER ::   lk_p4z        = .FALSE.  !: p4z flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  0       !: No CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  0       !: No CFC additional 2d output arrays 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  0       !: No CFC additional 3d output arrays 
-   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  0       !: number of sms trends for PISCES
 #endif
 
+   ! assign an index in trc arrays for each LOBSTER prognostic variables
+   INTEGER, PUBLIC ::   jpdet     !: detritus                   
+   INTEGER, PUBLIC ::   jpdom     !: dissolved organic matter 
+   INTEGER, PUBLIC ::   jpdic     !: dissolved inoganic carbon concentration 
+   INTEGER, PUBLIC ::   jptal     !: total alkalinity 
+   INTEGER, PUBLIC ::   jpoxy     !: oxygen carbon concentration 
+   INTEGER, PUBLIC ::   jpcal     !: calcite  concentration 
+   INTEGER, PUBLIC ::   jppo4     !: phosphate concentration 
+   INTEGER, PUBLIC ::   jppoc     !: small particulate organic phosphate concentration
+   INTEGER, PUBLIC ::   jpsil     !: silicate concentration
+   INTEGER, PUBLIC ::   jpphy     !: phytoplancton concentration 
+   INTEGER, PUBLIC ::   jpzoo     !: zooplancton concentration
+   INTEGER, PUBLIC ::   jpdoc     !: dissolved organic carbon concentration 
+   INTEGER, PUBLIC ::   jpdia     !: Diatoms Concentration
+   INTEGER, PUBLIC ::   jpmes     !: Mesozooplankton Concentration
+   INTEGER, PUBLIC ::   jpdsi     !: Diatoms Silicate Concentration
+   INTEGER, PUBLIC ::   jpfer     !: Iron Concentration
+   INTEGER, PUBLIC ::   jpbfe     !: Big iron particles Concentration
+   INTEGER, PUBLIC ::   jpgoc     !: big particulate organic phosphate concentration
+   INTEGER, PUBLIC ::   jpsfe     !: Small iron particles Concentration
+   INTEGER, PUBLIC ::   jpdfe     !: Diatoms iron Concentration
+   INTEGER, PUBLIC ::   jpgsi     !: (big) Silicate Concentration
+   INTEGER, PUBLIC ::   jpnfe     !: Nano iron Concentration
+   INTEGER, PUBLIC ::   jpnch     !: Nano Chlorophyll Concentration
+   INTEGER, PUBLIC ::   jpdch     !: Diatoms Chlorophyll Concentration
+   INTEGER, PUBLIC ::   jpno3     !: Nitrates Concentration
+   INTEGER, PUBLIC ::   jpnh4     !: Ammonium Concentration
+   !!---------------------------------------------------------------------
+   !!   Default                                   No CFC geochemical model
    ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = 1                  !: First index of PISCES tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_pisces          !: Last  index of PISCES tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = 1               !: First index of 2D diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_pisces_2d    !: Last  index of 2D diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = 1               !: First index of 3D diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_pisces_3d    !: Last  index of 3d diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = 1              !: First index of bio diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_pisces_trd  !: Last  index of bio diag
-
+   INTEGER, PUBLIC  ::   jp_pcs0                    !: First index of PISCES tracers
+   INTEGER, PUBLIC  ::   jp_pcs1                   !: Last  index of PISCES tracers
 
    !!======================================================================
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90	(revision 7041)
@@ -7,5 +7,5 @@
    !!             3.2  !  2009-04 (C. Ethe & NEMO team) style
    !!----------------------------------------------------------------------
-#if defined key_pisces || defined key_pisces_reduced 
+#if defined key_pisces 
    !!----------------------------------------------------------------------
    !!   'key_pisces'                                         PISCES model
@@ -29,5 +29,9 @@
    !                                                       !:  PISCES  : silicon dependant half saturation
 
-#if defined key_pisces 
+   !!* Model used
+   LOGICAL  ::  ln_p2z            !: Flag to use LOBSTER model
+   LOGICAL  ::  ln_p4z            !: Flag to use PISCES  model
+
+
    !!*  Time variables
    INTEGER  ::   nrdttrc           !: ???
@@ -108,14 +112,5 @@
    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tgfunc2   !: Temp. dependancy of mesozooplankton rates
 
-#if defined key_kriest
-   !!*  Kriest parameter for aggregation
-   REAL(wp) ::   xkr_eta                            !: Sinking  exponent 
-   REAL(wp) ::   xkr_zeta                           !:  N content exponent 
-   REAL(wp) ::   xkr_ncontent                       !:  N content factor   
-   REAL(wp) ::   xkr_massp                          !: 
-   REAL(wp) ::   xkr_mass_min, xkr_mass_max         !:  Minimum, Maximum mass for Aggregates 
-#endif
 
-#endif
    !!----------------------------------------------------------------------
    !! NEMO/TOP 3.3 , NEMO Consortium (2010)
@@ -136,31 +131,31 @@
       ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj), xksi(jpi,jpj), STAT=ierr(1) )
       !
-#if defined key_pisces
-      !*  Biological fluxes for primary production
-      ALLOCATE( xksimax(jpi,jpj)     , biron   (jpi,jpj,jpk),       &
-         &      xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),       &
-         &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       &
-         &      xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk),       &
-         &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       &
-         &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       &
-         &      xlimsi  (jpi,jpj,jpk), concdfe (jpi,jpj,jpk),       &
-         &      concnfe (jpi,jpj,jpk),                           STAT=ierr(2) ) 
+      IF( ln_p4z ) THEN
+         !*  Biological fluxes for primary production
+         ALLOCATE( xksimax(jpi,jpj)     , biron   (jpi,jpj,jpk),       &
+            &      xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),       &
+            &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       &
+            &      xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk),       &
+            &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       &
+            &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       &
+            &      xlimsi  (jpi,jpj,jpk), concdfe (jpi,jpj,jpk),       &
+            &      concnfe (jpi,jpj,jpk),                           STAT=ierr(2) ) 
          !
-      !*  SMS for the organic matter
-      ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac(jpi,jpj,jpk),       &
-         &      xlimbac (jpi,jpj,jpk), xdiss  (jpi,jpj,jpk),       & 
-         &      xlimbacl(jpi,jpj,jpk), prodcal(jpi,jpj,jpk),     STAT=ierr(3) )
+         !*  SMS for the organic matter
+         ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac(jpi,jpj,jpk),       &
+            &      xlimbac (jpi,jpj,jpk), xdiss  (jpi,jpj,jpk),       & 
+            &      xlimbacl(jpi,jpj,jpk), prodcal(jpi,jpj,jpk),     STAT=ierr(3) )
 
-      !* Variable for chemistry of the CO2 cycle
-      ALLOCATE( akb3(jpi,jpj,jpk)    , ak13  (jpi,jpj,jpk) ,       &
-         &      ak23(jpi,jpj,jpk)    , aksp  (jpi,jpj,jpk) ,       &
-         &      akw3(jpi,jpj,jpk)    , borat (jpi,jpj,jpk) ,       &
-         &      hi  (jpi,jpj,jpk)    , excess(jpi,jpj,jpk) ,       &
-         &      aphscale(jpi,jpj,jpk),                           STAT=ierr(4) )
+         !* Variable for chemistry of the CO2 cycle
+         ALLOCATE( akb3(jpi,jpj,jpk)    , ak13  (jpi,jpj,jpk) ,       &
+            &      ak23(jpi,jpj,jpk)    , aksp  (jpi,jpj,jpk) ,       &
+            &      akw3(jpi,jpj,jpk)    , borat (jpi,jpj,jpk) ,       &
+            &      hi  (jpi,jpj,jpk)    , excess(jpi,jpj,jpk) ,       &
+            &      aphscale(jpi,jpj,jpk),                           STAT=ierr(4) )
+            !
+         !* Temperature dependancy of SMS terms
+         ALLOCATE( tgfunc(jpi,jpj,jpk)  , tgfunc2(jpi,jpj,jpk) ,    STAT=ierr(5) )
          !
-      !* Temperature dependancy of SMS terms
-      ALLOCATE( tgfunc(jpi,jpj,jpk)  , tgfunc2(jpi,jpj,jpk) ,    STAT=ierr(5) )
-         !
-#endif
+      ENDIF
       !
       sms_pisces_alloc = MAXVAL( ierr )
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90	(revision 7041)
@@ -5,8 +5,6 @@
    !!======================================================================
    !! History :  3.5  ! 2013    (M. Vancoppenolle, O. Aumont, G. Madec), original code
-   !! Comment ! probably not properly done when the second particle export
-   !! scheme (kriest) is used
-   !!----------------------------------------------------------------------
-#if defined key_pisces || defined key_pisces_reduced
+   !!----------------------------------------------------------------------
+#if defined key_pisces 
    !!----------------------------------------------------------------------
    !!   'key_pisces'                                       PISCES bio-model
@@ -37,5 +35,5 @@
       !!----------------------------------------------------------------------
 
-      IF( lk_p4z ) THEN  ;   CALL p4z_ice_ini   !  PISCES
+      IF( ln_p4z ) THEN  ;   CALL p4z_ice_ini   !  PISCES
       ELSE               ;   CALL p2z_ice_ini   !  LOBSTER
       ENDIF
@@ -45,6 +43,4 @@
 
    SUBROUTINE p4z_ice_ini
-
-#if defined key_pisces 
       !!----------------------------------------------------------------------
       !!                   ***  ROUTINE p4z_ice_ini ***
@@ -75,6 +71,6 @@
 
                                         !--- Dummy variables
-      REAL(wp), DIMENSION(jp_pisces,2)  :: zratio  ! effective ice-ocean tracer cc ratio
-      REAL(wp), DIMENSION(jp_pisces,4)  :: zpisc   ! prescribes concentration 
+      REAL(wp), DIMENSION(:,:), ALLOCATABLE  :: zratio  ! effective ice-ocean tracer cc ratio
+      REAL(wp), DIMENSION(:,:), ALLOCATABLE  :: zpisc   ! prescribes concentration 
       !                                            !  1:global, 2:Arctic, 3:Antarctic, 4:Baltic
 
@@ -99,4 +95,6 @@
       ! fluxes
 
+      ALLOCATE( zratio(jp_pisces,2),  zpisc(jp_pisces,4) )
+  
       !--- Global values
       zpisc(jpdic,1) =  1.99e-3_wp 
@@ -107,10 +105,6 @@
       zpisc(jppo4,1) =  5.77e-7_wp / po4r 
       zpisc(jppoc,1) =  1.27e-6_wp  
-#  if ! defined key_kriest
       zpisc(jpgoc,1) =  5.23e-8_wp  
       zpisc(jpbfe,1) =  9.84e-13_wp 
-#  else
-      zpisc(jpnum,1) = 0. ! could not get this value since did not use it
-#  endif
       zpisc(jpsil,1) =  7.36e-6_wp  
       zpisc(jpdsi,1) =  1.07e-7_wp 
@@ -137,10 +131,6 @@
       zpisc(jppo4,2) =  4.09e-7_wp / po4r 
       zpisc(jppoc,2) =  4.05e-7_wp  
-#  if ! defined key_kriest
       zpisc(jpgoc,2) =  2.84e-8_wp  
       zpisc(jpbfe,2) =  7.03e-13_wp 
-#  else
-      zpisc(jpnum,2) =  0.00e-00_wp 
-#  endif
       zpisc(jpsil,2) =  6.87e-6_wp  
       zpisc(jpdsi,2) =  1.73e-7_wp 
@@ -167,10 +157,6 @@
       zpisc(jppo4,3) =  1.88e-6_wp / po4r  
       zpisc(jppoc,3) =  1.13e-6_wp  
-#  if ! defined key_kriest
       zpisc(jpgoc,3) =  2.89e-8_wp  
       zpisc(jpbfe,3) =  5.63e-13_wp 
-#  else
-      zpisc(jpnum,3) =  0.00e-00_wp 
-#  endif
       zpisc(jpsil,3) =  4.96e-5_wp  
       zpisc(jpdsi,3) =  5.63e-7_wp 
@@ -197,10 +183,6 @@
       zpisc(jppo4,4) = 2.85e-9_wp / po4r
       zpisc(jppoc,4) = 4.84e-7_wp
-#  if ! defined key_kriest
       zpisc(jpgoc,4) = 1.05e-8_wp
       zpisc(jpbfe,4) = 4.97e-13_wp
-#  else
-      zpisc(jpnum,4) = 0. ! could not get this value
-#  endif
       zpisc(jpsil,4) = 4.91e-5_wp
       zpisc(jpdsi,4) = 3.25e-7_wp
@@ -279,10 +261,11 @@
       !
       END DO ! jn
-#endif
+      !
+      DEALLOCATE( zratio, zpisc )
+      !
 
    END SUBROUTINE p4z_ice_ini
 
    SUBROUTINE p2z_ice_ini
-#if defined key_pisces_reduced 
       !!----------------------------------------------------------------------
       !!                   ***  ROUTINE p2z_ice_ini ***
@@ -290,5 +273,4 @@
       !! ** Purpose :   Initialisation of the LOBSTER biochemical model
       !!----------------------------------------------------------------------
-#endif
    END SUBROUTINE p2z_ice_ini
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90	(revision 7041)
@@ -11,5 +11,5 @@
    !!             3.5  !  2012-05  (C. Ethe) Merge PISCES-LOBSTER
    !!----------------------------------------------------------------------
-#if defined key_pisces || defined key_pisces_reduced
+#if defined key_pisces 
    !!----------------------------------------------------------------------
    !!   'key_pisces'                                       PISCES bio-model
@@ -41,5 +41,5 @@
       !!----------------------------------------------------------------------
 
-      IF( lk_p4z ) THEN  ;   CALL p4z_ini   !  PISCES
+      IF( ln_p4z ) THEN  ;   CALL p4z_ini   !  PISCES
       ELSE               ;   CALL p2z_ini   !  LOBSTER
       ENDIF
@@ -53,5 +53,4 @@
       !! ** Purpose :   Initialisation of the PISCES biochemical model
       !!----------------------------------------------------------------------
-#if defined key_pisces 
       !
       USE p4zsms          ! Main P4Z routine
@@ -79,7 +78,9 @@
       REAL(wp), SAVE :: no3    =  30.9e-6_wp * 7.625_wp
       !
-      INTEGER  ::  ji, jj, jk, ierr
+      INTEGER  ::  ji, jj, jk, jn, ierr
       REAL(wp) ::  zcaralk, zbicarb, zco3
       REAL(wp) ::  ztmas, ztmas1
+      CHARACTER(len = 20)  ::  cltra
+
       !!----------------------------------------------------------------------
 
@@ -105,4 +106,50 @@
       !
 
+      ! assign an index in trc arrays for each prognostic variables
+      DO jn = 1, jptra
+        cltra = ctrcnm(jn) 
+        IF( cltra == 'DIC'      )   jpdic = jn      !: dissolved inoganic carbon concentration 
+        IF( cltra == 'Alkalini' )   jptal = jn      !: total alkalinity 
+        IF( cltra == 'O2'       )   jpoxy = jn      !: oxygen carbon concentration 
+        IF( cltra == 'CaCO3'    )   jpcal = jn      !: calcite  concentration 
+        IF( cltra == 'PO4'      )   jppo4 = jn      !: phosphate concentration 
+        IF( cltra == 'POC'      )   jppoc = jn      !: small particulate organic phosphate concentration
+        IF( cltra == 'Si'       )   jpsil = jn      !: silicate concentration
+        IF( cltra == 'PHY'      )   jpphy = jn      !: phytoplancton concentration 
+        IF( cltra == 'ZOO'      )   jpzoo = jn      !: zooplancton concentration
+        IF( cltra == 'DOC'      )   jpdoc = jn      !: dissolved organic carbon concentration 
+        IF( cltra == 'PHY2'     )   jpdia = jn      !: Diatoms Concentration
+        IF( cltra == 'ZOO2'     )   jpmes = jn      !: Mesozooplankton Concentration
+        IF( cltra == 'DSi'      )   jpdsi = jn      !: Diatoms Silicate Concentration
+        IF( cltra == 'Fer'      )   jpfer = jn      !: Iron Concentration
+        IF( cltra == 'BFe'      )   jpbfe = jn      !: Big iron particles Concentration
+        IF( cltra == 'GOC'      )   jpgoc = jn      !: Big particulate organic phosphate concentration
+        IF( cltra == 'SFe'      )   jpsfe = jn      !: Small iron particles Concentration
+        IF( cltra == 'DFe'      )   jpdfe = jn      !: Diatoms iron Concentration
+        IF( cltra == 'GSi'      )   jpgsi = jn      !: (big) Silicate Concentration
+        IF( cltra == 'NFe'      )   jpnfe = jn      !: Nano iron Concentration
+        IF( cltra == 'NCHL'     )   jpnch = jn      !: Nano Chlorophyll Concentration
+        IF( cltra == 'DCHL'     )   jpdch = jn      !: Diatoms Chlorophyll Concentration
+        IF( cltra == 'NO3'      )   jpno3 = jn      !: Nitrates Concentration
+        IF( cltra == 'NH4'      )   jpnh4 = jn      !: Ammonium Concentration
+      ENDDO
+
+      jp_pisces = 24
+      jp_pcs0 = MIN( jpdic, jptal, jpoxy, jpcal, jppo4, jppoc, jpsil, &
+         &           jpphy, jpzoo, jpdoc, jpdia, jpmes, jpdsi, jpfer, &
+         &           jpbfe, jpgoc, jpsfe, jpdfe, jpgsi, jpnfe, jpnch, &
+         &           jpdch, jpno3, jpnh4 )
+
+      jp_pcs1     =  jp_pcs0 + jp_pisces - 1
+
+
+      IF( lwp ) THEN
+        WRITE(numout,*) ''
+        WRITE(numout,*) ' First index of PISCES model in the passive tracer array   jp_pcs0 = ', jp_pcs0
+        WRITE(numout,*) ' Last  index of PISCES model in the passive tracer array   jp_pcs1 = ', jp_pcs1
+        WRITE(numout,*) 
+      ENDIF
+      
+
       CALL p4z_sms_init       !  Maint routine
       !                                            ! Time-step
@@ -120,6 +167,5 @@
       ! Initialization of tracer concentration in case of  no restart 
       !--------------------------------------------------------------
-      IF( .NOT. ln_rsttr ) THEN  
-         
+      IF( .NOT.ln_rsttr ) THEN  
          trn(:,:,:,jpdic) = sco2
          trn(:,:,:,jpdoc) = bioma0
@@ -129,10 +175,6 @@
          trn(:,:,:,jppo4) = po4 / po4r
          trn(:,:,:,jppoc) = bioma0
-#  if ! defined key_kriest
          trn(:,:,:,jpgoc) = bioma0
          trn(:,:,:,jpbfe) = bioma0 * 5.e-6
-#  else
-         trn(:,:,:,jpnum) = bioma0 / ( 6. * xkr_massp )
-#  endif
          trn(:,:,:,jpsil) = silic1
          trn(:,:,:,jpdsi) = bioma0 * 0.15
@@ -176,5 +218,4 @@
       IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done'
       IF(lwp) WRITE(numout,*) 
-#endif
       !
    END SUBROUTINE p4z_ini
@@ -186,5 +227,4 @@
       !! ** Purpose :   Initialisation of the LOBSTER biochemical model
       !!----------------------------------------------------------------------
-#if defined key_pisces_reduced 
       !
       USE p2zopt
@@ -193,5 +233,6 @@
       USE p2zsed
       !
-      INTEGER  ::  ji, jj, jk, ierr
+      INTEGER  ::  ji, jj, jk, jn, ierr
+      CHARACTER(len = 10)  ::  cltra
       !!----------------------------------------------------------------------
 
@@ -205,4 +246,38 @@
       IF( lk_mpp    )   CALL mpp_sum( ierr )
       IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'p2z_ini: unable to allocate LOBSTER arrays' )
+
+      DO jn = 1, jptra
+        cltra = ctrcnm(jn) 
+        IF( cltra == 'DET' )   jpdet = jn       !: detritus                    [mmoleN/m3]
+        IF( cltra == 'ZOO' )   jpzoo = jn       !: zooplancton concentration   [mmoleN/m3]
+        IF( cltra == 'PHY' )   jpphy = jn       !: phytoplancton concentration [mmoleN/m3]
+        IF( cltra == 'NO3' )   jpno3 = jn       !: nitrate concentration       [mmoleN/m3]
+        IF( cltra == 'NH4' )   jpnh4 = jn       !: ammonium concentration      [mmoleN/m3]
+        IF( cltra == 'DOM' )   jpdom = jn       !: dissolved organic matter    [mmoleN/m3]
+      ENDDO
+
+
+      jp_pcs0 = MIN( jpdet, jpzoo, jpphy, jpno3, jpnh4, jpdom )
+      jp_pcs1 =  jp_pcs0 + jp_pisces - 1
+
+
+      IF( lwp ) THEN
+        WRITE(numout,*) ''
+        WRITE(numout,*) ' First index of LOBSTER model in the passive tracer array   jp_pcs0 = ', jp_pcs0
+        WRITE(numout,*) ' Last  index of LOBSTER model in the passive tracer array   jp_pcs1 = ', jp_pcs1
+        WRITE(numout,*) 
+      ENDIF
+
+
+      jpkb = 10        !  last level where depth less than 200 m
+      DO jk = jpkm1, 1, -1
+         IF( gdept_1d(jk) > 200. ) jpkb = jk 
+      END DO
+      IF (lwp) WRITE(numout,*)
+      IF (lwp) WRITE(numout,*) ' first vertical layers where biology is active (200m depth ) ', jpkb
+      IF (lwp) WRITE(numout,*)
+      jpkbm1 = jpkb - 1
+      !
+
 
       ! LOBSTER initialisation for GYRE : init NO3=f(density) by asklod AS Kremeur 2005-07
@@ -214,5 +289,5 @@
          trn(:,:,:,jpphy) = 0.1 * tmask(:,:,:)
          trn(:,:,:,jpdom) = 1.0 * tmask(:,:,:)
-         WHERE( rhd(:,:,:) <= 24.5e-3 )  ;  trn(:,:,:,jpno3 ) = 2._wp * tmask(:,:,:)
+         WHERE( rhd(:,:,:) <= 24.5e-3 )  ;  trn(:,:,:,jpno3) = 2._wp * tmask(:,:,:)
          ELSE WHERE                      ;  trn(:,:,:,jpno3) = ( 15.55 * ( rhd(:,:,:) * 1000. ) - 380.11 ) * tmask(:,:,:)
          END WHERE                       
@@ -227,5 +302,4 @@
       IF(lwp) WRITE(numout,*) 'Initialization of LOBSTER tracers done'
       IF(lwp) WRITE(numout,*) 
-#endif
       !
    END SUBROUTINE p2z_ini
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90	(revision 7041)
@@ -9,5 +9,5 @@
    !!             2.0  !  2007-12  (C. Ethe, G. Madec) from trcnam.pisces.h90
    !!----------------------------------------------------------------------
-#if defined key_pisces || defined key_pisces_reduced
+#if defined key_pisces 
    !!----------------------------------------------------------------------
    !!   'key_pisces'   :                                   PISCES bio-model
@@ -45,28 +45,17 @@
       !! ** input   :   file 'namelist.trc.sms' containing the following
       !!             namelist: natext, natbio, natsms
-      !!                       natkriest ("key_kriest")
       !!----------------------------------------------------------------------
       !!
       INTEGER :: jl, jn
-      INTEGER :: ios                 ! Local integer output status for namelist read
-      TYPE(DIAG), DIMENSION(jp_pisces_2d)  :: pisdia2d
-      TYPE(DIAG), DIMENSION(jp_pisces_3d)  :: pisdia3d
-      TYPE(DIAG), DIMENSION(jp_pisces_trd) :: pisdiabio
+      INTEGER :: ios, ioptio                 ! Local integer output status for namelist read
       CHARACTER(LEN=20)   ::   clname
       !!
-      NAMELIST/nampisdia/ pisdia3d, pisdia2d     ! additional diagnostics
-#if defined key_pisces_reduced
-      NAMELIST/nampisdbi/ pisdiabio
-#endif
-
+      NAMELIST/nampismod/ln_p2z, ln_p4z
       !!----------------------------------------------------------------------
 
       IF(lwp) WRITE(numout,*)
       clname = 'namelist_pisces'
-#if defined key_pisces
+
       IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read PISCES namelist'
-#else
-      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read LOBSTER namelist'
-#endif
       IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
       CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
@@ -74,88 +63,26 @@
       IF(lwm) CALL ctl_opn( numonp     , 'output.namelist.pis' , 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
       !
-      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
-         !
-         ! Namelist nampisdia
-         ! -------------------
-         REWIND( numnatp_ref )              ! Namelist nampisdia in reference namelist : Pisces diagnostics
-         READ  ( numnatp_ref, nampisdia, IOSTAT = ios, ERR = 901)
-901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in reference namelist', lwp )
 
-         REWIND( numnatp_cfg )              ! Namelist nampisdia in configuration namelist : Pisces diagnostics
-         READ  ( numnatp_cfg, nampisdia, IOSTAT = ios, ERR = 902 )
-902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in configuration namelist', lwp )
-         IF(lwm) WRITE ( numonp, nampisdia )
+      REWIND( numnatp_ref )              ! Namelist nampisbio in reference namelist : Pisces variables
+      READ  ( numnatp_ref, nampismod, IOSTAT = ios, ERR = 901)
+901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismod in reference namelist', lwp )
 
-         DO jl = 1, jp_pisces_2d
-            jn = jp_pcs0_2d + jl - 1
-            ctrc2d(jn) = pisdia2d(jl)%sname
-            ctrc2l(jn) = pisdia2d(jl)%lname
-            ctrc2u(jn) = pisdia2d(jl)%units
-         END DO
+      REWIND( numnatp_cfg )              ! Namelist nampisbio in configuration namelist : Pisces variables
+      READ  ( numnatp_cfg, nampismod, IOSTAT = ios, ERR = 902 )
+902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismod in configuration namelist', lwp )
+      IF(lwm) WRITE ( numonp, nampismod )
 
-         DO jl = 1, jp_pisces_3d
-            jn = jp_pcs0_3d + jl - 1
-            ctrc3d(jn) = pisdia3d(jl)%sname
-            ctrc3l(jn) = pisdia3d(jl)%lname
-            ctrc3u(jn) = pisdia3d(jl)%units
-         END DO
-
-         IF(lwp) THEN                   ! control print
-            WRITE(numout,*)
-            WRITE(numout,*) ' Namelist : natadd'
-            DO jl = 1, jp_pisces_3d
-               jn = jp_pcs0_3d + jl - 1
-               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
-                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
-            END DO
-            WRITE(numout,*) ' '
-
-            DO jl = 1, jp_pisces_2d
-               jn = jp_pcs0_2d + jl - 1
-               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
-                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
-            END DO
-            WRITE(numout,*) ' '
-         ENDIF
-         !
+      IF(lwp) THEN                         ! control print
+         WRITE(numout,*) ' Namelist : nampismod'
+         WRITE(numout,*) '    PISCES   model                 ln_p4z  =', ln_p4z
+         WRITE(numout,*) '    LOBSTER  model                 ln_p2z  =', ln_p2z
       ENDIF
-
-#if defined key_pisces_reduced
-
-      IF( ( .NOT.lk_iomput .AND. ln_diabio ) .OR. lk_trdmxl_trc ) THEN
-         !
-         ! Namelist nampisdbi
-         ! -------------------
-         REWIND( numnatp_ref )              ! Namelist nampisdbi in reference namelist : Pisces add. diagnostics
-         READ  ( numnatp_ref, nampisdbi, IOSTAT = ios, ERR = 903)
-903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in reference namelist', lwp )
-
-         REWIND( numnatp_cfg )              ! Namelist nampisdbi in configuration namelist : Pisces add. diagnostics
-         READ  ( numnatp_cfg, nampisdbi, IOSTAT = ios, ERR = 904 )
-904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in configuration namelist', lwp )
-         IF(lwm) WRITE ( numonp, nampisdbi )
-
-         DO jl = 1, jp_pisces_trd
-            jn = jp_pcs0_trd + jl - 1
-            ctrbio(jl) = pisdiabio(jl)%sname
-            ctrbil(jl) = pisdiabio(jl)%lname
-            ctrbiu(jl) = pisdiabio(jl)%units
-         END DO
-
-         IF(lwp) THEN                   ! control print
-            WRITE(numout,*)
-            WRITE(numout,*) ' Namelist : nampisdbi'
-            DO jl = 1, jp_pisces_trd
-               jn = jp_pcs0_trd + jl - 1
-               WRITE(numout,*) '  biological trend No : ', jn, '    short name : ', ctrbio(jn), &
-                 &             '  long name  : ', ctrbio(jn), '   unit : ', ctrbio(jn)
-            END DO
-            WRITE(numout,*) ' '
-         END IF
-         !
-      END IF
-
-#endif
-
+    
+      ioptio = 0
+      IF( ln_p2z )    ioptio = ioptio + 1
+      IF( ln_p4z )    ioptio = ioptio + 1
+      !
+      IF( ioptio /= 1 )   CALL ctl_stop( 'Choose ONE PISCES model namelist nampismod' )
+       !
    END SUBROUTINE trc_nam_pisces
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90	(revision 7041)
@@ -7,5 +7,5 @@
    !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
    !!----------------------------------------------------------------------
-#if defined key_pisces || defined key_pisces_reduced
+#if defined key_pisces 
    !!----------------------------------------------------------------------
    !!   'key_pisces'                                       PISCES bio-model
@@ -14,4 +14,5 @@
    !!----------------------------------------------------------------------
    USE par_pisces
+   USE sms_pisces
    USE p4zsms
    USE p2zsms
@@ -48,5 +49,5 @@
       !!---------------------------------------------------------------------
       !
-      IF( lk_p4z ) THEN  ;   CALL p4z_sms( kt )   !  PISCES
+      IF( ln_p4z ) THEN  ;   CALL p4z_sms( kt )   !  PISCES
       ELSE               ;   CALL p2z_sms( kt )   !  LOBSTER
       ENDIF
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90	(revision 7041)
@@ -6,7 +6,7 @@
    !! History :   1.0  !  2009-05 (C. Ethe)  Original code
    !!----------------------------------------------------------------------
-#if defined key_top && defined key_iomput && ( defined key_pisces || defined key_pisces_reduced )
+#if defined key_top && defined key_pisces && defined key_iomput 
    !!----------------------------------------------------------------------
-   !!   'key_pisces or key_pisces_reduced'                     PISCES model
+   !!   'key_pisces                           PISCES model
    !!----------------------------------------------------------------------
    !! trc_wri_pisces   :  outputs of concentration fields
@@ -42,47 +42,47 @@
       ! write the tracer concentrations in the file
       ! ---------------------------------------
-#if defined key_pisces_reduced
-      DO jn = jp_pcs0, jp_pcs1
-         cltra = TRIM( ctrcnm(jn) )                  ! short title for tracer
-         CALL iom_put( cltra, trn(:,:,:,jn) )
-      END DO
-#else
-      DO jn = jp_pcs0, jp_pcs1
-         zfact = 1.0e+6 
-         IF( jn == jpno3 .OR. jn == jpnh4 ) zfact = rno3 * 1.0e+6 
-         IF( jn == jppo4  )                 zfact = po4r * 1.0e+6
-         cltra = TRIM( ctrcnm(jn) )                  ! short title for tracer
-         IF( iom_use( cltra ) )  CALL iom_put( cltra, trn(:,:,:,jn) * zfact )
-      END DO
+      IF( ln_p2z ) THEN
+         DO jn = jp_pcs0, jp_pcs1
+            cltra = TRIM( ctrcnm(jn) )                  ! short title for tracer
+            CALL iom_put( cltra, trn(:,:,:,jn) )
+         END DO
+      ELSE
+         DO jn = jp_pcs0, jp_pcs1
+            zfact = 1.0e+6 
+            IF( jn == jpno3 .OR. jn == jpnh4 ) zfact = rno3 * 1.0e+6 
+            IF( jn == jppo4  )                 zfact = po4r * 1.0e+6
+            cltra = TRIM( ctrcnm(jn) )                  ! short title for tracer
+            IF( iom_use( cltra ) )  CALL iom_put( cltra, trn(:,:,:,jn) * zfact )
+         END DO
 
-      IF( iom_use( "INTDIC" ) ) THEN                     !   DIC content in kg/m2
-         zdic(:,:) = 0.
-         DO jk = 1, jpkm1
-            zdic(:,:) = zdic(:,:) + trn(:,:,jk,jpdic) * e3t_n(:,:,jk) * tmask(:,:,jk) * 12.
-         ENDDO
-         CALL iom_put( 'INTDIC', zdic )     
-      ENDIF
-      !
-      IF( iom_use( "O2MIN" ) .OR. iom_use ( "ZO2MIN" ) ) THEN  ! Oxygen minimum concentration and depth 
-         zo2min   (:,:) = trn(:,:,1,jpoxy) * tmask(:,:,1)
-         zdepo2min(:,:) = gdepw_n(:,:,1)   * tmask(:,:,1)
-         DO jk = 2, jpkm1
-            DO jj = 1, jpj
-               DO ji = 1, jpi
-                  IF( tmask(ji,jj,jk) == 1 ) then
-                     IF( trn(ji,jj,jk,jpoxy) < zo2min(ji,jj) ) then
-                        zo2min   (ji,jj) = trn(ji,jj,jk,jpoxy)
-                        zdepo2min(ji,jj) = gdepw_n(ji,jj,jk)
+         IF( iom_use( "INTDIC" ) ) THEN                     !   DIC content in kg/m2
+            zdic(:,:) = 0.
+            DO jk = 1, jpkm1
+               zdic(:,:) = zdic(:,:) + trn(:,:,jk,jpdic) * e3t_n(:,:,jk) * tmask(:,:,jk) * 12.
+            ENDDO
+            CALL iom_put( 'INTDIC', zdic )     
+         ENDIF
+         !
+         IF( iom_use( "O2MIN" ) .OR. iom_use ( "ZO2MIN" ) ) THEN  ! Oxygen minimum concentration and depth 
+            zo2min   (:,:) = trn(:,:,1,jpoxy) * tmask(:,:,1)
+            zdepo2min(:,:) = gdepw_n(:,:,1)   * tmask(:,:,1)
+            DO jk = 2, jpkm1
+               DO jj = 1, jpj
+                  DO ji = 1, jpi
+                     IF( tmask(ji,jj,jk) == 1 ) then
+                        IF( trn(ji,jj,jk,jpoxy) < zo2min(ji,jj) ) then
+                           zo2min   (ji,jj) = trn(ji,jj,jk,jpoxy)
+                           zdepo2min(ji,jj) = gdepw_n(ji,jj,jk)
+                        ENDIF
                      ENDIF
-                  ENDIF
+                  END DO
                END DO
             END DO
-         END DO
-         !
-         CALL iom_put('O2MIN' , zo2min     )                              ! oxygen minimum concentration
-         CALL iom_put('ZO2MIN', zdepo2min  )                              ! depth of oxygen minimum concentration
-          !
-      ENDIF
-#endif
+            !
+            CALL iom_put('O2MIN' , zo2min     )                              ! oxygen minimum concentration
+            CALL iom_put('ZO2MIN', zdepo2min  )                              ! depth of oxygen minimum concentration
+             !
+         ENDIF
+     ENDIF
       !
    END SUBROUTINE trc_wri_pisces
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90	(revision 7041)
@@ -62,8 +62,9 @@
       ENDIF
 
-      IF( lk_cfc     )   CALL trc_rad_sms( kt, trb, trn, jp_cfc0 , jp_cfc1               )  ! CFC model
-      IF( lk_c14b    )   CALL trc_rad_sms( kt, trb, trn, jp_c14b0, jp_c14b1              )  ! bomb C14
-      IF( lk_pisces  )   CALL trc_rad_sms( kt, trb, trn, jp_pcs0 , jp_pcs1, cpreserv='Y' )  ! PISCES model
-      IF( lk_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0 , jp_myt1               )  ! MY_TRC model
+      IF( ln_age     )   CALL trc_rad_sms( kt, trb, trn, jp_age0, jp_age0               )  !  AGE
+      IF( ll_cfc     )   CALL trc_rad_sms( kt, trb, trn, jp_cfc0, jp_cfc1               )  !  CFC model
+      IF( ln_c14     )   CALL trc_rad_sms( kt, trb, trn, jp_c140, jp_c140               )  !  C14
+      IF( lk_pisces  )   CALL trc_rad_sms( kt, trb, trn, jp_pcs0, jp_pcs1, cpreserv='Y' )  !  PISCES model
+      IF( lk_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1               )  !  MY_TRC model
 
       !
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc_oce.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc_oce.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc_oce.F90	(revision 7041)
@@ -22,5 +22,5 @@
    CHARACTER(len=50) ::  cn_trdrst_trc_in     !: suffix of pass. tracer restart name (input)
    CHARACTER(len=50) ::  cn_trdrst_trc_out    !: suffix of pass. tracer restart name (output)
-   LOGICAL, DIMENSION(jptra) ::   ln_trdtrc   !: large trends diagnostic to write or not (namelist)
+   LOGICAL, DIMENSION(:), ALLOCATABLE ::   ln_trdtrc   !: large trends diagnostic to write or not (namelist)
 
 # if defined key_trdtrc && defined key_iomput
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/par_trc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/par_trc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/par_trc.F90	(revision 7041)
@@ -11,31 +11,20 @@
    USE par_kind          ! kind parameters
    !
-   USE par_pisces    ! PISCES  model
-   USE par_c14b      ! C14 bomb tracer
-   USE par_cfc       ! CFC 11 and 12 tracers
-   USE par_my_trc    ! user defined passive tracers
+   !
+   USE par_pisces
+   USE par_c14  
+   USE par_cfc
+   USE par_age 
+   USE par_my_trc
 
    IMPLICIT NONE
+
+   INTEGER, PUBLIC, PARAMETER  :: jptra_max = 100    !   Maximum number of passive tracers
+   INTEGER, PUBLIC             :: jptra     ! Total number of tracers
+   INTEGER, PUBLIC             :: jp_lc     ! Total number of tracers
 
    ! Passive tracers : Maximum number of tracers. Needed to define data structures
    ! --------------- 
    INTEGER, PUBLIC,  PARAMETER ::   jpmaxtrc = 100
-
-   ! Passive tracers : Total size
-   ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays
-   INTEGER, PUBLIC,  PARAMETER ::   jptra    =  jp_pisces     + jp_cfc     + jp_c14b    + jp_my_trc
-   INTEGER, PUBLIC,  PARAMETER ::   jpdia2d  =  jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d + jp_my_trc_2d
-   INTEGER, PUBLIC,  PARAMETER ::   jpdia3d  =  jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d + jp_my_trc_3d
-   !                     ! total number of sms diagnostic arrays
-   INTEGER, PUBLIC,  PARAMETER ::   jpdiabio =  jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd
-   
-   !  1D configuration ("key_c1d")
-   ! -----------------
-# if defined key_c1d
-   LOGICAL, PUBLIC, PARAMETER ::   lk_trc_c1d   = .TRUE.   !: 1D pass. tracer configuration flag
-# else   
-   LOGICAL, PUBLIC, PARAMETER ::   lk_trc_c1d   = .FALSE.  !: 1D pass. tracer configuration flag
-# endif
-
    REAL(wp), PUBLIC  :: rtrn  = 0.5 * EPSILON( 1.e0 )    !: truncation value
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/prtctl_trc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/prtctl_trc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/prtctl_trc.F90	(revision 7041)
@@ -70,5 +70,5 @@
       INTEGER  ::   overlap, jn, js, sind, eind, kdir, j_id
       REAL(wp) ::   zsum, zvctl
-      CHARACTER (len=20), DIMENSION(jptra) ::   cl
+      CHARACTER (len=20), ALLOCATABLE, DIMENSION(:) ::   cl
       CHARACTER (len=10) ::   cl2
       REAL(wp), POINTER, DIMENSION(:,:,:)  :: zmask, ztab3d 
@@ -76,4 +76,5 @@
 
       CALL wrk_alloc( jpi, jpj, jpk, zmask, ztab3d )
+      ALLOCATE( cl(jptra) )
       !                                      ! Arrays, scalars initialization 
       overlap       = 0
@@ -152,4 +153,5 @@
       !
       CALL wrk_dealloc( jpi, jpj, jpk, zmask, ztab3d )
+      DEALLOCATE( cl )
       !
    END SUBROUTINE prt_ctl_trc
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trc.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trc.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trc.F90	(revision 7041)
@@ -28,4 +28,7 @@
    INTEGER, PUBLIC                                                 ::   numnat_cfg = -1   !: logical unit for the reference passive tracer namelist_top_cfg
    INTEGER, PUBLIC                                                 ::   numont     = -1   !: logical unit for the reference passive tracer namelist output output.namelist.top
+   INTEGER, PUBLIC                                                 ::   numtrc_ref = -1   !: logical unit for the reference passive tracer namelist_top_ref
+   INTEGER, PUBLIC                                                 ::   numtrc_cfg = -1   !: logical unit for the reference passive tracer namelist_top_cfg
+   INTEGER, PUBLIC                                                 ::   numonr     = -1   !: logical unit for the reference passive tracer namelist output output.namelist.top
    INTEGER, PUBLIC                                                 ::   numstr        !: logical unit for tracer statistics
    INTEGER, PUBLIC                                                 ::   numrtr        !: logical unit for trc restart (read )
@@ -83,7 +86,8 @@
    END TYPE
 
-   REAL(wp), DIMENSION(jptra), PUBLIC         :: trc_ice_ratio, & ! ice-ocean tracer ratio
-                                                 trc_ice_prescr   ! prescribed ice trc cc
-   CHARACTER(len=2), DIMENSION(jptra), PUBLIC :: cn_trc_o ! choice of ocean tracer cc
+   REAL(wp)        , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)  :: trc_ice_ratio      ! ice-ocean tracer ratio
+   REAL(wp)        , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)  :: trc_ice_prescr     ! prescribed ice trc cc
+   CHARACTER(len=2), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)  :: cn_trc_o ! choice of ocean tracer cc
+
 
    !! information for outputs
@@ -99,10 +103,8 @@
        LOGICAL              :: llobc   !: read in a file or not
 #endif
-       LOGICAL              :: llsave   !: save the tracer or not
    END TYPE PTRACER
    CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ctrcnm         !: tracer name 
    CHARACTER(len = 80), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ctrcln         !: trccer field long name
    CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ctrcun         !: tracer unit
-   LOGICAL            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_wri     !: save the tracer or not
 
    TYPE, PUBLIC :: DIAG                                                               !: passive trcacer ddditional diagnostic type
@@ -119,25 +121,4 @@
    LOGICAL            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_cbc     !: Use coastal boundary condition data
 
-   !! additional 2D/3D outputs namelist
-   !! --------------------------------------------------
-   REAL(wp)           , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,  :) ::   trc2d         !: additional 2d outputs array 
-   REAL(wp)           , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   trc3d         !: additional 3d outputs array 
-   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   ctrc2d        !: 2d field short name
-   CHARACTER(len = 80), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   ctrc2l        !: 2d field long name
-   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   ctrc2u        !: 2d field unit
-   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   ctrc3d        !: 3d field short name
-   CHARACTER(len = 80), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   ctrc3l        !: 3d field long name
-   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::   ctrc3u        !: 3d field unit
-   LOGICAL            , PUBLIC                                        ::  ln_diatrc      !: boolean term for additional diagnostic
-   INTEGER            , PUBLIC                                        ::  nn_writedia    !: frequency of additional outputs
-
-   !! Biological trends
-   !! -----------------
-   LOGICAL            , PUBLIC                                        ::  ln_diabio      !: boolean term for biological diagnostic
-   INTEGER            , PUBLIC                                        ::  nn_writebio    !: frequency of biological outputs
-   REAL(wp)           , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::  trbio          !: biological trends
-   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::  ctrbio         !: bio field short name
-   CHARACTER(len = 80), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::  ctrbil         !: bio field long name
-   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)       ::  ctrbiu         !: bio field unit
 
    !! variables to average over physics over passive tracer sub-steps.
@@ -217,7 +198,8 @@
          &      gtrui(jpi,jpj,jptra)  , gtrvi(jpi,jpj,jptra)                          ,       &
          &      sbc_trc_b(jpi,jpj,jptra), sbc_trc(jpi,jpj,jptra)                      ,       &  
-         &      cvol(jpi,jpj,jpk)     , trai(jptra)                                   ,       &
+         &      cvol(jpi,jpj,jpk)     , trai(jptra)           ,  qsr_mean(jpi,jpj)    ,       &
          &      ctrcnm(jptra)         , ctrcln(jptra)         , ctrcun(jptra)         ,       & 
-         &      ln_trc_ini(jptra)     , ln_trc_wri(jptra)     , qsr_mean(jpi,jpj)     ,       &
+         &      ln_trc_ini(jptra)     ,                                                       &
+         &      trc_ice_ratio(jptra)  , trc_ice_prescr(jptra) , cn_trc_o(jptra)       ,       & 
 #if defined key_my_trc
          &      ln_trc_sbc(jptra)     , ln_trc_cbc(jptra)     , ln_trc_obc(jptra)     ,       &
Index: anches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcdia.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcdia.F90	(revision 7040)
+++ 	(revision )
@@ -1,488 +1,0 @@
-MODULE trcdia
-   !!======================================================================
-   !!                       *** MODULE trcdia ***
-   !! TOP :   Output of passive tracers
-   !!======================================================================
-   !! History :   OPA  !  1995-01 (M. Levy)  Original code
-   !!              -   !  1998-01 (C. Levy) NETCDF format using ioipsl interface
-   !!              -   !  1999-01 (M.A. Foujols) adapted for passive tracer
-   !!              -   !  1999-09 (M.A. Foujols) split into three parts
-   !!   NEMO      1.0  !  2005-03 (O. Aumont, A. El Moussaoui) F90
-   !!                  !  2008-05 (C. Ethe re-organization)
-   !!----------------------------------------------------------------------
-#if defined key_top 
-   !!----------------------------------------------------------------------
-   !!   'key_top'                                                TOP models
-   !!----------------------------------------------------------------------
-   !! trc_dia     : main routine of output passive tracer
-   !! trcdit_wr   : outputs of concentration fields
-   !! trcdii_wr   : outputs of additional 2D/3D diagnostics
-   !! trcdib_wr   : outputs of biological fields
-   !!----------------------------------------------------------------------
-   USE dom_oce         ! ocean space and time domain variables 
-   USE oce_trc
-   USE trc
-   USE par_trc
-   USE dianam    ! build name of file (routine)
-   USE ioipsl    ! I/O manager
-   USE iom       ! I/O manager
-   USE lib_mpp   ! MPP library
-
-   IMPLICIT NONE
-   PRIVATE
-
-   PUBLIC   trc_dia        ! called by XXX module 
-
-   INTEGER  ::   nit5      !: id for tracer output file
-   INTEGER  ::   ndepit5   !: id for depth mesh
-   INTEGER  ::   nhorit5   !: id for horizontal mesh
-   INTEGER  ::   ndimt50   !: number of ocean points in index array
-   INTEGER  ::   ndimt51   !: number of ocean points in index array
-   REAL(wp) ::   zjulian   !: ????   not DOCTOR !
-   INTEGER , ALLOCATABLE, SAVE, DIMENSION (:) ::   ndext50   !: integer arrays for ocean 3D index
-   INTEGER , ALLOCATABLE, SAVE, DIMENSION (:) ::   ndext51   !: integer arrays for ocean surface index
-
-   INTEGER  ::   nitd      !: id for additional array output file
-   INTEGER  ::   ndepitd   !: id for depth mesh
-   INTEGER  ::   nhoritd   !: id for horizontal mesh
-
-   INTEGER  ::   nitb        !:         id.         for additional array output file
-   INTEGER  ::   ndepitb   !:  id for depth mesh
-   INTEGER  ::   nhoritb   !:  id for horizontal mesh
-
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
-   !! $Id$ 
-   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-CONTAINS
-
-   SUBROUTINE trc_dia( kt )  
-      !!---------------------------------------------------------------------
-      !!                     ***  ROUTINE trc_dia  ***
-      !!
-      !! ** Purpose :   output passive tracers fields 
-      !!---------------------------------------------------------------------
-      INTEGER, INTENT(in) ::   kt    ! ocean time-step
-      !
-      INTEGER             ::  ierr   ! local integer
-      !!---------------------------------------------------------------------
-      !
-      IF( kt == nittrc000 )  THEN
-         ALLOCATE( ndext50(jpij*jpk), ndext51(jpij), STAT=ierr )
-         IF( ierr > 0 ) THEN
-            CALL ctl_stop( 'STOP', 'trc_diat: unable to allocate arrays' )  ;   RETURN
-         ENDIF
-      ENDIF
-      !
-      IF( .NOT.lk_iomput ) THEN
-                          CALL trcdit_wr( kt )      ! outputs for tracer concentration
-         IF( ln_diatrc )  CALL trcdii_wr( kt )      ! outputs for additional arrays
-         IF( ln_diabio )  CALL trcdib_wr( kt )      ! outputs for biological trends
-      ENDIF
-      !
-   END SUBROUTINE trc_dia
-
-
-   SUBROUTINE trcdit_wr( kt )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE trcdit_wr  ***
-      !!
-      !! ** Purpose :   Standard output of passive tracer : concentration fields
-      !!
-      !! ** Method  :   At the beginning of the first time step (nittrc000), define all
-      !!             the NETCDF files and fields for concentration of passive tracer
-      !!
-      !!        At each time step call histdef to compute the mean if necessary
-      !!        Each nwritetrc time step, output the instantaneous or mean fields
-      !!
-      !!----------------------------------------------------------------------
-      INTEGER, INTENT(in) ::   kt       ! ocean time-step
-      !
-      INTEGER ::   jn
-      LOGICAL ::   ll_print = .FALSE.
-      CHARACTER (len=40) :: clhstnam, clop
-      INTEGER ::   inum = 11             ! temporary logical unit
-      CHARACTER (len=20) :: cltra, cltrau
-      CHARACTER (len=80) :: cltral
-      REAL(wp) :: zsto, zout
-      INTEGER  :: iimi, iima, ijmi, ijma, ipk, it, itmod, iiter
-      !!----------------------------------------------------------------------
-
-      ! Initialisation
-      ! --------------
-
-      ! local variable for debugging
-      ll_print = .FALSE.                  ! change it to true for more control print
-      ll_print = ll_print .AND. lwp
-
-      ! Define frequency of output and means
-      IF( ln_mskland )   THEN   ;   clop = "only(x)"   ! put 1.e+20 on land (very expensive!!)
-      ELSE                      ;   clop = "x"         ! no use of the mask value (require less cpu time)
-      ENDIF
-# if defined key_diainstant
-      zsto = nn_writetrc * rdt
-      clop = "inst("//TRIM(clop)//")"
-# else
-      zsto = rdt
-      clop = "ave("//TRIM(clop)//")"
-# endif
-      zout = nn_writetrc * rdt
-
-      ! Define indices of the horizontal output zoom and vertical limit storage
-      iimi = 1      ;      iima = jpi
-      ijmi = 1      ;      ijma = jpj
-      ipk = jpk
-
-      ! define time axis
-      itmod = kt - nittrc000 + 1
-      it    = kt
-      iiter = ( nittrc000 - 1 ) / nn_dttrc
-
-      ! Define NETCDF files and fields at beginning of first time step
-      ! --------------------------------------------------------------
-
-      IF(ll_print)WRITE(numout,*)'trcdit_wr kt=',kt
-      
-      IF( kt == nittrc000 ) THEN
-
-         IF(lwp) THEN                   ! control print
-            WRITE(numout,*)
-            WRITE(numout,*) '    frequency of outputs for passive tracers nn_writetrc = ', nn_writetrc
-            DO jn = 1, jptra
-               IF( ln_trc_wri(jn) )  WRITE(numout,*) ' ouput tracer nb : ', jn, '    short name : ', ctrcnm(jn) 
-            END DO
-            WRITE(numout,*) ' '
-         ENDIF
-
-         ! Compute julian date from starting date of the run
-         CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian )
-         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment
-         IF(lwp)WRITE(numout,*)' '  
-         IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000                         &
-            &                 ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday   &
-            &                 ,'Julian day : ', zjulian  
-  
-         IF(lwp) WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma,  &
-            &                    ' limit storage in depth = ', ipk
-
-         IF( lk_offline .AND. lwp ) THEN
-            CALL dia_nam( clhstnam, nn_writetrc,' ' )
-            CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 1, numout, lwp, narea )
-            WRITE(inum,*) clhstnam
-            CLOSE(inum)
-         ENDIF
-
-         ! Define the NETCDF files for passive tracer concentration
-         CALL dia_nam( clhstnam, nn_writetrc, 'ptrc_T' )
-         IF(lwp)WRITE(numout,*)" Name of NETCDF file ", clhstnam
-
-         ! Horizontal grid : glamt and gphit
-         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,     &
-            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         & 
-            &          iiter, zjulian, rdt, nhorit5, nit5 , domain_id=nidom, snc4chunks=snc4set)
-
-         ! Vertical grid for tracer : gdept
-         CALL histvert( nit5, 'deptht', 'Vertical T levels', 'm', ipk, gdept_1d, ndepit5)
-
-         ! Index of ocean points in 3D and 2D (surface)
-         CALL wheneq( jpi*jpj*ipk, tmask, 1, 1., ndext50, ndimt50 )
-         CALL wheneq( jpi*jpj    , tmask, 1, 1., ndext51, ndimt51 )
-
-         ! Declare all the output fields as NETCDF variables
-         DO jn = 1, jptra
-            IF( ln_trc_wri(jn) ) THEN
-               cltra  = TRIM( ctrcnm(jn) )   ! short title for tracer
-               cltral = TRIM( ctrcln(jn) )   ! long title for tracer
-               cltrau = TRIM( ctrcun(jn) )   ! UNIT for tracer
-               CALL histdef( nit5, cltra, cltral, cltrau, jpi, jpj, nhorit5,  &
-                  &          ipk, 1, ipk,  ndepit5, 32, clop, zsto, zout ) 
-            ENDIF
-         END DO
-
-         ! end netcdf files header
-         CALL histend( nit5, snc4set )
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization in trcdit_wr'
-         IF( ll_print )   CALL FLUSH(numout )
-
-      ENDIF
-
-      ! Start writing the tracer concentrations
-      ! ---------------------------------------
-
-      IF( lwp .AND. MOD( itmod, nn_writetrc ) == 0 ) THEN
-         WRITE(numout,*) 'trcdit_wr : write NetCDF passive tracer concentrations at ', kt, 'time-step'
-         WRITE(numout,*) '~~~~~~~~~ '
-      ENDIF
-
-      DO jn = 1, jptra
-         cltra  = TRIM( ctrcnm(jn) )   ! short title for tracer
-         IF( ln_trc_wri(jn) ) CALL histwrite( nit5, cltra, it, trn(:,:,:,jn), ndimt50, ndext50 )
-      END DO
-
-      ! close the file 
-      ! --------------
-      IF( kt == nitend )   CALL histclo( nit5 )
-      !
-   END SUBROUTINE trcdit_wr
-
-   SUBROUTINE trcdii_wr( kt )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE trcdii_wr  ***
-      !!
-      !! ** Purpose :   output of passive tracer : additional 2D and 3D arrays
-      !!
-      !! ** Method  :   At the beginning of the first time step (nittrc000), define all
-      !!             the NETCDF files and fields for concentration of passive tracer
-      !!
-      !!        At each time step call histdef to compute the mean if necessary
-      !!        Each nn_writedia time step, output the instantaneous or mean fields
-      !!
-      !!----------------------------------------------------------------------
-      INTEGER, INTENT(in) ::   kt       ! ocean time-step
-      !!
-      LOGICAL ::   ll_print = .FALSE.
-      CHARACTER (len=40) ::   clhstnam, clop
-      CHARACTER (len=20) ::   cltra, cltrau
-      CHARACTER (len=80) ::   cltral
-      INTEGER  ::   jl
-      INTEGER  ::   iimi, iima, ijmi, ijma, ipk, it, itmod, iiter
-      REAL(wp) ::   zsto, zout
-      !!----------------------------------------------------------------------
-
-      ! Initialisation
-      ! --------------
-      
-      ! local variable for debugging
-      ll_print = .FALSE.
-      ll_print = ll_print .AND. lwp
-      !
-      ! Define frequency of output and means
-      IF( ln_mskland )   THEN   ;   clop = "only(x)"   ! put 1.e+20 on land (very expensive!!)
-      ELSE                      ;   clop = "x"         ! no use of the mask value (require less cpu time)
-      ENDIF
-#  if defined key_diainstant
-      zsto = nn_writedia * rdt
-      clop = "inst("//TRIM(clop)//")"
-#  else
-      zsto = rdt
-      clop = "ave("//TRIM(clop)//")"
-#  endif
-      zout = nn_writedia * rdt
-
-      ! Define indices of the horizontal output zoom and vertical limit storage
-      iimi = 1      ;      iima = jpi
-      ijmi = 1      ;      ijma = jpj
-      ipk = jpk
-
-      ! define time axis
-      itmod = kt - nittrc000 + 1
-      it    = kt
-      iiter = ( nittrc000 - 1 ) / nn_dttrc
-
-      ! 1. Define NETCDF files and fields at beginning of first time step
-      ! -----------------------------------------------------------------
-
-      IF( ll_print ) WRITE(numout,*) 'trcdii_wr kt=', kt
-
-      IF( kt == nittrc000 ) THEN
-
-         ! Define the NETCDF files for additional arrays : 2D or 3D
-
-         ! Define the T grid file for tracer auxiliary files
-
-         CALL dia_nam( clhstnam, nn_writedia, 'diad_T' )
-         IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam
-
-         ! Define a netcdf FILE for 2d and 3d arrays
-
-         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,             &
-            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         &
-            &          iiter, zjulian, rdt, nhoritd, nitd , domain_id=nidom, snc4chunks=snc4set )
-
-         ! Vertical grid for 2d and 3d arrays
-
-         CALL histvert( nitd, 'deptht', 'Vertical T levels','m', ipk, gdept_1d, ndepitd)
-
-         ! Declare all the output fields as NETCDF variables
-
-         ! more 3D horizontal arrays
-         DO jl = 1, jpdia3d
-            cltra  = TRIM( ctrc3d(jl) )   ! short title for 3D diagnostic
-            cltral = TRIM( ctrc3l(jl) )  ! long title for 3D diagnostic
-            cltrau = TRIM( ctrc3u(jl) )  ! UNIT for 3D diagnostic
-            CALL histdef( nitd, cltra, cltral, cltrau, jpi, jpj, nhoritd,   &
-               &          ipk, 1, ipk,  ndepitd, 32, clop, zsto, zout )
-         END DO
-
-         ! more 2D horizontal arrays
-         DO jl = 1, jpdia2d
-            cltra  = TRIM( ctrc2d(jl) )   ! short title for 2D diagnostic
-            cltral = TRIM( ctrc2l(jl) )  ! long title for 2D diagnostic
-            cltrau = TRIM( ctrc2u(jl) )  ! UNIT for 2D diagnostic
-            CALL histdef( nitd, cltra, cltral, cltrau, jpi, jpj, nhoritd,  &
-               &          1, 1, 1,  -99, 32, clop, zsto, zout )
-         END DO
-
-         ! TODO: more 2D vertical sections arrays : I or J indice fixed
-
-         ! CLOSE netcdf Files
-         CALL histend( nitd, snc4set )
-
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization in trcdii_wr'
-         IF( ll_print )   CALL FLUSH(numout )
-         !
-      ENDIF
-
-      ! 2. Start writing data
-      ! ---------------------
-
-      IF( lwp .AND. MOD( itmod, nn_writedia ) == 0 ) THEN
-         WRITE(numout,*) 'trcdii_wr : write NetCDF additional arrays at ', kt, 'time-step'
-         WRITE(numout,*) '~~~~~~ '
-      ENDIF
-
-      ! more 3D horizontal arrays
-      DO jl = 1, jpdia3d
-         cltra  = TRIM( ctrc3d(jl) )   ! short title for 3D diagnostic
-         CALL histwrite( nitd, cltra, it, trc3d(:,:,:,jl), ndimt50 ,ndext50)
-      END DO
-
-      ! more 2D horizontal arrays
-      DO jl = 1, jpdia2d
-         cltra  = TRIM( ctrc2d(jl) )   ! short title for 2D diagnostic
-         CALL histwrite(nitd, cltra, it, trc2d(:,:,jl), ndimt51  ,ndext51)
-      END DO
-
-      ! Closing all files
-      ! -----------------
-      IF( kt == nitend )   CALL histclo(nitd)
-      !
-
-   END SUBROUTINE trcdii_wr
-
-   SUBROUTINE trcdib_wr( kt )
-      !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE trcdib_wr  ***
-      !!
-      !! ** Purpose :   output of passive tracer : biological fields
-      !!
-      !! ** Method  :   At the beginning of the first time step (nittrc000), define all
-      !!             the NETCDF files and fields for concentration of passive tracer
-      !!
-      !!        At each time step call histdef to compute the mean if necessary
-      !!        Each nn_writebio time step, output the instantaneous or mean fields
-      !!
-      !!----------------------------------------------------------------------
-      INTEGER, INTENT( in ) ::   kt          ! ocean time-step
-      !!
-      LOGICAL ::   ll_print = .FALSE.
-      CHARACTER (len=40) ::   clhstnam, clop
-      CHARACTER (len=20) ::   cltra, cltrau
-      CHARACTER (len=80) ::   cltral
-      INTEGER  ::   ji, jj, jk, jl
-      INTEGER  ::   iimi, iima, ijmi, ijma, ipk, it, itmod, iiter
-      REAL(wp) ::   zsto, zout
-      !!----------------------------------------------------------------------
-
-      ! Initialisation
-      ! --------------
-      
-      ! local variable for debugging
-      ll_print = .FALSE.
-      ll_print = ll_print .AND. lwp
-
-      ! Define frequency of output and means
-      IF( ln_mskland )   THEN   ;   clop = "only(x)"   ! put 1.e+20 on land (very expensive!!)
-      ELSE                      ;   clop = "x"         ! no use of the mask value (require less cpu time)
-      ENDIF
-#        if defined key_diainstant
-      zsto = nn_writebio * rdt
-      clop = "inst("//TRIM(clop)//")"
-#        else
-      zsto = rdt
-      clop = "ave("//TRIM(clop)//")"
-#        endif
-      zout = nn_writebio * rdt
-
-      ! Define indices of the horizontal output zoom and vertical limit storage
-      iimi = 1      ;      iima = jpi
-      ijmi = 1      ;      ijma = jpj
-      ipk = jpk
-
-      ! define time axis
-      itmod = kt - nittrc000 + 1
-      it    = kt
-      iiter = ( nittrc000 - 1 ) / nn_dttrc
-
-      ! Define NETCDF files and fields at beginning of first time step
-      ! --------------------------------------------------------------
-
-      IF(ll_print) WRITE(numout,*)'trcdib_wr kt=',kt
-
-      IF( kt == nittrc000 ) THEN
-
-         ! Define the NETCDF files for biological trends
-
-         CALL dia_nam(clhstnam,nn_writebio,'biolog')
-         IF(lwp)WRITE(numout,*) " Name of NETCDF file for biological trends ", clhstnam
-         ! Horizontal grid : glamt and gphit
-         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,      &
-            &    iimi, iima-iimi+1, ijmi, ijma-ijmi+1,          &
-            &    iiter, zjulian, rdt, nhoritb, nitb , domain_id=nidom, snc4chunks=snc4set )
-         ! Vertical grid for biological trends
-         CALL histvert(nitb, 'deptht', 'Vertical T levels', 'm', ipk, gdept_1d, ndepitb)
-
-         ! Declare all the output fields as NETCDF variables
-         ! biological trends
-         DO jl = 1, jpdiabio
-            cltra  = TRIM( ctrbio(jl) )   ! short title for biological diagnostic
-            cltral = TRIM( ctrbil(jl) )  ! long title for biological diagnostic
-            cltrau = TRIM( ctrbiu(jl) )  ! UNIT for biological diagnostic
-            CALL histdef( nitb, cltra, cltral, cltrau, jpi, jpj, nhoritb,  &
-               &         ipk, 1, ipk,  ndepitb, 32, clop, zsto, zout)
-         END DO
-
-         ! CLOSE netcdf Files
-          CALL histend( nitb, snc4set )
-
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization in trcdib_wr'
-         IF(ll_print) CALL FLUSH(numout )
-         !
-      ENDIF
-
-      ! Start writing data
-      ! ------------------
-
-      ! biological trends
-      IF( lwp .AND. MOD( itmod, nn_writebio ) == 0 ) THEN
-         WRITE(numout,*) 'trcdit_wr : write NetCDF biological trends at ', kt, 'time-step'
-         WRITE(numout,*) '~~~~~~ '
-      ENDIF
-
-      DO jl = 1, jpdiabio
-         cltra  = TRIM( ctrbio(jl) )   ! short title for biological diagnostic
-         CALL histwrite(nitb, cltra, it, trbio(:,:,:,jl), ndimt50,ndext50)
-      END DO
-
-      ! Closing all files
-      ! -----------------
-      IF( kt == nitend )   CALL histclo( nitb )
-      !
-   END SUBROUTINE trcdib_wr
-
-#else
-   !!----------------------------------------------------------------------
-   !!  Dummy module :                                     No passive tracer
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_dia( kt )                      ! Empty routine   
-      INTEGER, INTENT(in) :: kt
-   END SUBROUTINE trc_dia   
-#endif
-
-   !!======================================================================
-END MODULE trcdia
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcice.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcice.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcice.F90	(revision 7041)
@@ -17,5 +17,6 @@
    USE trcice_cfc      ! CFC      initialisation
    USE trcice_pisces   ! PISCES   initialisation
-   USE trcice_c14b     ! C14 bomb initialisation
+   USE trcice_c14      ! C14 bomb initialisation
+   USE trcice_age      ! aGE initialisation
    USE trcice_my_trc   ! MY_TRC   initialisation
    
@@ -52,6 +53,7 @@
       IF ( nn_ice_tr == 1 ) THEN
          IF( lk_pisces  )    CALL trc_ice_ini_pisces       ! PISCES  bio-model
-         IF( lk_cfc     )    CALL trc_ice_ini_cfc          ! CFC     tracers
-         IF( lk_c14b    )    CALL trc_ice_ini_c14b         ! C14 bomb  tracer
+         IF( ll_cfc     )    CALL trc_ice_ini_cfc          ! CFC     tracers
+         IF( ln_c14     )    CALL trc_ice_ini_c14          ! C14     tracer
+         IF( ln_age     )    CALL trc_ice_ini_age          ! AGE     tracer
          IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers
       ENDIF
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcini.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcini.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcini.F90	(revision 7041)
@@ -59,30 +59,25 @@
       IF(lwp) WRITE(numout,*) '~~~~~~~'
 
+      IF( .NOT.lk_offline )   CALL trc_nam_run     ! Parameters of the run 
       !
       CALL top_alloc()   ! allocate TOP arrays
       !
       CALL trc_ini_ctl   ! control 
-      !
       CALL trc_nam       ! read passive tracers namelists
       !
+      !
       IF(lwp) WRITE(numout,*)
-      !
       IF( ln_rsttr .AND. .NOT. lk_offline ) CALL trc_rst_cal( nit000, 'READ' )   ! calendar
-      !
       IF(lwp) WRITE(numout,*)
       !
       CALL trc_ini_sms   ! SMS
-      !
       CALL trc_ini_trp   ! passive tracers transport
-      !
       CALL trc_ice_ini   ! Tracers in sea ice
       !
-      IF( lwp )  &
-         &  CALL ctl_opn( numstr, 'tracer.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp , narea )
+      IF(lwp) CALL ctl_opn( numstr, 'tracer.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp , narea )
       !
       CALL trc_ini_state  !  passive tracers initialisation : from a restart or from clim
-      !
-      IF( nn_dttrc /= 1 )        CALL trc_sub_ini      ! Initialize variables for substepping passive tracers
-      !
+      IF( nn_dttrc /= 1 ) &
+      CALL trc_sub_ini      ! Initialize variables for substepping passive tracers
       CALL trc_ini_inv   ! Inventories
       !
@@ -120,5 +115,4 @@
          cvol(:,:,jk) = e1e2t(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk)
       END DO
-      IF( lk_degrad )   cvol(:,:,:) = cvol(:,:,:) * facvol(:,:,:)    ! degrad option: reduction by facvol
       !                                                              ! total volume of the ocean 
       areatot = glob_sum( cvol(:,:,:) )
@@ -158,13 +152,56 @@
       !! ** Purpose :   SMS initialisation
       !!----------------------------------------------------------------------
-      USE trcini_cfc      ! CFC      initialisation
-      USE trcini_pisces   ! PISCES   initialisation
-      USE trcini_c14b     ! C14 bomb initialisation
-      USE trcini_my_trc   ! MY_TRC   initialisation
-      !!----------------------------------------------------------------------
-      IF( lk_pisces  )       CALL trc_ini_pisces       ! PISCES  bio-model
-      IF( lk_cfc     )       CALL trc_ini_cfc          ! CFC     tracers
-      IF( lk_c14b    )       CALL trc_ini_c14b         ! C14 bomb  tracer
-      IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC  tracers
+      USE par_trc
+      USE trcini_pisces  ! PISCES   initialisation
+      USE trcini_cfc     ! CFC      initialisation
+      USE trcini_c14     ! C14  initialisation
+      USE trcini_age     ! age initialisation
+      USE trcini_my_trc  ! MY_TRC   initialisation
+      !!----------------------------------------------------------------------
+      jp_lc = 0
+      IF( lk_pisces  )  THEN       ! PISCES bio-model
+         CALL trc_ini_pisces    
+         jp_lc       = jp_pisces 
+      ELSE
+         jp_pisces   = 0
+         jp_pcs0     = 0              
+         jp_pcs1     = 0         
+      ENDIF
+      IF( lk_my_trc )  THEN      ! MY_TRC
+         CALL trc_ini_my_trc
+         jp_lc       = jp_lc + jp_my_trc  
+      ELSE
+         jp_my_trc   = 0
+         jp_myt0     = 0       
+         jp_myt1     = 0      
+      ENDIF
+      IF( ll_cfc    )  THEN          ! CFC
+         CALL trc_ini_cfc    
+         jp_lc       = jp_lc + jp_cfc
+      ELSE
+         jp_cfc      = 0
+         jp_cfc0     = 0       
+         jp_cfc1     = 0      
+      ENDIF
+      IF( ln_c14    )  THEN      ! C14
+         CALL trc_ini_c14
+         jp_lc       = jp_lc + jp_c14
+      ELSE
+         jp_c14      = 0
+         jp_c140     = 0       
+      ENDIF
+      IF( ln_age    )  THEN      ! AGE
+         CALL trc_ini_age
+         jp_lc       = jp_lc + jp_age
+      ELSE
+         jp_age      = 0
+         jp_age0     = 0       
+      ENDIF
+      !
+      IF( jp_lc /= jptra ) THEN
+        IF( lwp ) WRITE(numout,*) ' The total number of tracers in namelist_top jptra = ', jptra
+        IF( lwp ) WRITE(numout,*) ' The total number of tracers to be used by the model is jp_lc = ', jp_lc
+        CALL ctl_stop( " Change the value of total number of tracers in namelist " )
+      ENDIF
       !
    END SUBROUTINE trc_ini_sms
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcnam.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcnam.F90	(revision 7041)
@@ -22,5 +22,6 @@
    USE trcnam_pisces     ! PISCES namelist
    USE trcnam_cfc        ! CFC SMS namelist
-   USE trcnam_c14b       ! C14 SMS namelist
+   USE trcnam_c14        ! C14 SMS namelist
+   USE trcnam_age        ! AGE SMS namelist
    USE trcnam_my_trc     ! MY_TRC SMS namelist
    USE trd_oce       
@@ -53,10 +54,7 @@
       INTEGER  ::   jn                  ! dummy loop indice
       !                                  
-      IF( .NOT.lk_offline )   CALL trc_nam_run     ! Parameters of the run 
       !               
-                              CALL trc_nam_trc     ! passive tracer informations
+      CALL trc_nam_trc     ! passive tracer informations
       !                                        
-                              CALL trc_nam_dia     ! Parameters of additional diagnostics
-      !                                      
       !
       IF( ln_rsttr                     )   ln_trcdta     = .FALSE.   ! restart : no need of clim data
@@ -65,17 +63,4 @@
       !
       IF( .NOT.ln_trcdta               )   ln_trc_ini(:) = .FALSE.
-
-      IF(lwp) THEN                   ! control print
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist : namtrc'
-         WRITE(numout,*) '   Read inputs data from file (y/n)             ln_trcdta     = ', ln_trcdta
-         WRITE(numout,*) '   Damping of passive tracer (y/n)              ln_trcdmp     = ', ln_trcdmp
-         WRITE(numout,*) '   Restoring of tracer on closed seas           ln_trcdmp_clo = ', ln_trcdmp_clo
-         WRITE(numout,*) ' '
-         DO jn = 1, jptra
-            WRITE(numout,*) '  tracer nb : ', jn, '    short name : ', ctrcnm(jn)
-         END DO
-         WRITE(numout,*) ' '
-      ENDIF
 
       IF(lwp) THEN                   ! control print
@@ -107,49 +92,27 @@
 
 
-#if defined key_trdmxl_trc || defined key_trdtrc
-
-         REWIND( numnat_ref )              ! Namelist namtrc_trd in reference namelist : Passive tracer trends
-         READ  ( numnat_ref, namtrc_trd, IOSTAT = ios, ERR = 905)
-905      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_trd in reference namelist', lwp )
-
-         REWIND( numnat_cfg )              ! Namelist namtrc_trd in configuration namelist : Passive tracer trends
-         READ  ( numnat_cfg, namtrc_trd, IOSTAT = ios, ERR = 906 )
-906      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_trd in configuration namelist', lwp )
-         IF(lwm) WRITE ( numont, namtrc_trd )
-
-         IF(lwp) THEN
-            WRITE(numout,*)
-            WRITE(numout,*) ' trd_mxl_trc_init : read namelist namtrc_trd                    '
-            WRITE(numout,*) ' ~~~~~~~~~~~~~~~~                                               '
-            WRITE(numout,*) '   * frequency of trends diagnostics   nn_trd_trc             = ', nn_trd_trc
-            WRITE(numout,*) '   * control surface type              nn_ctls_trc            = ', nn_ctls_trc
-            WRITE(numout,*) '   * restart for ML diagnostics        ln_trdmxl_trc_restart  = ', ln_trdmxl_trc_restart
-            WRITE(numout,*) '   * flag to diagnose trends of                                 '
-            WRITE(numout,*) '     instantantaneous or mean ML T/S   ln_trdmxl_trc_instant  = ', ln_trdmxl_trc_instant
-            WRITE(numout,*) '   * unit conversion factor            rn_ucf_trc             = ', rn_ucf_trc
-            DO jn = 1, jptra
-               IF( ln_trdtrc(jn) ) WRITE(numout,*) '    compute ML trends for tracer number :', jn
-            END DO
-         ENDIF
-#endif
-
-
-      ! Call the ice module for tracers
-      ! -------------------------------
-                                  CALL trc_nam_ice
+      IF( l_trdtrc )        CALL trc_nam_trd    ! Passive tracer trends
+
+                             
+                            CALL trc_nam_ice  ! ice module for tracerd
 
       ! namelist of SMS
       ! ---------------      
+      IF( ln_age     ) THEN   ;   CALL trc_nam_age         ! AGE     tracer
+      ELSE                    ;   IF(lwp) WRITE(numout,*) '          AGE not used'
+      ENDIF
+
+      IF( ll_cfc     ) THEN   ;   CALL trc_nam_cfc         ! CFC     tracers
+      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used'
+      ENDIF
+
+      IF( ln_c14     ) THEN   ;   CALL trc_nam_c14         ! C14     tracers
+      ELSE                    ;   IF(lwp) WRITE(numout,*) '          C14 not used'
+      ENDIF
+
       IF( lk_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model
       ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
       ENDIF
 
-      IF( lk_cfc     ) THEN   ;   CALL trc_nam_cfc         ! CFC     tracers
-      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used'
-      ENDIF
-
-      IF( lk_c14b     ) THEN   ;   CALL trc_nam_c14b         ! C14 bomb     tracers
-      ELSE                    ;   IF(lwp) WRITE(numout,*) '          C14 not used'
-      ENDIF
 
       IF( lk_my_trc  ) THEN   ;   CALL trc_nam_my_trc      ! MY_TRC  tracers
@@ -167,5 +130,5 @@
       !!
       !!---------------------------------------------------------------------
-      NAMELIST/namtrc_run/ nn_dttrc, nn_writetrc, ln_rsttr, nn_rsttr, ln_top_euler, &
+      NAMELIST/namtrc_run/ jptra, nn_dttrc, ln_rsttr, nn_rsttr, ln_top_euler, &
         &                  cn_trcrst_indir, cn_trcrst_outdir, cn_trcrst_in, cn_trcrst_out
       !
@@ -195,9 +158,9 @@
          WRITE(numout,*)
          WRITE(numout,*) ' Namelist : namtrc_run'
+         WRITE(numout,*) '   Total number of passive tracers              jptra         = ', jptra
          WRITE(numout,*) '   time step freq. for passive tracer           nn_dttrc      = ', nn_dttrc
          WRITE(numout,*) '   restart  for passive tracer                  ln_rsttr      = ', ln_rsttr
          WRITE(numout,*) '   control of time step for passive tracer      nn_rsttr      = ', nn_rsttr
          WRITE(numout,*) '   first time step for pass. trac.              nittrc000     = ', nittrc000
-         WRITE(numout,*) '   frequency of outputs for passive tracers     nn_writetrc   = ', nn_writetrc 
          WRITE(numout,*) '   Use euler integration for TRC (y/n)          ln_top_euler  = ', ln_top_euler
          WRITE(numout,*) ' '
@@ -206,57 +169,4 @@
     END SUBROUTINE trc_nam_run
 
-
-   SUBROUTINE trc_nam_ice
-      !!---------------------------------------------------------------------
-      !!                     ***  ROUTINE trc_nam_ice ***
-      !!
-      !! ** Purpose :   Read the namelist for the ice effect on tracers
-      !!
-      !! ** Method  : -
-      !!
-      !!---------------------------------------------------------------------
-      INTEGER :: jn      ! dummy loop indices
-      INTEGER :: ios     ! Local integer output status for namelist read
-      !
-      TYPE(TRC_I_NML), DIMENSION(jptra) :: sn_tri_tracer
-      !!
-      NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer
-      !!---------------------------------------------------------------------
-      !
-      IF(lwp) THEN
-         WRITE(numout,*)
-         WRITE(numout,*) 'trc_nam_ice : Read the namelist for trc_ice'
-         WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
-      ENDIF
-
-      IF( nn_timing == 1 )  CALL timing_start('trc_nam_ice')
-
-      !
-      REWIND( numnat_ref )              ! Namelist namtrc_ice in reference namelist : Passive tracer input data
-      READ  ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901)
- 901  IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp )
-
-      REWIND( numnat_cfg )              ! Namelist namtrc_ice in configuration namelist : Pisces external sources of nutrients
-      READ  ( numnat_cfg, namtrc_ice, IOSTAT = ios, ERR = 902 )
- 902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ice in configuration namelist', lwp )
-
-      IF( lwp ) THEN
-         WRITE(numout,*) ' '
-         WRITE(numout,*) ' Sea ice tracers option (nn_ice_tr) : ', nn_ice_tr
-         WRITE(numout,*) ' '
-      ENDIF
-
-      ! Assign namelist stuff
-      DO jn = 1, jptra
-         trc_ice_ratio(jn)  = sn_tri_tracer(jn)%trc_ratio
-         trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr
-         cn_trc_o      (jn) = sn_tri_tracer(jn)%ctrc_o
-      END DO
-
-      IF( nn_timing == 1 )   CALL timing_stop('trc_nam_ice')
-      !
-   END SUBROUTINE trc_nam_ice
-
-
    SUBROUTINE trc_nam_trc
       !!---------------------------------------------------------------------
@@ -266,14 +176,15 @@
       !!
       !!---------------------------------------------------------------------
-      INTEGER  ::   ios                 ! Local integer output status for namelist read
-      INTEGER  ::   jn                  ! dummy loop indice
-      !
-      TYPE(PTRACER), DIMENSION(jptra) :: sn_tracer  ! type of tracer for saving if not key_iomput
-      !!
-      NAMELIST/namtrc/ sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo
+      INTEGER  ::   ios, ierr                 ! Local integer output status for namelist read
+      INTEGER  ::   jn                    ! dummy loop indice
+      !
+      TYPE(PTRACER), DIMENSION(jptra_max) :: sn_tracer  ! type of tracer for saving if not key_iomput
+      !!
+      NAMELIST/namtrc/ln_age, ln_cfc11, ln_cfc12, ln_c14, sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo
       !!---------------------------------------------------------------------
       IF(lwp) WRITE(numout,*)
       IF(lwp) WRITE(numout,*) 'trc_nam_trc : read the passive tracer namelists'
       IF(lwp) WRITE(numout,*) '~~~~~~~'
+
 
       REWIND( numnat_ref )              ! Namelist namtrc in reference namelist : Passive tracer variables
@@ -285,4 +196,5 @@
 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc in configuration namelist', lwp )
       IF(lwm) WRITE ( numont, namtrc )
+
 
       DO jn = 1, jptra
@@ -296,11 +208,91 @@
          ln_trc_obc(jn) =       sn_tracer(jn)%llobc
 #endif
-         ln_trc_wri(jn) =       sn_tracer(jn)%llsave
       END DO
       !
+      ll_cfc = ln_cfc11 .OR. ln_cfc12
+      !
+      IF(lwp) THEN                   ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) ' Namelist : namtrc'
+         WRITE(numout,*) '   Simulating water mass age                    ln_age        = ', ln_age
+         WRITE(numout,*) '   Simulating CFC11 passive tracer              ln_cfc11      = ', ln_cfc11
+         WRITE(numout,*) '   Simulating CFC12 passive tracer              ln_cfc12      = ', ln_cfc12
+         WRITE(numout,*) '   Simulating C14   passive tracer              ln_c14        = ', ln_c14
+         WRITE(numout,*) '   Read inputs data from file (y/n)             ln_trcdta     = ', ln_trcdta
+         WRITE(numout,*) '   Damping of passive tracer (y/n)              ln_trcdmp     = ', ln_trcdmp
+         WRITE(numout,*) '   Restoring of tracer on closed seas           ln_trcdmp_clo = ', ln_trcdmp_clo
+         WRITE(numout,*) ' '
+         DO jn = 1, jptra
+            WRITE(numout,*) '  tracer nb : ', jn, '    short name : ', ctrcnm(jn)
+         END DO
+         WRITE(numout,*) ' '
+      ENDIF
+      !
+      IF( ln_age .OR. ll_cfc .OR. ln_c14 ) THEN
+        !                             ! Open namelist files
+        CALL ctl_opn( numtrc_ref, 'namelist_trc_ref'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+        CALL ctl_opn( numtrc_cfg, 'namelist_trc_cfg'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+        IF(lwm) CALL ctl_opn( numonr, 'output.namelist.trc', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+        !
+      ENDIF
+
    END SUBROUTINE trc_nam_trc
 
 
-   SUBROUTINE trc_nam_dia
+   SUBROUTINE trc_nam_ice
+      !!---------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_nam_ice ***
+      !!
+      !! ** Purpose :   Read the namelist for the ice effect on tracers
+      !!
+      !! ** Method  : -
+      !!
+      !!---------------------------------------------------------------------
+      INTEGER :: jn      ! dummy loop indices
+      INTEGER :: ios, ierr     ! Local integer output status for namelist read
+      !
+      TYPE(TRC_I_NML), ALLOCATABLE, DIMENSION(:) :: sn_tri_tracer  ! type of tracer for saving if not key_iomput
+      !!
+      NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer
+      !!---------------------------------------------------------------------
+      !
+      IF(lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) 'trc_nam_ice : Read the namelist for trc_ice'
+         WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
+      ENDIF
+
+      IF( nn_timing == 1 )  CALL timing_start('trc_nam_ice')
+
+      ALLOCATE( sn_tri_tracer(jptra),  STAT = ierr )
+      !
+      REWIND( numnat_ref )              ! Namelist namtrc_ice in reference namelist : Passive tracer input data
+      READ  ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901)
+ 901  IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp )
+
+      REWIND( numnat_cfg )              ! Namelist namtrc_ice in configuration namelist : Pisces external sources of nutrients
+      READ  ( numnat_cfg, namtrc_ice, IOSTAT = ios, ERR = 902 )
+ 902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ice in configuration namelist', lwp )
+
+      IF( lwp ) THEN
+         WRITE(numout,*) ' '
+         WRITE(numout,*) ' Sea ice tracers option (nn_ice_tr) : ', nn_ice_tr
+         WRITE(numout,*) ' '
+      ENDIF
+
+      ! Assign namelist stuff
+      DO jn = 1, jptra
+         trc_ice_ratio(jn)  = sn_tri_tracer(jn)%trc_ratio
+         trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr
+         cn_trc_o      (jn) = sn_tri_tracer(jn)%ctrc_o
+      END DO
+
+      IF( nn_timing == 1 )   CALL timing_stop('trc_nam_ice')
+      !
+   END SUBROUTINE trc_nam_ice
+
+
+
+   SUBROUTINE trc_nam_trd
       !!---------------------------------------------------------------------
       !!                     ***  ROUTINE trc_nam_dia  ***
@@ -312,60 +304,47 @@
       !!                ( (PISCES, CFC, MY_TRC )
       !!---------------------------------------------------------------------
+
+#if defined key_trdmxl_trc  || defined key_trdtrc
       INTEGER  ::   ios                 ! Local integer output status for namelist read
       INTEGER ::  ierr
       !!
-#if defined key_trdmxl_trc  || defined key_trdtrc
       NAMELIST/namtrc_trd/ nn_trd_trc, nn_ctls_trc, rn_ucf_trc, &
          &                ln_trdmxl_trc_restart, ln_trdmxl_trc_instant, &
          &                cn_trdrst_trc_in, cn_trdrst_trc_out, ln_trdtrc
-#endif
-      NAMELIST/namtrc_dia/ ln_diatrc, ln_diabio, nn_writedia, nn_writebio
       !!---------------------------------------------------------------------
 
       IF(lwp) WRITE(numout,*)
-      IF(lwp) WRITE(numout,*) 'trc_nam_dia : read the passive tracer diagnostics options'
+      IF(lwp) WRITE(numout,*) 'trc_nam_trd : read the passive tracer diagnostics options'
       IF(lwp) WRITE(numout,*) '~~~~~~~'
 
-      REWIND( numnat_ref )              ! Namelist namtrc_dia in reference namelist : Passive tracer diagnostics
-      READ  ( numnat_ref, namtrc_dia, IOSTAT = ios, ERR = 903)
-903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in reference namelist', lwp )
-
-      REWIND( numnat_cfg )              ! Namelist namtrc_dia in configuration namelist : Passive tracer diagnostics
-      READ  ( numnat_cfg, namtrc_dia, IOSTAT = ios, ERR = 904 )
-904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dia in configuration namelist', lwp )
-      IF(lwm) WRITE ( numont, namtrc_dia )
+      !
+      ALLOCATE( ln_trdtrc(jptra) ) 
+      !
+      REWIND( numnat_ref )              ! Namelist namtrc_trd in reference namelist : Passive tracer trends
+      READ  ( numnat_ref, namtrc_trd, IOSTAT = ios, ERR = 905)
+905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_trd in reference namelist', lwp )
+
+      REWIND( numnat_cfg )              ! Namelist namtrc_trd in configuration namelist : Passive tracer trends
+      READ  ( numnat_cfg, namtrc_trd, IOSTAT = ios, ERR = 906 )
+906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_trd in configuration namelist', lwp )
+      IF(lwm) WRITE ( numont, namtrc_trd )
 
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist : namtrc_dia'
-         WRITE(numout,*) '    save additionnal diagnostics arrays         ln_diatrc   = ', ln_diatrc
-         WRITE(numout,*) '    save additionnal biology diagnostics arrays ln_diabio   = ', ln_diabio
-         WRITE(numout,*) '    frequency of outputs for additional arrays  nn_writedia = ', nn_writedia
-         WRITE(numout,*) '    frequency of outputs for biological trends  nn_writebio = ', nn_writebio
-         WRITE(numout,*) ' '
-      ENDIF
-
-      IF( ln_diatrc .AND. .NOT. lk_iomput ) THEN 
-         ALLOCATE( trc2d(jpi,jpj,jpdia2d), trc3d(jpi,jpj,jpk,jpdia3d),  &
-           &       ctrc2d(jpdia2d), ctrc2l(jpdia2d), ctrc2u(jpdia2d) ,  & 
-           &       ctrc3d(jpdia3d), ctrc3l(jpdia3d), ctrc3u(jpdia3d) ,  STAT = ierr ) 
-         IF( ierr > 0 )   CALL ctl_stop( 'STOP', 'trcnam: unable to allocate add. diag. array' )
-         !
-         trc2d(:,:,:  ) = 0._wp  ;   ctrc2d(:) = ' '   ;   ctrc2l(:) = ' '    ;    ctrc2u(:) = ' ' 
-         trc3d(:,:,:,:) = 0._wp  ;   ctrc3d(:) = ' '   ;   ctrc3l(:) = ' '    ;    ctrc3u(:) = ' ' 
-         !
-      ENDIF
-
-      IF( ( ln_diabio .AND. .NOT. lk_iomput ) .OR. l_trdtrc ) THEN
-         ALLOCATE( trbio (jpi,jpj,jpk,jpdiabio) , &
-           &       ctrbio(jpdiabio), ctrbil(jpdiabio), ctrbiu(jpdiabio), STAT = ierr ) 
-         IF( ierr > 0 )   CALL ctl_stop( 'STOP', 'trcnam: unable to allocate bio. diag. array' )
-         !
-         trbio(:,:,:,:) = 0._wp  ;   ctrbio(:) = ' '   ;   ctrbil(:) = ' '    ;    ctrbiu(:) = ' ' 
-         !
-      ENDIF
-      !
-   END SUBROUTINE trc_nam_dia
+         WRITE(numout,*) ' trd_mxl_trc_init : read namelist namtrc_trd                    '
+         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~                                               '
+         WRITE(numout,*) '   * frequency of trends diagnostics   nn_trd_trc             = ', nn_trd_trc
+         WRITE(numout,*) '   * control surface type              nn_ctls_trc            = ', nn_ctls_trc
+         WRITE(numout,*) '   * restart for ML diagnostics        ln_trdmxl_trc_restart  = ', ln_trdmxl_trc_restart
+         WRITE(numout,*) '   * flag to diagnose trends of                                 '
+         WRITE(numout,*) '     instantantaneous or mean ML T/S   ln_trdmxl_trc_instant  = ', ln_trdmxl_trc_instant
+         WRITE(numout,*) '   * unit conversion factor            rn_ucf_trc             = ', rn_ucf_trc
+         DO jn = 1, jptra
+            IF( ln_trdtrc(jn) ) WRITE(numout,*) '    compute ML trends for tracer number :', jn
+         END DO
+      ENDIF
+#endif
+      !
+   END SUBROUTINE trc_nam_trd
 
 #else
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcsms.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcsms.F90	(revision 7041)
@@ -16,6 +16,7 @@
    USE trc                !
    USE trcsms_pisces      ! PISCES biogeo-model
-   USE trcsms_cfc         ! CFC 11 & 12
-   USE trcsms_c14b        ! C14b tracer 
+   USE trcsms_cfc         ! CFC 11 &/or 12
+   USE trcsms_c14         ! C14 
+   USE trcsms_age         ! AGE
    USE trcsms_my_trc      ! MY_TRC  tracers
    USE prtctl_trc         ! Print control for debbuging
@@ -49,6 +50,7 @@
       !
       IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES 
-      IF( lk_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC
-      IF( lk_c14b    )   CALL trc_sms_c14b   ( kt )    ! surface fluxes of C14
+      IF( ll_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC
+      IF( ln_c14     )   CALL trc_sms_c14    ( kt )    ! surface fluxes of C14
+      IF( ln_age     )   CALL trc_sms_age    ( kt )    ! Age tracer
       IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers
 
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcstp.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcstp.F90	(revision 7041)
@@ -15,10 +15,9 @@
    USE trctrp           ! passive tracers transport
    USE trcsms           ! passive tracers sources and sinks
-   USE prtctl_trc       ! Print control for debbuging
-   USE trcdia
    USE trcwri
    USE trcrst
    USE trdtrc_oce
    USE trdmxl_trc
+   USE prtctl_trc       ! Print control for debbuging
    USE iom
    USE in_out_manager
@@ -68,5 +67,4 @@
             cvol(:,:,jk) = e1e2t(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk)
          END DO
-         IF( lk_degrad )  cvol(:,:,:) = cvol(:,:,:) * facvol(:,:,:)       ! degrad option: reduction by facvol
          areatot         = glob_sum( cvol(:,:,:) )
       ENDIF
@@ -87,7 +85,5 @@
                                    CALL trc_rst_opn  ( kt )       ! Open tracer restart file 
          IF( lrst_trc )            CALL trc_rst_cal  ( kt, 'WRITE' )   ! calendar
-         IF( lk_iomput ) THEN  ;   CALL trc_wri      ( kt )       ! output of passive tracers with iom I/O manager
-         ELSE                  ;   CALL trc_dia      ( kt )       ! output of passive tracers with old I/O manager
-         ENDIF
+                                   CALL trc_wri      ( kt )       ! output of passive tracers with iom I/O manager
                                    CALL trc_sms      ( kt )       ! tracers: sinks and sources
                                    CALL trc_trp      ( kt )       ! transport of passive tracers
Index: /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
===================================================================
--- /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcwri.F90	(revision 7040)
+++ /branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcwri.F90	(revision 7041)
@@ -19,5 +19,6 @@
    USE trcwri_pisces
    USE trcwri_cfc
-   USE trcwri_c14b
+   USE trcwri_c14
+   USE trcwri_age
    USE trcwri_my_trc
 
@@ -54,6 +55,7 @@
       ! ---------------------------------------
       IF( lk_pisces  )   CALL trc_wri_pisces     ! PISCES 
-      IF( lk_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC
-      IF( lk_c14b    )   CALL trc_wri_c14b       ! surface fluxes of C14
+      IF( ll_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC
+      IF( ln_c14     )   CALL trc_wri_c14        ! surface fluxes of C14
+      IF( ln_age     )   CALL trc_wri_age        ! AGE tracer
       IF( lk_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers
       !
