Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-BASIC-10D.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-BASIC-10D.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-BASIC-10D.xml	(revision 12574)
@@ -28,6 +28,7 @@
        <field field_ref="iceapnd"          name="siapnd" />
        <field field_ref="icevpnd"          name="sivpnd" />
-       <field field_ref="sst_m"            name="sst_m"  />
-       <field field_ref="sss_m"            name="sss_m"  />
+       <!-- sst_m is always the potential temperature even when using teos10 -->
+       <field field_ref="sst_m_pot"        name="sst_m_pot"  />
+       <field field_ref="sss_m_abs"        name="sss_m_abs"  />
        
        <!-- heat -->
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-BASIC-1M.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-BASIC-1M.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-BASIC-1M.xml	(revision 12574)
@@ -28,6 +28,7 @@
        <field field_ref="iceapnd"          name="siapnd" />
        <field field_ref="icevpnd"          name="sivpnd" />
-       <field field_ref="sst_m"            name="sst_m"  />
-       <field field_ref="sss_m"            name="sss_m"  />
+       <!-- sst_m is always the potential temperature even when using teos10 -->
+       <field field_ref="sst_m_pot"        name="sst_m_pot"  />
+       <field field_ref="sss_m_abs"        name="sss_m_abs"  />
        
        <!-- heat -->
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-CMIP6-10D.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-CMIP6-10D.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-CMIP6-10D.xml	(revision 12574)
@@ -28,6 +28,7 @@
        <field field_ref="iceapnd"          name="siapnd" />
        <field field_ref="icevpnd"          name="sivpnd" />
-       <field field_ref="sst_m"            name="sst_m"  />
-       <field field_ref="sss_m"            name="sss_m"  />
+       <!-- sst_m is always the potential temperature even when using teos10 -->
+       <field field_ref="sst_m_pot"        name="sst_m_pot"  />
+       <field field_ref="sss_m_abs"        name="sss_m_abs"  />
        
        <!-- heat -->
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-CMIP6-1M.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-CMIP6-1M.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-ice-CMIP6-1M.xml	(revision 12574)
@@ -28,6 +28,7 @@
        <field field_ref="iceapnd"          name="siapnd" />
        <field field_ref="icevpnd"          name="sivpnd" />
-       <field field_ref="sst_m"            name="sst_m"  />
-       <field field_ref="sss_m"            name="sss_m"  />
+       <!-- sst_m is always the potential temperature even when using teos10 -->
+       <field field_ref="sst_m_pot"        name="sst_m_pot"  />
+       <field field_ref="sss_m_abs"        name="sss_m_abs"  />
        
        <!-- heat -->
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-BASIC-10D.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-BASIC-10D.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-BASIC-10D.xml	(revision 12574)
@@ -27,13 +27,13 @@
 
         <file id="file8" name_suffix="_grid_T" >
-	  <field field_ref="e3t"          name="thkcello"  />
-          <field field_ref="ssh"          name="zos"       />
-          <field field_ref="ssh2"         name="zossq"     />
-          <field field_ref="sst"          name="tos"       />
-          <field field_ref="sss"          name="sos"       />
-          <field field_ref="sbt"          name="thetaob"   />
-          <field field_ref="sbs"          name="sob"       />
-          <field field_ref="toce"         name="thetao"   operation="average" freq_op="10d" > @toce_e3t / @e3t </field>
-          <field field_ref="soce"         name="so"       operation="average" freq_op="10d" > @soce_e3t / @e3t </field>
+	  <field field_ref="e3t"          name="thkcello"   />
+          <field field_ref="ssh"          name="zos"        />
+          <field field_ref="ssh2"         name="zossq"      />
+          <field field_ref="sst_con"      name="tos_con"    />
+          <field field_ref="sss_abs"      name="sos_abs"    />
+          <field field_ref="sbt_con"      name="thetaob_con"/>
+          <field field_ref="sbs_abs"      name="sob_abs"    />
+          <field field_ref="toce_con"     name="thetao_con" operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)"   > @toce_con_e3t / @e3t </field>
+          <field field_ref="soce_abs"     name="so_abs"       operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)"    > @soce_abs_e3t / @e3t </field>
           <field field_ref="mldzint_1"    name="somxzint1"  />
 	  <field field_ref="qt"           name="hfds"       />
@@ -59,6 +59,6 @@
 	  <field field_ref="e3u"          name="thkcello"   />
           <field field_ref="ssu"          name="sozocrtx"   />
-          <field field_ref="uoce"         name="uo"      operation="average" freq_op="10d" > @uoce_e3u / @e3u </field>
-          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="10d" > @uoce2_e3u / @e3u </field>
+          <field field_ref="uoce"         name="uo"      operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)"    > @uoce_e3u / @e3u </field>
+          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="10d"  cell_methods="time: mean (thickness weighted)"   > @uoce2_e3u / @e3u </field>
 	  <field field_ref="utau"         name="tauuo"      />
 	</file>
@@ -67,6 +67,6 @@
 	  <field field_ref="e3v"          name="thkcello"  />
           <field field_ref="ssv"          name="somecrty"  />
-          <field field_ref="voce"         name="vo"      operation="average" freq_op="10d" > @voce_e3v / @e3v </field>
-          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="10d" > @voce2_e3v / @e3v </field>
+          <field field_ref="voce"         name="vo"      operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)"    > @voce_e3v / @e3v </field>
+          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)"    > @voce2_e3v / @e3v </field>
 	  <field field_ref="vtau"         name="tauvo"     />
 	</file>
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-BASIC-1M.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-BASIC-1M.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-BASIC-1M.xml	(revision 12574)
@@ -30,10 +30,11 @@
           <field field_ref="ssh"          name="zos"       />
           <field field_ref="ssh2"         name="zossq"     />
-          <field field_ref="sst"          name="tos"       />
-          <field field_ref="sss"          name="sos"       />
-          <field field_ref="sbt"          name="thetaob"   />
-          <field field_ref="sbs"          name="sob"       />
-          <field field_ref="toce"         name="thetao"   operation="average" freq_op="1mo" > @toce_e3t / @e3t </field>
-          <field field_ref="soce"         name="so"       operation="average" freq_op="1mo" > @soce_e3t / @e3t </field>
+
+          <field field_ref="sst_con"      name="tos_con"    />
+          <field field_ref="sss_abs"      name="sos_abs"    />
+          <field field_ref="sbt_con"      name="thetaob_con"/>
+          <field field_ref="sbs_abs"      name="sob_abs"    />
+          <field field_ref="toce_con"     name="thetao_con" operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"   > @toce_con_e3t / @e3t </field>
+          <field field_ref="soce_abs"     name="so_abs"       operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"   > @soce_abs_e3t / @e3t </field>
           <field field_ref="mldzint_1"    name="somxzint1"  />
 	  <field field_ref="qt"           name="hfds"       />
@@ -59,6 +60,6 @@
 	  <field field_ref="e3u"          name="thkcello"   />
           <field field_ref="ssu"          name="sozocrtx"   />
-          <field field_ref="uoce"         name="uo"      operation="average" freq_op="1mo" > @uoce_e3u / @e3u </field>
-          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="1mo" > @uoce2_e3u / @e3u </field>
+          <field field_ref="uoce"         name="uo"      operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"   > @uoce_e3u / @e3u </field>
+          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"   > @uoce2_e3u / @e3u </field>
 	  <field field_ref="utau"         name="tauuo"      />
 	</file>
@@ -67,6 +68,6 @@
 	  <field field_ref="e3v"          name="thkcello"  />
           <field field_ref="ssv"          name="somecrty"  />
-          <field field_ref="voce"         name="vo"      operation="average" freq_op="1mo" > @voce_e3v / @e3v </field>
-          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="1mo" > @voce2_e3v / @e3v </field>
+          <field field_ref="voce"         name="vo"      operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"   > @voce_e3v / @e3v </field>
+          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)"   > @voce2_e3v / @e3v </field>
 	  <field field_ref="vtau"         name="tauvo"     />
 	</file>
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-CMIP6-10D.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-CMIP6-10D.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-CMIP6-10D.xml	(revision 12574)
@@ -27,8 +27,8 @@
 
 	<file id="file1" name_suffix="_grid_T" description="ocean T grid variables" >
-          <field field_ref="sst"          name="tos"   standard_name="sea_surface_temperature"                                 />
-          <field field_ref="sst2"          name="tossq"   />
-          <field field_ref="sss"         name="sossq" long_name="Square of Sea Surface Salinity"   standard_name="square_of_sea_surface_Salinity"   unit="1e-06"     > sss * sss </field >
-          <field field_ref="sss"          name="sos"   standard_name="sea_surface_salinity"                                    />
+          <field field_ref="sst_con"          name="tos_con"   standard_name="sea_surface_conservative_temperature"                                 />
+          <field field_ref="sst2_con"         name="tossq_com"   />
+          <field field_ref="sss_abs"          name="sos_abs"   standard_name="sea_surface_absolute_salinity"                                    />
+          <field field_ref="sss2_abs"         name="sossq_abs" long_name="Square of Sea Surface Absolute Salinity"   standard_name="square_of_sea_surface_absolute_Salinity"   unit="1e-06"     > sss_abs * sss_abs </field >
           <field field_ref="mldr0_3"     name="mlotst"   long_name="Ocean Mixed Layer Thickness Defined by Sigma T"         />
 	  <field field_ref="ssh"       name="zos"   standard_name="sea_surface_height_above_geoid" long_name="Sea Surface Height Above Geoid"      />
@@ -65,10 +65,10 @@
           <field field_ref="20d"          name="t20d"  standard_name="depth_of_isosurface_of_sea_water_potential_temperature" />
 -->
-          <field field_ref="toce"         name="thetao"       operation="average" freq_op="10d" > @toce_e3t / @e3t </field>
+          <field field_ref="toce_con"         name="thetao_con"       operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @toce_con_e3t / @e3t </field>
 <!-- TO FIX
           <field field_ref="toce_vmean"   name="thetaot"   />
           <field field_ref="toce_vmean300"   name="thetaot300"   />
 -->
-          <field field_ref="soce"         name="so"     operation="average" freq_op="10d" > @soce_e3t / @e3t </field>
+          <field field_ref="soce_abs"         name="so_abs"     operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @soce_e3t_abs / @e3t </field>
 	  <field field_ref="ssh"       name="zos"   standard_name="sea_surface_height_above_geoid" long_name="Sea Surface Height Above Geoid"      />
           <field field_ref="ssh2"      name="zossq"  standard_name="square_of_sea_surface_height_above_geoid" long_name="Square of Sea Surface Height Above Geoid"  />
@@ -83,10 +83,10 @@
           <field field_ref="berg_melt_qlat"  name="berg_latent_heat_flux"     standard_name="latent_heat_flux_from_icebergs"                                 />
           <field field_ref="botpres"      name="pbo"                                                                                />
-          <field field_ref="sst"          name="tos"   standard_name="sea_surface_temperature"                                 />
-          <field field_ref="sst2"          name="tossq"   />
-          <field field_ref="sss"          name="sos"   standard_name="sea_surface_salinity"                                    />
-          <field field_ref="sss"         name="sossq" long_name="Square of Sea Surface Salinity"   standard_name="square_of_sea_surface_Salinity"   unit="1e-06"     > sss * sss </field >
-          <field field_ref="sbt"          name="thetaob"   standard_name="sea_water_potential_temperature_at_sea_floor"            />
-          <field field_ref="sbs"          name="sob"   standard_name="sea_water_salinity_at_sea_floor"                         />
+          <field field_ref="sst_con"          name="tos_con"   standard_name="sea_surface_conservative_temperature"                                 />
+          <field field_ref="sst2_con"          name="tossq_con"   />
+          <field field_ref="sss_abs"          name="sos_abs"   standard_name="sea_surface_absolute_salinity"                                    />
+          <field field_ref="sss2_abs"         name="sossq_abs" long_name="Square of Sea Surface Absolute Salinity"   standard_name="square_of_sea_surface_absolute_Salinity"   unit="1e-06"     > sss_abs * sss_abs </field >
+          <field field_ref="sbt_con"          name="thetaob_con"   standard_name="sea_water_conservative_temperature_at_sea_floor"            />
+          <field field_ref="sbs_abs"          name="sob_abs"   standard_name="sea_water_absolute_salinity_at_sea_floor"                         />
 <!-- TO FIX
           <field field_ref="rain_ao_cea" name="pr" standard_name="rainfall_flux" long_name="Rainfall Flux" > @rain_ao_cea </field>
@@ -130,5 +130,5 @@
           <field field_ref="e3t_vsum300" name="e3t_vsum300m" />
 -->
-          <field field_ref="sbs" name="sob" />
+          <field field_ref="sbs_abs" name="sob_abs" />
           <field field_ref="bn2" name="obvfsq" />
 <!-- trend diagnostics-->
@@ -153,9 +153,9 @@
 	<file id="file5" name_suffix="_grid_U" description="ocean U grid variables" >
           <field field_ref="e3u"          name="thkcello"     standard_name="cell_thickness" />
-          <field field_ref="uoce"         name="uo"     operation="average" freq_op="10d" > @uoce_e3u / @e3u </field>
+          <field field_ref="uoce"         name="uo"     operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @uoce_e3u / @e3u </field>
 	  <field field_ref="utau"         name="tauuo"   standard_name="surface_downward_x_stress"  />
-          <field field_ref="ut"           name="uto" standard_name="product_of_xward_sea_water_velocity_and_temperature" long_name="UT"  operation="average" freq_op="10d" > @ut_e3u / @e3u </field>
-          <field field_ref="us"           name="uso" standard_name="product_of_xward_sea_water_velocity_and_salinity" long_name="US"    operation="average" freq_op="10d" > @us_e3u / @e3u </field>
-          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="10d" > @uoce2_e3u / @e3u </field>
+          <field field_ref="ut"           name="uto" standard_name="product_of_xward_sea_water_velocity_and_temperature" long_name="UT"  operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @ut_e3u / @e3u </field>
+          <field field_ref="us"           name="uso" standard_name="product_of_xward_sea_water_velocity_and_salinity" long_name="US"    operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @us_e3u / @e3u </field>
+          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @uoce2_e3u / @e3u </field>
           <!-- available with key_diaar5 -->
           <field field_ref="u_masstr"     name="umo" /> 
@@ -170,9 +170,9 @@
 	<file id="file6" name_suffix="_grid_V" description="ocean V grid variables" >
           <field field_ref="e3v"          name="thkcello"        standard_name="cell_thickness" />
-          <field field_ref="voce"         name="vo"     operation="average" freq_op="10d" > @voce_e3v / @e3v </field>
+          <field field_ref="voce"         name="vo"     operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @voce_e3v / @e3v </field>
 	  <field field_ref="vtau"         name="tauvo"   standard_name="surface_downward_y_stress" />
-          <field field_ref="vt"           name="vto" standard_name="product_of_yward_sea_water_velocity_and_temperature" long_name="VT"  operation="average" freq_op="10d" > @vt_e3v / @e3v </field>
-          <field field_ref="vs"           name="vso" standard_name="product_of_yward_sea_water_velocity_and_salinity" long_name="VS"  operation="average" freq_op="10d" > @vs_e3v / @e3v </field>
-          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="10d" > @voce2_e3v / @e3v </field>
+          <field field_ref="vt"           name="vto" standard_name="product_of_yward_sea_water_velocity_and_temperature" long_name="VT"  operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @vt_e3v / @e3v </field>
+          <field field_ref="vs"           name="vso" standard_name="product_of_yward_sea_water_velocity_and_salinity" long_name="VS"  operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @vs_e3v / @e3v </field>
+          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="10d" cell_methods="time: mean (thickness weighted)" > @voce2_e3v / @e3v </field>
           <!-- available with key_diaar5 -->
           <field field_ref="v_masstr"     name="vmo" /> 
@@ -202,6 +202,6 @@
         <file id="file8" name_suffix="_scalar" description="scalar variables" enabled=".true." >
           <field field_ref="voltot"       name="scvoltot"   />
-          <field field_ref="temptot"      name="thetaoga"   />
-          <field field_ref="saltot"       name="soga"   />
+          <field field_ref="temptot"      name="thetaoga" cell_methods="time: mean (volume weighted)"   />
+          <field field_ref="saltot"       name="soga"     cell_methods="time: mean (volume weighted)"   />
         </file>
 
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-CMIP6-1M.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-CMIP6-1M.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/METO_GO/EXPREF/file_def_nemo-oce-CMIP6-1M.xml	(revision 12574)
@@ -27,8 +27,8 @@
 
 	<file id="file1" name_suffix="_grid_T" description="ocean T grid variables" >
-          <field field_ref="sst"          name="tos"   standard_name="sea_surface_temperature"                                 />
-          <field field_ref="sst2"          name="tossq"   />
-          <field field_ref="sss"         name="sossq" long_name="Square of Sea Surface Salinity"   standard_name="square_of_sea_surface_Salinity"   unit="1e-06"     > sss * sss </field >
-          <field field_ref="sss"          name="sos"   standard_name="sea_surface_salinity"                                    />
+          <field field_ref="sst_con"          name="tos_con"   standard_name="sea_surface_conservative_temperature"                                 />
+          <field field_ref="sst2_con"          name="tossq_con"   />
+          <field field_ref="sss_abs"          name="sos_abs"   standard_name="sea_surface_absolute_salinity"                                    />
+          <field field_ref="sss2_abs"         name="sossq_abs" long_name="Square of Sea Surface Absolute Salinity"   standard_name="square_of_sea_surface_absolute_Salinity"   unit="1e-06"     > sss_abs * sss_abs </field >
           <field field_ref="mldr0_3"     name="mlotst"   long_name="Ocean Mixed Layer Thickness Defined by Sigma T"         />
 	  <field field_ref="ssh"       name="zos"   standard_name="sea_surface_height_above_geoid" long_name="Sea Surface Height Above Geoid"      />
@@ -65,10 +65,10 @@
           <field field_ref="20d"          name="t20d"  standard_name="depth_of_isosurface_of_sea_water_potential_temperature" />
 -->
-          <field field_ref="toce"         name="thetao"       operation="average" freq_op="1mo" > @toce_e3t / @e3t </field>
+          <field field_ref="toce_con"         name="thetao_con"       operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)" > @toce_e3t_con / @e3t </field>
 <!-- TO FIX
           <field field_ref="toce_vmean"   name="thetaot"   />
           <field field_ref="toce_vmean300"   name="thetaot300"   />
 -->
-          <field field_ref="soce"         name="so"     operation="average" freq_op="1mo" > @soce_e3t / @e3t </field>
+          <field field_ref="soce_abs"         name="so_abs"     operation="average" freq_op="1mo"   cell_methods="time: mean (thickness weighted)" > @soce_e3t_abs / @e3t </field>
 	  <field field_ref="ssh"       name="zos"   standard_name="sea_surface_height_above_geoid" long_name="Sea Surface Height Above Geoid"      />
           <field field_ref="ssh2"      name="zossq"  standard_name="square_of_sea_surface_height_above_geoid" long_name="Square of Sea Surface Height Above Geoid"  />
@@ -83,10 +83,10 @@
           <field field_ref="berg_melt_qlat"  name="berg_latent_heat_flux"     standard_name="latent_heat_flux_from_icebergs"                                 />
           <field field_ref="botpres"      name="pbo"                                                                                />
-          <field field_ref="sst"          name="tos"   standard_name="sea_surface_temperature"                                 />
-          <field field_ref="sst2"          name="tossq"   />
-          <field field_ref="sss"          name="sos"   standard_name="sea_surface_salinity"                                    />
-          <field field_ref="sss"         name="sossq" long_name="Square of Sea Surface Salinity"   standard_name="square_of_sea_surface_Salinity"   unit="1e-06"     > sss * sss </field >
-          <field field_ref="sbt"          name="thetaob"   standard_name="sea_water_potential_temperature_at_sea_floor"            />
-          <field field_ref="sbs"          name="sob"   standard_name="sea_water_salinity_at_sea_floor"                         />
+          <field field_ref="sst_con"          name="tos_con"   standard_name="sea_surface_conservative_temperature"                                 />
+          <field field_ref="sst2_con"          name="tossq_con"   />
+          <field field_ref="sss_abs"          name="sos_abs"   standard_name="sea_surface_absolute_salinity"                                    />
+          <field field_ref="sss2_abs"         name="sossq_abs" long_name="Square of Sea Surface Absolute Salinity"   standard_name="square_of_sea_surface_absolute_Salinity"   unit="1e-06"     > sss_abs * sss_abs </field >
+          <field field_ref="sbt_con"          name="thetaob_con"   standard_name="sea_water_conservative_temperature_at_sea_floor"            />
+          <field field_ref="sbs_abs"          name="sob_abs"   standard_name="sea_water_salinity_at_sea_floor"                         />
 <!-- TO FIX
           <field field_ref="rain_ao_cea" name="pr" standard_name="rainfall_flux" long_name="Rainfall Flux" > @rain_ao_cea </field>
@@ -130,5 +130,5 @@
           <field field_ref="e3t_vsum300" name="e3t_vsum300m" />
 -->
-          <field field_ref="sbs" name="sob" />
+          <field field_ref="sbs_abs" name="sob_abs" />
           <field field_ref="bn2" name="obvfsq" />
 <!-- trend diagnostics-->
@@ -153,9 +153,9 @@
 	<file id="file5" name_suffix="_grid_U" description="ocean U grid variables" >
           <field field_ref="e3u"          name="thkcello"     standard_name="cell_thickness" />
-          <field field_ref="uoce"         name="uo"     operation="average" freq_op="1mo" > @uoce_e3u / @e3u </field>
+          <field field_ref="uoce"         name="uo"     operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)" > @uoce_e3u / @e3u </field>
 	  <field field_ref="utau"         name="tauuo"   standard_name="surface_downward_x_stress"  />
-          <field field_ref="ut"           name="uto" standard_name="product_of_xward_sea_water_velocity_and_temperature" long_name="UT"  operation="average" freq_op="1mo" > @ut_e3u / @e3u </field>
-          <field field_ref="us"           name="uso" standard_name="product_of_xward_sea_water_velocity_and_salinity" long_name="US"    operation="average" freq_op="1mo" > @us_e3u / @e3u </field>
-          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="1mo" > @uoce2_e3u / @e3u </field>
+          <field field_ref="ut"           name="uto" standard_name="product_of_xward_sea_water_velocity_and_temperature" long_name="UT"  operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)" > @ut_e3u / @e3u </field>
+          <field field_ref="us"           name="uso" standard_name="product_of_xward_sea_water_velocity_and_salinity" long_name="US"    operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"> @us_e3u / @e3u </field>
+          <field field_ref="uoce"         name="u2o" standard_name="square_of_sea_water_x_velocity" long_name="UU"  operation="average" freq_op="1mo"  cell_methods="time: mean (thickness weighted)"> @uoce2_e3u / @e3u </field>
           <!-- available with key_diaar5 -->
           <field field_ref="u_masstr"     name="umo" /> 
@@ -170,9 +170,9 @@
 	<file id="file6" name_suffix="_grid_V" description="ocean V grid variables" >
           <field field_ref="e3v"          name="thkcello"        standard_name="cell_thickness" />
-          <field field_ref="voce"         name="vo"     operation="average" freq_op="1mo" > @voce_e3v / @e3v </field>
+          <field field_ref="voce"         name="vo"     operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)" > @voce_e3v / @e3v </field>
 	  <field field_ref="vtau"         name="tauvo"   standard_name="surface_downward_y_stress" />
-          <field field_ref="vt"           name="vto" standard_name="product_of_yward_sea_water_velocity_and_temperature" long_name="VT"  operation="average" freq_op="1mo" > @vt_e3v / @e3v </field>
-          <field field_ref="vs"           name="vso" standard_name="product_of_yward_sea_water_velocity_and_salinity" long_name="VS"  operation="average" freq_op="1mo" > @vs_e3v / @e3v </field>
-          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="1mo" > @voce2_e3v / @e3v </field>
+          <field field_ref="vt"           name="vto" standard_name="product_of_yward_sea_water_velocity_and_temperature" long_name="VT"  operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)" > @vt_e3v / @e3v </field>
+          <field field_ref="vs"           name="vso" standard_name="product_of_yward_sea_water_velocity_and_salinity" long_name="VS"  operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)" > @vs_e3v / @e3v </field>
+          <field field_ref="voce"         name="v2o" standard_name="square_of_sea_water_y_velocity" long_name="VV"  operation="average" freq_op="1mo" cell_methods="time: mean (thickness weighted)" > @voce2_e3v / @e3v </field>
           <!-- available with key_diaar5 -->
           <field field_ref="v_masstr"     name="vmo" /> 
@@ -202,6 +202,6 @@
         <file id="file8" name_suffix="_scalar" description="scalar variables" enabled=".true." >
           <field field_ref="voltot"       name="scvoltot"   />
-          <field field_ref="temptot"      name="thetaoga"   />
-          <field field_ref="saltot"       name="soga"   />
+          <field field_ref="temptot"      name="thetaoga"   cell_methods="time: mean (volume weighted)"   />
+          <field field_ref="saltot"       name="soga"       cell_methods="time: mean (volume weighted)"   />
         </file>
 
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/field_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/field_def_nemo-ice.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/field_def_nemo-ice.xml	(revision 12574)
@@ -163,6 +163,10 @@
 
 	  <!-- sbcssm variables -->
-          <field id="sst_m"    unit="degC" />
-          <field id="sss_m"    unit="psu"  />
+          <field id="sst_m_pot"    unit="degC" />
+	  <!-- EOS-80 -->
+          <field id="sss_m_pra"    unit="psu"  />
+          <!-- TEOS-10 -->
+          <field id="sss_m_abs"    unit="psu"  />
+
           <field id="ssu_m"    unit="m/s"  />
           <field id="ssv_m"    unit="m/s"  />
@@ -331,6 +335,9 @@
 	  <field field_ref="icevpnd"          name="sivpnd" />
           <field field_ref="iceage"           name="siage"  />
-	  <field field_ref="sst_m"            name="sst_m"  />
-	  <field field_ref="sss_m"            name="sss_m"  />
+	  <field id="sst_m_pot"    unit="degC" />
+	  <!-- EOS-80 -->
+	  <field id="sss_m_pra"    unit="psu"  />
+	  <!-- TEOS-10 -->
+          <field id="sss_m_abs"    unit="psu"  />
 	  
 	  <!-- heat -->
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/field_def_nemo-oce.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/field_def_nemo-oce.xml	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/field_def_nemo-oce.xml	(revision 12574)
@@ -22,9 +22,15 @@
         <field id="e3t_surf"     long_name="T-cell thickness"   field_ref="e3t"  standard_name="cell_thickness"     unit="m"   grid_ref="grid_T_surface_extract"/>
         <field id="e3t_0"        long_name="Initial T-cell thickness"            standard_name="ref_cell_thickness" unit="m"   grid_ref="grid_T_3D" />
-
-        <field id="toce"         long_name="temperature"                         standard_name="sea_water_potential_temperature"   unit="degC"     grid_ref="grid_T_3D"/>
-        <field id="toce_e3t"     long_name="temperature (thickness weighted)"                                                      unit="degC"     grid_ref="grid_T_3D" > toce * e3t </field >
-        <field id="soce"         long_name="salinity"                            standard_name="sea_water_practical_salinity"      unit="1e-3"     grid_ref="grid_T_3D"/>
-        <field id="soce_e3t"     long_name="salinity    (thickness weighted)"                                                      unit="1e-3"     grid_ref="grid_T_3D" > soce * e3t </field >
+        
+        <!-- EOS80 -->
+        <field id="toce_pot"         long_name="potential temperature"           standard_name="sea_water_potential_temperature"      unit="degC"     grid_ref="grid_T_3D"/>
+        <field id="toce_pot_e3t"     long_name="potential temperature (thickness weighted)"                                           unit="degC"     grid_ref="grid_T_3D" > toce_pot * e3t </field >
+        <field id="soce_pra"         long_name="practical salinity"              standard_name="sea_water_practical_salinity"      unit="1e-3"     grid_ref="grid_T_3D"/>
+        <field id="soce_pra_e3t"     long_name="practical salinity    (thickness weighted)"                                        unit="1e-3"     grid_ref="grid_T_3D" > soce_pra * e3t </field >
+        <!-- TEOS10 -->
+        <field id="toce_con"         long_name="conservative temperature"        standard_name="sea_water_conservative_temperature"   unit="degC"     grid_ref="grid_T_3D"/>
+        <field id="toce_con_e3t"     long_name="conservative temperature (thickness weighted)"                                        unit="degC"     grid_ref="grid_T_3D" > toce_con * e3t </field >  
+        <field id="soce_abs"         long_name="absolute salinity"               standard_name="sea_water_absolute_salinity"       unit="1e-3"     grid_ref="grid_T_3D"/>
+        <field id="soce_abs_e3t"     long_name="absolute salinity    (thickness weighted)"                                         unit="1e-3"     grid_ref="grid_T_3D" > soce_abs * e3t </field >
 
         <!-- t-eddy viscosity coefficients (ldfdyn) -->
@@ -32,22 +38,42 @@
 	<field id="ahmt_3d"      long_name=" 3D      t-eddy viscosity coefficient"   unit="m2/s or m4/s"  grid_ref="grid_T_3D"/>
 
-        <field id="sst"          long_name="sea surface temperature"                            standard_name="sea_surface_temperature"             unit="degC"     />
-        <field id="sst2"         long_name="square of sea surface temperature"                  standard_name="square_of_sea_surface_temperature"   unit="degC2"     > sst * sst </field >
-        <field id="sstmax"       long_name="max of sea surface temperature"   field_ref="sst"   operation="maximum"                                                 />
-        <field id="sstmin"       long_name="min of sea surface temperature"   field_ref="sst"   operation="minimum"                                                 />
-        <field id="sstgrad"      long_name="module of sst gradient"                                                                                 unit="degC/m"   />
-        <field id="sstgrad2"     long_name="square of module of sst gradient"                                                                       unit="degC2/m2" />
-        <field id="sbt"          long_name="sea bottom temperature"                                                                                 unit="degC"     />
-        <field id="tosmint"      long_name="vertical integral of temperature times density"     standard_name="integral_wrt_depth_of_product_of_density_and_potential_temperature"  unit="(kg m2) degree_C" />
-        <field id="sst_wl"       long_name="Delta SST of warm layer"                                                                                unit="degC"     />
-        <field id="sst_cs"       long_name="Delta SST of cool skin"                                                                                 unit="degC"     />
-	<field id="temp_3m"      long_name="temperature at 3m"                                                                                      unit="degC"     />
-        
-        <field id="sss"          long_name="sea surface salinity"                               standard_name="sea_surface_salinity"                unit="1e-3"     />
-        <field id="sss2"         long_name="square of sea surface salinity"                                                                         unit="1e-6"      > sss * sss </field >
-        <field id="sssmax"       long_name="max of sea surface salinity"      field_ref="sss"   operation="maximum"                                                 />
-        <field id="sssmin"       long_name="min of sea surface salinity"      field_ref="sss"   operation="minimum"                                                 />
-        <field id="sbs"          long_name="sea bottom salinity"                                                                                    unit="0.001"    />
-        <field id="somint"       long_name="vertical integral of salinity times density"        standard_name="integral_wrt_depth_of_product_of_density_and_salinity"  unit="(kg m2) x (1e-3)" /> 
+        <!-- EOS80 -->
+        <field id="sst_pot"          long_name="sea surface potential temperature"                            standard_name="sea_surface_temperature"             unit="degC"     />
+        <field id="sst2_pot"         long_name="square of sea surface potential temperature"                  standard_name="square_of_sea_surface_temperature"   unit="degC2"     > sst_pot * sst_pot </field >
+        <field id="sstmax_pot"       long_name="max of sea surface potential temperature"   field_ref="sst_pot"   operation="maximum"                                                 />
+        <field id="sstmin_pot"       long_name="min of sea surface potential temperature"   field_ref="sst_pot"   operation="minimum"                                                 />
+        <field id="sstgrad_pot"      long_name="module of potential sst gradient"                                                                                 unit="degC/m"   />
+        <field id="sstgrad2_pot"     long_name="square of module of potential sst gradient"                                                                       unit="degC2/m2" />
+        <field id="sbt_pot"          long_name="sea bottom potential temperature"                                                                                 unit="degC"     />
+        <field id="tosmint_pot"      long_name="vertical integral of potential temperature times density"     standard_name="integral_wrt_depth_of_product_of_density_and_potential_temperature"  unit="(kg m2) degree_C" />
+        <field id="sst_wl_pot"       long_name="Delta potential SST of warm layer"                                                                                unit="degC"     />
+        <field id="sst_cs_pot"       long_name="Delta potential SST of cool skin"                                                                                 unit="degC"     />
+	<field id="temp_3m_pot"      long_name="potential temperature at 3m"                                                                                      unit="degC"     />
+
+        <field id="sss_pra"          long_name="sea surface practical salinity"                               standard_name="sea_surface_practical_salinity"                unit="1e-3"     />
+        <field id="sss2_pra"         long_name="square of sea surface practical salinity"                                                                         unit="1e-6"      > sss_pra * sss_pra </field >
+        <field id="sssmax_pra"       long_name="max of sea surface practical salinity"      field_ref="sss_pra"   operation="maximum"                                                 />
+        <field id="sssmin_pra"       long_name="min of sea surface practical salinity"      field_ref="sss_pra"   operation="minimum"                                                 />
+        <field id="sbs_pra"          long_name="sea bottom practical salinity"                                                                                    unit="0.001"    />
+        <field id="somint_pra"       long_name="vertical integral of practical salinity times density"        standard_name="integral_wrt_depth_of_product_of_density_and_practical_salinity"  unit="(kg m2) x (1e-3)" /> 
+        <!-- TEOS10 -->
+        <field id="sst_con"          long_name="sea surface conservative temperature"                            standard_name="sea_surface_conservative_temperature"             unit="degC"     />
+        <field id="sst2_con"         long_name="square of sea surface conservative temperature"                  standard_name="square_of_sea_surface_temperature"   unit="degC2"     > sst_con * sst_con </field >
+        <field id="sstmax_con"       long_name="max of sea surface conservative temperature"   field_ref="sst_con"   operation="maximum"                                                 />
+        <field id="sstmin_con"       long_name="min of sea surface conservative temperature"   field_ref="sst_con"   operation="minimum"                                                 />
+        <field id="sstgrad_con"      long_name="module of conservative sst gradient"                                                                                 unit="degC/m"   />
+        <field id="sstgrad2_con"     long_name="square of module of conservative sst gradient"                                                                       unit="degC2/m2" />
+        <field id="sbt_con"          long_name="sea bottom conservative temperature"                                                                                 unit="degC"     />
+        <field id="tosmint_con"      long_name="vertical integral of conservative temperature times density"     standard_name="integral_wrt_depth_of_product_of_density_and_conservative_temperature"  unit="(kg m2) degree_C" />
+        <field id="sst_wl_con"       long_name="Delta conservative SST of warm layer"                                                                                unit="degC"     />
+        <field id="sst_cs_con"       long_name="Delta conservative SST of cool skin"                                                                                 unit="degC"     />
+	<field id="temp_3m_con"      long_name="conservative temperature at 3m"                                                                                      unit="degC"     />
+
+        <field id="sss_abs"          long_name="sea surface absolute salinity"                               standard_name="sea_surface_absolute_salinity"                unit="1e-3"     />
+        <field id="sss2_abs"         long_name="square of sea surface absolute salinity"                                                                         unit="1e-6"      > sss_abs * sss_abs </field >
+        <field id="sssmax_abs"       long_name="max of sea surface absolute salinity"      field_ref="sss_abs"   operation="maximum"                                                 />
+        <field id="sssmin_abs"       long_name="min of sea surface absolute salinity"      field_ref="sss_abs"   operation="minimum"                                                 />
+        <field id="sbs_abs"          long_name="sea bottom absolute salinity"                                                                                    unit="0.001"    />
+        <field id="somint_abs"       long_name="vertical integral of absolute salinity times density"        standard_name="integral_wrt_depth_of_product_of_density_and_absolute_salinity"  unit="(kg m2) x (1e-3)" />
 
         <field id="taubot"       long_name="bottom stress module"                                                                                   unit="N/m2"     /> 
@@ -343,6 +369,10 @@
 	  
 	  <!-- sbcssm variables -->
-          <field id="sst_m"    unit="degC" />
-          <field id="sss_m"    unit="psu"  />
+          <field id="sst_m_pot"    unit="degC" />
+	  <!-- EOS-80 -->
+          <field id="sss_m_pra"    unit="psu"  />
+          <!-- TEOS-10 -->
+          <field id="sss_m_abs"    unit="psu"  />
+
           <field id="ssu_m"    unit="m/s"  />
           <field id="ssv_m"    unit="m/s"  />
@@ -898,6 +928,11 @@
     
     <field_group id="mooring" >
-      <field field_ref="toce"         name="thetao"   long_name="sea_water_potential_temperature"      />
-      <field field_ref="soce"         name="so"       long_name="sea_water_salinity"                   />
+      <!-- EOS80 -->
+      <field field_ref="toce_pot"         name="thetao_pot"   long_name="sea_water_potential_temperature"      />
+      <field field_ref="soce_pra"         name="so_pra"       long_name="sea_water_practical_salinity"                   />
+      <!-- TEOS10 -->
+      <field field_ref="toce_con"         name="thetao_con"   long_name="sea_water_conservative_temperature"      />
+      <field field_ref="soce_abs"         name="so_con"       long_name="sea_water_absolute_salinity"                   />
+
       <field field_ref="uoce"         name="uo"       long_name="sea_water_x_velocity"                 />
       <field field_ref="voce"         name="vo"       long_name="sea_water_y_velocity"                 />
@@ -905,9 +940,16 @@
       <field field_ref="avt"          name="difvho"   long_name="ocean_vertical_heat_diffusivity"      />
       <field field_ref="avm"          name="difvmo"   long_name="ocean_vertical_momentum_diffusivity"  />
-      
-      <field field_ref="sst"          name="tos"      long_name="sea_surface_temperature"                       />
-      <field field_ref="sst2"         name="tossq"    long_name="square_of_sea_surface_temperature"             />
-      <field field_ref="sstgrad"      name="tosgrad"  long_name="module_of_sea_surface_temperature_gradient"    />
-      <field field_ref="sss"          name="sos"      long_name="sea_surface_salinity"                          />
+
+      <!-- EOS80 -->
+      <field field_ref="sst_pot"          name="tos_pot"      long_name="sea_surface_potential_temperature"                       />
+      <field field_ref="sst2_pot"         name="tossq_pot"    long_name="square_of_sea_surface_potential_temperature"             />
+      <field field_ref="sstgrad_pot"      name="tosgrad_pot"  long_name="module_of_sea_surface_potential_temperature_gradient"    />
+      <field field_ref="sss_pra"          name="sos_pra"      long_name="sea_surface_absolute_salinity"                          />
+      <!-- TEOS10 -->
+      <field field_ref="sst_con"          name="tos_con"      long_name="sea_surface_conservative_temperature"                       />
+      <field field_ref="sst2_con"         name="tossq_con"    long_name="square_of_sea_surface_conservative_temperature"             />
+      <field field_ref="sstgrad_con"      name="tosgrad_con"  long_name="module_of_sea_surface_conservative_temperature_gradient"    />
+      <field field_ref="sss_abs"          name="sos"      long_name="sea_surface_absolute_salinity"                          />
+
       <field field_ref="ssh"          name="zos"      long_name="sea_surface_height_above_geoid"                />
       <field field_ref="empmr"        name="wfo"      long_name="water_flux_into_sea_water"                     />
@@ -932,9 +974,17 @@
 
     <field_group id="groupT" >
-      <field field_ref="toce"         name="thetao"   long_name="sea_water_potential_temperature"               />
-      <field field_ref="soce"         name="so"       long_name="sea_water_salinity"                            />
-      <field field_ref="sst"          name="tos"      long_name="sea_surface_temperature"                       />
-      <field field_ref="sst2"         name="tossq"    long_name="square_of_sea_surface_temperature"             />
-      <field field_ref="sss"          name="sos"      long_name="sea_surface_salinity"                          />
+      <!-- EOS80 -->
+      <field field_ref="toce_pot"         name="thetao_pot"   long_name="sea_water_potential_temperature"               />
+      <field field_ref="soce_pra"         name="so_pra"       long_name="sea_water_practical_salinity"                            />
+      <field field_ref="sst_pot"          name="tos_pot"      long_name="sea_surface_potential_temperature"                       />
+      <field field_ref="sst2_pot"         name="tossq_pot"    long_name="square_of_sea_surface_potential_temperature"             />
+      <field field_ref="sss_pra"          name="sos_pra"      long_name="sea_surface_practical_salinity"                          />
+      <!-- TEOS10 -->
+      <field field_ref="toce_con"         name="thetao_con"   long_name="sea_water_conservative_temperature"               />
+      <field field_ref="soce_abs"         name="so_abs"       long_name="sea_water_absolute_salinity"                            />
+      <field field_ref="sst_con"          name="tos_con"      long_name="sea_surface_conservative_temperature"                       />
+      <field field_ref="sst2_con"         name="tossq_con"    long_name="square_of_sea_surface_conservative_temperature"             />
+      <field field_ref="sss_abs"          name="sos_abs"      long_name="sea_surface_absolute_salinity"                          />
+
       <field field_ref="ssh"          name="zos"      long_name="sea_surface_height_above_geoid"                />
       <field field_ref="empmr"        name="wfo"      long_name="water_flux_into_sea_water"                     />
@@ -972,10 +1022,19 @@
     <!-- TMB diagnostic output -->
     <field_group  id="1h_grid_T_tmb" grid_ref="grid_T_2D" operation="instant">
-      <field id="top_temp"           name="votemper_top"  unit="degC"  />
-      <field id="mid_temp"           name="votemper_mid"  unit="degC"  />
-      <field id="bot_temp"           name="votemper_bot"  unit="degC"  />
-      <field id="top_sal"            name="vosaline_top"  unit="psu"   />
-      <field id="mid_sal"            name="vosaline_mid"  unit="psu"   />
-      <field id="bot_sal"            name="vosaline_bot"  unit="psu"   />
+      <!-- EOS80 -->
+      <field id="top_temp_pot"           name="votemper_top_pot"  unit="degC"  />
+      <field id="mid_temp_pot"           name="votemper_mid_pot"  unit="degC"  />
+      <field id="bot_temp_pot"           name="votemper_bot_pot"  unit="degC"  />
+      <field id="top_sal_pra"            name="vosaline_top_pra"  unit="psu"   />
+      <field id="mid_sal_pra"            name="vosaline_mid_pra"  unit="psu"   />
+      <field id="bot_sal_pra"            name="vosaline_bot_pra"  unit="psu"   />
+      <!-- TEOS10 -->
+      <field id="top_temp_con"           name="votemper_top_con"  unit="degC"  />
+      <field id="mid_temp_con"           name="votemper_mid_con"  unit="degC"  />
+      <field id="bot_temp_con"           name="votemper_bot_con"  unit="degC"  />
+      <field id="top_sal_abs"            name="vosaline_top_abs"  unit="psu"   />
+      <field id="mid_sal_abs"            name="vosaline_mid_abs"  unit="psu"   />
+      <field id="bot_sal_abs"            name="vosaline_bot_abs"  unit="psu"   />
+
       <field id="sshnmasked"         name="sossheig"      unit="m"     /> 
     </field_group>
@@ -997,7 +1056,13 @@
     <!-- 25h diagnostic output -->
     <field_group id="25h_grid_T" grid_ref="grid_T_3D" operation="instant">
-      <field id="temper25h"         name="potential temperature 25h mean"    unit="degC" />
+      <!-- EOS80 -->
+      <field id="temper25h_pot"         name="potential temperature 25h mean"    unit="degC" />
       <field id="tempis25h"         name="insitu temperature 25h mean"    unit="degC" />
-      <field id="salin25h"          name="salinity 25h mean"                 unit="psu"  />
+      <field id="salin25h_pra"          name="practical salinity 25h mean"                 unit="psu"  />
+      <!-- TEOS10 -->
+      <field id="temper25h_con"         name="conservative temperature 25h mean"    unit="degC" />
+      <field id="tempis25h"         name="insitu temperature 25h mean"    unit="degC" />
+      <field id="salin25h_abs"          name="absolute salinity 25h mean"                 unit="psu"  />
+
       <field id="ssh25h"            name="sea surface height 25h mean"  grid_ref="grid_T_2D"      unit="m"    />
     </field_group>
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/namelist_ref
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/namelist_ref	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/cfgs/SHARED/namelist_ref	(revision 12574)
@@ -67,4 +67,5 @@
    ln_xios_read = .FALSE.  !  use XIOS to read restart file (only for a single file restart)
    nn_wxios = 0      !  use XIOS to write restart file 0 - no, 1 - single file output, 2 - multiple file output
+   ln_rst_eos = .TRUE.     ! check if the equation of state used to produce the restart is consistent with model
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/DIA/diawri.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/DIA/diawri.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/DIA/diawri.F90	(revision 12574)
@@ -50,5 +50,5 @@
    USE iom            ! 
    USE ioipsl         ! 
-
+   USE eosbn2
 #if defined key_si3
    USE ice 
@@ -114,6 +114,29 @@
       REAL(wp), DIMENSION(jpi,jpj)     ::   z2d   ! 2D workspace
       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   z3d   ! 3D workspace
+      CHARACTER(len=4),SAVE :: ttype , stype           ! temperature and salinity type
       !!----------------------------------------------------------------------
       ! 
+      IF( kt == nit000 ) THEN
+         IF( ln_TEOS10 ) THEN
+            IF ( iom_use("toce_pot") .OR. iom_use("soce_pra") .OR. iom_use("sst_pot") .OR. iom_use("sss_pra") &
+                  & .OR. iom_use("sbt_pot") .OR. iom_use("sbs_pra") .OR. iom_use("sstgrad_pot") .OR. iom_use("sstgrad2_pot") &
+                  & .OR. iom_use("tosmint_pot") .OR. iom_use("somint_pra"))  THEN 
+               CALL ctl_stop( 'diawri: potential temperature and practical salinity not available with ln_TEOS10' )
+            ELSE
+               ttype='con' ; stype='abs'   ! teos-10 using conservative temperature and absolute salinity
+            ENDIF 
+         ELSE IF( ln_EOS80  ) THEN
+            IF ( iom_use("toce_con") .OR. iom_use("soce_abs") .OR. iom_use("sst_con") .OR. iom_use("sss_abs") &
+                  & .OR. iom_use("sbt_con") .OR. iom_use("sbs_abs") .OR. iom_use("sstgrad_con") .OR. iom_use("sstgrad2_con") &
+                  & .OR. iom_use("tosmint_con") .OR. iom_use("somint_abs"))  THEN 
+               CALL ctl_stop( 'diawri: conservative temperature and absolute salinity not available with ln_EOS80' )
+            ELSE
+               ttype='pot' ; stype='pra'   ! eos-80 using potential temperature and practical salinity
+            ENDIF
+         ELSE IF ( ln_SEOS) THEN
+            ttype='seos' ; stype='seos' ! seos using Simplified Equation of state
+         ENDIF
+      ENDIF
+
       IF( ln_timing )   CALL timing_start('dia_wri')
       ! 
@@ -145,7 +168,7 @@
          CALL iom_put( "wetdep" , ht_0(:,:) + sshn(:,:) )
       
-      CALL iom_put( "toce", tsn(:,:,:,jp_tem) )    ! 3D temperature
-      CALL iom_put(  "sst", tsn(:,:,1,jp_tem) )    ! surface temperature
-      IF ( iom_use("sbt") ) THEN
+      CALL iom_put( "toce_"//ttype, tsn(:,:,:,jp_tem) )    ! 3D temperature
+      CALL iom_put(  "sst_"//ttype, tsn(:,:,1,jp_tem) )    ! surface temperature
+      IF ( iom_use("sbt_"//ttype) ) THEN
          DO jj = 1, jpj
             DO ji = 1, jpi
@@ -154,10 +177,10 @@
             END DO
          END DO
-         CALL iom_put( "sbt", z2d )                ! bottom temperature
+         CALL iom_put( "sbt_"//ttype, z2d )                ! bottom temperature
       ENDIF
       
-      CALL iom_put( "soce", tsn(:,:,:,jp_sal) )    ! 3D salinity
-      CALL iom_put(  "sss", tsn(:,:,1,jp_sal) )    ! surface salinity
-      IF ( iom_use("sbs") ) THEN
+      CALL iom_put( "soce_"//stype, tsn(:,:,:,jp_sal) )    ! 3D salinity
+      CALL iom_put(  "sss_"//stype, tsn(:,:,1,jp_sal) )    ! surface salinity
+      IF ( iom_use("sbs_"//stype) ) THEN
          DO jj = 1, jpj
             DO ji = 1, jpi
@@ -166,5 +189,5 @@
             END DO
          END DO
-         CALL iom_put( "sbs", z2d )                ! bottom salinity
+         CALL iom_put( "sbs_"//stype, z2d )                ! bottom salinity
       ENDIF
 
@@ -232,5 +255,5 @@
       IF( iom_use('logavs') )   CALL iom_put( "logavs", LOG( MAX( 1.e-20_wp, avs(:,:,:) ) ) )
 
-      IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN
+      IF ( iom_use("sstgrad_"//ttype) .OR. iom_use("sstgrad2_"//ttype) ) THEN
          DO jj = 2, jpjm1                                    ! sst gradient
             DO ji = fs_2, fs_jpim1   ! vector opt.
@@ -243,7 +266,7 @@
          END DO
          CALL lbc_lnk( 'diawri', z2d, 'T', 1. )
-         CALL iom_put( "sstgrad2",  z2d )          ! square of module of sst gradient
+         CALL iom_put( "sstgrad2_"//ttype,  z2d )          ! square of module of sst gradient
          z2d(:,:) = SQRT( z2d(:,:) )
-         CALL iom_put( "sstgrad" ,  z2d )          ! module of sst gradient
+         CALL iom_put( "sstgrad_"//ttype ,  z2d )          ! module of sst gradient
       ENDIF
          
@@ -364,5 +387,5 @@
       ENDIF
 
-      IF( iom_use("tosmint") ) THEN
+      IF( iom_use("tosmint_"//ttype) ) THEN
          z2d(:,:) = 0._wp
          DO jk = 1, jpkm1
@@ -374,7 +397,7 @@
          END DO
          CALL lbc_lnk( 'diawri', z2d, 'T', -1. )
-         CALL iom_put( "tosmint", rau0 * z2d )        ! Vertical integral of temperature
-      ENDIF
-      IF( iom_use("somint") ) THEN
+         CALL iom_put( "tosmint_"//ttype, rau0 * z2d )        ! Vertical integral of temperature
+      ENDIF
+      IF( iom_use("somint_"//stype) ) THEN
          z2d(:,:)=0._wp
          DO jk = 1, jpkm1
@@ -386,5 +409,5 @@
          END DO
          CALL lbc_lnk( 'diawri', z2d, 'T', -1. )
-         CALL iom_put( "somint", rau0 * z2d )         ! Vertical integral of salinity
+         CALL iom_put( "somint_"//stype, rau0 * z2d )         ! Vertical integral of salinity
       ENDIF
 
@@ -926,5 +949,4 @@
          CALL iom_rstput( 0, 0, inum, 'sdvecrtz', wsd            )    ! now StokesDrift k-velocity
       ENDIF
- 
 #if defined key_si3
       IF( nn_ice == 2 ) THEN   ! condition needed in case agrif + ice-model but no-ice in child grid
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/DOM/domain.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/DOM/domain.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/DOM/domain.F90	(revision 12574)
@@ -292,5 +292,6 @@
          &             nn_it000, nn_itend , nn_date0    , nn_time0     , nn_leapy  , nn_istate ,     &
          &             nn_stock, nn_write , ln_mskland  , ln_clobber   , nn_chunksz, nn_euler  ,     &
-         &             ln_cfmeta, ln_iscpl, ln_xios_read, nn_wxios, ln_rstdate
+         &             ln_cfmeta, ln_iscpl, ln_xios_read, nn_wxios, ln_rstdate, ln_rst_eos
+
       NAMELIST/namdom/ ln_linssh, rn_isfhmin, rn_rdt, rn_atfp, ln_crs, ln_meshmask
 #if defined key_netcdf4
@@ -345,4 +346,6 @@
          WRITE(numout,*) '      NetCDF chunksize (bytes)        nn_chunksz      = ', nn_chunksz
          WRITE(numout,*) '      IS coupling at the restart step ln_iscpl        = ', ln_iscpl
+         WRITE(numout,*) '      check restart equation of state ln_rst_eos      = ', ln_rst_eos
+
          IF( TRIM(Agrif_CFixed()) == '0' ) THEN
             WRITE(numout,*) '      READ restart for a single file using XIOS ln_xios_read =', ln_xios_read
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/in_out_manager.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/in_out_manager.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/in_out_manager.F90	(revision 12574)
@@ -28,4 +28,5 @@
    LOGICAL       ::   ln_rstart        !: start from (F) rest or (T) a restart file
    LOGICAL       ::   ln_rst_list      !: output restarts at list of times (T) or by frequency (F)
+   LOGICAL       ::   ln_rst_eos       !: check equation of state used for the restart is consistent with model
    INTEGER       ::   nn_rstctl        !: control of the time step (0, 1 or 2)
    INTEGER       ::   nn_rstssh   = 0  !: hand made initilization of ssh or not (1/0)
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/iom.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/iom.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/iom.F90	(revision 12574)
@@ -362,4 +362,6 @@
 !from restart.F90
    CALL iom_set_rstw_var_active("rdt")
+   CALL iom_set_rstw_var_active("neos")
+
    IF ( .NOT. ln_diurnal_only ) THEN
         CALL iom_set_rstw_var_active('ub'  )
@@ -411,4 +413,5 @@
         i = 0
         i = i + 1; fields(i)%vname="rdt";            fields(i)%grid="grid_scalar"
+        i = i + 1; fields(i)%vname="neos";           fields(i)%grid="grid_scalar"
         i = i + 1; fields(i)%vname="un";             fields(i)%grid="grid_N_3D"
         i = i + 1; fields(i)%vname="ub";             fields(i)%grid="grid_N_3D"
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/restart.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/restart.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/IOM/restart.F90	(revision 12574)
@@ -184,4 +184,7 @@
                   END IF
       ENDIF
+                     CALL iom_rstput( kt, nitrst, numrow, 'neos'    , REAL(neos)      , ldxios = lwxios)   ! equation of state
+                     !CALL iom_rstput( kt, nitrst, numrow, 'neos'    , neos      , ktype = jp_i1, ldxios = lwxios)   ! equation of state
+
       
       IF (ln_diurnal) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst, ldxios = lwxios )  
@@ -260,4 +263,5 @@
       !!----------------------------------------------------------------------
       REAL(wp) ::   zrdt
+      REAL(wp) ::   zeos
       INTEGER  ::   jk
       REAL(wp), DIMENSION(jpi, jpj, jpk) :: w3d
@@ -266,6 +270,16 @@
       CALL rst_read_open           ! open restart for reading (if not already opened)
 
+      IF ( ln_rst_eos ) THEN
+         ! Check equation of state used is consistent with the restart
+         IF( iom_varid( numror, 'neos') == -1) THEN
+            CALL ctl_stop( 'restart, rst_read: variable neos not found. STOP check that the equations of state in the restart file and in the namelist nameos are consistent and use ln_rst_eos=F')
+         ELSE
+            CALL iom_get( numror, 'neos', zeos, ldxios = lrxios )
+            IF ( INT(zeos) /= neos ) CALL ctl_stop( 'restart, rst_read: equation of state used in restart file differs from namelist nameos')
+         ENDIF
+      ENDIF
+
       ! Check dynamics and tracer time-step consistency and force Euler restart if changed
-      IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 )   THEN
+      IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 )   THEN 
          CALL iom_get( numror, 'rdt', zrdt, ldxios = lrxios )
          IF( zrdt /= rdt )   neuler = 0
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/SBC/sbcssm.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/SBC/sbcssm.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/OCE/SBC/sbcssm.F90	(revision 12574)
@@ -57,5 +57,15 @@
       REAL(wp) ::   zcoef, zf_sbc       ! local scalar
       REAL(wp), DIMENSION(jpi,jpj,jpts) :: zts
+      CHARACTER(len=4),SAVE :: stype
       !!---------------------------------------------------------------------
+      IF( kt == nit000 ) THEN
+         IF( ln_TEOS10 ) THEN
+            stype='abs'   ! teos-10: using absolute salinity (sst is converted to potential temperature for the surface module)
+         ELSE IF( ln_EOS80  ) THEN
+            stype='pra'   ! eos-80: using practical salinity
+         ELSE IF ( ln_SEOS) THEN
+            stype='seos' ! seos using Simplified Equation of state (sst is converted to potential temperature for the surface module)
+         ENDIF
+      ENDIF
       !
       !                                        !* surface T-, U-, V- ocean level variables (T, S, depth, velocity)
@@ -174,6 +184,6 @@
          CALL iom_put( 'ssu_m', ssu_m )
          CALL iom_put( 'ssv_m', ssv_m )
-         CALL iom_put( 'sst_m', sst_m )
-         CALL iom_put( 'sss_m', sss_m )
+         CALL iom_put( 'sst_m_pot', sst_m )
+         CALL iom_put( 'sss_m_'//stype, sss_m )
          CALL iom_put( 'ssh_m', ssh_m )
          CALL iom_put( 'e3t_m', e3t_m )
Index: /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/SAS/sbcssm.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/SAS/sbcssm.F90	(revision 12573)
+++ /NEMO/branches/UKMO/NEMO_4.0.1_GO8_package/src/SAS/sbcssm.F90	(revision 12574)
@@ -77,5 +77,15 @@
       REAL(wp) ::   ztinta     ! ratio applied to after  records when doing time interpolation
       REAL(wp) ::   ztintb     ! ratio applied to before records when doing time interpolation
-      !!----------------------------------------------------------------------
+      CHARACTER(len=4),SAVE :: stype
+      !!---------------------------------------------------------------------
+      IF( kt == nit000 ) THEN
+         IF( ln_TEOS10 ) THEN
+            stype='abs'   ! teos-10: using absolute salinity (sst is converted to potential temperature for the surface module)
+         ELSE IF( ln_EOS80  ) THEN
+            stype='pra'   ! eos-80: using practical salinity
+         ELSE IF ( ln_SEOS) THEN
+            stype='seos' ! seos using Simplified Equation of state (sst is converted to potential temperature for the surface module)
+         ENDIF
+      ENDIF
       !
       IF( ln_timing )   CALL timing_start( 'sbc_ssm')
@@ -144,6 +154,6 @@
          CALL iom_put( 'ssu_m', ssu_m )
          CALL iom_put( 'ssv_m', ssv_m )
-         CALL iom_put( 'sst_m', sst_m )
-         CALL iom_put( 'sss_m', sss_m )
+         CALL iom_put( 'sst_m_pot', sst_m )
+         CALL iom_put( 'sss_m_'//stype, sss_m )
          CALL iom_put( 'ssh_m', ssh_m )
          IF( .NOT.ln_linssh )   CALL iom_put( 'e3t_m', e3t_m )
