Changeset 12193
- Timestamp:
- 2019-12-11T17:15:54+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019
- Files:
-
- 3 deleted
- 73 edited
- 23 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/1_context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="1_nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 24 21 25 22 26 <!-- Files definition --> 23 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 27 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 28 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/2_context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="2_nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 24 21 25 22 26 <!-- Files definition --> 23 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 27 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 28 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/3_context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="3_nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 24 21 25 22 26 <!-- Files definition --> 23 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 27 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 28 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 24 21 25 22 26 <!-- Files definition --> 23 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 27 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 28 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO ocean sea ice --> 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AMM12/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 21 24 <!-- Files definition --> 22 25 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <!-- 24 ============================================================================================================ 25 = grid definition = = DO NOT CHANGE = 26 ============================================================================================================ 27 --> 28 29 <axis_definition> 30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 39 </axis_definition> 26 27 <!-- Axis definition --> 28 <axis_definition src="./axis_def_nemo.xml"/> 40 29 30 <!-- Domain definition --> 41 31 <domain_definition src="./domain_def_nemo.xml"/> 32 33 <!-- Grids definition --> 34 <grid_definition src="./grid_def_nemo.xml"/> 42 35 43 <grid_definition src="./grid_def_nemo.xml"/>44 36 45 37 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/C1D_PAPA/EXPREF/context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ --> 7 <!-- $id$ --> 8 8 9 <!-- Fields definition --> 9 10 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 11 12 <!-- Files definition --> 12 13 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 13 <!-- 14 ============================================================================================================ 15 = grid definition = = DO NOT CHANGE = 16 ============================================================================================================ 17 --> 18 19 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 24 <axis id="nfloat" long_name="Float number" unit="-" /> 25 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 26 <axis id="ncatice" long_name="Ice category" unit="1" /> 27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 </axis_definition> 14 15 <!-- Axis definition --> 16 <axis_definition src="./axis_def_nemo.xml"/> 30 17 18 <!-- Domain definition --> 31 19 <domain_definition src="./domain_def_nemo.xml"/> 20 21 <!-- Grids definition --> 22 <grid_definition src="./grid_def_nemo.xml"/> 32 23 33 <grid_definition src="./grid_def_nemo.xml"/> 34 24 35 25 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/GYRE_BFM/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics -->22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 23 <field_definition src="./field_def_nemo-pisces.xml"/> <!-- NEMO ocean dynamics --> 21 24 25 22 26 <!-- Files definition --> 23 <file_definition src="./file_def_nemo.xml"/> 24 <!-- 25 ============================================================================================================ 26 = grid definition = = DO NOT CHANGE = 27 ============================================================================================================ 28 --> 29 30 <axis_definition> 31 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 32 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 33 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 34 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 35 <axis id="nfloat" long_name="Float number" unit="-" /> 36 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 37 <axis id="ncatice" long_name="Ice category" unit="1" /> 38 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 39 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 40 </axis_definition> 27 <file_definition src="./file_def_nemo.xml"/> <!-- NEMO ocean dynamics --> 28 29 <!-- Axis definition --> 30 <axis_definition src="./axis_def_nemo.xml"/> 41 31 32 <!-- Domain definition --> 42 33 <domain_definition src="./domain_def_nemo.xml"/> 34 35 <!-- Grids definition --> 36 <grid_definition src="./grid_def_nemo.xml"/> 43 37 44 <grid_definition src="./grid_def_nemo.xml"/>45 38 46 39 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/GYRE_PISCES/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics -->22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 23 <field_definition src="./field_def_nemo-pisces.xml"/> <!-- NEMO ocean dynamics --> 21 24 25 22 26 <!-- Files definition --> 23 <file_definition src="./file_def_nemo.xml"/> 24 <!-- 25 ============================================================================================================ 26 = grid definition = = DO NOT CHANGE = 27 ============================================================================================================ 28 --> 29 30 <axis_definition> 31 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 32 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 33 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 34 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 35 <axis id="nfloat" long_name="Float number" unit="-" /> 36 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 37 <axis id="ncatice" long_name="Ice category" unit="1" /> 38 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 39 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 40 </axis_definition> 27 <file_definition src="./file_def_nemo.xml"/> <!-- NEMO ocean dynamics --> 28 29 <!-- Axis definition --> 30 <axis_definition src="./axis_def_nemo.xml"/> 41 31 32 <!-- Domain definition --> 42 33 <domain_definition src="./domain_def_nemo.xml"/> 34 35 <!-- Grids definition --> 36 <grid_definition src="./grid_def_nemo.xml"/> 43 37 44 <grid_definition src="./grid_def_nemo.xml"/>45 38 46 39 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 20 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 21 <field_definition src="./field_def_nemo-pisces.xml"/> <!-- NEMO ocean biology --> 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 24 <field_definition src="./field_def_nemo-pisces.xml"/> <!-- NEMO ocean biology --> 22 25 23 26 <!-- Files definition --> 24 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 25 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 26 <file_definition src="./file_def_nemo-pisces.xml"/> <!-- NEMO ocean biology --> 27 <!-- 28 ============================================================================================================ 29 = grid definition = = DO NOT CHANGE = 30 ============================================================================================================ 31 --> 32 33 <axis_definition> 34 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 35 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 36 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 37 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 38 <axis id="profsed" long_name="Vertical S levels" unit="cm" positive="down"/> 39 <axis id="nfloat" long_name="Float number" unit="-" /> 40 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 41 <axis id="ncatice" long_name="Ice category" unit="1" /> 42 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 43 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 44 </axis_definition> 27 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 28 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 29 <file_definition src="./file_def_nemo-pisces.xml"/> <!-- NEMO ocean biology --> 30 31 32 <!-- Axis definition --> 33 <axis_definition src="./axis_def_nemo.xml"/> 45 34 35 <!-- Domain definition --> 46 36 <domain_definition src="./domain_def_nemo.xml"/> 37 38 <!-- Grids definition --> 39 <grid_definition src="./grid_def_nemo.xml"/> 47 40 48 <grid_definition src="./grid_def_nemo.xml"/> 49 41 50 42 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-ice.xml
r12153 r12193 123 123 <file_group id="3h" output_freq="3h" output_level="10" enabled=".TRUE."/> <!-- 3h files --> 124 124 <file_group id="4h" output_freq="4h" output_level="10" enabled=".TRUE."/> <!-- 4h files --> 125 <file_group id="6h" output_freq="6h" output_level="10" enabled=".TRUE."/> <!-- 6h files --> 126 <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."/> <!-- real monthly files --> 125 <file_group id="6h" output_freq="6h" output_level="10" enabled=".TRUE."/> <!-- 6h files --> 126 127 <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."> <!-- real monthly files --> 128 129 <!-- To compute transport through straits : need to read ice mask at ice iteration at freq_offset = 1mo - nn_fsbc 130 <file id="file23" name_suffix="_strait_ice" description="transport variables through straits" > 131 <field field_ref="strait_mifl" name="simassacrossline" freq_offset="1mo-4ts" /> 132 <field field_ref="strait_msfl" name="snmassacrossline" freq_offset="1mo-4ts" /> 133 <field field_ref="strait_arfl" name="siareaacrossline" freq_offset="1mo-4ts" /> 134 </file> 135 --> 136 137 </file_group> 138 127 139 <file_group id="2m" output_freq="2mo" output_level="10" enabled=".TRUE."/> <!-- real 2m files --> 128 140 <file_group id="3m" output_freq="3mo" output_level="10" enabled=".TRUE."/> <!-- real 3m files --> … … 133 145 <file_group id="5y" output_freq="5y" output_level="10" enabled=".TRUE."/> <!-- real 5y files --> 134 146 <file_group id="10y" output_freq="10y" output_level="10" enabled=".TRUE."/> <!-- real 10y files --> 135 147 148 <!-- To compute transport through straits : need to read ice mask at ice iteration at freq_offset = - nn_fsbc + 1 149 <file id="maskMFO" name="maskMFO" enabled="true" mode="read" output_freq="1mo" cyclic="true" > 150 <field id="maskMFO_u_ice" operation="instant" freq_offset="-3ts" grid_ref="grid_U_4strait_ice" /> 151 <field id="maskMFO_v_ice" operation="instant" freq_offset="-3ts" grid_ref="grid_V_4strait_ice" /> 152 </file> 153 154 --> 136 155 </file_definition> 137 156 -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-oce.xml
r11536 r12193 93 93 <field field_ref="bgfrctem" name="bgfrctem" /> 94 94 <field field_ref="bgfrchfx" name="bgfrchfx" /> 95 <field field_ref="bgfrcsal" name="bgfrcsal" /> 95 <field field_ref="bgfrcsal" name="bgfrcsal" /> 96 97 <field field_ref="masstot" name="masso" /> 98 <field field_ref="voltot" name="volo" /> 99 <field field_ref="sshthster" name="zostoga" /> 100 <field field_ref="temptot" name="bigthetaoga" /> 101 <field field_ref="saltot" name="soga" /> 102 <field field_ref="ssttot" name="tosga" /> 96 103 </file> 97 104 … … 100 107 101 108 <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."> <!-- real monthly files --> 109 110 <file id="file16" name_suffix="_diaptr2D" description="zonal mean variables" > 111 <field field_ref="sophtove" name="htovovrt" grid_ref="grid_ptr_T_2D" /> 112 <field field_ref="sopstove" name="sltovovrt" grid_ref="grid_ptr_T_2D" /> 113 <field field_ref="sophtgyre" name="htovgyre" grid_ref="grid_ptr_T_2D" /> 114 <field field_ref="sopstgyre" name="sltogyre" grid_ref="grid_ptr_T_2D" /> 115 <field field_ref="sophtbtr" name="htbtr" grid_ref="grid_ptr_T_2D" /> 116 <field field_ref="sopstbtr" name="sltbtr" grid_ref="grid_ptr_T_2D" /> 117 <field field_ref="sophtadv" name="htadv" grid_ref="grid_ptr_T_2D" /> 118 <field field_ref="sopstadv" name="sltadv" grid_ref="grid_ptr_T_2D" /> 119 <field field_ref="sophtldf" name="htldf" grid_ref="grid_ptr_T_2D" /> 120 <field field_ref="sopstldf" name="sltldf" grid_ref="grid_ptr_T_2D" /> 121 <field field_ref="sophtvtr" name="hfbasin" grid_ref="grid_ptr_T_2D" /> 122 <field field_ref="sopstvtr" name="sltbasin" grid_ref="grid_ptr_T_2D" /> 123 <field field_ref="sophteiv" name="hfbasinpmadv" grid_ref="grid_ptr_T_2D" /> 124 <field field_ref="sopsteiv" name="sltbasinpmadv" grid_ref="grid_ptr_T_2D" /> 125 </file> 126 127 128 <file id="file17" name_suffix="_diaptr3D" description="zonal mean variables" > 129 <field field_ref="zomsf" name="msftyz" grid_ref="grid_ptr_W_3D" /> 130 <field field_ref="zotem" name="znltem" grid_ref="grid_ptr_T_3D" /> 131 <field field_ref="zosal" name="znlsal" grid_ref="grid_ptr_T_3D" /> 132 <field field_ref="zosrf" name="znlsrf" grid_ref="grid_ptr_T_3D" /> 133 </file> 134 135 <!-- 136 <file id="file18" name_suffix="_strait_oce" description="transport variables through straits" > 137 <field field_ref="masstr_strait" name="mfo" /> 138 </file> 139 --> 140 102 141 </file_group> 103 142 104 143 <file_group id="1y" output_freq="1y" output_level="10" enabled=".TRUE."> <!-- real yearly files --> 105 144 </file_group> 106 145 146 <!-- To compute transport through straits : need to read mask file ( every month is the best otherwise costly ) 147 148 <file id="maskMFO" name="maskMFO" enabled="true" mode="read" output_freq="1mo" cyclic="true" > 149 <field id="maskMFO_u" operation="instant" freq_offset="1mo" grid_ref="grid_U_4strait" /> 150 <field id="maskMFO_v" operation="instant" freq_offset="1mo" grid_ref="grid_V_4strait" /> 151 </file> 152 153 --> 154 107 155 108 156 <file_group id="1ts" output_freq="1ts" output_level="10" enabled=".TRUE."/> <!-- 1 time step files --> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_pisces_cfg
r10227 r12193 80 80 / 81 81 !----------------------------------------------------------------------- 82 &nampissbc ! parameters for inputs deposition 82 &nampisbc ! parameters for inputs deposition 83 !----------------------------------------------------------------------- 84 sn_dust = 'dust.orca.new' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' , '' 85 ln_ironsed = .true. ! boolean for Fe input from sediments 86 ln_ironice = .true. ! boolean for Fe input from sea ice 87 ln_hydrofe = .true. ! boolean for from hydrothermal vents 88 / 89 !----------------------------------------------------------------------- 90 &nampissed ! parameters for sediments mobilization 83 91 !----------------------------------------------------------------------- 84 92 / … … 94 102 &nampisdmp ! Damping 95 103 !----------------------------------------------------------------------- 104 nn_pisdmp = 5840 ! Frequency of Relaxation 96 105 / 97 106 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_top_cfg
r11536 r12193 20 20 ! 21 21 ln_trcdta = .true. ! Initialisation from data input file (T) or not (F) 22 ! ! ! ! ! 23 ! ! name ! title of the field ! units ! initial data from file or not!24 ! ! ! ! !25 sn_tracer(1) = 'DIC ' , 'Dissolved inorganic Concentration ', 'mol-C/L' , .true.26 sn_tracer(2) = 'Alkalini' , 'Total Alkalinity Concentration ', 'eq/L ' , .true.27 sn_tracer(3) = 'O2 ' , 'Dissolved Oxygen Concentration ', 'mol-C/L' , .true.28 sn_tracer(4) = 'CaCO3 ' , 'Calcite Concentration ', 'mol-C/L' , .false.29 sn_tracer(5) = 'PO4 ' , 'Phosphate Concentration ', 'mol-C/L' , .true.30 sn_tracer(6) = 'POC ' , 'Small organic carbon Concentration ', 'mol-C/L' , .false.31 sn_tracer(7) = 'Si ' , 'Silicate Concentration ', 'mol-C/L' , .true.32 sn_tracer(8) = 'PHY ' , 'Nanophytoplankton Concentration ', 'mol-C/L' , .false.33 sn_tracer(9) = 'ZOO ' , 'Microzooplankton Concentration ', 'mol-C/L' , .false.34 sn_tracer(10) = 'DOC ' , 'Dissolved organic Concentration ', 'mol-C/L' , .true.35 sn_tracer(11) = 'PHY2 ' , 'Diatoms Concentration ', 'mol-C/L' , .false.36 sn_tracer(12) = 'ZOO2 ' , 'Mesozooplankton Concentration ', 'mol-C/L' , .false.37 sn_tracer(13) = 'DSi ' , 'Diatoms Silicate Concentration ', 'mol-C/L' , .false.38 sn_tracer(14) = 'Fer ' , 'Dissolved Iron Concentration ', 'mol-C/L' , .true.39 sn_tracer(15) = 'BFe ' , 'Big iron particles Concentration ', 'mol-C/L' , .false.40 sn_tracer(16) = 'GOC ' , 'Big organic carbon Concentration ', 'mol-C/L' , .false.41 sn_tracer(17) = 'SFe ' , 'Small iron particles Concentration ', 'mol-C/L' , .false.42 sn_tracer(18) = 'DFe ' , 'Diatoms iron Concentration ', 'mol-C/L' , .false.43 sn_tracer(19) = 'GSi ' , 'Sinking biogenic Silicate Concentration', 'mol-C/L' , .false.44 sn_tracer(20) = 'NFe ' , 'Nano iron Concentration ', 'mol-C/L' , .false.45 sn_tracer(21) = 'NCHL ' , 'Nano chlorophyl Concentration ', 'mol-C/L' , .false.46 sn_tracer(22) = 'DCHL ' , 'Diatoms chlorophyl Concentration ', 'mol-C/L' , .false.47 sn_tracer(23) = 'NO3 ' , 'Nitrates Concentration ', 'mol-C/L' , .true.48 sn_tracer(24) = 'NH4 ' , 'Ammonium Concentration ', 'mol-C/L' , .false.22 ln_trcbc = .true. ! Enables Boundary conditions 23 ! ! ! ! ! ! 24 ! ! name ! title of the field ! units ! init ! sbc ! cbc ! obc ! 25 sn_tracer(1) = 'DIC ' , 'Dissolved inorganic Concentration ', 'mol-C/L' , .true. , .false., .true. , .false. 26 sn_tracer(2) = 'Alkalini' , 'Total Alkalinity Concentration ', 'eq/L ' , .true. , .false., .true. , .false. 27 sn_tracer(3) = 'O2 ' , 'Dissolved Oxygen Concentration ', 'mol-C/L' , .true. , .false., .false., .false. 28 sn_tracer(4) = 'CaCO3 ' , 'Calcite Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 29 sn_tracer(5) = 'PO4 ' , 'Phosphate Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 30 sn_tracer(6) = 'POC ' , 'Small organic carbon Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 31 sn_tracer(7) = 'Si ' , 'Silicate Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 32 sn_tracer(8) = 'PHY ' , 'Nanophytoplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 33 sn_tracer(9) = 'ZOO ' , 'Microzooplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 34 sn_tracer(10) = 'DOC ' , 'Dissolved organic Concentration ', 'mol-C/L' , .true. , .false., .true. , .false. 35 sn_tracer(11) = 'PHY2 ' , 'Diatoms Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 36 sn_tracer(12) = 'ZOO2 ' , 'Mesozooplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 37 sn_tracer(13) = 'DSi ' , 'Diatoms Silicate Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 38 sn_tracer(14) = 'Fer ' , 'Dissolved Iron Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 39 sn_tracer(15) = 'BFe ' , 'Big iron particles Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 40 sn_tracer(16) = 'GOC ' , 'Big organic carbon Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 41 sn_tracer(17) = 'SFe ' , 'Small iron particles Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 42 sn_tracer(18) = 'DFe ' , 'Diatoms iron Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 43 sn_tracer(19) = 'GSi ' , 'Sinking biogenic Silicate Concentration', 'mol-C/L' , .false. , .false., .false., .false. 44 sn_tracer(20) = 'NFe ' , 'Nano iron Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 45 sn_tracer(21) = 'NCHL ' , 'Nano chlorophyl Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 46 sn_tracer(22) = 'DCHL ' , 'Diatoms chlorophyl Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 47 sn_tracer(23) = 'NO3 ' , 'Nitrates Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 48 sn_tracer(24) = 'NH4 ' , 'Ammonium Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 49 49 / 50 50 !----------------------------------------------------------------------- … … 77 77 &namtrc_adv ! advection scheme for passive tracer (default: NO selection) 78 78 !----------------------------------------------------------------------- 79 ln_trcadv_mus = .true. ! MUSCL scheme79 ln_trcadv_mus = .true. ! MUSCL scheme 80 80 ln_mus_ups = .false. ! use upstream scheme near river mouths 81 81 / … … 83 83 &namtrc_ldf ! lateral diffusion scheme for passive tracer (default: NO selection) 84 84 !----------------------------------------------------------------------- 85 ln_trcldf_tra = .true.! use active tracer setting85 ln_trcldf_tra = .true. ! use active tracer setting 86 86 / 87 87 !----------------------------------------------------------------------- … … 108 108 &namtrc_bc ! data for boundary conditions 109 109 !----------------------------------------------------------------------- 110 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 111 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 112 sn_trcsbc(5) = 'dust.orca.new' , -1 , 'dustpo4' , .true. , .true. , 'yearly' , '' , '' , '' 113 sn_trcsbc(7) = 'dust.orca.new' , -1 , 'dustsi' , .true. , .true. , 'yearly' , '' , '' , '' 114 sn_trcsbc(14) = 'dust.orca.new' , -1 , 'dustfer' , .true. , .true. , 'yearly' , '' , '' , '' 115 sn_trcsbc(23) = 'ndeposition.orca', -12 , 'ndep' , .false. , .true. , 'yearly' , '' , '' , '' 116 rn_trsfac(5) = 8.264e-02 ! ( 0.021 / 31. * 122 ) 117 rn_trsfac(7) = 3.313e-01 ! ( 8.8 / 28.1 ) 118 rn_trsfac(14) = 6.266e-04 ! ( 0.035 / 55.85 ) 119 rn_trsfac(23) = 5.4464e-01 ! ( From kgN m-2 s-1 to molC l-1 ====> zfact = 7.625/14 ) 120 rn_sbc_time = 1. ! Time scaling factor for SBC and CBC data (seconds in a day) 121 ! 122 sn_trccbc(1) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 123 sn_trccbc(2) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 124 sn_trccbc(5) = 'river.orca' , 120 , 'riverdip' , .true. , .true. , 'yearly' , '' , '' , '' 125 sn_trccbc(7) = 'river.orca' , 120 , 'riverdsi' , .true. , .true. , 'yearly' , '' , '' , '' 126 sn_trccbc(10) = 'river.orca' , 120 , 'riverdoc' , .true. , .true. , 'yearly' , '' , '' , '' 127 sn_trccbc(14) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 128 sn_trccbc(23) = 'river.orca' , 120 , 'riverdin' , .true. , .true. , 'yearly' , '' , '' , '' 129 rn_trcfac(1) = 8.333e+01 ! ( data in Mg/m2/yr : 1e3/12/ryyss) 130 rn_trcfac(2) = 8.333e+01 ! ( 1e3 /12 ) 131 rn_trcfac(5) = 3.935e+04 ! ( 1e3 / 31. * 122 ) 132 rn_trcfac(7) = 3.588e+01 ! ( 1e3 / 28.1 ) 133 rn_trcfac(10) = 8.333e+01 ! ( 1e3 / 12 134 rn_trcfac(14) = 4.166e-03 ! ( 1e3 / 12 * 5e-5 ) 135 rn_trcfac(23) = 5.446e+02 ! ( 1e3 / 14 * 7.625 ) 136 rn_cbc_time = 3.1536e+7 ! Time scaling factor for CBC data (seconds in a year) 110 137 / 111 138 !---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_PISCES/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- Ocean biology-->20 <field_definition src="./field_def_nemo-pisces.xml"/> <!-- Ocean biology-->22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-pisces.xml"/> <!-- NEMO ocean biology --> 21 24 22 25 <!-- Files definition --> 23 <file_definition src="./file_def_nemo.xml"/> <!-- NEMO ocean dynamics --> 24 <!-- 25 ============================================================================================================ 26 = grid definition = = DO NOT CHANGE = 27 ============================================================================================================ 28 --> 29 30 <axis_definition> 31 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 32 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 33 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 34 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 35 <axis id="profsed" long_name="Vertical S levels" unit="cm" positive="down"/> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 26 <file_definition src="./file_def_nemo-pisces.xml"/> <!-- NEMO ocean biology --> 27 28 29 <!-- Axis definition --> 30 <axis_definition src="./axis_def_nemo.xml"/> 42 31 32 <!-- Domain definition --> 43 33 <domain_definition src="./domain_def_nemo.xml"/> 34 35 <!-- Grids definition --> 36 <grid_definition src="./grid_def_nemo.xml"/> 44 37 45 <grid_definition src="./grid_def_nemo.xml"/> 46 38 47 39 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_PISCES/EXPREF/namelist_pisces_cfg
r10227 r12193 81 81 / 82 82 !----------------------------------------------------------------------- 83 &nampissbc ! parameters for inputs deposition 83 &nampisbc ! parameters for inputs deposition 84 !----------------------------------------------------------------------- 85 sn_dust = 'dust.orca.new' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' , '' 86 ln_ironsed = .true. ! boolean for Fe input from sediments 87 ln_ironice = .true. ! boolean for Fe input from sea ice 88 ln_hydrofe = .true. ! boolean for from hydrothermal vents 89 / 90 !----------------------------------------------------------------------- 91 &nampissed ! parameters for sediments mobilization 84 92 !----------------------------------------------------------------------- 85 93 / -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_PISCES/EXPREF/namelist_top_cfg
r11536 r12193 19 19 ln_c14 = .false. 20 20 ! 21 ln_trcdta = .true. ! Initialisation from data input file (T) or not (F) 22 ! ! ! ! ! ! 23 ! ! name ! title of the field ! units ! initial data from file or not ! 24 sn_tracer(1) = 'DIC ' , 'Dissolved inorganic Concentration ', 'mol-C/L' , .true. 25 sn_tracer(2) = 'Alkalini' , 'Total Alkalinity Concentration ', 'eq/L ' , .true. 26 sn_tracer(3) = 'O2 ' , 'Dissolved Oxygen Concentration ', 'mol-C/L' , .true. 27 sn_tracer(4) = 'CaCO3 ' , 'Calcite Concentration ', 'mol-C/L' , .false. 28 sn_tracer(5) = 'PO4 ' , 'Phosphate Concentration ', 'mol-C/L' , .true. 29 sn_tracer(6) = 'POC ' , 'Small organic carbon Concentration ', 'mol-C/L' , .false. 30 sn_tracer(7) = 'Si ' , 'Silicate Concentration ', 'mol-C/L' , .true. 31 sn_tracer(8) = 'PHY ' , 'Nanophytoplankton Concentration ', 'mol-C/L' , .false. 32 sn_tracer(9) = 'ZOO ' , 'Microzooplankton Concentration ', 'mol-C/L' , .false. 33 sn_tracer(10) = 'DOC ' , 'Dissolved organic Concentration ', 'mol-C/L' , .true. 34 sn_tracer(11) = 'PHY2 ' , 'Diatoms Concentration ', 'mol-C/L' , .false. 35 sn_tracer(12) = 'ZOO2 ' , 'Mesozooplankton Concentration ', 'mol-C/L' , .false. 36 sn_tracer(13) = 'DSi ' , 'Diatoms Silicate Concentration ', 'mol-C/L' , .false. 37 sn_tracer(14) = 'Fer ' , 'Dissolved Iron Concentration ', 'mol-C/L' , .true. 38 sn_tracer(15) = 'BFe ' , 'Big iron particles Concentration ', 'mol-C/L' , .false. 39 sn_tracer(16) = 'GOC ' , 'Big organic carbon Concentration ', 'mol-C/L' , .false. 40 sn_tracer(17) = 'SFe ' , 'Small iron particles Concentration ', 'mol-C/L' , .false. 41 sn_tracer(18) = 'DFe ' , 'Diatoms iron Concentration ', 'mol-C/L' , .false. 42 sn_tracer(19) = 'GSi ' , 'Sinking biogenic Silicate Concentration', 'mol-C/L' , .false. 43 sn_tracer(20) = 'NFe ' , 'Nano iron Concentration ', 'mol-C/L' , .false. 44 sn_tracer(21) = 'NCHL ' , 'Nano chlorophyl Concentration ', 'mol-C/L' , .false. 45 sn_tracer(22) = 'DCHL ' , 'Diatoms chlorophyl Concentration ', 'mol-C/L' , .false. 46 sn_tracer(23) = 'NO3 ' , 'Nitrates Concentration ', 'mol-C/L' , .true. 47 sn_tracer(24) = 'NH4 ' , 'Ammonium Concentration ', 'mol-C/L' , .false. 21 ln_trcdta = .true. ! Initialisation from data input file (T) or not (F) 22 ln_trcbc = .true. ! Enables Boundary conditions 23 ! ! ! ! ! ! 24 ! ! name ! title of the field ! units ! init ! sbc ! cbc ! obc ! 25 sn_tracer(1) = 'DIC ' , 'Dissolved inorganic Concentration ', 'mol-C/L' , .true. , .false., .true. , .false. 26 sn_tracer(2) = 'Alkalini' , 'Total Alkalinity Concentration ', 'eq/L ' , .true. , .false., .true. , .false. 27 sn_tracer(3) = 'O2 ' , 'Dissolved Oxygen Concentration ', 'mol-C/L' , .true. , .false., .false., .false. 28 sn_tracer(4) = 'CaCO3 ' , 'Calcite Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 29 sn_tracer(5) = 'PO4 ' , 'Phosphate Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 30 sn_tracer(6) = 'POC ' , 'Small organic carbon Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 31 sn_tracer(7) = 'Si ' , 'Silicate Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 32 sn_tracer(8) = 'PHY ' , 'Nanophytoplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 33 sn_tracer(9) = 'ZOO ' , 'Microzooplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 34 sn_tracer(10) = 'DOC ' , 'Dissolved organic Concentration ', 'mol-C/L' , .true. , .false., .true. , .false. 35 sn_tracer(11) = 'PHY2 ' , 'Diatoms Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 36 sn_tracer(12) = 'ZOO2 ' , 'Mesozooplankton Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 37 sn_tracer(13) = 'DSi ' , 'Diatoms Silicate Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 38 sn_tracer(14) = 'Fer ' , 'Dissolved Iron Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 39 sn_tracer(15) = 'BFe ' , 'Big iron particles Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 40 sn_tracer(16) = 'GOC ' , 'Big organic carbon Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 41 sn_tracer(17) = 'SFe ' , 'Small iron particles Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 42 sn_tracer(18) = 'DFe ' , 'Diatoms iron Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 43 sn_tracer(19) = 'GSi ' , 'Sinking biogenic Silicate Concentration', 'mol-C/L' , .false. , .false., .false., .false. 44 sn_tracer(20) = 'NFe ' , 'Nano iron Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 45 sn_tracer(21) = 'NCHL ' , 'Nano chlorophyl Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 46 sn_tracer(22) = 'DCHL ' , 'Diatoms chlorophyl Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 47 sn_tracer(23) = 'NO3 ' , 'Nitrates Concentration ', 'mol-C/L' , .true. , .true. , .true. , .false. 48 sn_tracer(24) = 'NH4 ' , 'Ammonium Concentration ', 'mol-C/L' , .false. , .false., .false., .false. 48 49 / 49 50 !----------------------------------------------------------------------- … … 107 108 &namtrc_bc ! data for boundary conditions 108 109 !----------------------------------------------------------------------- 110 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 111 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 112 sn_trcsbc(5) = 'dust.orca.new' , -1 , 'dustpo4' , .true. , .true. , 'yearly' , '' , '' , '' 113 sn_trcsbc(7) = 'dust.orca.new' , -1 , 'dustsi' , .true. , .true. , 'yearly' , '' , '' , '' 114 sn_trcsbc(14) = 'dust.orca.new' , -1 , 'dustfer' , .true. , .true. , 'yearly' , '' , '' , '' 115 sn_trcsbc(23) = 'ndeposition.orca', -12 , 'ndep' , .false. , .true. , 'yearly' , '' , '' , '' 116 rn_trsfac(5) = 8.264e-02 ! ( 0.021 / 31. * 122 ) 117 rn_trsfac(7) = 3.313e-01 ! ( 8.8 / 28.1 ) 118 rn_trsfac(14) = 6.266e-04 ! ( 0.035 / 55.85 ) 119 rn_trsfac(23) = 5.4464e-01 ! ( From kgN m-2 s-1 to molC l-1 ====> zfact = 7.625/14 ) 120 rn_sbc_time = 1. ! Time scaling factor for SBC and CBC data (seconds in a day) 121 ! 122 sn_trccbc(1) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 123 sn_trccbc(2) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 124 sn_trccbc(5) = 'river.orca' , 120 , 'riverdip' , .true. , .true. , 'yearly' , '' , '' , '' 125 sn_trccbc(7) = 'river.orca' , 120 , 'riverdsi' , .true. , .true. , 'yearly' , '' , '' , '' 126 sn_trccbc(10) = 'river.orca' , 120 , 'riverdoc' , .true. , .true. , 'yearly' , '' , '' , '' 127 sn_trccbc(14) = 'river.orca' , 120 , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 128 sn_trccbc(23) = 'river.orca' , 120 , 'riverdin' , .true. , .true. , 'yearly' , '' , '' , '' 129 rn_trcfac(1) = 8.333e+01 ! ( data in Mg/m2/yr : 1e3/12/ryyss) 130 rn_trcfac(2) = 8.333e+01 ! ( 1e3 /12 ) 131 rn_trcfac(5) = 3.935e+04 ! ( 1e3 / 31. * 122 ) 132 rn_trcfac(7) = 3.588e+01 ! ( 1e3 / 28.1 ) 133 rn_trcfac(10) = 8.333e+01 ! ( 1e3 / 12 134 rn_trcfac(14) = 4.166e-03 ! ( 1e3 / 12 * 5e-5 ) 135 rn_trcfac(23) = 5.446e+02 ! ( 1e3 / 14 * 7.625 ) 136 rn_cbc_time = 3.1536e+7 ! Time scaling factor for CBC data (seconds in a year) 109 137 / 110 138 !---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_TRC/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- Ocean biology-->20 <field_definition src="./field_def_nemo-innerttrc.xml"/> <!-- Ocean biology-->22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <field_definition src="./field_def_nemo-innerttrc.xml"/> <!-- NEMO ocean biology --> 21 24 22 25 <!-- Files definition --> 23 <file_definition src="./file_def_nemo.xml"/> <!-- NEMO ocean dynamics --> 24 <!-- 25 ============================================================================================================ 26 = grid definition = = DO NOT CHANGE = 27 ============================================================================================================ 28 --> 29 30 <axis_definition> 31 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 32 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 33 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 34 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 35 <axis id="nfloat" long_name="Float number" unit="-" /> 36 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 37 <axis id="ncatice" long_name="Ice category" unit="1" /> 38 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 39 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 40 </axis_definition> 26 <file_definition src="./file_def_nemo-innerttrc.xml"/> <!-- NEMO ocean biology --> 27 28 29 <!-- Axis definition --> 30 <axis_definition src="./axis_def_nemo.xml"/> 41 31 32 <!-- Domain definition --> 42 33 <domain_definition src="./domain_def_nemo.xml"/> 34 35 <!-- Grids definition --> 36 <grid_definition src="./grid_def_nemo.xml"/> 43 37 44 <grid_definition src="./grid_def_nemo.xml"/> 45 38 46 39 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_SAS_ICE/EXPREF/context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 23 26 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 27 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 28 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/domain_def_nemo.xml
r11536 r12193 9 9 <zoom_domain ibegin="1" jbegin="1" ni="2" nj="3"/> 10 10 </domain> 11 12 <domain id="1point" domain_ref="grid_T" > 13 <zoom_domain ibegin="139" jbegin="119" ni="1" nj="1"/> 14 </domain> 15 11 16 12 17 <!-- Eq section --> … … 176 181 <domain id="EqW" domain_ref="grid_W" > <zoom_domain id="EqW"/> </domain> 177 182 178 179 <!-- zonal mean grid --> 180 <domain id="gznl" long_name="gznl"/> 181 <domain id="znl_T" domain_ref="gznl" > <zoom_domain id="znl_T"/> </domain> 182 <domain id="znl_W" domain_ref="gznl" > <zoom_domain id="znl_W"/> </domain> 183 <!-- zonal mean grid --> 184 <domain_group id="gznl"> 185 <domain id="gznl" long_name="gznl"/> 186 <domain id="ptr" domain_ref="gznl" > 187 <zoom_domain id="ptr" ibegin="0000" jbegin="0" ni="1" nj="0000" /> 188 </domain> 189 </domain_group> 183 190 184 191 -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-ice.xml
r12182 r12193 230 230 231 231 <!-- momentum (advection) --> 232 <field id="xmtrpice" long_name="X-component of ice mass transport" standard_name="ice_x_transport" unit="kg/s" />232 <field id="xmtrpice" long_name="X-component of ice mass transport" standard_name="ice_x_transport" unit="kg/s" /> 233 233 <field id="ymtrpice" long_name="Y-component of ice mass transport" standard_name="ice_y_transport" unit="kg/s" /> 234 234 <field id="xmtrpsnw" long_name="X-component of snw mass transport" standard_name="snw_x_transport" unit="kg/s" /> … … 237 237 <field id="yatrp" long_name="Y-component of ice area transport" standard_name="area_y_transport" unit="m2/s" /> 238 238 <field id="xmtrptot" long_name="X-component of sea-ice mass transport" standard_name="sea_ice_x_transport" unit="kg/s" > xmtrpice + xmtrpsnw </field> 239 <field id="ymtrptot" long_name="Y-component of sea-ice mass transport" standard_name="sea_ice_y_transport" unit="kg/s" > ymtrpice + ymtrpsnw </field> 240 239 <field id="ymtrptot" long_name="Y-component of sea-ice mass transport" standard_name="sea_ice_y_transport" unit="kg/s" > ymtrpice + ymtrpsnw </field> 240 241 <!-- Ice transport through straits" --> 242 <field id="xmtrpice_ave" long_name="Monthly average of x-ice mass transport" field_ref="xmtrpice" grid_ref="grid_U_2D" freq_op="1mo" freq_offset="_reset_" > @xmtrpice </field> 243 <field id="xmtrpice_section" grid_ref="grid_U_scalar" > xmtrpice_ave </field> 244 <field id="xmtrpice_strait" field_ref="xmtrpice_section" grid_ref="grid_U_4strait_ice" /> 245 <field id="xstrait_mifl" field_ref="xmtrpice_strait" grid_ref="grid_U_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_u_ice </field> 246 247 <field id="ymtrpice_ave" long_name="Monthly average of y-ice mass transport" field_ref="ymtrpice" grid_ref="grid_V_2D" freq_op="1mo" freq_offset="_reset_" > @ymtrpice </field> 248 <field id="ymtrpice_section" grid_ref="grid_V_scalar" > ymtrpice_ave </field> 249 <field id="ymtrpice_strait" field_ref="ymtrpice_section" grid_ref="grid_V_4strait_ice" /> 250 <field id="ystrait_mifl" field_ref="ymtrpice_strait" grid_ref="grid_V_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_v_ice </field> 251 252 <field id="xmtrpsnw_ave" long_name="Monthly average of x-snow mass transport" field_ref="xmtrpsnw" grid_ref="grid_U_2D" freq_op="1mo" freq_offset="_reset_" > @xmtrpsnw </field> 253 <field id="xmtrpsnw_section" grid_ref="grid_U_scalar" > xmtrpsnw_ave </field> 254 <field id="xmtrpsnw_strait" field_ref="xmtrpsnw_section" grid_ref="grid_U_4strait_ice" /> 255 <field id="xstrait_msfl" field_ref="xmtrpsnw_strait" grid_ref="grid_U_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_u_ice </field> 256 257 <field id="ymtrpsnw_ave" long_name="Monthly average of y-snow mass transport" field_ref="ymtrpsnw" grid_ref="grid_V_2D" freq_op="1mo" freq_offset="_reset_" > @ymtrpsnw </field> 258 <field id="ymtrpsnw_section" grid_ref="grid_V_scalar" > ymtrpsnw_ave </field> 259 <field id="ymtrpsnw_strait" field_ref="ymtrpsnw_section" grid_ref="grid_V_4strait_ice" /> 260 <field id="ystrait_msfl" field_ref="ymtrpsnw_strait" grid_ref="grid_V_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_v_ice </field> 261 262 <field id="xatrp_ave" long_name="Monthly average of x-ice area transport" field_ref="xatrp" grid_ref="grid_U_2D" freq_op="1mo" freq_offset="_reset_" > @xatrp </field> 263 <field id="xatrp_section" grid_ref="grid_U_scalar" > xatrp_ave </field> 264 <field id="xatrp_strait" field_ref="xatrp_section" grid_ref="grid_U_4strait_ice" /> 265 <field id="xstrait_arfl" field_ref="xatrp_strait" grid_ref="grid_U_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_u_ice </field> 266 267 <field id="yatrp_ave" long_name="Monthly average of y-ice area transport" field_ref="yatrp" grid_ref="grid_V_2D" freq_op="1mo" freq_offset="_reset_" > @yatrp </field> 268 <field id="yatrp_section" grid_ref="grid_V_scalar" > yatrp_ave </field> 269 <field id="yatrp_strait" field_ref="yatrp_section" grid_ref="grid_V_4strait_ice" /> 270 <field id="ystrait_arfl" field_ref="yatrp_strait" grid_ref="grid_V_4strait_ice_hsum" unit="m2/s" detect_missing_value="true" > this * maskMFO_v_ice </field> 271 272 <field id="strait_mifl" long_name="Sea ice mass flux through straits" standard_name="sea_ice_mass_transport_across_line" unit="kg/s" freq_op="1mo" grid_ref="grid_4strait_ice" > xstrait_mifl + ystrait_mifl </field> 273 <field id="strait_msfl" long_name="Snow mass flux through straits" standard_name="snow_mass_transport_across_line" unit="kg/s" freq_op="1mo" grid_ref="grid_4strait_ice" > xstrait_msfl + ystrait_msfl </field> 274 <field id="strait_arfl" long_name="Sea ice area flux through straits" standard_name="sea_area_mass_transport_across_line" unit="m2/s" freq_op="1mo" grid_ref="grid_4strait_ice" > xstrait_arfl + ystrait_arfl </field> 275 241 276 </field_group> <!-- SBC_2D --> 242 277 … … 298 333 <field id="sbgheat_tot" long_name="global mean snow heat content" unit="1e20J" /> 299 334 300 <!-- available later -->301 <!--302 <field id="strait_mifl" long_name="Sea ice mass flux through straits" standard_name="sea_ice_mass_transport_across_line" unit="kg/s" grid_ref="grid_4strait" />303 <field id="strait_arfl" long_name="Sea ice area flux through straits" standard_name="sea_ice_area_transport_across_line" unit="m2/s" grid_ref="grid_4strait" />304 <field id="strait_msfl" long_name="Sea ice snow flux through straits" standard_name="snow_mass_transport_across_line" unit="kg/s" grid_ref="grid_4strait" />305 -->306 335 </field_group> 307 336 -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-oce.xml
r12182 r12193 19 19 20 20 <field_group id="grid_T" grid_ref="grid_T_2D" > 21 <field id="e3t" long_name="T-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_T_3D" /> 22 <field id="e3t_surf" long_name="T-cell thickness" field_ref="e3t" standard_name="cell_thickness" unit="m" grid_ref="grid_T_SFC"/> 23 <field id="e3t_0" long_name="Initial T-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_T_3D" /> 24 21 <field id="e3t" long_name="T-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_T_3D" /> 22 <field id="e3ts" long_name="T-cell thickness" field_ref="e3t" standard_name="cell_thickness" unit="m" grid_ref="grid_T_SFC"/> 23 <field id="e3t_0" long_name="Initial T-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_T_3D" /> 24 <field id="e3tb" long_name="bottom T-cell thickness" standard_name="bottom_cell_thickness" unit="m" grid_ref="grid_T_2D"/> 25 <field id="e3t_300" field_ref="e3t" grid_ref="grid_T_zoom_300" detect_missing_value="true" /> 26 <field id="e3t_vsum300" field_ref="e3t_300" grid_ref="grid_T_vsum" detect_missing_value="true" /> 27 <field id="masscello" long_name="Sea Water Mass per unit area" standard_name="sea_water_mass_per_unit_area" unit="kg/m2" grid_ref="grid_T_3D"/> 28 <field id="volcello" long_name="Ocean Volume" standard_name="ocean_volume" unit="m3" grid_ref="grid_T_3D"/> 25 29 <field id="toce" long_name="temperature" standard_name="sea_water_potential_temperature" unit="degC" grid_ref="grid_T_3D"/> 26 30 <field id="toce_e3t" long_name="temperature (thickness weighted)" unit="degC" grid_ref="grid_T_3D" > toce * e3t </field > 27 31 <field id="soce" long_name="salinity" standard_name="sea_water_practical_salinity" unit="1e-3" grid_ref="grid_T_3D"/> 28 32 <field id="soce_e3t" long_name="salinity (thickness weighted)" unit="1e-3" grid_ref="grid_T_3D" > soce * e3t </field > 33 34 <field id="toce_e3t_300" field_ref="toce_e3t" unit="degree_C" grid_ref="grid_T_zoom_300" detect_missing_value="true" /> 35 <field id="toce_e3t_vsum300" field_ref="toce_e3t_300" unit="degress_C*m" grid_ref="grid_T_vsum" detect_missing_value="true" /> 36 <field id="toce_vmean300" field_ref="toce_e3t_vsum300" unit="degree_C" grid_ref="grid_T_vsum" detect_missing_value="true" > toce_e3t_vsum300/e3t_vsum300 </field> 37 29 38 30 39 <!-- t-eddy viscosity coefficients (ldfdyn) --> … … 54 63 <field id="taubot" long_name="bottom stress module" unit="N/m2" /> 55 64 65 <!-- Case EOS = TEOS-10 : output potential temperature --> 66 <field id="toce_pot" long_name="Sea Water Potential Temperature" standard_name="sea_water_potential_temperature" unit="degC" grid_ref="grid_T_3D"/> 67 <field id="sst_pot" long_name="potential sea surface temperature" standard_name="sea_surface_temperature" unit="degC" /> 68 <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" /> 69 70 56 71 <field id="ssh" long_name="sea surface height" standard_name="sea_surface_height_above_geoid" unit="m" /> 57 72 <field id="ssh2" long_name="square of sea surface height" standard_name="square_of_sea_surface_height_above_geoid" unit="m2" > ssh * ssh </field > … … 93 108 <field id="topthdep" long_name="Top of Thermocline Depth (dT = -0.2 wrt 10m)" standard_name="ocean_mixed_layer_thickness_defined_by_temperature" unit="m" /> 94 109 <field id="pycndep" long_name="Pycnocline Depth (dsigma[dT=-0.2] wrt 10m)" standard_name="ocean_mixed_layer_thickness_defined_by_sigma_theta" unit="m" /> 95 <field id="BLT" long_name="Barrier Layer Thickness" unit="m" 110 <field id="BLT" long_name="Barrier Layer Thickness" unit="m" > topthdep - pycndep </field> 96 111 <field id="tinv" long_name="Max of vertical invertion of temperature" unit="degC" /> 97 112 <field id="depti" long_name="Depth of max. vert. inv. of temperature" unit="m" /> 98 <field id="20d" long_name="Depth of 20C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_20C" /> 99 <field id="28d" long_name="Depth of 28C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_28C" /> 113 <field id="20d" long_name="Depth of 20C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_20C" /> 114 <field id="26d" long_name="Depth of 26C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_26C" /> 115 <field id="28d" long_name="Depth of 28C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" axis_ref="iax_28C" /> 100 116 <field id="hc300" long_name="Heat content 0-300m" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 117 <field id="hc700" long_name="Heat content 0-700m" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 118 <field id="hc2000" long_name="Heat content 0-2000m" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 101 119 102 120 <!-- variables available with diaar5 --> … … 321 339 322 340 <!-- available if key_oasis3 + conservative method --> 323 <field id="rain" long_name="Liquid precipitation" standard_name="rainfall_flux" unit="kg/m2/s" /> 341 <field id="rain" long_name="Liquid precipitation" standard_name="rainfall_flux" unit="kg/m2/s" /> 342 <field id="rain_ao_cea" long_name="Liquid precipitation over ice-free ocean (cell average)" standard_name="rainfall_flux" unit="kg/m2/s" /> 324 343 <field id="evap_ao_cea" long_name="Evaporation over ice-free ocean (cell average)" standard_name="water_evaporation_flux" unit="kg/m2/s" /> 325 344 <field id="isnwmlt_cea" long_name="Snow over Ice melting (cell average)" standard_name="surface_snow_melt_flux" unit="kg/m2/s" /> … … 362 381 </field_group> 363 382 383 <!-- scalar variables --> 384 <field_group id="SBC_0D" grid_ref="grid_1point" > 385 </field_group> 364 386 365 387 </field_group> <!-- SBC --> … … 410 432 411 433 <field_group id="grid_U" grid_ref="grid_U_2D"> 412 <field id="e3u" long_name="U-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_U_3D" /> 413 <field id="e3u_0" long_name="Initial U-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_U_3D"/> 414 <field id="utau" long_name="Wind Stress along i-axis" standard_name="surface_downward_x_stress" unit="N/m2" /> 415 <field id="uoce" long_name="ocean current along i-axis" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 416 <field id="uoce_e3u" long_name="ocean current along i-axis (thickness weighted)" unit="m/s" grid_ref="grid_U_3D" > uoce * e3u </field> 434 <field id="e2u" long_name="U-cell width in meridional direction" standard_name="cell_width" unit="m" /> 435 <field id="e3u" long_name="U-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_U_3D" /> 436 <field id="e3u_0" long_name="Initial U-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_U_3D"/> 437 <field id="utau" long_name="Wind Stress along i-axis" standard_name="surface_downward_x_stress" unit="N/m2" /> 438 <field id="uoce" long_name="ocean current along i-axis" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 439 <field id="uoce_e3u" long_name="ocean current along i-axis (thickness weighted)" unit="m/s" grid_ref="grid_U_3D" > uoce * e3u </field> 440 <field id="uoce_e3u_vsum" long_name="ocean current along i-axis * e3u summed on the vertical" field_ref="uoce_e3u" unit="m3/s" grid_ref="grid_U_vsum"/> 441 <field id="uocetr_vsum" long_name="ocean transport along i-axis summed on the vertical" field_ref="e2u" unit="m3/s"> this * uoce_e3u_vsum </field> 442 443 <field id="uocetr_vsum_op" long_name="ocean current along i-axis * e3u * e2u summed on the vertical" read_access="true" freq_op="1mo" field_ref="e2u" unit="m3/s"> @uocetr_vsum </field> 444 <field id="uocetr_vsum_cumul" long_name="ocean current along i-axis * e3u * e2u cumulated from southwest point" freq_offset="_reset_" operation="instant" freq_op="1mo" unit="m3/s" /> 445 <field id="msftbarot" long_name="ocean_barotropic_mass_streamfunction" unit="kg s-1" > uocetr_vsum_cumul * $rau0 </field> 446 447 417 448 <field id="ssu" long_name="ocean surface current along i-axis" unit="m/s" /> 418 449 <field id="sbu" long_name="ocean bottom current along i-axis" unit="m/s" /> … … 434 465 435 466 <!-- uoce_eiv: available EIV (ln_ldfeiv=T and ln_ldfeiv_dia=T) --> 436 <field id="uoce_eiv" long_name="EIV ocean current along i-axis" standard_name="bolus_sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 467 <field id="uoce_eiv" long_name="EIV ocean current along i-axis" standard_name="bolus_sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 468 <field id="ueiv_masstr" long_name="EIV Ocean Mass X Transport" standard_name="bolus_ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 469 <field id="ueiv_heattr" long_name="ocean bolus heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_bolus_advection" unit="W" /> 470 <field id="ueiv_salttr" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="Kg" /> 471 <field id="ueiv_heattr3d" long_name="ocean bolus heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_bolus_advection" unit="W" grid_ref="grid_U_3D" /> 472 <field id="ueiv_salttr3d" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_U_3D" /> 437 473 438 474 <!-- uoce_bbl: available with ln_trabbl=T and nn_bbl_adv=1 --> … … 448 484 <field id="utbl" long_name="zonal current in the Losh tbl" unit="m/s" /> 449 485 450 <field id="u_masstr" long_name="Ocean Mass X Transport" standard_name="ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 486 <!-- variables available with diaar5 --> 487 <field id="u_masstr" long_name="Ocean Mass X Transport" standard_name="ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 451 488 <field id="u_masstr_vint" long_name="vertical integral of ocean eulerian mass transport along i-axis" standard_name="vertical_integral_of_ocean_mass_x_transport" unit="kg/s" /> 452 489 <field id="u_heattr" long_name="ocean eulerian heat transport along i-axis" standard_name="ocean_heat_x_transport" unit="W" /> … … 454 491 <field id="uadv_heattr" long_name="ocean advective heat transport along i-axis" standard_name="advectice_ocean_heat_x_transport" unit="W" /> 455 492 <field id="uadv_salttr" long_name="ocean advective salt transport along i-axis" standard_name="advectice_ocean_salt_x_transport" unit="1e-3*kg/s" /> 456 <field id="ueiv_heattr" long_name="ocean bolus heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_bolus_advection" unit="W" />457 <field id="ueiv_salttr" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="Kg" />458 <field id="ueiv_heattr3d" long_name="ocean bolus heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_bolus_advection" unit="W" grid_ref="grid_U_3D" />459 <field id="ueiv_salttr3d" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_U_3D" />460 493 <field id="udiff_heattr" long_name="ocean diffusion heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_diffusion" unit="W" /> 461 494 <field id="udiff_salttr" long_name="ocean diffusion salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_diffusion" unit="1e-3*kg/s" /> … … 465 498 466 499 <field_group id="grid_V" grid_ref="grid_V_2D"> 500 <field id="e1v" long_name="V-cell width in longitudinal direction" standard_name="cell_width" unit="m" /> 467 501 <field id="e3v" long_name="V-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_V_3D" /> 468 502 <field id="e3v_0" long_name="Initial V-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_V_3D" /> … … 489 523 490 524 <!-- voce_eiv: available EIV (ln_ldfeiv=T and ln_ldfeiv_dia=T) --> 491 <field id="voce_eiv" long_name="EIV ocean current along j-axis" standard_name="bolus_sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 525 <field id="voce_eiv" long_name="EIV ocean current along j-axis" standard_name="bolus_sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 526 <field id="veiv_masstr" long_name="EIV Ocean Mass Y Transport" standard_name="bolus_ocean_mass_y_transport" unit="kg/s" grid_ref="grid_V_3D" /> 527 <field id="veiv_heattr" long_name="ocean bolus heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_bolus_advection" unit="W" /> 528 <field id="veiv_salttr" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="Kg" /> 529 <field id="veiv_heattr3d" long_name="ocean bolus heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_bolus_advection" unit="W" grid_ref="grid_V_3D" /> 530 <field id="veiv_salttr3d" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_y_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_V_3D" /> 531 492 532 493 533 <!-- voce_bbl: available with ln_trabbl=T and nn_bbl_adv=1 --> … … 509 549 <field id="vadv_heattr" long_name="ocean advective heat transport along j-axis" standard_name="advectice_ocean_heat_y_transport" unit="W" /> 510 550 <field id="vadv_salttr" long_name="ocean advective salt transport along j-axis" standard_name="advectice_ocean_salt_y_transport" unit="1e-3*kg/s" /> 511 <field id="veiv_heattr" long_name="ocean bolus heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_bolus_advection" unit="W" />512 <field id="veiv_salttr" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="Kg" />513 <field id="veiv_heattr3d" long_name="ocean bolus heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_bolus_advection" unit="W" grid_ref="grid_V_3D" />514 <field id="veiv_salttr3d" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_y_transport_due_to_bolus_advection" unit="kg" grid_ref="grid_V_3D" />515 551 <field id="vdiff_heattr" long_name="ocean diffusion heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_diffusion" unit="W" /> 516 552 <field id="vdiff_salttr" long_name="ocean diffusion salt transport along j-axis" standard_name="ocean_salt_y_transport_due_to_diffusion" unit="1e-3*kg/s" /> … … 521 557 <field_group id="grid_W" grid_ref="grid_W_3D"> 522 558 <field id="e3w" long_name="W-cell thickness" standard_name="cell_thickness" unit="m" /> 523 <field id="woce" long_name="ocean vertical velocity" standard_name="upward_sea_water_velocity" unit="m/s" /> 559 <field id="woce" long_name="ocean vertical velocity" standard_name="upward_sea_water_velocity" unit="m/s" /> 560 <field id="woce_e3w" long_name="ocean vertical velocity * e3w" unit="m2/s" > woce * e3w </field> 524 561 <field id="wocetr_eff" long_name="effective ocean vertical transport" unit="m3/s" /> 525 562 526 563 <!-- woce_eiv: available with EIV (ln_ldfeiv=T and ln_ldfeiv_dia=T) --> 527 564 <field id="woce_eiv" long_name="EIV ocean vertical velocity" standard_name="bolus_upward_sea_water_velocity" unit="m/s" /> 528 529 <field id="avt" long_name="vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> 565 <field id="weiv_masstr" long_name="EIV Upward Ocean Mass Transport" standard_name="bolus_upward_ocean_mass_transport" unit="kg/s" /> 566 <field id="weiv_heattr3d" long_name="ocean bolus heat transport" standard_name="ocean_heat_z_transport_due_to_bolus_advection" unit="W" /> 567 <field id="weiv_salttr3d" long_name="ocean bolus salt transport" standard_name="ocean_salt_z_transport_due_to_bolus_advection" unit="kg" /> 568 569 <field id="avt" long_name="vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> 570 <field id="avt_e3w" long_name="vertical heat diffusivity * e3w" unit="m3/s" > avt * e3w </field> 530 571 <field id="logavt" long_name="logarithm of vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> 531 572 <field id="avm" long_name="vertical eddy viscosity" standard_name="ocean_vertical_momentum_diffusivity" unit="m2/s" /> 573 <field id="avm_e3w" long_name="vertical eddy viscosity * e3w" unit="m3/s" > avm * e3w </field> 532 574 533 575 <!-- avs: /= avt with ln_zdfddm=T --> 534 576 <field id="avs" long_name="salt vertical eddy diffusivity" standard_name="ocean_vertical_salt_diffusivity" unit="m2/s" /> 535 <field id="logavs" long_name="logarithm of salt vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> 577 <field id="avs_e3w" long_name="vertical salt diffusivity * e3w" unit="m3/s" > avs * e3w </field> 578 <field id="logavs" long_name="logarithm of salt vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> 536 579 537 580 <!-- avt_evd and avm_evd: available with ln_zdfevd --> 538 581 <field id="avt_evd" long_name="convective enhancement of vertical diffusivity" standard_name="ocean_vertical_tracer_diffusivity_due_to_convection" unit="m2/s" /> 539 <field id="avm_evd" long_name="convective enhancement of vertical viscosity" standard_name="ocean_vertical_momentum_diffusivity_due_to_convection" unit="m2/s" /> 582 <field id="avt_evd_e3w" long_name="convective enhancement to vertical diffusivity * e3w " unit="m3/s" > avt_evd * e3w </field> 583 <field id="avm_evd" long_name="convective enhancement of vertical viscosity" standard_name="ocean_vertical_momentum_diffusivity_due_to_convection" unit="m2/s" /> 540 584 541 585 <!-- avt_tide: available with ln_zdfiwm=T --> … … 568 612 <field id="masstot" long_name="global total mass" standard_name="sea_water_mass" unit="kg" /> 569 613 <field id="temptot" long_name="global mean temperature" standard_name="sea_water_potential_temperature" unit="degC" /> 570 <field id="saltot" long_name="global mean salinity" standard_name="sea_water_salinity" unit="1e-3" /> 571 <field id="fram_trans" long_name="Sea Ice Mass Transport Through Fram Strait" standard_name="sea_ice_transport_across_line" unit="kg/s" /> 614 <field id="saltot" long_name="global mean salinity" standard_name="sea_water_salinity" unit="1e-3" /> 615 <field id="ssttot" long_name="global mean sea surface temperature" standard_name="sea_water_conservative_temperature" unit="degC" /> 616 <!-- EOS = TEOS-10 --> 617 <field id="temptot_pot" long_name="global mean potential temperature" standard_name="sea_water_potential_temperature" unit="degC" /> 572 618 573 619 <!-- available with ln_diahsb --> … … 586 632 <field id="bgmissal" long_name="global mean salinity error due to free surface (linssh true)" unit="1e-3" /> 587 633 </field_group> 588 589 <!-- variables available with ln_floats --> 634 635 636 <!-- transects --> 637 <field_group id="oce_straits"> 638 <field id="uoce_e3u_ave" long_name="Monthly average of u*e3u" field_ref="uoce_e3u" freq_op="1mo" freq_offset="_reset_" > @uoce_e3u </field> 639 <field id="uoce_e3u_ave_vsum" long_name="Vertical sum of u*e3u" field_ref="uoce_e3u_ave" grid_ref="grid_U_vsum" /> 640 <field id="uocetr_vsum_section" long_name="Total 2D transport in i-direction" field_ref="uoce_e3u_ave_vsum" grid_ref="grid_U_scalar" detect_missing_value="true"> this * e2u </field> 641 <field id="uocetr_strait" long_name="Total transport across lines in i-direction" field_ref="uocetr_vsum_section" grid_ref="grid_U_4strait" /> 642 <field id="u_masstr_strait" long_name="Sea water transport across line in i-direction" field_ref="uocetr_strait" grid_ref="grid_U_4strait_hsum" unit="kg/s"> this * maskMFO_u * $rau0 </field> 643 644 <field id="voce_e3v_ave" long_name="Monthly average of v*e3v" field_ref="voce_e3v" freq_op="1mo" freq_offset="_reset_" > @voce_e3v </field> 645 <field id="voce_e3v_ave_vsum" long_name="Vertical sum of v*e3v" field_ref="voce_e3v_ave" grid_ref="grid_V_vsum" /> 646 <field id="vocetr_vsum_section" long_name="Total 2D transport of in j-direction" field_ref="voce_e3v_ave_vsum" grid_ref="grid_V_scalar" detect_missing_value="true"> this * e1v </field> 647 <field id="vocetr_strait" long_name="Total transport across lines in j-direction" field_ref="vocetr_vsum_section" grid_ref="grid_V_4strait" /> 648 <field id="v_masstr_strait" long_name="Sea water transport across line in j-direction" field_ref="vocetr_strait" grid_ref="grid_V_4strait_hsum" unit="kg/s"> this * maskMFO_v * $rau0 </field> 649 650 <field id="masstr_strait" long_name="Sea water transport across line" grid_ref="grid_4strait" > u_masstr_strait + v_masstr_strait </field> 651 </field_group> 652 653 654 <!-- variables available with key_float --> 590 655 591 656 <field_group id="floatvar" grid_ref="grid_T_nfloat" operation="instant" > … … 621 686 <!-- Poleward transport : ptr --> 622 687 <field_group id="diaptr" > 623 <field id="zomsfglo" long_name="Meridional Stream-Function: Global" unit="Sv" grid_ref="gznl_W_3D" /> 624 <field id="zomsfatl" long_name="Meridional Stream-Function: Atlantic" unit="Sv" grid_ref="gznl_W_3D" /> 625 <field id="zomsfpac" long_name="Meridional Stream-Function: Pacific" unit="Sv" grid_ref="gznl_W_3D" /> 626 <field id="zomsfind" long_name="Meridional Stream-Function: Indian" unit="Sv" grid_ref="gznl_W_3D" /> 627 <field id="zomsfipc" long_name="Meridional Stream-Function: Pacific+Indian" unit="Sv" grid_ref="gznl_W_3D" /> 628 <field id="zotemglo" long_name="Zonal Mean Temperature : Global" unit="degree_C" grid_ref="gznl_T_3D" /> 629 <field id="zotematl" long_name="Zonal Mean Temperature : Atlantic" unit="degree_C" grid_ref="gznl_T_3D" /> 630 <field id="zotempac" long_name="Zonal Mean Temperature : Pacific" unit="degree_C" grid_ref="gznl_T_3D" /> 631 <field id="zotemind" long_name="Zonal Mean Temperature : Indian" unit="degree_C" grid_ref="gznl_T_3D" /> 632 <field id="zotemipc" long_name="Zonal Mean Temperature : Pacific+Indian" unit="degree_C" grid_ref="gznl_T_3D" /> 633 <field id="zosalglo" long_name="Zonal Mean Salinity : Global" unit="0.001" grid_ref="gznl_T_3D" /> 634 <field id="zosalatl" long_name="Zonal Mean Salinity : Atlantic" unit="0.001" grid_ref="gznl_T_3D" /> 635 <field id="zosalpac" long_name="Zonal Mean Salinity : Pacific" unit="0.001" grid_ref="gznl_T_3D" /> 636 <field id="zosalind" long_name="Zonal Mean Salinity : Indian" unit="0.001" grid_ref="gznl_T_3D" /> 637 <field id="zosalipc" long_name="Zonal Mean Salinity : Pacific+Indian" unit="0.001" grid_ref="gznl_T_3D" /> 638 <field id="zosrfglo" long_name="Zonal Mean Surface" unit="m2" grid_ref="gznl_T_3D" /> 639 <field id="zosrfatl" long_name="Zonal Mean Surface : Atlantic" unit="m2" grid_ref="gznl_T_3D" /> 640 <field id="zosrfpac" long_name="Zonal Mean Surface : Pacific" unit="m2" grid_ref="gznl_T_3D" /> 641 <field id="zosrfind" long_name="Zonal Mean Surface : Indian" unit="m2" grid_ref="gznl_T_3D" /> 642 <field id="zosrfipc" long_name="Zonal Mean Surface : Pacific+Indian" unit="m2" grid_ref="gznl_T_3D" /> 643 <field id="sophtadv" long_name="Advective Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 644 <field id="sophtadv_atl" long_name="Advective Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 645 <field id="sophtadv_pac" long_name="Advective Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 646 <field id="sophtadv_ind" long_name="Advective Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 647 <field id="sophtadv_ipc" long_name="Advective Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 648 <field id="sophtldf" long_name="Diffusive Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 649 <field id="sophtldf_atl" long_name="Diffusive Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 650 <field id="sophtldf_pac" long_name="Diffusive Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 651 <field id="sophtldf_ind" long_name="Diffusive Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 652 <field id="sophtldf_ipc" long_name="Diffusive Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 653 <field id="sophtove" long_name="Overturning Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 654 <field id="sophtove_atl" long_name="Overturning Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 655 <field id="sophtove_pac" long_name="Overturning Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 656 <field id="sophtove_ind" long_name="Overturning Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 657 <field id="sophtove_ipc" long_name="Overturning Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 658 <field id="sophtbtr" long_name="Barotropic Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 659 <field id="sophtbtr_atl" long_name="Barotropic Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 660 <field id="sophtbtr_pac" long_name="Barotropic Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 661 <field id="sophtbtr_ind" long_name="Barotropic Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 662 <field id="sophtbtr_ipc" long_name="Barotropic Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 663 <field id="sophteiv" long_name="Heat Transport from mesoscale eddy advection" unit="PW" grid_ref="gznl_T_2D" /> 664 <field id="sophteiv_atl" long_name="Heat Transport from mesoscale eddy advection: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 665 <field id="sophteiv_pac" long_name="Heat Transport from mesoscale eddy advection: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 666 <field id="sophteiv_ind" long_name="Heat Transport from mesoscale eddy advection: Indian" unit="PW" grid_ref="gznl_T_2D" /> 667 <field id="sophteiv_ipc" long_name="Heat Transport from mesoscale eddy advection: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 668 <field id="sopstadv" long_name="Advective Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 669 <field id="sopstadv_atl" long_name="Advective Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 670 <field id="sopstadv_pac" long_name="Advective Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 671 <field id="sopstadv_ind" long_name="Advective Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 672 <field id="sopstadv_ipc" long_name="Advective Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 673 <field id="sopstove" long_name="Overturning Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 674 <field id="sopstove_atl" long_name="Overturning Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 675 <field id="sopstove_pac" long_name="Overturning Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 676 <field id="sopstove_ind" long_name="Overturning Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 677 <field id="sopstove_ipc" long_name="Overturning Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 678 <field id="sopstbtr" long_name="Barotropic Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 679 <field id="sopstbtr_atl" long_name="Barotropic Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 680 <field id="sopstbtr_pac" long_name="Barotropic Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 681 <field id="sopstbtr_ind" long_name="Barotropic Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 682 <field id="sopstbtr_ipc" long_name="Barotropic Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 683 <field id="sopstldf" long_name="Diffusive Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 684 <field id="sopstldf_atl" long_name="Diffusive Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 685 <field id="sopstldf_pac" long_name="Diffusive Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 686 <field id="sopstldf_ind" long_name="Diffusive Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 687 <field id="sopstldf_ipc" long_name="Diffusive Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 688 <field id="sopsteiv" long_name="Salt Transport from mesoscale eddy advection" unit="Giga g/s" grid_ref="gznl_T_2D" /> 689 <field id="sopsteiv_atl" long_name="Salt Transport from mesoscale eddy advection: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 690 <field id="sopsteiv_pac" long_name="Salt Transport from mesoscale eddy advection: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 691 <field id="sopsteiv_ind" long_name="Salt Transport from mesoscale eddy advection: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 692 <field id="sopsteiv_ipc" long_name="Salt Transport from mesoscale eddy advection: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 693 </field_group> 688 <field id="zomsf" long_name="Overturning Stream-Function : All basins" unit="Sv" grid_ref="grid_znl_W_3D" /> 689 <field id="zotem" long_name="Zonal Mean Temperature : All basins" unit="degree_C" grid_ref="grid_znl_T_3D" /> 690 <field id="zosal" long_name="Zonal Mean Salinity : All basins" unit="0.001" grid_ref="grid_znl_T_3D" /> 691 <field id="zosrf" long_name="Zonal Mean Surface : All basins" unit="m2" grid_ref="grid_znl_T_3D" /> 692 <field id="sophtove" long_name="Overturning Heat Transport: All basins" unit="PW" grid_ref="grid_znl_T_2D" /> 693 <field id="sopstove" long_name="Overturning Salt Transport: All basins" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 694 <field id="sophtbtr" long_name="Barotropic Heat Transport: All basins" unit="PW" grid_ref="grid_znl_T_2D" /> 695 <field id="sopstbtr" long_name="Barotropic Salt Transport: All basins" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 696 <field id="sophtadv" long_name="Advective Heat Transport: All basins" unit="PW" grid_ref="grid_znl_T_2D" /> 697 <field id="sopstadv" long_name="Advective Salt Transport: All basins" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 698 <field id="sophtldf" long_name="Diffusive Heat Transport: All basins" unit="PW" grid_ref="grid_znl_T_2D" /> 699 <field id="sopstldf" long_name="Diffusive Salt Transport: All basins" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 700 <field id="sophtvtr" long_name="Heat Transport : All basins" unit="PW" grid_ref="grid_znl_T_2D" /> 701 <field id="sopstvtr" long_name="Salt Transport : All basins" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 702 <field id="sophteiv" long_name="Heat Transport from mesoscale eddy advection: All basins" unit="PW" grid_ref="grid_znl_T_2D" /> 703 <field id="sopsteiv" long_name="Salt Transport from mesoscale eddy advection : All basins" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 704 <field id="sopstadv" long_name="Advective Salt Transport" unit="Giga g/s" grid_ref="grid_znl_T_2D" /> 705 <field id="sophtgyre" long_name="Overturning heat transport due to gyre" field_ref="sophtove" unit="W" grid_ref="grid_znl_T_2D" > sophtvtr - sophtove </field> 706 <field id="sopstgyre" long_name="Overturning salt transport due to gyre" field_ref="sopstove" unit="kg/s" grid_ref="grid_znl_T_2D" > sophtvtr - sopstove </field> 707 </field_group> 708 709 <field_group id="constant_fields" grid_ref="grid_T_2D" operation="once" > 710 <field id="bathy" long_name="Sea floor depth below geoid" standard_name="sea_floor_depth_below_geoid" unit="m"/> 711 <field id="areacello" long_name="Horizontal area of ocean grid cells" standard_name="cell_area" unit="m2" /> 712 <field id="hfgeou" long_name="Upward geothermal heat flux at sea floor" standard_name="upward_geothermal_heat_flux_at_sea_floor" unit="W/m2"/> 713 <field id="basins" long_name="ocean tracer region masks" standard_name="ocean_tracer_region_masks" unit="none" grid_ref="grid_basin" /> 714 </field_group> 715 694 716 695 717 <!-- … … 724 746 <field id="ttrd_totad" long_name="temperature-trend: total advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="degC/s" /> 725 747 <field id="strd_totad" long_name="salinity -trend: total advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="1e-3/s" /> 726 <field id="ttrd_sad" long_name="temperature-trend: surface adv. (linssh true)" 727 <field id="strd_sad" long_name="salinity -trend: surface adv. (linssh true)" 748 <field id="ttrd_sad" long_name="temperature-trend: surface adv. (linssh true)" unit="degC/s" grid_ref="grid_T_2D" /> 749 <field id="strd_sad" long_name="salinity -trend: surface adv. (linssh true)" unit="1e-3/s" grid_ref="grid_T_2D" /> 728 750 <field id="ttrd_ldf" long_name="temperature-trend: lateral diffusion" standard_name="tendency_of_sea_water_temperature_due_to_horizontal_mixing" unit="degC/s" /> 729 751 <field id="strd_ldf" long_name="salinity -trend: lateral diffusion" standard_name="tendency_of_sea_water_salinity_due_to_horizontal_mixing" unit="1e-3/s" /> … … 782 804 <field id="ttrd_npc_e3t" unit="degC/s * m" > ttrd_npc * e3t </field> 783 805 <field id="strd_npc_e3t" unit="1e-3/s * m" > strd_npc * e3t </field> 784 <field id="ttrd_qns_e3t" unit="degC/s * m" > ttrd_qns * e3t _surf</field>785 <field id="strd_cdt_e3t" unit="degC/s * m" > strd_cdt * e3t _surf</field>806 <field id="ttrd_qns_e3t" unit="degC/s * m" > ttrd_qns * e3ts </field> 807 <field id="strd_cdt_e3t" unit="degC/s * m" > strd_cdt * e3ts </field> 786 808 <field id="ttrd_qsr_e3t" unit="degC/s * m" > ttrd_qsr * e3t </field> 787 809 <field id="ttrd_bbc_e3t" unit="degC/s * m" > ttrd_bbc * e3t </field> … … 985 1007 <field_group id="groupU" > 986 1008 <field field_ref="uoce" name="uo" long_name="sea_water_x_velocity" /> 987 <field field_ref="ssu" name="uos" long_name="sea_surface_x_velocity" />988 1009 <field field_ref="utau" name="tauuo" long_name="surface_downward_x_stress" /> 989 1010 </field_group> … … 991 1012 <field_group id="groupV" > 992 1013 <field field_ref="voce" name="vo" long_name="sea_water_y_velocity" /> 993 <field field_ref="ssv" name="vos" long_name="sea_surface_y_velocity" />994 1014 <field field_ref="vtau" name="tauvo" long_name="surface_downward_y_stress" /> 995 1015 </field_group> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-pisces.xml
r11536 r12193 60 60 <field id="NFe" long_name="Nano iron Concentration" unit="mmol/m3" /> 61 61 <field id="NFe_e3t" long_name="NFe * e3t" unit="mmol/m2" > NFe * e3t </field > 62 <field id="NCHL" long_name="Nano chlorophyl Concentration" unit=" mg/m3" />62 <field id="NCHL" long_name="Nano chlorophyl Concentration" unit="gChl/m3" /> 63 63 <field id="NCHL_e3t" long_name="NCHL * e3t" unit="mmol/m2" > NCHL * e3t </field > 64 <field id="DCHL" long_name="Diatoms chlorophyl Concentration" unit=" mg/m3" />64 <field id="DCHL" long_name="Diatoms chlorophyl Concentration" unit="gChl/m3" /> 65 65 <field id="DCHL_e3t" long_name="DCHL * e3t" unit="mmol/m2" > DCHL * e3t </field > 66 66 <field id="NO3" long_name="Nitrate Concentration" unit="mmol/m3" /> … … 99 99 <field id="PFe" long_name="Picophytoplankton Fe biomass" unit="mmol/m3" /> 100 100 <field id="PFe_e3t" long_name="PFe * e3t" unit="mmol/m2" > PFe * e3t </field > 101 <field id="PCHL" long_name="Picophytoplankton Chl biomass" unit=" mg/m3" />101 <field id="PCHL" long_name="Picophytoplankton Chl biomass" unit="gChl/m3" /> 102 102 <field id="PCHL_e3t" long_name="PCHL * e3t" unit="mmol/m2" > PCHL * e3t </field > 103 103 … … 230 230 <field id="Kg" long_name="Gas transfer" unit="mol/m2/s/uatm" /> 231 231 <field id="Dpco2" long_name="Delta CO2" unit="uatm" /> 232 <field id="pCO2sea" long_name="surface ocean pCO2" unit="uatm" /> 232 233 <field id="Dpo2" long_name="Delta O2" unit="uatm" /> 233 234 <field id="Heup" long_name="Euphotic layer depth" unit="m" /> 235 <field id="AtmCo2" long_name="Atmospheric CO2 concentration" unit="ppm" /> 234 236 <field id="Irondep" long_name="Iron deposition from dust" unit="mol/m2/s" /> 235 237 <field id="Ironsed" long_name="Iron deposition from sediment" unit="mol/m2/s" grid_ref="grid_T_3D" /> 236 <field id="FESCAV" long_name="Scavenging of Iron" unit="mmol-Fe/m3/s" grid_ref="grid_T_3D" />238 <field id="FESCAV" long_name="Scavenging of Iron" unit="mmol-Fe/m3/s" grid_ref="grid_T_3D" /> 237 239 <field id="FECOLL" long_name="Colloidal Pumping of FeL" unit="mmol-FeL/m3/s" grid_ref="grid_T_3D" /> 238 240 <field id="LGWCOLL" long_name="Coagulation loss of ligands" unit="mmol-L/m3/s" grid_ref="grid_T_3D" /> … … 249 251 <field id="FEZOO" long_name="microzooplankton iron recycling rate" unit="nmol-FeL/m3/s" grid_ref="grid_T_3D" /> 250 252 <field id="FEZOO2" long_name="mesozooplankton iron recycling rate" unit="nmol-FeL/m3/s" grid_ref="grid_T_3D" /> 253 254 <!-- PISCES tracers trends --> 255 <field id="INTdtAlk" long_name="Vertically int. of change of alkalinity" unit="mol/m2/s" /> 256 <field id="INTdtDIC" long_name="Vertically int. of change of dissic " unit="mol/m2/s" /> 257 <field id="INTdtFer" long_name="Vertically int. of change of iron " unit="mol/m2/s" /> 258 <field id="INTdtDIN" long_name="Vertically int. of change of nitrogen " unit="mol/m2/s" /> 259 <field id="INTdtDIP" long_name="Vertically int. of change of phophate " unit="mol/m2/s" /> 260 <field id="INTdtSil" long_name="Vertically int. of change of silicon " unit="mol/m2/s" /> 261 251 262 252 263 <!-- dbio_T on T grid : variables available with diaar5 --> -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/grid_def_nemo.xml
r12182 r12193 1 1 <!-- 2 ============================================================================================================ 3 = grid definition = = DO NOT CHANGE = 4 ============================================================================================================ 5 --> 6 2 7 <grid_definition> 3 8 4 9 <!-- --> 5 10 <grid id="grid_T_2D" > 6 <domain id="grid_T" />11 <domain domain_ref="grid_T" /> 7 12 </grid> 8 13 <!-- --> 9 14 <grid id="grid_T_ncatice" > 10 <domain id="grid_T" />11 <axis id="ncatice" />15 <domain domain_ref="grid_T" /> 16 <axis axis_ref="ncatice" /> 12 17 </grid> 13 18 <!-- --> 14 19 <grid id="grid_T_3D" > 15 <domain id="grid_T" />16 <axis id="deptht" />20 <domain domain_ref="grid_T" /> 21 <axis axis_ref="deptht" /> 17 22 </grid> 18 23 <!-- --> … … 23 28 <!-- --> 24 29 <grid id="grid_U_2D" > 25 <domain id="grid_U" />30 <domain domain_ref="grid_U" /> 26 31 </grid> 27 32 <!-- --> 28 33 <grid id="grid_U_3D" > 29 <domain id="grid_U" />30 <axis id="depthu" />34 <domain domain_ref="grid_U" /> 35 <axis axis_ref="depthu" /> 31 36 </grid> 32 37 <!-- --> 33 38 <grid id="grid_V_2D" > 34 <domain id="grid_V" />39 <domain domain_ref="grid_V" /> 35 40 </grid> 36 41 <!-- --> 37 42 <grid id="grid_V_3D" > 38 <domain id="grid_V" />39 <axis id="depthv" />43 <domain domain_ref="grid_V" /> 44 <axis axis_ref="depthv" /> 40 45 </grid> 41 46 <!-- --> 42 47 <grid id="grid_W_2D" > 43 <domain id="grid_W" />48 <domain domain_ref="grid_W" /> 44 49 </grid> 45 50 <!-- --> 46 51 <grid id="grid_W_3D" > 47 <domain id="grid_W" /> 48 <axis id="depthw" /> 52 <domain domain_ref="grid_W" /> 53 <axis axis_ref="depthw" /> 54 </grid> 55 <!-- --> 56 <grid id="grid_1point" > 57 <domain domain_ref="1point"/> 49 58 </grid> 50 59 <!-- --> … … 53 62 <axis id="nfloat" /> 54 63 </grid> 64 65 <!-- ABL grid definition --> 66 <grid id="grid_TA_2D"> 67 <domain domain_ref="grid_T" /> 68 </grid> 69 <grid id="grid_TA_3D"> 70 <domain domain_ref="grid_T" /> 71 <axis id="ght_abl" /> 72 </grid> 73 <grid id="grid_WA_3D"> 74 <domain domain_ref="grid_T" /> 75 <axis id="ghw_abl" /> 76 </grid> 77 <!-- --> 78 <grid id="grid_EqT" > 79 <domain domain_ref="EqT" /> 80 </grid> 81 <!-- --> 82 83 84 <grid id="grid_znl_T_2D"> 85 <domain domain_ref="gznl" /> 86 <axis axis_ref="basin" /> 87 </grid> 88 89 <grid id="grid_znl_T_3D"> 90 <domain domain_ref="gznl" /> 91 <axis axis_ref="deptht" /> 92 <axis axis_ref="basin" /> 93 </grid> 94 95 <grid id="grid_znl_W_3D"> 96 <domain domain_ref="gznl" /> 97 <axis axis_ref="depthw" /> 98 <axis axis_ref="basin" /> 99 </grid> 100 101 <grid id="grid_ptr_T_2D"> 102 <domain domain_ref="ptr" /> 103 <axis axis_ref="basin" /> 104 </grid> 105 106 <grid id="grid_ptr_T_3D"> 107 <domain domain_ref="ptr" /> 108 <axis axis_ref="deptht" /> 109 <axis axis_ref="basin" /> 110 </grid> 111 112 <grid id="grid_ptr_W_3D"> 113 <domain domain_ref="ptr" /> 114 <axis axis_ref="depthw" /> 115 <axis axis_ref="basin" /> 116 </grid> 117 118 <grid id="grid_T_SFC"> 119 <domain domain_ref="grid_T" /> 120 <scalar> 121 <extract_axis position="0" /> 122 </scalar> 123 </grid> 124 125 <grid id="grid_T_vsum"> 126 <domain domain_ref="grid_T"/> 127 <scalar> 128 <reduce_axis operation="sum" /> 129 </scalar> 130 </grid> 131 132 <grid id="grid_U_vsum"> 133 <domain domain_ref="grid_U"/> 134 <scalar> 135 <reduce_axis operation="sum" /> 136 </scalar> 137 </grid> 138 139 <grid id="grid_V_vsum"> 140 <domain domain_ref="grid_V"/> 141 <scalar> 142 <reduce_axis operation="sum" /> 143 </scalar> 144 </grid> 145 146 <!-- for ORCA2 grid --> 147 <grid id="cumul_U"> 148 <axis axis_ref="cumul_U" n_glo="182" > 149 <reduce_domain local="true" operation="sum" direction="jDir" /> 150 <reduce_axis operation="sum" /> 151 </axis> 152 <axis axis_ref="depthu" /> 153 </grid> 154 155 <!-- for eORCA1 grid 156 157 <grid id="cumul_U"> 158 <axis axis_ref="cumul_U" n_glo="362" > 159 <reduce_domain local="true" operation="sum" direction="jDir" /> 160 <reduce_axis operation="sum" /> 161 </axis> 162 <axis axis_ref="depthu" /> 163 </grid> 164 165 --> 166 167 168 <grid id="grid_T_zoom_300"> 169 <domain domain_ref="grid_T" /> 170 <axis axis_ref="deptht300" /> 171 </grid> 172 173 <grid id="grid_U_scalar" > 174 <domain domain_ref="grid_U" /> 175 <scalar/> 176 </grid> 177 178 <grid id="grid_V_scalar" > 179 <domain domain_ref="grid_V" /> 180 <scalar/> 181 </grid> 182 183 <grid id="grid_U_4strait"> 184 <domain domain_ref="grid_U" /> 185 <axis axis_ref="section"> 186 <duplicate_scalar/> 187 </axis> 188 </grid> 189 190 <grid id="grid_V_4strait"> 191 <domain domain_ref="grid_V" /> 192 <axis axis_ref="section"> 193 <duplicate_scalar/> 194 </axis> 195 </grid> 196 197 <grid id="grid_U_4strait_hsum"> 198 <scalar > 199 <reduce_domain operation="sum" local="true"/> 200 <reduce_scalar operation="sum" /> 201 </scalar> 202 <axis axis_ref="section"/> 203 </grid> 204 205 <grid id="grid_V_4strait_hsum"> 206 <scalar > 207 <reduce_domain operation="sum" local="true"/> 208 <reduce_scalar operation="sum" /> 209 </scalar> 210 <axis axis_ref="section"/> 211 </grid> 212 213 <grid id="grid_4strait"> 214 <axis axis_ref="section"/> 215 </grid> 216 217 <grid id="grid_U_4strait_ice"> 218 <domain domain_ref="grid_U" /> 219 <axis axis_ref="section_ice"> 220 <duplicate_scalar/> 221 </axis> 222 </grid> 223 224 <grid id="grid_V_4strait_ice"> 225 <domain domain_ref="grid_V" /> 226 <axis axis_ref="section_ice"> 227 <duplicate_scalar/> 228 </axis> 229 </grid> 230 231 <grid id="grid_U_4strait_ice_hsum"> 232 <scalar > 233 <reduce_domain operation="sum" local="true"/> 234 <reduce_scalar operation="sum" /> 235 </scalar> 236 <axis axis_ref="section_ice"/> 237 </grid> 238 239 <grid id="grid_V_4strait_ice_hsum"> 240 <scalar > 241 <reduce_domain operation="sum" local="true"/> 242 <reduce_scalar operation="sum" /> 243 </scalar> 244 <axis axis_ref="section_ice"/> 245 </grid> 246 247 <grid id="grid_4strait_ice"> 248 <axis axis_ref="section_ice"/> 249 </grid> 250 55 251 <!-- scalars --> 56 252 <grid id="grid_scalar" > 57 253 <scalar/> 58 254 </grid> 59 60 <!-- ABL grid definition --> 61 <grid id="grid_TA_2D"> 62 <domain domain_ref="grid_T" /> 63 </grid> 64 <grid id="grid_TA_3D"> 65 <domain domain_ref="grid_T" /> 66 <axis id="ght_abl" /> 67 </grid> 68 <grid id="grid_WA_3D"> 69 <domain domain_ref="grid_T" /> 70 <axis id="ghw_abl" /> 71 </grid> 72 <!-- --> 73 74 </grid_definition> 75 255 256 </grid_definition> 257 -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_pisces_ref
r11536 r12193 34 34 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 35 35 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 36 sn_patm = 'presatm' , -1 ., 'patm' , .true. , .true. , 'yearly' , '' , '' , ''37 sn_atmco2 = 'presatmco2' , -1 ., 'xco2' , .true. , .true. , 'yearly' , '' , '' , ''36 sn_patm = 'presatm' , -1 , 'patm' , .true. , .true. , 'yearly' , '' , '' , '' 37 sn_atmco2 = 'presatmco2' , -1 , 'xco2' , .true. , .true. , 'yearly' , '' , '' , '' 38 38 cn_dir = './' ! root directory for the location of the dynamical files 39 39 ! … … 141 141 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 142 142 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 143 sn_par = 'par.orca' , 24 ., 'fr_par' , .true. , .true. , 'yearly' , '' , '' , ''143 sn_par = 'par.orca' , 24 , 'fr_par' , .true. , .true. , 'yearly' , '' , '' , '' 144 144 cn_dir = './' ! root directory for the location of the dynamical files 145 145 ln_varpar = .true. ! boolean for PAR variable … … 343 343 / 344 344 !----------------------------------------------------------------------- 345 &nampis sbc ! parameters for inputs deposition345 &nampisbc ! parameters for inputs deposition 346 346 !----------------------------------------------------------------------- 347 347 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 348 348 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 349 sn_dust = 'dust.orca' , -1. , 'dust' , .true. , .true. , 'yearly' , '' , '' , '' 350 sn_solub = 'solubility.orca' , -12. , 'solubility1' , .false. , .true. , 'yearly' , '' , '' , '' 351 sn_riverdic = 'river.orca' , 120. , 'riverdic' , .true. , .true. , 'yearly' , '' , '' , '' 352 sn_riverdoc = 'river.orca' , 120. , 'riverdoc' , .true. , .true. , 'yearly' , '' , '' , '' 353 sn_riverdin = 'river.orca' , 120. , 'riverdin' , .true. , .true. , 'yearly' , '' , '' , '' 354 sn_riverdon = 'river.orca' , 120. , 'riverdon' , .true. , .true. , 'yearly' , '' , '' , '' 355 sn_riverdip = 'river.orca' , 120. , 'riverdip' , .true. , .true. , 'yearly' , '' , '' , '' 356 sn_riverdop = 'river.orca' , 120. , 'riverdop' , .true. , .true. , 'yearly' , '' , '' , '' 357 sn_riverdsi = 'river.orca' , 120. , 'riverdsi' , .true. , .true. , 'yearly' , '' , '' , '' 358 sn_ndepo = 'ndeposition.orca', -12. , 'ndep' , .false. , .true. , 'yearly' , '' , '' , '' 359 sn_ironsed = 'bathy.orca' , -12. , 'bathy' , .false. , .true. , 'yearly' , '' , '' , '' 360 sn_hydrofe = 'hydrofe.orca' , -12. , 'epsdb' , .false. , .true. , 'yearly' , '' , '' , '' 349 sn_dust = 'dust.orca' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' , '' 350 sn_ironsed = 'bathy.orca' , -12 , 'bathy' , .false. , .true. , 'yearly' , '' , '' , '' 351 sn_hydrofe = 'hydrofe.orca' , -12 , 'epsdb' , .false. , .true. , 'yearly' , '' , '' , '' 361 352 ! 362 353 cn_dir = './' ! root directory for the location of the dynamical files 363 ln_dust = .true. ! boolean for dust input from the atmosphere364 ln_solub = .true. ! boolean for variable solubility of atm. Iron365 ln_river = .true. ! boolean for river input of nutrients366 ln_ndepo = .true. ! boolean for atmospheric deposition of N367 354 ln_ironsed = .true. ! boolean for Fe input from sediments 368 355 ln_ironice = .true. ! boolean for Fe input from sea ice … … 370 357 sedfeinput = 2.e-9 ! Coastal release of Iron 371 358 distcoast = 5.e3 ! Distance off the coast for Iron from sediments 372 dustsolub = 0.02 ! Solubility of the dusta373 359 mfrac = 0.035 ! Fe mineral fraction of dust 374 360 wdust = 2.0 ! Dust sinking speed 375 361 icefeinput = 15.e-9 ! Iron concentration in sea ice 362 hratio = 1.e+7 ! Fe to 3He ratio assumed for vent iron supply 363 ! ! ln_ligand 364 lgw_rath = 0.5 ! Weak ligand ratio from sed hydro sources 365 / 366 !----------------------------------------------------------------------- 367 &nampissed ! parameters for sediments mobilization 368 !----------------------------------------------------------------------- 376 369 nitrfix = 1.e-7 ! Nitrogen fixation rate 377 370 diazolight = 50. ! Diazotrophs sensitivity to light (W/m2) 378 371 concfediaz = 1.e-10 ! Diazotrophs half-saturation Cste for Iron 379 hratio = 1.e+7 ! Fe to 3He ratio assumed for vent iron supply380 ! ! ln_ligand381 lgw_rath = 0.5 ! Weak ligand ratio from sed hydro sources382 372 / 383 373 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_ref
r12182 r12193 437 437 ln_sssr_bnd = .true. ! flag to bound erp term (associated with nn_sssr=2) 438 438 rn_sssr_bnd = 4.e0 ! ABS(Max/Min) value of the damping erp term [mm/day] 439 nn_sssr_ice = 1 ! control of sea surface restoring under sea-ice 440 ! 0 = no restoration under ice : * (1-icefrac) 441 ! 1 = restoration everywhere 442 ! >1 = enhanced restoration under ice : 1+(nn_icedmp-1)*icefrac 439 443 440 444 cn_dir = './' ! root directory for the SST/SSS data location … … 1215 1219 !!gm ln_trdmld_instant = .false. ! flag to diagnose trends of instantantaneous or mean ML T/S 1216 1220 !!gm 1217 !-----------------------------------------------------------------------1218 &namptr ! Poleward Transport Diagnostic (default: OFF)1219 !-----------------------------------------------------------------------1220 ln_diaptr = .false. ! Poleward heat and salt transport (T) or not (F)1221 ln_subbas = .false. ! Atlantic/Pacific/Indian basins computation (T) or not1222 1221 / 1223 1222 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_top_ref
r11949 r12193 40 40 ln_trcdmp = .false. ! add a damping termn (T) or not (F) 41 41 ln_trcdmp_clo = .false. ! damping term (T) or not (F) on closed seas 42 ln_trcbc = .false. ! Surface, Lateral or Open Boundaries conditions 42 43 ! 43 44 jp_dia3d = 0 ! Number of 3D diagnostic variables … … 134 135 cn_dir_obc = './' ! root directory for the location of OPEN data files 135 136 ln_rnf_ctl = .false. ! Remove runoff dilution on tracers with absent river load 136 rn_bc_time = 86400. ! Time scaling factor for SBC and CBC data (seconds in a day) 137 rn_sbc_time = 86400. ! Time scaling factor for SBC data (seconds in a day) 138 rn_cbc_time = 86400. ! Time scaling factor for CBC data (seconds in a day) 137 139 / 138 140 !---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SPITZ12/EXPREF/context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 23 26 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 27 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 28 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ABL/sbcabl.F90
r12063 r12193 77 77 !!--------------------------------------------------------------------- 78 78 79 REWIND( numnam_ref ) ! Namelist namsbc_abl in reference namelist : ABL parameters80 79 READ ( numnam_ref, namsbc_abl, IOSTAT = ios, ERR = 901 ) 81 80 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_abl in reference namelist' ) 82 81 ! 83 REWIND( numnam_cfg ) ! Namelist namsbc_abl in configuration namelist : ABL parameters84 82 READ ( numnam_cfg, namsbc_abl, IOSTAT = ios, ERR = 902 ) 85 83 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_abl in configuration namelist' ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DIA/diaar5.F90
r11949 r12193 72 72 INTEGER, INTENT( in ) :: Kmm ! ocean time level index 73 73 ! 74 INTEGER :: ji, jj, jk ! dummy loop arguments75 REAL(wp) :: zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass 74 INTEGER :: ji, jj, jk, iks, ikb ! dummy loop arguments 75 REAL(wp) :: zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass, zsst 76 76 REAL(wp) :: zaw, zbw, zrw 77 77 ! 78 78 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zarea_ssh , zbotpres ! 2D workspace 79 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zpe 80 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zrhd , zrhop 79 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zpe, z2d ! 2D workspace 80 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zrhd , zrhop, ztpot ! 3D workspace 81 81 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztsn ! 4D workspace 82 82 … … 87 87 88 88 IF( l_ar5 ) THEN 89 ALLOCATE( zarea_ssh(jpi,jpj) , zbotpres(jpi,jpj) )89 ALLOCATE( zarea_ssh(jpi,jpj), zbotpres(jpi,jpj), z2d(jpi,jpj) ) 90 90 ALLOCATE( zrhd(jpi,jpj,jpk) , zrhop(jpi,jpj,jpk) ) 91 91 ALLOCATE( ztsn(jpi,jpj,jpk,jpts) ) … … 93 93 ENDIF 94 94 ! 95 CALL iom_put( 'e2u' , e2u (:,:) ) 96 CALL iom_put( 'e1v' , e1v (:,:) ) 97 CALL iom_put( 'areacello', area(:,:) ) 98 ! 99 IF( iom_use( 'volcello' ) .OR. iom_use( 'masscello' ) ) THEN 100 zrhd(:,:,jpk) = 0._wp ! ocean volume ; rhd is used as workspace 101 DO jk = 1, jpkm1 102 zrhd(:,:,jk) = area(:,:) * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 103 END DO 104 CALL iom_put( 'volcello' , zrhd(:,:,:) ) ! WARNING not consistent with CMIP DR where volcello is at ca. 2000 105 CALL iom_put( 'masscello' , rau0 * e3t(:,:,:,Kmm) * tmask(:,:,:) ) ! ocean mass 106 ENDIF 107 ! 108 IF( iom_use( 'e3tb' ) ) THEN ! bottom layer thickness 109 DO jj = 1, jpj 110 DO ji = 1, jpi 111 ikb = mbkt(ji,jj) 112 z2d(ji,jj) = e3t(ji,jj,ikb,Kmm) 113 END DO 114 END DO 115 CALL iom_put( 'e3tb', z2d ) 116 ENDIF 117 ! 95 118 IF( iom_use( 'voltot' ) .OR. iom_use( 'sshtot' ) .OR. iom_use( 'sshdyn' ) ) THEN 96 119 ! ! total volume of liquid seawater 97 zvolssh = SUM( zarea_ssh(:,:) ) 98 CALL mpp_sum( 'diaar5', zvolssh ) 99 zvol = vol0 + zvolssh 120 zvolssh = glob_sum( 'diaar5', zarea_ssh(:,:) ) 121 zvol = vol0 + zvolssh 100 122 101 123 CALL iom_put( 'voltot', zvol ) … … 119 141 DO ji = 1, jpi 120 142 DO jj = 1, jpj 121 zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,mikt(ji,jj)) + riceload(ji,jj) 143 iks = mikt(ji,jj) 144 zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 122 145 END DO 123 146 END DO … … 130 153 END IF 131 154 ! 132 zarho = SUM( area(:,:) * zbotpres(:,:) ) 133 CALL mpp_sum( 'diaar5', zarho ) 155 zarho = glob_sum( 'diaar5', area(:,:) * zbotpres(:,:) ) 134 156 zssh_steric = - zarho / area_tot 135 157 CALL iom_put( 'sshthster', zssh_steric ) … … 148 170 DO ji = 1,jpi 149 171 DO jj = 1,jpj 150 zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,mikt(ji,jj)) + riceload(ji,jj) 172 iks = mikt(ji,jj) 173 zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 151 174 END DO 152 175 END DO … … 156 179 END IF 157 180 ! 158 zarho = SUM( area(:,:) * zbotpres(:,:) ) 159 CALL mpp_sum( 'diaar5', zarho ) 181 zarho = glob_sum( 'diaar5', area(:,:) * zbotpres(:,:) ) 160 182 zssh_steric = - zarho / area_tot 161 183 CALL iom_put( 'sshsteric', zssh_steric ) 162 163 184 ! ! ocean bottom pressure 164 185 zztmp = rau0 * grav * 1.e-4_wp ! recover pressure from pressure anomaly and cover to dbar = 1.e4 Pa … … 169 190 170 191 IF( iom_use( 'masstot' ) .OR. iom_use( 'temptot' ) .OR. iom_use( 'saltot' ) ) THEN 171 ! ! Mean density anomalie, temperature and salinity172 ztemp = 0._wp173 zsal = 0._wp174 DO jk = 1, jpkm1175 DO jj = 1, jpj176 DO ji = 1, jpi177 zztmp = area(ji,jj) * e3t(ji,jj,jk,Kmm)178 ztemp = ztemp + zztmp * ts(ji,jj,jk,jp_tem,Kmm)179 zsal = zsal + zztmp * ts(ji,jj,jk,jp_sal,Kmm)180 ENDDO181 ENDDO182 END DO 183 IF( ln_linssh ) THEN192 ! ! Mean density anomalie, temperature and salinity 193 ztsn(:,:,:,:) = 0._wp ! ztsn(:,:,1,jp_tem/sal) is used here as 2D Workspace for temperature & salinity 194 DO jk = 1, jpkm1 195 DO jj = 1, jpj 196 DO ji = 1, jpi 197 zztmp = area(ji,jj) * e3t(ji,jj,jk,Kmm) 198 ztsn(ji,jj,1,jp_tem) = ztsn(ji,jj,1,jp_tem) + zztmp * ts(ji,jj,jk,jp_tem,Kmm) 199 ztsn(ji,jj,1,jp_sal) = ztsn(ji,jj,1,jp_sal) + zztmp * ts(ji,jj,jk,jp_sal,Kmm) 200 ENDDO 201 ENDDO 202 ENDDO 203 204 IF( ln_linssh ) THEN 184 205 IF( ln_isfcav ) THEN 185 206 DO ji = 1, jpi 186 207 DO jj = 1, jpj 187 ztemp = ztemp + zarea_ssh(ji,jj) * ts(ji,jj,mikt(ji,jj),jp_tem,Kmm) 188 zsal = zsal + zarea_ssh(ji,jj) * ts(ji,jj,mikt(ji,jj),jp_sal,Kmm) 208 iks = mikt(ji,jj) 209 ztsn(ji,jj,1,jp_tem) = ztsn(ji,jj,1,jp_tem) + zarea_ssh(ji,jj) * ts(ji,jj,iks,jp_tem,Kmm) 210 ztsn(ji,jj,1,jp_sal) = ztsn(ji,jj,1,jp_sal) + zarea_ssh(ji,jj) * ts(ji,jj,iks,jp_sal,Kmm) 189 211 END DO 190 212 END DO 191 213 ELSE 192 zt emp = ztemp + SUM( zarea_ssh(:,:) * ts(:,:,1,jp_tem,Kmm) )193 z sal = zsal + SUM( zarea_ssh(:,:) * ts(:,:,1,jp_sal,Kmm) )214 ztsn(:,:,1,jp_tem) = ztsn(:,:,1,jp_tem) + zarea_ssh(:,:) * ts(:,:,1,jp_tem,Kmm) 215 ztsn(:,:,1,jp_sal) = ztsn(:,:,1,jp_sal) + zarea_ssh(:,:) * ts(:,:,1,jp_sal,Kmm) 194 216 END IF 195 217 ENDIF 196 IF( lk_mpp ) THEN 197 CALL mpp_sum( 'diaar5', ztemp ) 198 CALL mpp_sum( 'diaar5', zsal ) 199 END IF 200 ! 201 zmass = rau0 * ( zarho + zvol ) ! total mass of liquid seawater 202 ztemp = ztemp / zvol ! potential temperature in liquid seawater 203 zsal = zsal / zvol ! Salinity of liquid seawater 218 ! 219 ztemp = glob_sum( 'diaar5', ztsn(:,:,1,jp_tem) ) 220 zsal = glob_sum( 'diaar5', ztsn(:,:,1,jp_sal) ) 221 zmass = rau0 * ( zarho + zvol ) 204 222 ! 205 223 CALL iom_put( 'masstot', zmass ) 206 CALL iom_put( 'temptot', ztemp ) 207 CALL iom_put( 'saltot' , zsal ) 208 ! 224 CALL iom_put( 'temptot', ztemp / zvol ) 225 CALL iom_put( 'saltot' , zsal / zvol ) 226 ! 227 ENDIF 228 229 IF( ln_teos10 ) THEN ! ! potential temperature (TEOS-10 case) 230 IF( iom_use( 'toce_pot') .OR. iom_use( 'temptot_pot' ) .OR. iom_use( 'sst_pot' ) & 231 .OR. iom_use( 'ssttot' ) .OR. iom_use( 'tosmint_pot' ) ) THEN 232 ! 233 ALLOCATE( ztpot(jpi,jpj,jpk) ) 234 ztpot(:,:,jpk) = 0._wp 235 DO jk = 1, jpkm1 236 ztpot(:,:,jk) = eos_pt_from_ct( ts(:,:,jk,jp_tem,Kmm), ts(:,:,jk,jp_sal,Kmm) ) 237 END DO 238 ! 239 CALL iom_put( 'toce_pot', ztpot(:,:,:) ) ! potential temperature (TEOS-10 case) 240 CALL iom_put( 'sst_pot' , ztpot(:,:,1) ) ! surface temperature 241 ! 242 IF( iom_use( 'temptot_pot' ) ) THEN ! Output potential temperature in case we use TEOS-10 243 z2d(:,:) = 0._wp 244 DO jk = 1, jpkm1 245 z2d(:,:) = z2d(:,:) + area(:,:) * e3t(:,:,jk,Kmm) * ztpot(:,:,jk) 246 END DO 247 ztemp = glob_sum( 'diaar5', z2d(:,:) ) 248 CALL iom_put( 'temptot_pot', ztemp / zvol ) 249 ENDIF 250 ! 251 IF( iom_use( 'ssttot' ) ) THEN ! Output potential temperature in case we use TEOS-10 252 zsst = glob_sum( 'diaar5', area(:,:) * ztpot(:,:,1) ) 253 CALL iom_put( 'ssttot', zsst / area_tot ) 254 ENDIF 255 ! Vertical integral of temperature 256 IF( iom_use( 'tosmint_pot') ) THEN 257 z2d(:,:) = 0._wp 258 DO jk = 1, jpkm1 259 DO jj = 1, jpj 260 DO ji = 1, jpi ! vector opt. 261 z2d(ji,jj) = z2d(ji,jj) + rau0 * e3t(ji,jj,jk,Kmm) * ztpot(ji,jj,jk) 262 END DO 263 END DO 264 END DO 265 CALL iom_put( 'tosmint_pot', z2d ) 266 ENDIF 267 DEALLOCATE( ztpot ) 268 ENDIF 269 ELSE 270 IF( iom_use('ssttot') ) THEN ! Output sst in case we use EOS-80 271 zsst = glob_sum( 'diaar5', area(:,:) * ts(:,:,1,jp_tem,Kmm) ) 272 CALL iom_put('ssttot', zsst / area_tot ) 273 ENDIF 209 274 ENDIF 210 275 211 276 IF( iom_use( 'tnpeo' )) THEN 212 ! Work done against stratification by vertical mixing213 ! Exclude points where rn2 is negative as convection kicks in here and214 ! work is not being done against stratification277 ! Work done against stratification by vertical mixing 278 ! Exclude points where rn2 is negative as convection kicks in here and 279 ! work is not being done against stratification 215 280 ALLOCATE( zpe(jpi,jpj) ) 216 281 zpe(:,:) = 0._wp … … 220 285 DO ji = 1, jpi 221 286 IF( rn2(ji,jj,jk) > 0._wp ) THEN 222 zrw = ( gdepw(ji,jj,jk ,Kmm) - gdept(ji,jj,jk,Kmm) ) & 223 & / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) ) 224 !!gm this can be reduced to : (depw-dept) / e3w (NB idem dans bn2 !) 225 ! zrw = ( gdept(ji,jj,jk,Kmm) - gdepw(ji,jj,jk,Kmm) ) / e3w(ji,jj,jk,Kmm) 226 !!gm end 287 zrw = ( gdept(ji,jj,jk,Kmm) - gdepw(ji,jj,jk,Kmm) ) / e3w(ji,jj,jk,Kmm) 227 288 ! 228 289 zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 229 290 zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 230 291 ! 231 zpe(ji, jj) = zpe(ji, jj)&292 zpe(ji, jj) = zpe(ji,jj) & 232 293 & - grav * ( avt(ji,jj,jk) * zaw * (ts(ji,jj,jk-1,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ) & 233 294 & - avs(ji,jj,jk) * zbw * (ts(ji,jj,jk-1,jp_sal,Kmm) - ts(ji,jj,jk,jp_sal,Kmm) ) ) … … 240 301 DO ji = 1, jpi 241 302 DO jj = 1, jpj 242 zpe(ji,jj) = zpe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * e3w(ji, jj,jk,Kmm)303 zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * rau0 * e3w(ji,jj,jk,Kmm) 243 304 END DO 244 305 END DO 245 306 END DO 246 307 ENDIF 247 !!gm useless lbc_lnk since the computation above is performed over 1:jpi & 1:jpj248 !!gm CALL lbc_lnk( 'diaar5', zpe, 'T', 1._wp)249 308 CALL iom_put( 'tnpeo', zpe ) 250 309 DEALLOCATE( zpe ) … … 252 311 253 312 IF( l_ar5 ) THEN 254 DEALLOCATE( zarea_ssh , zbotpres )313 DEALLOCATE( zarea_ssh , zbotpres, z2d ) 255 314 DEALLOCATE( zrhd , zrhop ) 256 315 DEALLOCATE( ztsn ) … … 288 347 CALL lbc_lnk( 'diaar5', z2d, 'U', -1. ) 289 348 IF( cptr == 'adv' ) THEN 290 IF( ktra == jp_tem ) CALL iom_put( "uadv_heattr", rau0_rcp * z2d ) ! advective heat transport in i-direction291 IF( ktra == jp_sal ) CALL iom_put( "uadv_salttr", rau0 * z2d ) ! advective salt transport in i-direction349 IF( ktra == jp_tem ) CALL iom_put( 'uadv_heattr' , rau0_rcp * z2d ) ! advective heat transport in i-direction 350 IF( ktra == jp_sal ) CALL iom_put( 'uadv_salttr' , rau0 * z2d ) ! advective salt transport in i-direction 292 351 ENDIF 293 352 IF( cptr == 'ldf' ) THEN 294 IF( ktra == jp_tem ) CALL iom_put( "udiff_heattr", rau0_rcp * z2d ) ! diffusive heat transport in i-direction295 IF( ktra == jp_sal ) CALL iom_put( "udiff_salttr", rau0 * z2d ) ! diffusive salt transport in i-direction353 IF( ktra == jp_tem ) CALL iom_put( 'udiff_heattr' , rau0_rcp * z2d ) ! diffusive heat transport in i-direction 354 IF( ktra == jp_sal ) CALL iom_put( 'udiff_salttr' , rau0 * z2d ) ! diffusive salt transport in i-direction 296 355 ENDIF 297 356 ! … … 306 365 CALL lbc_lnk( 'diaar5', z2d, 'V', -1. ) 307 366 IF( cptr == 'adv' ) THEN 308 IF( ktra == jp_tem ) CALL iom_put( "vadv_heattr", rau0_rcp * z2d ) ! advective heat transport in j-direction309 IF( ktra == jp_sal ) CALL iom_put( "vadv_salttr", rau0 * z2d ) ! advective salt transport in j-direction367 IF( ktra == jp_tem ) CALL iom_put( 'vadv_heattr' , rau0_rcp * z2d ) ! advective heat transport in j-direction 368 IF( ktra == jp_sal ) CALL iom_put( 'vadv_salttr' , rau0 * z2d ) ! advective salt transport in j-direction 310 369 ENDIF 311 370 IF( cptr == 'ldf' ) THEN 312 IF( ktra == jp_tem ) CALL iom_put( "vdiff_heattr", rau0_rcp * z2d ) ! diffusive heat transport in j-direction313 IF( ktra == jp_sal ) CALL iom_put( "vdiff_salttr", rau0 * z2d ) ! diffusive salt transport in j-direction371 IF( ktra == jp_tem ) CALL iom_put( 'vdiff_heattr' , rau0_rcp * z2d ) ! diffusive heat transport in j-direction 372 IF( ktra == jp_sal ) CALL iom_put( 'vdiff_salttr' , rau0 * z2d ) ! diffusive salt transport in j-direction 314 373 ENDIF 315 374 … … 324 383 !!---------------------------------------------------------------------- 325 384 INTEGER :: inum 326 INTEGER :: ik 385 INTEGER :: ik, idep 327 386 INTEGER :: ji, jj, jk ! dummy loop indices 328 387 REAL(wp) :: zztmp 329 388 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zsaldta ! Jan/Dec levitus salinity 389 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zvol0 330 390 ! 331 391 !!---------------------------------------------------------------------- … … 341 401 IF( dia_ar5_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dia_ar5_init : unable to allocate arrays' ) 342 402 343 area(:,:) = e1e2t(:,:) * tmask_i(:,:)344 345 area_tot = SUM( area(:,:) ) ; CALL mpp_sum( 'diaar5', area_tot ) 346 347 vol0= 0._wp403 area(:,:) = e1e2t(:,:) 404 area_tot = glob_sum( 'diaar5', area(:,:) ) 405 406 ALLOCATE( zvol0(jpi,jpj) ) 407 zvol0 (:,:) = 0._wp 348 408 thick0(:,:) = 0._wp 349 409 DO jk = 1, jpkm1 350 vol0 = vol0 + SUM( area (:,:) * tmask(:,:,jk) * e3t_0(:,:,jk) ) 351 thick0(:,:) = thick0(:,:) + tmask_i(:,:) * tmask(:,:,jk) * e3t_0(:,:,jk) 352 END DO 353 CALL mpp_sum( 'diaar5', vol0 ) 410 DO jj = 1, jpj ! interpolation of salinity at the last ocean level (i.e. the partial step) 411 DO ji = 1, jpi 412 idep = tmask(ji,jj,jk) * e3t_0(ji,jj,jk) 413 zvol0 (ji,jj) = zvol0 (ji,jj) + idep * area(ji,jj) 414 thick0(ji,jj) = thick0(ji,jj) + idep 415 END DO 416 END DO 417 END DO 418 vol0 = glob_sum( 'diaar5', zvol0 ) 419 DEALLOCATE( zvol0 ) 354 420 355 421 IF( iom_use( 'sshthster' ) ) THEN 356 ALLOCATE( zsaldta(jpi,jpj,jp j,jpts) )422 ALLOCATE( zsaldta(jpi,jpj,jpk,jpts) ) 357 423 CALL iom_open ( 'sali_ref_clim_monthly', inum ) 358 424 CALL iom_get ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,1), 1 ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DIA/diahth.F90
r11949 r12193 11 11 !! 3.2 ! 2009-07 (S. Masson) hc300 bugfix + cleaning + add new diag 12 12 !!---------------------------------------------------------------------- 13 #if defined key_diahth14 !!----------------------------------------------------------------------15 !! 'key_diahth' : thermocline depth diag.16 !!----------------------------------------------------------------------17 13 !! dia_hth : Compute varius diagnostics associated with the mixed layer 18 14 !!---------------------------------------------------------------------- … … 32 28 PUBLIC dia_hth_alloc ! routine called by nemogcm.F90 33 29 34 LOGICAL , PUBLIC, PARAMETER :: lk_diahth = .TRUE.!: thermocline-20d depths flag30 LOGICAL, SAVE :: l_hth !: thermocline-20d depths flag 35 31 36 32 ! note: following variables should move to local variables once iom_put is always used 37 33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hth !: depth of the max vertical temperature gradient [m] 38 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hd20 !: depth of 20 C isotherm [m] 35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hd26 !: depth of 26 C isotherm [m] 39 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hd28 !: depth of 28 C isotherm [m] 40 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: htc3 !: heat content of first 300 m [W] 38 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: htc7 !: heat content of first 700 m [W] 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: htc20 !: heat content of first 2000 m [W] 40 41 41 42 42 !!---------------------------------------------------------------------- … … 52 52 !!--------------------------------------------------------------------- 53 53 ! 54 ALLOCATE( hth(jpi,jpj), hd20(jpi,jpj), hd28(jpi,jpj), htc3(jpi,jpj), STAT=dia_hth_alloc ) 54 ALLOCATE( hth(jpi,jpj), hd20(jpi,jpj), hd26(jpi,jpj), hd28(jpi,jpj), & 55 & htc3(jpi,jpj), htc7(jpi,jpj), htc20(jpi,jpj), STAT=dia_hth_alloc ) 55 56 ! 56 57 CALL mpp_sum ( 'diahth', dia_hth_alloc ) … … 83 84 INTEGER, INTENT( in ) :: Kmm ! ocean time level index 84 85 !! 85 INTEGER :: ji, jj, jk ! dummy loop arguments 86 INTEGER :: iid, ilevel ! temporary integers 87 INTEGER, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ik20, ik28 ! levels 88 REAL(wp) :: zavt5 = 5.e-4_wp ! Kz criterion for the turbocline depth 89 REAL(wp) :: zrho3 = 0.03_wp ! density criterion for mixed layer depth 90 REAL(wp) :: zrho1 = 0.01_wp ! density criterion for mixed layer depth 91 REAL(wp) :: ztem2 = 0.2_wp ! temperature criterion for mixed layer depth 92 REAL(wp) :: zthick_0, zcoef ! temporary scalars 93 REAL(wp) :: zztmp, zzdep ! temporary scalars inside do loop 94 REAL(wp) :: zu, zv, zw, zut, zvt ! temporary workspace 95 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zabs2 ! MLD: abs( tn - tn(10m) ) = ztem2 96 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ztm2 ! Top of thermocline: tn = tn(10m) - ztem2 97 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zrho10_3 ! MLD: rho = rho10m + zrho3 98 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zpycn ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC) 99 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ztinv ! max of temperature inversion 100 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zdepinv ! depth of temperature inversion 101 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zrho0_3 ! MLD rho = rho(surf) = 0.03 102 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zrho0_1 ! MLD rho = rho(surf) = 0.01 103 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zmaxdzT ! max of dT/dz 104 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zthick ! vertical integration thickness 105 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zdelr ! delta rho equivalent to deltaT = 0.2 86 INTEGER :: ji, jj, jk ! dummy loop arguments 87 REAL(wp) :: zrho3 = 0.03_wp ! density criterion for mixed layer depth 88 REAL(wp) :: zrho1 = 0.01_wp ! density criterion for mixed layer depth 89 REAL(wp) :: ztem2 = 0.2_wp ! temperature criterion for mixed layer depth 90 REAL(wp) :: zztmp, zzdep ! temporary scalars inside do loop 91 REAL(wp) :: zu, zv, zw, zut, zvt ! temporary workspace 92 REAL(wp), DIMENSION(jpi,jpj) :: zabs2 ! MLD: abs( tn - tn(10m) ) = ztem2 93 REAL(wp), DIMENSION(jpi,jpj) :: ztm2 ! Top of thermocline: tn = tn(10m) - ztem2 94 REAL(wp), DIMENSION(jpi,jpj) :: zrho10_3 ! MLD: rho = rho10m + zrho3 95 REAL(wp), DIMENSION(jpi,jpj) :: zpycn ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC) 96 REAL(wp), DIMENSION(jpi,jpj) :: ztinv ! max of temperature inversion 97 REAL(wp), DIMENSION(jpi,jpj) :: zdepinv ! depth of temperature inversion 98 REAL(wp), DIMENSION(jpi,jpj) :: zrho0_3 ! MLD rho = rho(surf) = 0.03 99 REAL(wp), DIMENSION(jpi,jpj) :: zrho0_1 ! MLD rho = rho(surf) = 0.01 100 REAL(wp), DIMENSION(jpi,jpj) :: zmaxdzT ! max of dT/dz 101 REAL(wp), DIMENSION(jpi,jpj) :: zdelr ! delta rho equivalent to deltaT = 0.2 106 102 !!---------------------------------------------------------------------- 107 103 IF( ln_timing ) CALL timing_start('dia_hth') 108 104 109 105 IF( kt == nit000 ) THEN 106 l_hth = .FALSE. 107 IF( iom_use( 'mlddzt' ) .OR. iom_use( 'mldr0_3' ) .OR. iom_use( 'mldr0_1' ) .OR. & 108 & iom_use( 'mld_dt02' ) .OR. iom_use( 'topthdep' ) .OR. iom_use( 'mldr10_3' ) .OR. & 109 & iom_use( '20d' ) .OR. iom_use( '26d' ) .OR. iom_use( '28d' ) .OR. & 110 & iom_use( 'hc300' ) .OR. iom_use( 'hc700' ) .OR. iom_use( 'hc2000' ) .OR. & 111 & iom_use( 'pycndep' ) .OR. iom_use( 'tinv' ) .OR. iom_use( 'depti' ) ) l_hth = .TRUE. 110 112 ! ! allocate dia_hth array 111 IF( dia_hth_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dia_hth : unable to allocate standard arrays' ) 112 113 IF(.NOT. ALLOCATED(ik20) ) THEN 114 ALLOCATE(ik20(jpi,jpj), ik28(jpi,jpj), & 115 & zabs2(jpi,jpj), & 116 & ztm2(jpi,jpj), & 117 & zrho10_3(jpi,jpj),& 118 & zpycn(jpi,jpj), & 119 & ztinv(jpi,jpj), & 120 & zdepinv(jpi,jpj), & 121 & zrho0_3(jpi,jpj), & 122 & zrho0_1(jpi,jpj), & 123 & zmaxdzT(jpi,jpj), & 124 & zthick(jpi,jpj), & 125 & zdelr(jpi,jpj), STAT=ji) 126 CALL mpp_sum('diahth', ji) 127 IF( ji /= 0 ) CALL ctl_stop( 'STOP', 'dia_hth : unable to allocate standard ocean arrays' ) 128 END IF 129 130 IF(lwp) WRITE(numout,*) 131 IF(lwp) WRITE(numout,*) 'dia_hth : diagnostics of the thermocline depth' 132 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 133 IF(lwp) WRITE(numout,*) 113 IF( l_hth ) THEN 114 IF( dia_hth_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dia_hth : unable to allocate standard arrays' ) 115 IF(lwp) WRITE(numout,*) 116 IF(lwp) WRITE(numout,*) 'dia_hth : diagnostics of the thermocline depth' 117 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 118 IF(lwp) WRITE(numout,*) 119 ENDIF 134 120 ENDIF 135 121 136 ! initialization 137 ztinv (:,:) = 0._wp 138 zdepinv(:,:) = 0._wp 139 zmaxdzT(:,:) = 0._wp 140 DO jj = 1, jpj 141 DO ji = 1, jpi 142 zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) 143 hth (ji,jj) = zztmp 144 zabs2 (ji,jj) = zztmp 145 ztm2 (ji,jj) = zztmp 146 zrho10_3(ji,jj) = zztmp 147 zpycn (ji,jj) = zztmp 148 END DO 149 END DO 150 IF( nla10 > 1 ) THEN 151 DO jj = 1, jpj 152 DO ji = 1, jpi 153 zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) 154 zrho0_3(ji,jj) = zztmp 155 zrho0_1(ji,jj) = zztmp 156 END DO 157 END DO 122 IF( l_hth ) THEN 123 ! 124 IF( iom_use( 'mlddzt' ) .OR. iom_use( 'mldr0_3' ) .OR. iom_use( 'mldr0_1' ) ) THEN 125 ! initialization 126 ztinv (:,:) = 0._wp 127 zdepinv(:,:) = 0._wp 128 zmaxdzT(:,:) = 0._wp 129 DO jj = 1, jpj 130 DO ji = 1, jpi 131 zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) 132 hth (ji,jj) = zztmp 133 zabs2 (ji,jj) = zztmp 134 ztm2 (ji,jj) = zztmp 135 zrho10_3(ji,jj) = zztmp 136 zpycn (ji,jj) = zztmp 137 END DO 138 END DO 139 IF( nla10 > 1 ) THEN 140 DO jj = 1, jpj 141 DO ji = 1, jpi 142 zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) 143 zrho0_3(ji,jj) = zztmp 144 zrho0_1(ji,jj) = zztmp 145 END DO 146 END DO 147 ENDIF 148 149 ! Preliminary computation 150 ! computation of zdelr = (dr/dT)(T,S,10m)*(-0.2 degC) 151 DO jj = 1, jpj 152 DO ji = 1, jpi 153 IF( tmask(ji,jj,nla10) == 1. ) THEN 154 zu = 1779.50 + 11.250 * ts(ji,jj,nla10,jp_tem,Kmm) - 3.80 * ts(ji,jj,nla10,jp_sal,Kmm) & 155 & - 0.0745 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm) & 156 & - 0.0100 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_sal,Kmm) 157 zv = 5891.00 + 38.000 * ts(ji,jj,nla10,jp_tem,Kmm) + 3.00 * ts(ji,jj,nla10,jp_sal,Kmm) & 158 & - 0.3750 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm) 159 zut = 11.25 - 0.149 * ts(ji,jj,nla10,jp_tem,Kmm) - 0.01 * ts(ji,jj,nla10,jp_sal,Kmm) 160 zvt = 38.00 - 0.750 * ts(ji,jj,nla10,jp_tem,Kmm) 161 zw = (zu + 0.698*zv) * (zu + 0.698*zv) 162 zdelr(ji,jj) = ztem2 * (1000.*(zut*zv - zvt*zu)/zw) 163 ELSE 164 zdelr(ji,jj) = 0._wp 165 ENDIF 166 END DO 167 END DO 168 169 ! ------------------------------------------------------------- ! 170 ! thermocline depth: strongest vertical gradient of temperature ! 171 ! turbocline depth (mixing layer depth): avt = zavt5 ! 172 ! MLD: rho = rho(1) + zrho3 ! 173 ! MLD: rho = rho(1) + zrho1 ! 174 ! ------------------------------------------------------------- ! 175 DO jk = jpkm1, 2, -1 ! loop from bottom to 2 176 DO jj = 1, jpj 177 DO ji = 1, jpi 178 ! 179 zzdep = gdepw(ji,jj,jk,Kmm) 180 zztmp = ( ts(ji,jj,jk-1,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ) & 181 & / zzdep * tmask(ji,jj,jk) ! vertical gradient of temperature (dT/dz) 182 zzdep = zzdep * tmask(ji,jj,1) 183 184 IF( zztmp > zmaxdzT(ji,jj) ) THEN 185 zmaxdzT(ji,jj) = zztmp 186 hth (ji,jj) = zzdep ! max and depth of dT/dz 187 ENDIF 188 189 IF( nla10 > 1 ) THEN 190 zztmp = rhop(ji,jj,jk) - rhop(ji,jj,1) ! delta rho(1) 191 IF( zztmp > zrho3 ) zrho0_3(ji,jj) = zzdep ! > 0.03 192 IF( zztmp > zrho1 ) zrho0_1(ji,jj) = zzdep ! > 0.01 193 ENDIF 194 END DO 195 END DO 196 END DO 197 198 CALL iom_put( 'mlddzt', hth ) ! depth of the thermocline 199 IF( nla10 > 1 ) THEN 200 CALL iom_put( 'mldr0_3', zrho0_3 ) ! MLD delta rho(surf) = 0.03 201 CALL iom_put( 'mldr0_1', zrho0_1 ) ! MLD delta rho(surf) = 0.01 202 ENDIF 203 ! 204 ENDIF 205 ! 206 IF( iom_use( 'mld_dt02' ) .OR. iom_use( 'topthdep' ) .OR. iom_use( 'mldr10_3' ) .OR. & 207 & iom_use( 'pycndep' ) .OR. iom_use( 'tinv' ) .OR. iom_use( 'depti' ) ) THEN 208 ! ------------------------------------------------------------- ! 209 ! MLD: abs( tn - tn(10m) ) = ztem2 ! 210 ! Top of thermocline: tn = tn(10m) - ztem2 ! 211 ! MLD: rho = rho10m + zrho3 ! 212 ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC) ! 213 ! temperature inversion: max( 0, max of tn - tn(10m) ) ! 214 ! depth of temperature inversion ! 215 ! ------------------------------------------------------------- ! 216 DO jk = jpkm1, nlb10, -1 ! loop from bottom to nlb10 217 DO jj = 1, jpj 218 DO ji = 1, jpi 219 ! 220 zzdep = gdepw(ji,jj,jk,Kmm) * tmask(ji,jj,1) 221 ! 222 zztmp = ts(ji,jj,nla10,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ! - delta T(10m) 223 IF( ABS(zztmp) > ztem2 ) zabs2 (ji,jj) = zzdep ! abs > 0.2 224 IF( zztmp > ztem2 ) ztm2 (ji,jj) = zzdep ! > 0.2 225 zztmp = -zztmp ! delta T(10m) 226 IF( zztmp > ztinv(ji,jj) ) THEN ! temperature inversion 227 ztinv(ji,jj) = zztmp 228 zdepinv (ji,jj) = zzdep ! max value and depth 229 ENDIF 230 231 zztmp = rhop(ji,jj,jk) - rhop(ji,jj,nla10) ! delta rho(10m) 232 IF( zztmp > zrho3 ) zrho10_3(ji,jj) = zzdep ! > 0.03 233 IF( zztmp > zdelr(ji,jj) ) zpycn (ji,jj) = zzdep ! > equi. delta T(10m) - 0.2 234 ! 235 END DO 236 END DO 237 END DO 238 239 CALL iom_put( 'mld_dt02', zabs2 ) ! MLD abs(delta t) - 0.2 240 CALL iom_put( 'topthdep', ztm2 ) ! T(10) - 0.2 241 CALL iom_put( 'mldr10_3', zrho10_3 ) ! MLD delta rho(10m) = 0.03 242 CALL iom_put( 'pycndep' , zpycn ) ! MLD delta rho equi. delta T(10m) = 0.2 243 CALL iom_put( 'tinv' , ztinv ) ! max. temp. inv. (t10 ref) 244 CALL iom_put( 'depti' , zdepinv ) ! depth of max. temp. inv. (t10 ref) 245 ! 246 ENDIF 247 248 ! ------------------------------- ! 249 ! Depth of 20C/26C/28C isotherm ! 250 ! ------------------------------- ! 251 IF( iom_use ('20d') ) THEN ! depth of the 20 isotherm 252 ztem2 = 20. 253 CALL dia_hth_dep( Kmm, ztem2, hd20 ) 254 CALL iom_put( '20d', hd20 ) 255 ENDIF 256 ! 257 IF( iom_use ('26d') ) THEN ! depth of the 26 isotherm 258 ztem2 = 26. 259 CALL dia_hth_dep( Kmm, ztem2, hd26 ) 260 CALL iom_put( '26d', hd26 ) 261 ENDIF 262 ! 263 IF( iom_use ('28d') ) THEN ! depth of the 28 isotherm 264 ztem2 = 28. 265 CALL dia_hth_dep( Kmm, ztem2, hd28 ) 266 CALL iom_put( '28d', hd28 ) 267 ENDIF 268 269 ! ----------------------------- ! 270 ! Heat content of first 300 m ! 271 ! ----------------------------- ! 272 IF( iom_use ('hc300') ) THEN 273 zzdep = 300. 274 CALL dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc3 ) 275 CALL iom_put( 'hc300', rau0_rcp * htc3 ) ! vertically integrated heat content (J/m2) 276 ENDIF 277 ! 278 ! ----------------------------- ! 279 ! Heat content of first 700 m ! 280 ! ----------------------------- ! 281 IF( iom_use ('hc700') ) THEN 282 zzdep = 700. 283 CALL dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc7 ) 284 CALL iom_put( 'hc700', rau0_rcp * htc7 ) ! vertically integrated heat content (J/m2) 285 286 ENDIF 287 ! 288 ! ----------------------------- ! 289 ! Heat content of first 2000 m ! 290 ! ----------------------------- ! 291 IF( iom_use ('hc2000') ) THEN 292 zzdep = 2000. 293 CALL dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc20 ) 294 CALL iom_put( 'hc2000', rau0_rcp * htc20 ) ! vertically integrated heat content (J/m2) 295 ENDIF 296 ! 158 297 ENDIF 298 299 ! 300 IF( ln_timing ) CALL timing_stop('dia_hth') 301 ! 302 END SUBROUTINE dia_hth 303 304 SUBROUTINE dia_hth_dep( Kmm, ptem, pdept ) 305 ! 306 INTEGER , INTENT(in) :: Kmm ! ocean time level index 307 REAL(wp), INTENT(in) :: ptem 308 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: pdept 309 ! 310 INTEGER :: ji, jj, jk, iid 311 REAL(wp) :: zztmp, zzdep 312 INTEGER, DIMENSION(jpi,jpj) :: iktem 159 313 160 ! Preliminary computation 161 ! computation of zdelr = (dr/dT)(T,S,10m)*(-0.2 degC) 162 DO jj = 1, jpj 163 DO ji = 1, jpi 164 IF( tmask(ji,jj,nla10) == 1. ) THEN 165 zu = 1779.50 + 11.250 * ts(ji,jj,nla10,jp_tem,Kmm) - 3.80 * ts(ji,jj,nla10,jp_sal,Kmm) & 166 & - 0.0745 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm) & 167 & - 0.0100 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_sal,Kmm) 168 zv = 5891.00 + 38.000 * ts(ji,jj,nla10,jp_tem,Kmm) + 3.00 * ts(ji,jj,nla10,jp_sal,Kmm) & 169 & - 0.3750 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm) 170 zut = 11.25 - 0.149 * ts(ji,jj,nla10,jp_tem,Kmm) - 0.01 * ts(ji,jj,nla10,jp_sal,Kmm) 171 zvt = 38.00 - 0.750 * ts(ji,jj,nla10,jp_tem,Kmm) 172 zw = (zu + 0.698*zv) * (zu + 0.698*zv) 173 zdelr(ji,jj) = ztem2 * (1000.*(zut*zv - zvt*zu)/zw) 174 ELSE 175 zdelr(ji,jj) = 0._wp 176 ENDIF 177 END DO 178 END DO 179 180 ! ------------------------------------------------------------- ! 181 ! thermocline depth: strongest vertical gradient of temperature ! 182 ! turbocline depth (mixing layer depth): avt = zavt5 ! 183 ! MLD: rho = rho(1) + zrho3 ! 184 ! MLD: rho = rho(1) + zrho1 ! 185 ! ------------------------------------------------------------- ! 186 DO jk = jpkm1, 2, -1 ! loop from bottom to 2 187 DO jj = 1, jpj 188 DO ji = 1, jpi 189 ! 190 zzdep = gdepw(ji,jj,jk,Kmm) 191 zztmp = ( ts(ji,jj,jk-1,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ) / zzdep * tmask(ji,jj,jk) ! vertical gradient of temperature (dT/dz) 192 zzdep = zzdep * tmask(ji,jj,1) 193 194 IF( zztmp > zmaxdzT(ji,jj) ) THEN 195 zmaxdzT(ji,jj) = zztmp ; hth (ji,jj) = zzdep ! max and depth of dT/dz 196 ENDIF 197 198 IF( nla10 > 1 ) THEN 199 zztmp = rhop(ji,jj,jk) - rhop(ji,jj,1) ! delta rho(1) 200 IF( zztmp > zrho3 ) zrho0_3(ji,jj) = zzdep ! > 0.03 201 IF( zztmp > zrho1 ) zrho0_1(ji,jj) = zzdep ! > 0.01 202 ENDIF 203 204 END DO 205 END DO 206 END DO 207 208 CALL iom_put( "mlddzt", hth ) ! depth of the thermocline 209 IF( nla10 > 1 ) THEN 210 CALL iom_put( "mldr0_3", zrho0_3 ) ! MLD delta rho(surf) = 0.03 211 CALL iom_put( "mldr0_1", zrho0_1 ) ! MLD delta rho(surf) = 0.01 212 ENDIF 213 214 ! ------------------------------------------------------------- ! 215 ! MLD: abs( tn - tn(10m) ) = ztem2 ! 216 ! Top of thermocline: tn = tn(10m) - ztem2 ! 217 ! MLD: rho = rho10m + zrho3 ! 218 ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC) ! 219 ! temperature inversion: max( 0, max of tn - tn(10m) ) ! 220 ! depth of temperature inversion ! 221 ! ------------------------------------------------------------- ! 222 DO jk = jpkm1, nlb10, -1 ! loop from bottom to nlb10 223 DO jj = 1, jpj 224 DO ji = 1, jpi 225 ! 226 zzdep = gdepw(ji,jj,jk,Kmm) * tmask(ji,jj,1) 227 ! 228 zztmp = ts(ji,jj,nla10,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ! - delta T(10m) 229 IF( ABS(zztmp) > ztem2 ) zabs2 (ji,jj) = zzdep ! abs > 0.2 230 IF( zztmp > ztem2 ) ztm2 (ji,jj) = zzdep ! > 0.2 231 zztmp = -zztmp ! delta T(10m) 232 IF( zztmp > ztinv(ji,jj) ) THEN ! temperature inversion 233 ztinv(ji,jj) = zztmp ; zdepinv (ji,jj) = zzdep ! max value and depth 234 ENDIF 235 236 zztmp = rhop(ji,jj,jk) - rhop(ji,jj,nla10) ! delta rho(10m) 237 IF( zztmp > zrho3 ) zrho10_3(ji,jj) = zzdep ! > 0.03 238 IF( zztmp > zdelr(ji,jj) ) zpycn (ji,jj) = zzdep ! > equi. delta T(10m) - 0.2 239 ! 240 END DO 241 END DO 242 END DO 243 244 CALL iom_put( "mld_dt02", zabs2 ) ! MLD abs(delta t) - 0.2 245 CALL iom_put( "topthdep", ztm2 ) ! T(10) - 0.2 246 CALL iom_put( "mldr10_3", zrho10_3 ) ! MLD delta rho(10m) = 0.03 247 CALL iom_put( "pycndep" , zpycn ) ! MLD delta rho equi. delta T(10m) = 0.2 248 CALL iom_put( "tinv" , ztinv ) ! max. temp. inv. (t10 ref) 249 CALL iom_put( "depti" , zdepinv ) ! depth of max. temp. inv. (t10 ref) 250 251 252 ! ----------------------------------- ! 253 ! search deepest level above 20C/28C ! 254 ! ----------------------------------- ! 255 ik20(:,:) = 1 256 ik28(:,:) = 1 314 ! --------------------------------------- ! 315 ! search deepest level above ptem ! 316 ! --------------------------------------- ! 317 iktem(:,:) = 1 257 318 DO jk = 1, jpkm1 ! beware temperature is not always decreasing with depth => loop from top to bottom 258 319 DO jj = 1, jpj 259 320 DO ji = 1, jpi 260 321 zztmp = ts(ji,jj,jk,jp_tem,Kmm) 261 IF( zztmp >= 20. ) ik20(ji,jj) = jk 262 IF( zztmp >= 28. ) ik28(ji,jj) = jk 322 IF( zztmp >= ptem ) iktem(ji,jj) = jk 263 323 END DO 264 324 END DO 265 325 END DO 266 326 267 ! --------------------------- !268 ! Depth of 20C/28C isotherm!269 ! --------------------------- !327 ! ------------------------------- ! 328 ! Depth of ptem isotherm ! 329 ! ------------------------------- ! 270 330 DO jj = 1, jpj 271 331 DO ji = 1, jpi 272 332 ! 273 zzdep = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) ! depth of the o ean bottom333 zzdep = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) ! depth of the ocean bottom 274 334 ! 275 iid = ik 20(ji,jj)335 iid = iktem(ji,jj) 276 336 IF( iid /= 1 ) THEN 277 zztmp =gdept(ji,jj,iid ,Kmm) & ! linear interpolation337 zztmp = gdept(ji,jj,iid ,Kmm) & ! linear interpolation 278 338 & + ( gdept(ji,jj,iid+1,Kmm) - gdept(ji,jj,iid,Kmm) ) & 279 339 & * ( 20.*tmask(ji,jj,iid+1) - ts(ji,jj,iid,jp_tem,Kmm) ) & 280 340 & / ( ts(ji,jj,iid+1,jp_tem,Kmm) - ts(ji,jj,iid,jp_tem,Kmm) + (1.-tmask(ji,jj,1)) ) 281 hd20(ji,jj) = MIN( zztmp , zzdep) * tmask(ji,jj,1) ! bound by the ocean depth341 pdept(ji,jj) = MIN( zztmp , zzdep) * tmask(ji,jj,1) ! bound by the ocean depth 282 342 ELSE 283 hd20(ji,jj) = 0._wp343 pdept(ji,jj) = 0._wp 284 344 ENDIF 285 !286 iid = ik28(ji,jj)287 IF( iid /= 1 ) THEN288 zztmp = gdept(ji,jj,iid ,Kmm) & ! linear interpolation289 & + ( gdept(ji,jj,iid+1,Kmm) - gdept(ji,jj,iid,Kmm) ) &290 & * ( 28.*tmask(ji,jj,iid+1) - ts(ji,jj,iid,jp_tem,Kmm) ) &291 & / ( ts(ji,jj,iid+1,jp_tem,Kmm) - ts(ji,jj,iid,jp_tem,Kmm) + (1.-tmask(ji,jj,1)) )292 hd28(ji,jj) = MIN( zztmp , zzdep ) * tmask(ji,jj,1) ! bound by the ocean depth293 ELSE294 hd28(ji,jj) = 0._wp295 ENDIF296 297 345 END DO 298 346 END DO 299 CALL iom_put( "20d", hd20 ) ! depth of the 20 isotherm 300 CALL iom_put( "28d", hd28 ) ! depth of the 28 isotherm 301 302 ! ----------------------------- ! 303 ! Heat content of first 300 m ! 304 ! ----------------------------- ! 305 306 ! find ilevel with (ilevel+1) the deepest W-level above 300m (we assume we can use e3t_1d to do this search...) 307 ilevel = 0 308 zthick_0 = 0._wp 309 DO jk = 1, jpkm1 310 zthick_0 = zthick_0 + e3t_1d(jk) 311 IF( zthick_0 < 300. ) ilevel = jk 312 END DO 347 ! 348 END SUBROUTINE dia_hth_dep 349 350 351 SUBROUTINE dia_hth_htc( Kmm, pdep, pt, phtc ) 352 ! 353 INTEGER , INTENT(in) :: Kmm ! ocean time level index 354 REAL(wp), INTENT(in) :: pdep ! depth over the heat content 355 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: pt 356 REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) :: phtc 357 ! 358 INTEGER :: ji, jj, jk, ik 359 REAL(wp), DIMENSION(jpi,jpj) :: zthick 360 INTEGER , DIMENSION(jpi,jpj) :: ilevel 361 362 313 363 ! surface boundary condition 314 IF( ln_linssh ) THEN ; zthick(:,:) = ssh(:,:,Kmm) ; htc3(:,:) = ts(:,:,1,jp_tem,Kmm) * ssh(:,:,Kmm) * tmask(:,:,1) 315 ELSE ; zthick(:,:) = 0._wp ; htc3(:,:) = 0._wp 364 365 IF( .NOT. ln_linssh ) THEN ; zthick(:,:) = 0._wp ; phtc(:,:) = 0._wp 366 ELSE ; zthick(:,:) = ssh(:,:,Kmm) ; phtc(:,:) = pt(:,:,1) * ssh(:,:,Kmm) * tmask(:,:,1) 316 367 ENDIF 317 ! integration down to ilevel 318 DO jk = 1, ilevel 319 zthick(:,:) = zthick(:,:) + e3t(:,:,jk,Kmm) 320 htc3 (:,:) = htc3 (:,:) + e3t(:,:,jk,Kmm) * ts(:,:,jk,jp_tem,Kmm) * tmask(:,:,jk) 321 END DO 322 ! deepest layer 323 zthick(:,:) = 300. - zthick(:,:) ! remaining thickness to reach 300m 368 ! 369 ilevel(:,:) = 1 370 DO jk = 2, jpkm1 371 DO jj = 1, jpj 372 DO ji = 1, jpi 373 IF( ( gdept(ji,jj,jk,Kmm) < pdep ) .AND. ( tmask(ji,jj,jk) == 1 ) ) THEN 374 ilevel(ji,jj) = jk 375 zthick(ji,jj) = zthick(ji,jj) + e3t(ji,jj,jk,Kmm) 376 phtc (ji,jj) = phtc (ji,jj) + e3t(ji,jj,jk,Kmm) * pt(ji,jj,jk) 377 ENDIF 378 ENDDO 379 ENDDO 380 ENDDO 381 ! 324 382 DO jj = 1, jpj 325 383 DO ji = 1, jpi 326 htc3(ji,jj) = htc3(ji,jj) + ts(ji,jj,ilevel+1,jp_tem,Kmm) & 327 & * MIN( e3t(ji,jj,ilevel+1,Kmm), zthick(ji,jj) ) * tmask(ji,jj,ilevel+1) 384 ik = ilevel(ji,jj) 385 zthick(ji,jj) = pdep - zthick(ji,jj) ! remaining thickness to reach depht pdep 386 phtc(ji,jj) = phtc(ji,jj) + pt(ji,jj,ik+1) * MIN( e3t(ji,jj,ik+1,Kmm), zthick(ji,jj) ) & 387 * tmask(ji,jj,ik+1) 328 388 END DO 329 END DO 330 ! from temperature to heat contain 331 zcoef = rau0 * rcp 332 htc3(:,:) = zcoef * htc3(:,:) 333 CALL iom_put( "hc300", htc3 ) ! first 300m heat content 334 ! 335 IF( ln_timing ) CALL timing_stop('dia_hth') 336 ! 337 END SUBROUTINE dia_hth 338 339 #else 340 !!---------------------------------------------------------------------- 341 !! Default option : Empty module 342 !!---------------------------------------------------------------------- 343 LOGICAL , PUBLIC, PARAMETER :: lk_diahth = .FALSE. !: thermocline-20d depths flag 344 CONTAINS 345 SUBROUTINE dia_hth( kt, Kmm ) ! Empty routine 346 IMPLICIT NONE 347 INTEGER, INTENT( in ) :: kt 348 INTEGER, INTENT( in ) :: Kmm 349 WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 350 END SUBROUTINE dia_hth 351 #endif 389 ENDDO 390 ! 391 ! 392 END SUBROUTINE dia_hth_htc 352 393 353 394 !!====================================================================== -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DIA/diaptr.F90
r11960 r12193 10 10 !! 3.6 ! 2014-12 (C. Ethe) use of IOM 11 11 !! 3.6 ! 2016-06 (T. Graham) Addition of diagnostics for CMIP6 12 !! 4.0 ! 2010-08 ( C. Ethe, J. Deshayes ) Improvment 12 13 !!---------------------------------------------------------------------- 13 14 … … 42 43 43 44 ! !!** namelist namptr ** 44 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_adv, htr_ldf, htr_eiv !: Heat TRansports (adv, diff, Bolus.) 45 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: str_adv, str_ldf, str_eiv !: Salt TRansports (adv, diff, Bolus.) 46 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_ove, str_ove !: heat Salt TRansports ( overturn.) 47 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_btr, str_btr !: heat Salt TRansports ( barotropic ) 48 49 LOGICAL, PUBLIC :: ln_diaptr ! Poleward transport flag (T) or not (F) 50 LOGICAL, PUBLIC :: ln_subbas ! Atlantic/Pacific/Indian basins calculation 51 INTEGER, PUBLIC :: nptr ! = 1 (l_subbas=F) or = 5 (glo, atl, pac, ind, ipc) (l_subbas=T) 45 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hstr_adv, hstr_ldf, hstr_eiv !: Heat/Salt TRansports(adv, diff, Bolus.) 46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hstr_ove, hstr_btr, hstr_vtr !: heat Salt TRansports(overturn, baro, merional) 47 48 LOGICAL , PUBLIC :: l_diaptr !: tracers trend flag (set from namelist in trdini) 49 INTEGER, PARAMETER, PUBLIC :: nptr = 5 ! (glo, atl, pac, ind, ipc) 52 50 53 51 REAL(wp) :: rc_sv = 1.e-6_wp ! conversion from m3/s to Sverdrup 54 52 REAL(wp) :: rc_pwatt = 1.e-15_wp ! conversion from W to PW (further x rau0 x Cp) 55 REAL(wp) :: rc_ggram = 1.e- 6_wp ! conversion from g to Pg56 57 CHARACTER(len=3), ALLOCATABLE, SAVE, DIMENSION(:) :: clsubb58 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk ! T-point basin interior masks59 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: btm30 ! mask out Southern Ocean (=0 south of 30°S) 60 61 REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(: ) :: p_fval1d62 REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:,:) :: p_fval2d 63 53 REAL(wp) :: rc_ggram = 1.e-9_wp ! conversion from g to Gg (further x rau0) 54 55 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk ! T-point basin interior masks 56 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk34 ! mask out Southern Ocean (=0 south of 34°S) 57 58 REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:) :: p_fval1d 59 REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:,:) :: p_fval2d 60 61 LOGICAL :: ll_init = .TRUE. !: tracers trend flag (set from namelist in trdini) 64 62 !! * Substitutions 65 63 # include "vectopt_loop_substitute.h90" … … 71 69 CONTAINS 72 70 73 SUBROUTINE dia_ptr( Kmm, pvtr )71 SUBROUTINE dia_ptr( kt, Kmm, pvtr ) 74 72 !!---------------------------------------------------------------------- 75 73 !! *** ROUTINE dia_ptr *** 76 74 !!---------------------------------------------------------------------- 75 INTEGER , INTENT(in) :: kt ! ocean time-step index 77 76 INTEGER , INTENT(in) :: Kmm ! time level index 78 77 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: pvtr ! j-effective transport … … 81 80 REAL(wp) :: zsfc,zvfc ! local scalar 82 81 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 83 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d ! 3D workspace84 82 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask ! 3D workspace 83 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d ! 3D workspace 85 84 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts ! 3D workspace 86 REAL(wp), DIMENSION(jpj) :: vsum ! 1D workspace 87 REAL(wp), DIMENSION(jpj,jpts) :: tssum ! 1D workspace 88 85 REAL(wp), DIMENSION(jpj) :: zvsum, ztsum, zssum ! 1D workspace 89 86 ! 90 87 !overturning calculation 91 REAL(wp), DIMENSION(jpj,jpk,nptr) :: sjk , r1_sjk ! i-mean i-k-surface and its inverse 92 REAL(wp), DIMENSION(jpj,jpk,nptr) :: v_msf, sn_jk , tn_jk ! i-mean T and S, j-Stream-Function 93 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zvv ! 3D workspace 94 95 96 CHARACTER( len = 12 ) :: cl1 88 REAL(wp), DIMENSION(jpj,jpk,nptr) :: sjk, r1_sjk, v_msf ! i-mean i-k-surface and its inverse 89 REAL(wp), DIMENSION(jpj,jpk,nptr) :: zt_jk, zs_jk ! i-mean T and S, j-Stream-Function 90 91 REAL(wp), DIMENSION(jpi,jpj,jpk,nptr) :: z4d1, z4d2 92 REAL(wp), DIMENSION(jpi,jpj,nptr) :: z3dtr ! i-mean T and S, j-Stream-Function 97 93 !!---------------------------------------------------------------------- 98 94 ! 99 95 IF( ln_timing ) CALL timing_start('dia_ptr') 100 96 101 ! 97 IF( kt == nit000 .AND. ll_init ) CALL dia_ptr_init 98 ! 99 IF( .NOT. l_diaptr ) RETURN 100 102 101 IF( PRESENT( pvtr ) ) THEN 103 IF( iom_use("zomsfglo") ) THEN ! effective MSF 104 z3d(1,:,:) = ptr_sjk( pvtr(:,:,:) ) ! zonal cumulative effective transport 105 DO jk = 2, jpkm1 106 z3d(1,:,jk) = z3d(1,:,jk-1) + z3d(1,:,jk) ! effective j-Stream-Function (MSF) 102 IF( iom_use( 'zomsf' ) ) THEN ! effective MSF 103 DO jn = 1, nptr ! by sub-basins 104 z4d1(1,:,:,jn) = ptr_sjk( pvtr(:,:,:), btmsk34(:,:,jn) ) ! zonal cumulative effective transport excluding closed seas 105 DO jk = jpkm1, 1, -1 106 z4d1(1,:,jk,jn) = z4d1(1,:,jk+1,jn) - z4d1(1,:,jk,jn) ! effective j-Stream-Function (MSF) 107 END DO 108 DO ji = 1, jpi 109 z4d1(ji,:,:,jn) = z4d1(1,:,:,jn) 110 ENDDO 107 111 END DO 108 DO ji = 1, jpi 109 z3d(ji,:,:) = z3d(1,:,:) 110 ENDDO 111 cl1 = TRIM('zomsf'//clsubb(1) ) 112 CALL iom_put( cl1, z3d * rc_sv ) 113 DO jn = 2, nptr ! by sub-basins 114 z3d(1,:,:) = ptr_sjk( pvtr(:,:,:), btmsk(:,:,jn)*btm30(:,:) ) 115 DO jk = 2, jpkm1 116 z3d(1,:,jk) = z3d(1,:,jk-1) + z3d(1,:,jk) ! effective j-Stream-Function (MSF) 117 END DO 118 DO ji = 1, jpi 119 z3d(ji,:,:) = z3d(1,:,:) 120 ENDDO 121 cl1 = TRIM('zomsf'//clsubb(jn) ) 122 CALL iom_put( cl1, z3d * rc_sv ) 123 END DO 124 ENDIF 125 IF( iom_use("sopstove") .OR. iom_use("sophtove") .OR. iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 112 CALL iom_put( 'zomsf', z4d1 * rc_sv ) 113 ENDIF 114 IF( iom_use( 'sopstove' ) .OR. iom_use( 'sophtove' ) .OR. & 115 & iom_use( 'sopstbtr' ) .OR. iom_use( 'sophtbtr' ) ) THEN 126 116 ! define fields multiplied by scalar 127 117 zmask(:,:,:) = 0._wp 128 118 zts(:,:,:,:) = 0._wp 129 zvv(:,:,:) = 0._wp130 119 DO jk = 1, jpkm1 131 120 DO jj = 1, jpjm1 … … 135 124 zts(ji,jj,jk,jp_tem) = (ts(ji,jj,jk,jp_tem,Kmm)+ts(ji,jj+1,jk,jp_tem,Kmm)) * 0.5 * zvfc !Tracers averaged onto V grid 136 125 zts(ji,jj,jk,jp_sal) = (ts(ji,jj,jk,jp_sal,Kmm)+ts(ji,jj+1,jk,jp_sal,Kmm)) * 0.5 * zvfc 137 zvv(ji,jj,jk) = vv(ji,jj,jk,Kmm) * zvfc138 126 ENDDO 139 127 ENDDO 140 128 ENDDO 141 129 ENDIF 142 IF( iom_use("sopstove") .OR. iom_use("sophtove") ) THEN 143 sjk(:,:,1) = ptr_sjk( zmask(:,:,:), btmsk(:,:,1) ) 144 r1_sjk(:,:,1) = 0._wp 145 WHERE( sjk(:,:,1) /= 0._wp ) r1_sjk(:,:,1) = 1._wp / sjk(:,:,1) 146 147 ! i-mean T and S, j-Stream-Function, global 148 tn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_tem) ) * r1_sjk(:,:,1) 149 sn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_sal) ) * r1_sjk(:,:,1) 150 v_msf(:,:,1) = ptr_sjk( zvv(:,:,:) ) 151 152 htr_ove(:,1) = SUM( v_msf(:,:,1)*tn_jk(:,:,1) ,2 ) 153 str_ove(:,1) = SUM( v_msf(:,:,1)*sn_jk(:,:,1) ,2 ) 154 155 z2d(1,:) = htr_ove(:,1) * rc_pwatt ! (conversion in PW) 156 DO ji = 1, jpi 157 z2d(ji,:) = z2d(1,:) 158 ENDDO 159 cl1 = 'sophtove' 160 CALL iom_put( TRIM(cl1), z2d ) 161 z2d(1,:) = str_ove(:,1) * rc_ggram ! (conversion in Gg) 162 DO ji = 1, jpi 163 z2d(ji,:) = z2d(1,:) 164 ENDDO 165 cl1 = 'sopstove' 166 CALL iom_put( TRIM(cl1), z2d ) 167 IF( ln_subbas ) THEN 168 DO jn = 2, nptr 169 sjk(:,:,jn) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 170 r1_sjk(:,:,jn) = 0._wp 171 WHERE( sjk(:,:,jn) /= 0._wp ) r1_sjk(:,:,jn) = 1._wp / sjk(:,:,jn) 172 173 ! i-mean T and S, j-Stream-Function, basin 174 tn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 175 sn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 176 v_msf(:,:,jn) = ptr_sjk( zvv(:,:,:), btmsk(:,:,jn) ) 177 htr_ove(:,jn) = SUM( v_msf(:,:,jn)*tn_jk(:,:,jn) ,2 ) 178 str_ove(:,jn) = SUM( v_msf(:,:,jn)*sn_jk(:,:,jn) ,2 ) 179 180 z2d(1,:) = htr_ove(:,jn) * rc_pwatt ! (conversion in PW) 181 DO ji = 1, jpi 182 z2d(ji,:) = z2d(1,:) 183 ENDDO 184 cl1 = TRIM('sophtove_'//clsubb(jn)) 185 CALL iom_put( cl1, z2d ) 186 z2d(1,:) = str_ove(:,jn) * rc_ggram ! (conversion in Gg) 187 DO ji = 1, jpi 188 z2d(ji,:) = z2d(1,:) 189 ENDDO 190 cl1 = TRIM('sopstove_'//clsubb(jn)) 191 CALL iom_put( cl1, z2d ) 192 END DO 193 ENDIF 194 ENDIF 195 IF( iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 196 ! Calculate barotropic heat and salt transport here 197 sjk(:,1,1) = ptr_sj( zmask(:,:,:), btmsk(:,:,1) ) 198 r1_sjk(:,1,1) = 0._wp 199 WHERE( sjk(:,1,1) /= 0._wp ) r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 200 201 vsum = ptr_sj( zvv(:,:,:), btmsk(:,:,1)) 202 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 203 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) 204 htr_btr(:,1) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,1) 205 str_btr(:,1) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,1) 206 z2d(1,:) = htr_btr(:,1) * rc_pwatt ! (conversion in PW) 207 DO ji = 2, jpi 208 z2d(ji,:) = z2d(1,:) 209 ENDDO 210 cl1 = 'sophtbtr' 211 CALL iom_put( TRIM(cl1), z2d ) 212 z2d(1,:) = str_btr(:,1) * rc_ggram ! (conversion in Gg) 213 DO ji = 2, jpi 214 z2d(ji,:) = z2d(1,:) 215 ENDDO 216 cl1 = 'sopstbtr' 217 CALL iom_put( TRIM(cl1), z2d ) 218 IF( ln_subbas ) THEN 219 DO jn = 2, nptr 220 sjk(:,1,jn) = ptr_sj( zmask(:,:,:), btmsk(:,:,jn) ) 221 r1_sjk(:,1,jn) = 0._wp 222 WHERE( sjk(:,1,jn) /= 0._wp ) r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 223 vsum = ptr_sj( zvv(:,:,:), btmsk(:,:,jn)) 224 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 225 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 226 htr_btr(:,jn) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,jn) 227 str_btr(:,jn) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,jn) 228 z2d(1,:) = htr_btr(:,jn) * rc_pwatt ! (conversion in PW) 229 DO ji = 1, jpi 230 z2d(ji,:) = z2d(1,:) 231 ENDDO 232 cl1 = TRIM('sophtbtr_'//clsubb(jn)) 233 CALL iom_put( cl1, z2d ) 234 z2d(1,:) = str_btr(:,jn) * rc_ggram ! (conversion in Gg) 235 DO ji = 1, jpi 236 z2d(ji,:) = z2d(1,:) 237 ENDDO 238 cl1 = TRIM('sopstbtr_'//clsubb(jn)) 239 CALL iom_put( cl1, z2d ) 240 ENDDO 241 ENDIF !ln_subbas 242 ENDIF !iom_use("sopstbtr....) 130 IF( iom_use( 'sopstove' ) .OR. iom_use( 'sophtove' ) ) THEN 131 DO jn = 1, nptr 132 sjk(:,:,jn) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 133 r1_sjk(:,:,jn) = 0._wp 134 WHERE( sjk(:,:,jn) /= 0._wp ) r1_sjk(:,:,jn) = 1._wp / sjk(:,:,jn) 135 ! i-mean T and S, j-Stream-Function, basin 136 zt_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 137 zs_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 138 v_msf(:,:,jn) = ptr_sjk( pvtr(:,:,:), btmsk34(:,:,jn) ) 139 hstr_ove(:,jp_tem,jn) = SUM( v_msf(:,:,jn)*zt_jk(:,:,jn), 2 ) 140 hstr_ove(:,jp_sal,jn) = SUM( v_msf(:,:,jn)*zs_jk(:,:,jn), 2 ) 141 ! 142 ENDDO 143 DO jn = 1, nptr 144 z3dtr(1,:,jn) = hstr_ove(:,jp_tem,jn) * rc_pwatt ! (conversion in PW) 145 DO ji = 1, jpi 146 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 147 ENDDO 148 ENDDO 149 CALL iom_put( 'sophtove', z3dtr ) 150 DO jn = 1, nptr 151 z3dtr(1,:,jn) = hstr_ove(:,jp_sal,jn) * rc_ggram ! (conversion in Gg) 152 DO ji = 1, jpi 153 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 154 ENDDO 155 ENDDO 156 CALL iom_put( 'sopstove', z3dtr ) 157 ENDIF 158 159 IF( iom_use( 'sopstbtr' ) .OR. iom_use( 'sophtbtr' ) ) THEN 160 ! Calculate barotropic heat and salt transport here 161 DO jn = 1, nptr 162 sjk(:,1,jn) = ptr_sj( zmask(:,:,:), btmsk(:,:,jn) ) 163 r1_sjk(:,1,jn) = 0._wp 164 WHERE( sjk(:,1,jn) /= 0._wp ) r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 165 ! 166 zvsum(:) = ptr_sj( pvtr(:,:,:), btmsk34(:,:,jn) ) 167 ztsum(:) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 168 zssum(:) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 169 hstr_btr(:,jp_tem,jn) = zvsum(:) * ztsum(:) * r1_sjk(:,1,jn) 170 hstr_btr(:,jp_sal,jn) = zvsum(:) * zssum(:) * r1_sjk(:,1,jn) 171 ! 172 ENDDO 173 DO jn = 1, nptr 174 z3dtr(1,:,jn) = hstr_btr(:,jp_tem,jn) * rc_pwatt ! (conversion in PW) 175 DO ji = 1, jpi 176 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 177 ENDDO 178 ENDDO 179 CALL iom_put( 'sophtbtr', z3dtr ) 180 DO jn = 1, nptr 181 z3dtr(1,:,jn) = hstr_btr(:,jp_sal,jn) * rc_ggram ! (conversion in Gg) 182 DO ji = 1, jpi 183 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 184 ENDDO 185 ENDDO 186 CALL iom_put( 'sopstbtr', z3dtr ) 187 ENDIF 243 188 ! 244 189 ELSE 245 190 ! 246 IF( iom_use("zotemglo") ) THEN ! i-mean i-k-surface 191 zmask(:,:,:) = 0._wp 192 zts(:,:,:,:) = 0._wp 193 IF( iom_use( 'zotem' ) .OR. iom_use( 'zosal' ) .OR. iom_use( 'zosrf' ) ) THEN ! i-mean i-k-surface 247 194 DO jk = 1, jpkm1 248 195 DO jj = 1, jpj … … 255 202 END DO 256 203 END DO 204 ! 257 205 DO jn = 1, nptr 258 206 zmask(1,:,:) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 259 cl1 = TRIM('zosrf'//clsubb(jn) ) 260 CALL iom_put( cl1, zmask ) 261 ! 262 z3d(1,:,:) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) & 263 & / MAX( zmask(1,:,:), 10.e-15 ) 264 DO ji = 1, jpi 265 z3d(ji,:,:) = z3d(1,:,:) 266 ENDDO 267 cl1 = TRIM('zotem'//clsubb(jn) ) 268 CALL iom_put( cl1, z3d ) 269 ! 270 z3d(1,:,:) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) & 271 & / MAX( zmask(1,:,:), 10.e-15 ) 272 DO ji = 1, jpi 273 z3d(ji,:,:) = z3d(1,:,:) 274 ENDDO 275 cl1 = TRIM('zosal'//clsubb(jn) ) 276 CALL iom_put( cl1, z3d ) 277 END DO 207 z4d1(:,:,:,jn) = zmask(:,:,:) 208 ENDDO 209 CALL iom_put( 'zosrf', z4d1 ) 210 ! 211 DO jn = 1, nptr 212 z4d2(1,:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) & 213 & / MAX( z4d1(1,:,:,jn), 10.e-15 ) 214 DO ji = 1, jpi 215 z4d2(ji,:,:,jn) = z4d2(1,:,:,jn) 216 ENDDO 217 ENDDO 218 CALL iom_put( 'zotem', z4d2 ) 219 ! 220 DO jn = 1, nptr 221 z4d2(1,:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) & 222 & / MAX( z4d1(1,:,:,jn), 10.e-15 ) 223 DO ji = 1, jpi 224 z4d2(ji,:,:,jn) = z4d2(1,:,:,jn) 225 ENDDO 226 ENDDO 227 CALL iom_put( 'zosal', z4d2 ) 228 ! 278 229 ENDIF 279 230 ! 280 231 ! ! Advective and diffusive heat and salt transport 281 IF( iom_use("sophtadv") .OR. iom_use("sopstadv") ) THEN 282 z2d(1,:) = htr_adv(:,1) * rc_pwatt ! (conversion in PW) 283 DO ji = 1, jpi 284 z2d(ji,:) = z2d(1,:) 285 ENDDO 286 cl1 = 'sophtadv' 287 CALL iom_put( TRIM(cl1), z2d ) 288 z2d(1,:) = str_adv(:,1) * rc_ggram ! (conversion in Gg) 289 DO ji = 1, jpi 290 z2d(ji,:) = z2d(1,:) 291 ENDDO 292 cl1 = 'sopstadv' 293 CALL iom_put( TRIM(cl1), z2d ) 294 IF( ln_subbas ) THEN 295 DO jn=2,nptr 296 z2d(1,:) = htr_adv(:,jn) * rc_pwatt ! (conversion in PW) 297 DO ji = 1, jpi 298 z2d(ji,:) = z2d(1,:) 299 ENDDO 300 cl1 = TRIM('sophtadv_'//clsubb(jn)) 301 CALL iom_put( cl1, z2d ) 302 z2d(1,:) = str_adv(:,jn) * rc_ggram ! (conversion in Gg) 303 DO ji = 1, jpi 304 z2d(ji,:) = z2d(1,:) 305 ENDDO 306 cl1 = TRIM('sopstadv_'//clsubb(jn)) 307 CALL iom_put( cl1, z2d ) 308 ENDDO 309 ENDIF 310 ENDIF 311 ! 312 IF( iom_use("sophtldf") .OR. iom_use("sopstldf") ) THEN 313 z2d(1,:) = htr_ldf(:,1) * rc_pwatt ! (conversion in PW) 314 DO ji = 1, jpi 315 z2d(ji,:) = z2d(1,:) 316 ENDDO 317 cl1 = 'sophtldf' 318 CALL iom_put( TRIM(cl1), z2d ) 319 z2d(1,:) = str_ldf(:,1) * rc_ggram ! (conversion in Gg) 320 DO ji = 1, jpi 321 z2d(ji,:) = z2d(1,:) 322 ENDDO 323 cl1 = 'sopstldf' 324 CALL iom_put( TRIM(cl1), z2d ) 325 IF( ln_subbas ) THEN 326 DO jn=2,nptr 327 z2d(1,:) = htr_ldf(:,jn) * rc_pwatt ! (conversion in PW) 328 DO ji = 1, jpi 329 z2d(ji,:) = z2d(1,:) 330 ENDDO 331 cl1 = TRIM('sophtldf_'//clsubb(jn)) 332 CALL iom_put( cl1, z2d ) 333 z2d(1,:) = str_ldf(:,jn) * rc_ggram ! (conversion in Gg) 334 DO ji = 1, jpi 335 z2d(ji,:) = z2d(1,:) 336 ENDDO 337 cl1 = TRIM('sopstldf_'//clsubb(jn)) 338 CALL iom_put( cl1, z2d ) 339 ENDDO 340 ENDIF 341 ENDIF 342 343 IF( iom_use("sophteiv") .OR. iom_use("sopsteiv") ) THEN 344 z2d(1,:) = htr_eiv(:,1) * rc_pwatt ! (conversion in PW) 345 DO ji = 1, jpi 346 z2d(ji,:) = z2d(1,:) 347 ENDDO 348 cl1 = 'sophteiv' 349 CALL iom_put( TRIM(cl1), z2d ) 350 z2d(1,:) = str_eiv(:,1) * rc_ggram ! (conversion in Gg) 351 DO ji = 1, jpi 352 z2d(ji,:) = z2d(1,:) 353 ENDDO 354 cl1 = 'sopsteiv' 355 CALL iom_put( TRIM(cl1), z2d ) 356 IF( ln_subbas ) THEN 357 DO jn=2,nptr 358 z2d(1,:) = htr_eiv(:,jn) * rc_pwatt ! (conversion in PW) 232 IF( iom_use( 'sophtadv' ) .OR. iom_use( 'sopstadv' ) ) THEN 233 ! 234 DO jn = 1, nptr 235 z3dtr(1,:,jn) = hstr_adv(:,jp_tem,jn) * rc_pwatt ! (conversion in PW) 236 DO ji = 1, jpi 237 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 238 ENDDO 239 ENDDO 240 CALL iom_put( 'sophtadv', z3dtr ) 241 DO jn = 1, nptr 242 z3dtr(1,:,jn) = hstr_adv(:,jp_sal,jn) * rc_ggram ! (conversion in Gg) 243 DO ji = 1, jpi 244 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 245 ENDDO 246 ENDDO 247 CALL iom_put( 'sopstadv', z3dtr ) 248 ENDIF 249 ! 250 IF( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) THEN 251 ! 252 DO jn = 1, nptr 253 z3dtr(1,:,jn) = hstr_ldf(:,jp_tem,jn) * rc_pwatt ! (conversion in PW) 254 DO ji = 1, jpi 255 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 256 ENDDO 257 ENDDO 258 CALL iom_put( 'sophtldf', z3dtr ) 259 DO jn = 1, nptr 260 z3dtr(1,:,jn) = hstr_ldf(:,jp_sal,jn) * rc_ggram ! (conversion in Gg) 261 DO ji = 1, jpi 262 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 263 ENDDO 264 ENDDO 265 CALL iom_put( 'sopstldf', z3dtr ) 266 ENDIF 267 ! 268 IF( iom_use( 'sophteiv' ) .OR. iom_use( 'sopsteiv' ) ) THEN 269 ! 270 DO jn = 1, nptr 271 z3dtr(1,:,jn) = hstr_eiv(:,jp_tem,jn) * rc_pwatt ! (conversion in PW) 272 DO ji = 1, jpi 273 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 274 ENDDO 275 ENDDO 276 CALL iom_put( 'sophteiv', z3dtr ) 277 DO jn = 1, nptr 278 z3dtr(1,:,jn) = hstr_eiv(:,jp_sal,jn) * rc_ggram ! (conversion in Gg) 279 DO ji = 1, jpi 280 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 281 ENDDO 282 ENDDO 283 CALL iom_put( 'sopsteiv', z3dtr ) 284 ENDIF 285 ! 286 IF( iom_use( 'sopstvtr' ) .OR. iom_use( 'sophtvtr' ) ) THEN 287 zts(:,:,:,:) = 0._wp 288 DO jk = 1, jpkm1 289 DO jj = 1, jpjm1 359 290 DO ji = 1, jpi 360 z2d(ji,:) = z2d(1,:) 291 zvfc = e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 292 zts(ji,jj,jk,jp_tem) = (ts(ji,jj,jk,jp_tem,Kmm)+ts(ji,jj+1,jk,jp_tem,Kmm)) * 0.5 * zvfc !Tracers averaged onto V grid 293 zts(ji,jj,jk,jp_sal) = (ts(ji,jj,jk,jp_sal,Kmm)+ts(ji,jj+1,jk,jp_sal,Kmm)) * 0.5 * zvfc 361 294 ENDDO 362 cl1 = TRIM('sophteiv_'//clsubb(jn)) 363 CALL iom_put( cl1, z2d ) 364 z2d(1,:) = str_eiv(:,jn) * rc_ggram ! (conversion in Gg) 365 DO ji = 1, jpi 366 z2d(ji,:) = z2d(1,:) 367 ENDDO 368 cl1 = TRIM('sopsteiv_'//clsubb(jn)) 369 CALL iom_put( cl1, z2d ) 370 ENDDO 371 ENDIF 295 ENDDO 296 ENDDO 297 CALL dia_ptr_hst( jp_tem, 'vtr', zts(:,:,:,jp_tem) ) 298 CALL dia_ptr_hst( jp_sal, 'vtr', zts(:,:,:,jp_sal) ) 299 DO jn = 1, nptr 300 z3dtr(1,:,jn) = hstr_vtr(:,jp_tem,jn) * rc_pwatt ! (conversion in PW) 301 DO ji = 1, jpi 302 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 303 ENDDO 304 ENDDO 305 CALL iom_put( 'sophtvtr', z3dtr ) 306 DO jn = 1, nptr 307 z3dtr(1,:,jn) = hstr_vtr(:,jp_sal,jn) * rc_ggram ! (conversion in Gg) 308 DO ji = 1, jpi 309 z3dtr(ji,:,jn) = z3dtr(1,:,jn) 310 ENDDO 311 ENDDO 312 CALL iom_put( 'sopstvtr', z3dtr ) 313 ENDIF 314 ! 315 IF( iom_use( 'uocetr_vsum_cumul' ) ) THEN 316 CALL iom_get_var( 'uocetr_vsum_op', z2d ) ! get uocetr_vsum_op from xml 317 z2d(:,:) = ptr_ci_2d( z2d(:,:) ) 318 CALL iom_put( 'uocetr_vsum_cumul', z2d ) 372 319 ENDIF 373 320 ! … … 385 332 !! ** Purpose : Initialization, namelist read 386 333 !!---------------------------------------------------------------------- 387 INTEGER :: jn ! local integers388 INTEGER :: inum, ierr ! local integers389 INTEGER :: ios ! Local integer output status for namelist read390 !! 391 NAMELIST/namptr/ ln_diaptr, ln_subbas 392 !!----------------------------------------------------------------------393 394 READ ( numnam_ref, namptr, IOSTAT = ios, ERR = 901)395 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namptr in reference namelist' ) 396 397 READ ( numnam_cfg, namptr, IOSTAT = ios, ERR = 902 )398 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist' ) 399 IF(lwm) WRITE ( numond, namptr ) 400 334 INTEGER :: inum, jn ! local integers 335 !! 336 REAL(wp), DIMENSION(jpi,jpj) :: zmsk 337 !!---------------------------------------------------------------------- 338 339 l_diaptr = .FALSE. 340 IF( iom_use( 'zomsf' ) .OR. iom_use( 'zotem' ) .OR. iom_use( 'zosal' ) .OR. & 341 & iom_use( 'zosrf' ) .OR. iom_use( 'sopstove' ) .OR. iom_use( 'sophtove' ) .OR. & 342 & iom_use( 'sopstbtr' ) .OR. iom_use( 'sophtbtr' ) .OR. iom_use( 'sophtadv' ) .OR. & 343 & iom_use( 'sopstadv' ) .OR. iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) .OR. & 344 & iom_use( 'sophteiv' ) .OR. iom_use( 'sopsteiv' ) .OR. iom_use( 'sopstvtr' ) .OR. & 345 & iom_use( 'sophtvtr' ) .OR. iom_use( 'uocetr_vsum_cumul' ) ) l_diaptr = .TRUE. 346 347 401 348 IF(lwp) THEN ! Control print 402 349 WRITE(numout,*) … … 404 351 WRITE(numout,*) '~~~~~~~~~~~~' 405 352 WRITE(numout,*) ' Namelist namptr : set ptr parameters' 406 WRITE(numout,*) ' Poleward heat & salt transport (T) or not (F) ln_diaptr = ', ln_diaptr 407 WRITE(numout,*) ' Global (F) or glo/Atl/Pac/Ind/Indo-Pac basins ln_subbas = ', ln_subbas 353 WRITE(numout,*) ' Poleward heat & salt transport (T) or not (F) l_diaptr = ', l_diaptr 408 354 ENDIF 409 355 410 IF( ln_diaptr ) THEN 411 ! 412 IF( ln_subbas ) THEN 413 nptr = 5 ! Global, Atlantic, Pacific, Indian, Indo-Pacific 414 ALLOCATE( clsubb(nptr) ) 415 clsubb(1) = 'glo' ; clsubb(2) = 'atl' ; clsubb(3) = 'pac' ; clsubb(4) = 'ind' ; clsubb(5) = 'ipc' 416 ELSE 417 nptr = 1 ! Global only 418 ALLOCATE( clsubb(nptr) ) 419 clsubb(1) = 'glo' 420 ENDIF 421 422 ! ! allocate dia_ptr arrays 356 IF( l_diaptr ) THEN 357 ! 423 358 IF( dia_ptr_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dia_ptr_init : unable to allocate arrays' ) 424 359 425 360 rc_pwatt = rc_pwatt * rau0_rcp ! conversion from K.s-1 to PetaWatt 361 rc_ggram = rc_ggram * rau0 ! conversion from m3/s to Gg/s 426 362 427 363 IF( lk_mpp ) CALL mpp_ini_znl( numout ) ! Define MPI communicator for zonal sum 428 364 429 IF( ln_subbas ) THEN ! load sub-basin mask 430 CALL iom_open( 'subbasins', inum, ldstop = .FALSE. ) 431 CALL iom_get( inum, jpdom_data, 'atlmsk', btmsk(:,:,2) ) ! Atlantic basin 432 CALL iom_get( inum, jpdom_data, 'pacmsk', btmsk(:,:,3) ) ! Pacific basin 433 CALL iom_get( inum, jpdom_data, 'indmsk', btmsk(:,:,4) ) ! Indian basin 434 CALL iom_close( inum ) 435 btmsk(:,:,5) = MAX ( btmsk(:,:,3), btmsk(:,:,4) ) ! Indo-Pacific basin 436 WHERE( gphit(:,:) < -30._wp) ; btm30(:,:) = 0._wp ! mask out Southern Ocean 437 ELSE WHERE ; btm30(:,:) = ssmask(:,:) 438 END WHERE 439 ENDIF 440 441 btmsk(:,:,1) = tmask_i(:,:) ! global ocean 442 443 DO jn = 1, nptr 365 btmsk(:,:,1) = tmask_i(:,:) 366 CALL iom_open( 'subbasins', inum, ldstop = .FALSE. ) 367 CALL iom_get( inum, jpdom_data, 'atlmsk', btmsk(:,:,2) ) ! Atlantic basin 368 CALL iom_get( inum, jpdom_data, 'pacmsk', btmsk(:,:,3) ) ! Pacific basin 369 CALL iom_get( inum, jpdom_data, 'indmsk', btmsk(:,:,4) ) ! Indian basin 370 CALL iom_close( inum ) 371 btmsk(:,:,5) = MAX ( btmsk(:,:,3), btmsk(:,:,4) ) ! Indo-Pacific basin 372 DO jn = 2, nptr 444 373 btmsk(:,:,jn) = btmsk(:,:,jn) * tmask_i(:,:) ! interior domain only 445 374 END DO 375 ! JD : modification so that overturning streamfunction is available in Atlantic at 34S to compare with observations 376 WHERE( gphit(:,:)*tmask_i(:,:) < -34._wp) 377 zmsk(:,:) = 0._wp ! mask out Southern Ocean 378 ELSE WHERE 379 zmsk(:,:) = ssmask(:,:) 380 END WHERE 381 btmsk34(:,:,1) = btmsk(:,:,1) 382 DO jn = 2, nptr 383 btmsk34(:,:,jn) = btmsk(:,:,jn) * zmsk(:,:) ! interior domain only 384 ENDDO 446 385 447 386 ! Initialise arrays to zero because diatpr is called before they are first calculated 448 387 ! Note that this means diagnostics will not be exactly correct when model run is restarted. 449 htr_adv(:,:) = 0._wp ; str_adv(:,:) = 0._wp 450 htr_ldf(:,:) = 0._wp ; str_ldf(:,:) = 0._wp 451 htr_eiv(:,:) = 0._wp ; str_eiv(:,:) = 0._wp 452 htr_ove(:,:) = 0._wp ; str_ove(:,:) = 0._wp 453 htr_btr(:,:) = 0._wp ; str_btr(:,:) = 0._wp 388 hstr_adv(:,:,:) = 0._wp 389 hstr_ldf(:,:,:) = 0._wp 390 hstr_eiv(:,:,:) = 0._wp 391 hstr_ove(:,:,:) = 0._wp 392 hstr_btr(:,:,:) = 0._wp ! 393 hstr_vtr(:,:,:) = 0._wp ! 394 ! 395 ll_init = .FALSE. 454 396 ! 455 397 ENDIF … … 470 412 INTEGER :: jn ! 471 413 414 ! 472 415 IF( cptr == 'adv' ) THEN 473 IF( ktra == jp_tem ) htr_adv(:,1) = ptr_sj( pvflx ) 474 IF( ktra == jp_sal ) str_adv(:,1) = ptr_sj( pvflx ) 416 IF( ktra == jp_tem ) THEN 417 DO jn = 1, nptr 418 hstr_adv(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 419 ENDDO 420 ENDIF 421 IF( ktra == jp_sal ) THEN 422 DO jn = 1, nptr 423 hstr_adv(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 424 ENDDO 425 ENDIF 475 426 ENDIF 427 ! 476 428 IF( cptr == 'ldf' ) THEN 477 IF( ktra == jp_tem ) htr_ldf(:,1) = ptr_sj( pvflx ) 478 IF( ktra == jp_sal ) str_ldf(:,1) = ptr_sj( pvflx ) 429 IF( ktra == jp_tem ) THEN 430 DO jn = 1, nptr 431 hstr_ldf(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 432 ENDDO 433 ENDIF 434 IF( ktra == jp_sal ) THEN 435 DO jn = 1, nptr 436 hstr_ldf(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 437 ENDDO 438 ENDIF 479 439 ENDIF 440 ! 480 441 IF( cptr == 'eiv' ) THEN 481 IF( ktra == jp_tem ) htr_eiv(:,1) = ptr_sj( pvflx ) 482 IF( ktra == jp_sal ) str_eiv(:,1) = ptr_sj( pvflx ) 442 IF( ktra == jp_tem ) THEN 443 DO jn = 1, nptr 444 hstr_eiv(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 445 ENDDO 446 ENDIF 447 IF( ktra == jp_sal ) THEN 448 DO jn = 1, nptr 449 hstr_eiv(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 450 ENDDO 451 ENDIF 483 452 ENDIF 484 453 ! 485 IF( ln_subbas ) THEN 486 ! 487 IF( cptr == 'adv' ) THEN 488 IF( ktra == jp_tem ) THEN 489 DO jn = 2, nptr 490 htr_adv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 491 END DO 492 ENDIF 493 IF( ktra == jp_sal ) THEN 494 DO jn = 2, nptr 495 str_adv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 496 END DO 497 ENDIF 498 ENDIF 499 IF( cptr == 'ldf' ) THEN 500 IF( ktra == jp_tem ) THEN 501 DO jn = 2, nptr 502 htr_ldf(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 503 END DO 504 ENDIF 505 IF( ktra == jp_sal ) THEN 506 DO jn = 2, nptr 507 str_ldf(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 508 END DO 509 ENDIF 510 ENDIF 511 IF( cptr == 'eiv' ) THEN 512 IF( ktra == jp_tem ) THEN 513 DO jn = 2, nptr 514 htr_eiv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 515 END DO 516 ENDIF 517 IF( ktra == jp_sal ) THEN 518 DO jn = 2, nptr 519 str_eiv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 520 END DO 521 ENDIF 522 ENDIF 523 ! 454 IF( cptr == 'vtr' ) THEN 455 IF( ktra == jp_tem ) THEN 456 DO jn = 1, nptr 457 hstr_vtr(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 458 ENDDO 459 ENDIF 460 IF( ktra == jp_sal ) THEN 461 DO jn = 1, nptr 462 hstr_vtr(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 463 ENDDO 464 ENDIF 524 465 ENDIF 466 ! 525 467 END SUBROUTINE dia_ptr_hst 526 468 … … 535 477 ierr(:) = 0 536 478 ! 537 ALLOCATE( btmsk(jpi,jpj,nptr) , & 538 & htr_adv(jpj,nptr) , str_adv(jpj,nptr) , & 539 & htr_eiv(jpj,nptr) , str_eiv(jpj,nptr) , & 540 & htr_ove(jpj,nptr) , str_ove(jpj,nptr) , & 541 & htr_btr(jpj,nptr) , str_btr(jpj,nptr) , & 542 & htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1) ) 543 ! 544 ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) 545 ! 546 ALLOCATE( btm30(jpi,jpj), STAT=ierr(3) ) 547 548 ! 549 dia_ptr_alloc = MAXVAL( ierr ) 550 CALL mpp_sum( 'diaptr', dia_ptr_alloc ) 479 IF( .NOT. ALLOCATED( btmsk ) ) THEN 480 ALLOCATE( btmsk(jpi,jpj,nptr) , btmsk34(jpi,jpj,nptr), & 481 & hstr_adv(jpj,jpts,nptr), hstr_eiv(jpj,jpts,nptr), & 482 & hstr_ove(jpj,jpts,nptr), hstr_btr(jpj,jpts,nptr), & 483 & hstr_ldf(jpj,jpts,nptr), hstr_vtr(jpj,jpts,nptr), STAT=ierr(1) ) 484 ! 485 ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) 486 ! 487 dia_ptr_alloc = MAXVAL( ierr ) 488 CALL mpp_sum( 'diaptr', dia_ptr_alloc ) 489 ENDIF 551 490 ! 552 491 END FUNCTION dia_ptr_alloc … … 564 503 !! ** Action : - p_fval: i-k-mean poleward flux of pvflx 565 504 !!---------------------------------------------------------------------- 566 REAL(wp), INTENT(in), DIMENSION(jpi,jpj,jpk) :: pvflx! mask flux array at V-point567 REAL(wp), INTENT(in), DIMENSION(jpi,jpj) , OPTIONAL:: pmsk ! Optional 2D basin mask505 REAL(wp), INTENT(in), DIMENSION(jpi,jpj,jpk) :: pvflx ! mask flux array at V-point 506 REAL(wp), INTENT(in), DIMENSION(jpi,jpj) :: pmsk ! Optional 2D basin mask 568 507 ! 569 508 INTEGER :: ji, jj, jk ! dummy loop arguments … … 576 515 ijpj = jpj 577 516 p_fval(:) = 0._wp 578 IF( PRESENT( pmsk ) ) THEN 579 DO jk = 1, jpkm1 580 DO jj = 2, jpjm1 581 DO ji = fs_2, fs_jpim1 ! Vector opt. 582 p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * tmask_i(ji,jj) * pmsk(ji,jj) 583 END DO 517 DO jk = 1, jpkm1 518 DO jj = 2, jpjm1 519 DO ji = fs_2, fs_jpim1 ! Vector opt. 520 p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * pmsk(ji,jj) * tmask_i(ji,jj) 584 521 END DO 585 522 END DO 586 ELSE 587 DO jk = 1, jpkm1 588 DO jj = 2, jpjm1 589 DO ji = fs_2, fs_jpim1 ! Vector opt. 590 p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * tmask_i(ji,jj) 591 END DO 592 END DO 593 END DO 594 ENDIF 523 END DO 595 524 #if defined key_mpp_mpi 596 525 CALL mpp_sum( 'diaptr', p_fval, ijpj, ncomm_znl) … … 611 540 !! ** Action : - p_fval: i-k-mean poleward flux of pvflx 612 541 !!---------------------------------------------------------------------- 613 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pvflx! mask flux array at V-point614 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) , OPTIONAL:: pmsk ! Optional 2D basin mask542 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pvflx ! mask flux array at V-point 543 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pmsk ! Optional 2D basin mask 615 544 ! 616 545 INTEGER :: ji,jj ! dummy loop arguments … … 623 552 ijpj = jpj 624 553 p_fval(:) = 0._wp 625 IF( PRESENT( pmsk ) ) THEN 626 DO jj = 2, jpjm1 627 DO ji = nldi, nlei ! No vector optimisation here. Better use a mask ? 628 p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * tmask_i(ji,jj) * pmsk(ji,jj) 629 END DO 554 DO jj = 2, jpjm1 555 DO ji = fs_2, fs_jpim1 ! Vector opt. 556 p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * pmsk(ji,jj) * tmask_i(ji,jj) 630 557 END DO 631 ELSE 632 DO jj = 2, jpjm1 633 DO ji = nldi, nlei ! No vector optimisation here. Better use a mask ? 634 p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * tmask_i(ji,jj) 635 END DO 636 END DO 637 ENDIF 558 END DO 638 559 #if defined key_mpp_mpi 639 560 CALL mpp_sum( 'diaptr', p_fval, ijpj, ncomm_znl ) … … 642 563 END FUNCTION ptr_sj_2d 643 564 644 645 FUNCTION ptr_sjk( pfld, pmsk ) RESULT ( p_fval ) 565 FUNCTION ptr_ci_2d( pva ) RESULT ( p_fval ) 566 !!---------------------------------------------------------------------- 567 !! *** ROUTINE ptr_ci_2d *** 568 !! 569 !! ** Purpose : "meridional" cumulated sum computation of a j-flux array 570 !! 571 !! ** Method : - j cumulated sum of pva using the interior 2D vmask (umask_i). 572 !! 573 !! ** Action : - p_fval: j-cumulated sum of pva 574 !!---------------------------------------------------------------------- 575 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pva ! mask flux array at V-point 576 ! 577 INTEGER :: ji,jj,jc ! dummy loop arguments 578 INTEGER :: ijpj ! ??? 579 REAL(wp), DIMENSION(jpi,jpj) :: p_fval ! function value 580 !!-------------------------------------------------------------------- 581 ! 582 ijpj = jpj ! ??? 583 p_fval(:,:) = 0._wp 584 DO jc = 1, jpnj ! looping over all processors in j axis 585 DO jj = 2, jpjm1 586 DO ji = fs_2, fs_jpim1 ! Vector opt. 587 p_fval(ji,jj) = p_fval(ji,jj-1) + pva(ji,jj) * tmask_i(ji,jj) 588 END DO 589 END DO 590 CALL lbc_lnk( 'diaptr', p_fval, 'U', -1. ) 591 END DO 592 ! 593 END FUNCTION ptr_ci_2d 594 595 596 597 FUNCTION ptr_sjk( pta, pmsk ) RESULT ( p_fval ) 646 598 !!---------------------------------------------------------------------- 647 599 !! *** ROUTINE ptr_sjk *** … … 655 607 !! 656 608 IMPLICIT none 657 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk) :: pfld ! input field to be summed658 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) , OPTIONAL:: pmsk ! Optional 2D basin mask609 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk) :: pta ! mask flux array at V-point 610 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pmsk ! Optional 2D basin mask 659 611 !! 660 612 INTEGER :: ji, jj, jk ! dummy loop arguments … … 672 624 p_fval(:,:) = 0._wp 673 625 ! 674 IF( PRESENT( pmsk ) ) THEN 675 DO jk = 1, jpkm1 676 DO jj = 2, jpjm1 677 !!gm here, use of tmask_i ==> no need of loop over nldi, nlei.... 678 DO ji = nldi, nlei ! No vector optimisation here. Better use a mask ? 679 p_fval(jj,jk) = p_fval(jj,jk) + pfld(ji,jj,jk) * pmsk(ji,jj) 680 END DO 626 DO jk = 1, jpkm1 627 DO jj = 2, jpjm1 628 DO ji = fs_2, fs_jpim1 ! Vector opt. 629 p_fval(jj,jk) = p_fval(jj,jk) + pta(ji,jj,jk) * pmsk(ji,jj) * tmask_i(ji,jj) 681 630 END DO 682 631 END DO 683 ELSE 684 DO jk = 1, jpkm1 685 DO jj = 2, jpjm1 686 DO ji = nldi, nlei ! No vector optimisation here. Better use a mask ? 687 p_fval(jj,jk) = p_fval(jj,jk) + pfld(ji,jj,jk) * tmask_i(ji,jj) 688 END DO 689 END DO 690 END DO 691 END IF 632 END DO 692 633 ! 693 634 #if defined key_mpp_mpi -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/IOM/iom.F90
r12182 r12193 55 55 LOGICAL, PUBLIC, PARAMETER :: lk_iomput = .FALSE. !: iom_put flag 56 56 #endif 57 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get 57 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_get_var 58 58 PUBLIC iom_chkatt, iom_getatt, iom_putatt, iom_getszuld, iom_rstput, iom_delay_rst, iom_put 59 59 PUBLIC iom_use, iom_context_finalize, iom_miss_val … … 61 61 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 62 62 PRIVATE iom_g0d, iom_g1d, iom_g2d, iom_g3d, iom_get_123d 63 PRIVATE iom_p1d, iom_p2d, iom_p3d 63 PRIVATE iom_p1d, iom_p2d, iom_p3d, iom_p4d 64 64 #if defined key_iomput 65 65 PRIVATE iom_set_domain_attr, iom_set_axis_attr, iom_set_field_attr, iom_set_file_attr, iom_get_file_attr, iom_set_grid_attr … … 82 82 END INTERFACE 83 83 INTERFACE iom_put 84 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d 84 MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d, iom_p4d 85 85 END INTERFACE iom_put 86 86 … … 107 107 TYPE(xios_date) :: start_date 108 108 CHARACTER(len=lc) :: clname 109 INTEGER :: irefyear, irefmonth, irefday 109 110 INTEGER :: ji, jkmin 110 111 LOGICAL :: llrst_context ! is context related to restart … … 139 140 140 141 ! Calendar type is now defined in xml file 142 IF (.NOT.(xios_getvar('ref_year' ,irefyear ))) irefyear = 1900 143 IF (.NOT.(xios_getvar('ref_month',irefmonth))) irefmonth = 01 144 IF (.NOT.(xios_getvar('ref_day' ,irefday ))) irefday = 01 145 141 146 SELECT CASE ( nleapy ) ! Choose calendar for IOIPSL 142 CASE ( 1) ; CALL xios_define_calendar( TYPE = "Gregorian", time_origin = xios_date( 1900,01,01,00,00,00), &147 CASE ( 1) ; CALL xios_define_calendar( TYPE = "Gregorian", time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 143 148 & start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 144 CASE ( 0) ; CALL xios_define_calendar( TYPE = "NoLeap" , time_origin = xios_date( 1900,01,01,00,00,00), &149 CASE ( 0) ; CALL xios_define_calendar( TYPE = "NoLeap" , time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 145 150 & start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 146 CASE (30) ; CALL xios_define_calendar( TYPE = "D360" , time_origin = xios_date( 1900,01,01,00,00,00), &151 CASE (30) ; CALL xios_define_calendar( TYPE = "D360" , time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 147 152 & start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 148 153 END SELECT … … 241 246 CALL iom_set_axis_attr( "icbcla", class_num ) 242 247 CALL iom_set_axis_attr( "iax_20C", (/ REAL(20,wp) /) ) ! strange syntaxe and idea... 248 CALL iom_set_axis_attr( "iax_26C", (/ REAL(26,wp) /) ) ! strange syntaxe and idea... 243 249 CALL iom_set_axis_attr( "iax_28C", (/ REAL(28,wp) /) ) ! strange syntaxe and idea... 250 CALL iom_set_axis_attr( "basin" , (/ (REAL(ji,wp), ji=1,5) /) ) 244 251 ENDIF 245 252 ! … … 1348 1355 END SUBROUTINE iom_get_123d 1349 1356 1357 SUBROUTINE iom_get_var( cdname, z2d) 1358 CHARACTER(LEN=*), INTENT(in ) :: cdname 1359 REAL(wp), DIMENSION(jpi,jpj) :: z2d 1360 #if defined key_iomput 1361 IF( xios_field_is_active( cdname, at_current_timestep_arg = .TRUE. ) ) THEN 1362 z2d(:,:) = 0._wp 1363 CALL xios_recv_field( cdname, z2d) 1364 ENDIF 1365 #else 1366 IF( .FALSE. ) WRITE(numout,*) cdname, z2d ! useless test to avoid compilation warnings 1367 #endif 1368 END SUBROUTINE iom_get_var 1369 1350 1370 1351 1371 FUNCTION iom_getszuld ( kiomid ) … … 1717 1737 END SUBROUTINE iom_p3d 1718 1738 1739 SUBROUTINE iom_p4d( cdname, pfield4d ) 1740 CHARACTER(LEN=*) , INTENT(in) :: cdname 1741 REAL(wp), DIMENSION(:,:,:,:), INTENT(in) :: pfield4d 1742 #if defined key_iomput 1743 CALL xios_send_field(cdname, pfield4d) 1744 #else 1745 IF( .FALSE. ) WRITE(numout,*) cdname, pfield4d ! useless test to avoid compilation warnings 1746 #endif 1747 END SUBROUTINE iom_p4d 1748 1749 1719 1750 #if defined key_iomput 1720 1751 !!---------------------------------------------------------------------- … … 2059 2090 ALLOCATE( zlon(ni*nj) ) ; zlon(:) = 0._wp 2060 2091 ! 2061 CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots)2062 !CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots)2092 ! CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots) 2093 CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! i-line that passes near the North Pole : Reference latitude (used in plots) 2063 2094 CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 2064 2095 CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 2065 2096 CALL iom_set_domain_attr("gznl", lonvalue = zlon, & 2066 2097 & latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /))) 2067 CALL iom_set_zoom_domain_attr("znl_T", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2068 CALL iom_set_zoom_domain_attr("znl_W", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2098 CALL iom_set_zoom_domain_attr("ptr", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 2069 2099 ! 2070 2100 CALL iom_update_file_name('ptr') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/LDF/ldftra.F90
r12150 r12193 851 851 CALL iom_put( "woce_eiv", zw3d ) 852 852 ! 853 IF( iom_use('weiv_masstr') ) THEN ! vertical mass transport & its square value 854 zw2d(:,:) = rau0 * e1e2t(:,:) 855 DO jk = 1, jpk 856 zw3d(:,:,jk) = zw3d(:,:,jk) * zw2d(:,:) 857 END DO 858 CALL iom_put( "weiv_masstr" , zw3d ) 859 ENDIF 860 ! 861 IF( iom_use('ueiv_masstr') ) THEN 862 zw3d(:,:,:) = 0.e0 863 DO jk = 1, jpkm1 864 zw3d(:,:,jk) = rau0 * ( psi_uw(:,:,jk+1) - psi_uw(:,:,jk) ) 865 END DO 866 CALL iom_put( "ueiv_masstr", zw3d ) ! mass transport in i-direction 867 ENDIF 853 868 ! 854 869 zztmp = 0.5_wp * rau0 * rcp … … 870 885 CALL iom_put( "ueiv_heattr3d", zztmp * zw3d ) ! heat transport in i-direction 871 886 ENDIF 887 ! 888 IF( iom_use('veiv_masstr') ) THEN 889 zw3d(:,:,:) = 0.e0 890 DO jk = 1, jpkm1 891 zw3d(:,:,jk) = rau0 * ( psi_vw(:,:,jk+1) - psi_vw(:,:,jk) ) 892 END DO 893 CALL iom_put( "veiv_masstr", zw3d ) ! mass transport in i-direction 894 ENDIF 895 ! 872 896 zw2d(:,:) = 0._wp 873 897 zw3d(:,:,:) = 0._wp … … 885 909 CALL iom_put( "veiv_heattr", zztmp * zw3d ) ! heat transport in j-direction 886 910 ! 887 IF( ln_diaptr )CALL dia_ptr_hst( jp_tem, 'eiv', 0.5 * zw3d )911 IF( iom_use( 'sophteiv' ) ) CALL dia_ptr_hst( jp_tem, 'eiv', 0.5 * zw3d ) 888 912 ! 889 913 zztmp = 0.5_wp * 0.5 … … 920 944 CALL iom_put( "veiv_salttr", zztmp * zw3d ) ! salt transport in j-direction 921 945 ! 922 IF( ln_diaptr) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d )946 IF( iom_use( 'sopsteiv' ) ) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d ) 923 947 ! 924 948 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcblk.F90
r12182 r12193 979 979 REAL(wp), DIMENSION(jpi,jpj) :: zevap, zsnw ! evaporation and snw distribution after wind blowing (SI3) 980 980 REAL(wp), DIMENSION(jpi,jpj) :: zqair ! specific humidity of air at z=rn_zqt [kg/kg] !LB 981 REAL(wp), DIMENSION(jpi,jpj) :: ztmp, ztmp2 981 982 !!--------------------------------------------------------------------- 982 983 ! … … 1102 1103 END WHERE 1103 1104 ! 1105 1106 IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') ) THEN 1107 ztmp(:,:) = zevap(:,:) * ( 1._wp - at_i_b(:,:) ) 1108 IF( iom_use('evap_ao_cea' ) ) CALL iom_put( 'evap_ao_cea' , ztmp(:,:) * tmask(:,:,1) ) ! ice-free oce evap (cell average) 1109 IF( iom_use('hflx_evap_cea') ) CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * sst_m(:,:) * rcp * tmask(:,:,1) ) ! heat flux from evap (cell average) 1110 ENDIF 1111 IF( iom_use('hflx_rain_cea') ) THEN 1112 ztmp(:,:) = rcp * ( SUM( (ptsu-rt0) * a_i_b, dim=3 ) + sst_m(:,:) * ( 1._wp - at_i_b(:,:) ) ) 1113 IF( iom_use('hflx_rain_cea') ) CALL iom_put( 'hflx_rain_cea', ( tprecip(:,:) - sprecip(:,:) ) * ztmp(:,:) ) ! heat flux from rain (cell average) 1114 ENDIF 1115 IF( iom_use('hflx_snow_cea') .OR. iom_use('hflx_snow_ao_cea') .OR. iom_use('hflx_snow_ai_cea') ) THEN 1116 WHERE( SUM( a_i_b, dim=3 ) > 1.e-10 ) ; ztmp(:,:) = rcpi * SUM( (ptsu-rt0) * a_i_b, dim=3 ) / SUM( a_i_b, dim=3 ) 1117 ELSEWHERE ; ztmp(:,:) = rcp * sst_m(:,:) 1118 ENDWHERE 1119 ztmp2(:,:) = sprecip(:,:) * ( ztmp(:,:) - rLfus ) 1120 IF( iom_use('hflx_snow_cea') ) CALL iom_put('hflx_snow_cea' , ztmp2(:,:) ) ! heat flux from snow (cell average) 1121 IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', ztmp2(:,:) * ( 1._wp - zsnw(:,:) ) ) ! heat flux from snow (over ocean) 1122 IF( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea', ztmp2(:,:) * zsnw(:,:) ) ! heat flux from snow (over ice) 1123 ENDIF 1124 ! 1104 1125 IF(ln_ctl) THEN 1105 1126 CALL prt_ctl(tab3d_1=qla_ice , clinfo1=' blk_ice: qla_ice : ', tab3d_2=z_qsb , clinfo2=' z_qsb : ', kdim=jpl) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbccpl.F90
r12182 r12193 1777 1777 IF( iom_use('snow_ao_cea') ) CALL iom_put( 'snow_ao_cea' , sprecip(:,:) * ( 1._wp - zsnw(:,:) ) ) ! Snow over ice-free ocean (cell average) 1778 1778 IF( iom_use('snow_ai_cea') ) CALL iom_put( 'snow_ai_cea' , sprecip(:,:) * zsnw(:,:) ) ! Snow over sea-ice (cell average) 1779 IF( iom_use('rain_ao_cea') ) CALL iom_put( 'rain_ao_cea' , ( tprecip(:,:) - sprecip(:,:) ) * picefr(:,:) ) ! liquid precipitation over ocean (cell average) 1779 1780 IF( iom_use('subl_ai_cea') ) CALL iom_put( 'subl_ai_cea' , frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) * tmask(:,:,1) ) ! Sublimation over sea-ice (cell average) 1780 1781 IF( iom_use('evap_ao_cea') ) CALL iom_put( 'evap_ao_cea' , ( frcv(jpr_tevp)%z3(:,:,1) & … … 1905 1906 IF( iom_use('hflx_evap_cea') ) CALL iom_put('hflx_evap_cea' , ( frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) & 1906 1907 & * picefr(:,:) ) * zcptn(:,:) * tmask(:,:,1) ) ! heat flux from evap (cell average) 1908 IF( iom_use('hflx_prec_cea') ) CALL iom_put('hflx_prec_cea' , sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) + & ! heat flux from all precip (cell avg) 1909 & ( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:) ) 1907 1910 IF( iom_use('hflx_snow_cea') ) CALL iom_put('hflx_snow_cea' , sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) ) ! heat flux from snow (cell average) 1908 1911 IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) & … … 2305 2308 ! ! CO2 flux from PISCES ! 2306 2309 ! ! ------------------------- ! 2307 IF( ssnd(jps_co2)%laction .AND. l_co2cpl ) CALL cpl_snd( jps_co2, isec, RESHAPE ( oce_co2, (/jpi,jpj,1/) ) , info ) 2310 IF( ssnd(jps_co2)%laction .AND. l_co2cpl ) THEN 2311 ztmp1(:,:) = oce_co2(:,:) * 1000. ! conversion in molC/m2/s 2312 CALL cpl_snd( jps_co2, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ) , info ) 2313 ENDIF 2308 2314 ! 2309 2315 ! ! ------------------------- ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcmod.F90
r12182 r12193 246 246 #endif 247 247 ! 248 ! 249 IF( sbc_ssr_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_ssr arrays' ) 250 IF( .NOT.ln_ssr ) THEN !* Initialize qrp and erp if no restoring 251 qrp(:,:) = 0._wp 252 erp(:,:) = 0._wp 253 ENDIF 254 ! 255 248 256 IF( nn_ice == 0 ) THEN !* No sea-ice in the domain : ice fraction is always zero 249 257 IF( nn_components /= jp_iam_opa ) fr_i(:,:) = 0._wp ! except for OPA in SAS-OPA coupled case … … 559 567 CALL iom_put( "taum" , taum ) ! wind stress module 560 568 CALL iom_put( "wspd" , wndm ) ! wind speed module over free ocean or leads in presence of sea-ice 569 CALL iom_put( "qrp", qrp ) ! heat flux damping 570 CALL iom_put( "erp", erp ) ! freshwater flux damping 561 571 ENDIF 562 572 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcrnf.F90
r12182 r12193 42 42 REAL(wp) :: rn_dep_max !: depth over which runoffs is spread (ln_rnf_depth_ini =T) 43 43 INTEGER :: nn_rnf_depth_file !: create (=1) a runoff depth file or not (=0) 44 LOGICAL :: ln_rnf_icb !: iceberg flux is specified in a file 44 45 LOGICAL :: ln_rnf_tem !: temperature river runoffs attribute specified in a file 45 46 LOGICAL , PUBLIC :: ln_rnf_sal !: salinity river runoffs attribute specified in a file 46 47 TYPE(FLD_N) , PUBLIC :: sn_rnf !: information about the runoff file to be read 47 48 TYPE(FLD_N) :: sn_cnf !: information about the runoff mouth file to be read 49 TYPE(FLD_N) :: sn_i_rnf !: information about the iceberg flux file to be read 48 50 TYPE(FLD_N) :: sn_s_rnf !: information about the salinities of runoff file to be read 49 51 TYPE(FLD_N) :: sn_t_rnf !: information about the temperatures of runoff file to be read … … 64 66 65 67 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_rnf ! structure: river runoff (file information, fields read) 68 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_i_rnf ! structure: iceberg flux (file information, fields read) 66 69 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_s_rnf ! structure: river runoff salinity (file information, fields read) 67 70 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_t_rnf ! structure: river runoff temperature (file information, fields read) … … 111 114 ! !-------------------! 112 115 ! 113 IF( .NOT. l_rnfcpl ) CALL fld_read ( kt, nn_fsbc, sf_rnf ) ! Read Runoffs data and provide it at kt 116 ! 117 IF( .NOT. l_rnfcpl ) THEN 118 CALL fld_read ( kt, nn_fsbc, sf_rnf ) ! Read Runoffs data and provide it at kt ( runoffs + iceberg ) 119 IF( ln_rnf_icb ) CALL fld_read ( kt, nn_fsbc, sf_i_rnf ) ! idem for iceberg flux if required 120 ENDIF 114 121 IF( ln_rnf_tem ) CALL fld_read ( kt, nn_fsbc, sf_t_rnf ) ! idem for runoffs temperature if required 115 122 IF( ln_rnf_sal ) CALL fld_read ( kt, nn_fsbc, sf_s_rnf ) ! idem for runoffs salinity if required … … 117 124 IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 118 125 ! 119 IF( .NOT. l_rnfcpl ) rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1) ! updated runoff value at time step kt 126 IF( .NOT. l_rnfcpl ) THEN 127 rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1) ! updated runoff value at time step kt 128 IF( ln_rnf_icb ) THEN 129 fwficb(:,:) = rn_rfact * ( sf_i_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1) ! updated runoff value at time step kt 130 CALL iom_put( 'iceberg_cea' , fwficb(:,:) ) ! output iceberg flux 131 CALL iom_put( 'hflx_icb_cea' , fwficb(:,:) * rLfus ) ! output Heat Flux into Sea Water due to Iceberg Thermodynamics --> 132 ENDIF 133 ENDIF 120 134 ! 121 135 ! ! set temperature & salinity content of runoffs … … 128 142 ELSE ! use SST as runoffs temperature 129 143 !CEOD River is fresh water so must at least be 0 unless we consider ice 130 rnf_tsc(:,:,jp_tem) = MAX( sst_m(:,:),0.0_wp) * rnf(:,:) * r1_rau0144 rnf_tsc(:,:,jp_tem) = MAX( sst_m(:,:), 0.0_wp ) * rnf(:,:) * r1_rau0 131 145 ENDIF 132 146 ! ! use runoffs salinity data 133 147 IF( ln_rnf_sal ) rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 134 148 ! ! else use S=0 for runoffs (done one for all in the init) 135 IF( iom_use('runoffs') )CALL iom_put( 'runoffs' , rnf(:,:) ) ! output runoff mass flux149 CALL iom_put( 'runoffs' , rnf(:,:) ) ! output runoff mass flux 136 150 IF( iom_use('hflx_rnf_cea') ) CALL iom_put( 'hflx_rnf_cea', rnf_tsc(:,:,jp_tem) * rau0 * rcp ) ! output runoff sensible heat (W/m2) 137 151 ENDIF … … 240 254 REAL(wp), DIMENSION(jpi,jpj,2) :: zrnfcl 241 255 !! 242 NAMELIST/namsbc_rnf/ cn_dir , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal, &243 & sn_rnf, sn_cnf , sn_ s_rnf , sn_t_rnf , sn_dep_rnf, &256 NAMELIST/namsbc_rnf/ cn_dir , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal, ln_rnf_icb, & 257 & sn_rnf, sn_cnf , sn_i_rnf, sn_s_rnf , sn_t_rnf , sn_dep_rnf, & 244 258 & ln_rnf_mouth , rn_hrnf , rn_avt_rnf, rn_rfact, & 245 259 & ln_rnf_depth_ini , rn_dep_max , rn_rnf_max, nn_rnf_depth_file … … 295 309 IF( sn_rnf%ln_tint ) ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,1,2) ) 296 310 CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf', no_print ) 311 ! 312 IF( ln_rnf_icb ) THEN ! Create (if required) sf_i_rnf structure 313 IF(lwp) WRITE(numout,*) 314 IF(lwp) WRITE(numout,*) ' iceberg flux read in a file' 315 ALLOCATE( sf_i_rnf(1), STAT=ierror ) 316 IF( ierror > 0 ) THEN 317 CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_i_rnf structure' ) ; RETURN 318 ENDIF 319 ALLOCATE( sf_i_rnf(1)%fnow(jpi,jpj,1) ) 320 IF( sn_i_rnf%ln_tint ) ALLOCATE( sf_i_rnf(1)%fdta(jpi,jpj,1,2) ) 321 CALL fld_fill (sf_i_rnf, (/ sn_i_rnf /), cn_dir, 'sbc_rnf_init', 'read iceberg flux data', 'namsbc_rnf' ) 322 ELSE 323 fwficb(:,:) = 0._wp 324 ENDIF 325 297 326 ENDIF 298 327 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcssr.F90
r11960 r12193 30 30 PUBLIC sbc_ssr ! routine called in sbcmod 31 31 PUBLIC sbc_ssr_init ! routine called in sbcmod 32 PUBLIC sbc_ssr_alloc ! routine called in sbcmod 32 33 33 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: erp !: evaporation damping [kg/m2/s] 34 35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qrp !: heat flux damping [w/m2] 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: coefice !: under ice relaxation coefficient 35 37 36 38 ! !!* Namelist namsbc_ssr * … … 41 43 LOGICAL :: ln_sssr_bnd ! flag to bound erp term 42 44 REAL(wp) :: rn_sssr_bnd ! ABS(Max./Min.) value of erp term [mm/day] 45 INTEGER :: nn_sssr_ice ! Control of restoring under ice 43 46 44 47 REAL(wp) , ALLOCATABLE, DIMENSION(:) :: buffer ! Temporary buffer for exchange … … 97 100 END DO 98 101 END DO 99 CALL iom_put( "qrp", qrp ) ! heat flux damping 102 ENDIF 103 ! 104 IF( nn_sssr /= 0 .AND. nn_sssr_ice /= 1 ) THEN 105 ! use fraction of ice ( fr_i ) to adjust relaxation under ice if nn_sssr_ice .ne. 1 106 ! n.b. coefice is initialised and fixed to 1._wp if nn_sssr_ice = 1 107 DO jj = 1, jpj 108 DO ji = 1, jpi 109 SELECT CASE ( nn_sssr_ice ) 110 CASE ( 0 ) ; coefice(ji,jj) = 1._wp - fr_i(ji,jj) ! no/reduced damping under ice 111 CASE DEFAULT ; coefice(ji,jj) = 1._wp + ( nn_sssr_ice - 1 ) * fr_i(ji,jj) ! reinforced damping (x nn_sssr_ice) under ice ) 112 END SELECT 113 END DO 114 END DO 100 115 ENDIF 101 116 ! … … 105 120 DO ji = 1, jpi 106 121 zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 122 & * coefice(ji,jj) & ! Optional control of damping under sea-ice 107 123 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 108 124 sfx(ji,jj) = sfx(ji,jj) + zerp ! salt flux … … 110 126 END DO 111 127 END DO 112 CALL iom_put( "erp", erp ) ! freshwater flux damping113 128 ! 114 129 ELSEIF( nn_sssr == 2 ) THEN !* Salinity damping term (volume flux (emp) and associated heat flux (qns) … … 118 133 DO ji = 1, jpi 119 134 zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 135 & * coefice(ji,jj) & ! Optional control of damping under sea-ice 120 136 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) & 121 137 & / MAX( sss_m(ji,jj), 1.e-20 ) * tmask(ji,jj,1) … … 126 142 END DO 127 143 END DO 128 CALL iom_put( "erp", erp ) ! freshwater flux damping129 144 ENDIF 130 145 ! … … 154 169 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 155 170 TYPE(FLD_N) :: sn_sst, sn_sss ! informations about the fields to be read 156 NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd 171 NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, & 172 & sn_sss, ln_sssr_bnd, rn_sssr_bnd, nn_sssr_ice 157 173 INTEGER :: ios 158 174 !!---------------------------------------------------------------------- … … 180 196 WRITE(numout,*) ' flag to bound erp term ln_sssr_bnd = ', ln_sssr_bnd 181 197 WRITE(numout,*) ' ABS(Max./Min.) erp threshold rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' 182 ENDIF183 !184 ! !* Allocate erp and qrp array185 ALLOCATE( qrp(jpi,jpj), erp(jpi,jpj), STAT=ierror )186 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_ssr: unable to allocate erp and qrp array' )198 WRITE(numout,*) ' Cntrl of surface restoration under ice nn_sssr_ice = ', nn_sssr_ice 199 WRITE(numout,*) ' ( 0 = no restoration under ice)' 200 WRITE(numout,*) ' ( 1 = restoration everywhere )' 201 WRITE(numout,*) ' (>1 = enhanced restoration under ice )' 202 ENDIF 187 203 ! 188 204 IF( nn_sstr == 1 ) THEN !* set sf_sst structure & allocate arrays … … 214 230 ENDIF 215 231 ! 232 coefice(:,:) = 1._wp ! Initialise coefice to 1._wp ; will not need to be changed if nn_sssr_ice=1 216 233 ! !* Initialize qrp and erp if no restoring 217 234 IF( nn_sstr /= 1 ) qrp(:,:) = 0._wp … … 219 236 ! 220 237 END SUBROUTINE sbc_ssr_init 238 239 INTEGER FUNCTION sbc_ssr_alloc() 240 !!---------------------------------------------------------------------- 241 !! *** FUNCTION sbc_ssr_alloc *** 242 !!---------------------------------------------------------------------- 243 sbc_ssr_alloc = 0 ! set to zero if no array to be allocated 244 IF( .NOT. ALLOCATED( erp ) ) THEN 245 ALLOCATE( qrp(jpi,jpj), erp(jpi,jpj), coefice(jpi,jpj), STAT= sbc_ssr_alloc ) 246 ! 247 IF( lk_mpp ) CALL mpp_sum ( 'sbcssr', sbc_ssr_alloc ) 248 IF( sbc_ssr_alloc /= 0 ) CALL ctl_warn('sbc_ssr_alloc: failed to allocate arrays.') 249 ! 250 ENDIF 251 END FUNCTION 221 252 222 253 !!====================================================================== -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv.F90
r11960 r12193 136 136 ! 137 137 !!gm ??? 138 IF( ln_diaptr ) CALL dia_ptr( Kmm, zvv )! diagnose the effective MSF138 CALL dia_ptr( kt, Kmm, zvv ) ! diagnose the effective MSF 139 139 !!gm ??? 140 140 ! 141 141 142 IF( l_trdtra ) THEN !* Save ta and sa trends 142 143 ALLOCATE( ztrdt(jpi,jpj,jpk), ztrds(jpi,jpj,jpk) ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_cen.F90
r11949 r12193 61 61 !! ** Action : - update pt(:,:,:,:,Krhs) with the now advective tracer trends 62 62 !! - send trends to trdtra module for further diagnostcs (l_trdtra=T) 63 !! - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T)63 !! - poleward advective heat and salt transport (l_diaptr=T) 64 64 !!---------------------------------------------------------------------- 65 65 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 89 89 l_hst = .FALSE. 90 90 l_ptr = .FALSE. 91 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) 92 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.91 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 92 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE. 93 93 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 94 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) 94 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. 95 95 ! 96 96 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_fct.F90
r12145 r12193 68 68 !! ** Action : - update pt(:,:,:,:,Krhs) with the now advective tracer trends 69 69 !! - send trends to trdtra module for further diagnostics (l_trdtra=T) 70 !! - htr_adv, str_adv :poleward advective heat and salt transport (ln_diaptr=T)70 !! - poleward advective heat and salt transport (ln_diaptr=T) 71 71 !!---------------------------------------------------------------------- 72 72 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 101 101 l_ptr = .FALSE. 102 102 ll_zAimp = .FALSE. 103 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype =='TRC' .AND. l_trdtrc ) )l_trd = .TRUE.104 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.105 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. &103 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype =='TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 104 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE. 105 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 106 106 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. 107 107 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_mus.F90
r11949 r12193 68 68 !! ** Action : - update pt(:,:,:,:,Krhs) with the now advective tracer trends 69 69 !! - send trends to trdtra module for further diagnostcs (l_trdtra=T) 70 !! - htr_adv, str_adv :poleward advective heat and salt transport (ln_diaptr=T)70 !! - poleward advective heat and salt transport (ln_diaptr=T) 71 71 !! 72 72 !! References : Estubier, A., and M. Levy, Notes Techn. Pole de Modelisation … … 120 120 l_ptr = .FALSE. 121 121 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 122 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.122 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE. 123 123 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 124 124 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_qck.F90
r11949 r12193 21 21 USE trdtra ! trends manager: tracers 22 22 USE diaptr ! poleward transport diagnostics 23 USE iom 23 24 ! 24 25 USE in_out_manager ! I/O manager … … 79 80 !! ** Action : - update pt(:,:,:,:,Krhs) with the now advective tracer trends 80 81 !! - send trends to trdtra module for further diagnostcs (l_trdtra=T) 81 !! - htr_adv, str_adv :poleward advective heat and salt transport (ln_diaptr=T)82 !! - poleward advective heat and salt transport (ln_diaptr=T) 82 83 !! 83 84 !! ** Reference : Leonard (1979, 1991) … … 102 103 l_trd = .FALSE. 103 104 l_ptr = .FALSE. 104 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) 105 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.105 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 106 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE. 106 107 ! 107 108 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_ubs.F90
r11949 r12193 79 79 !! ** Action : - update pt(:,:,:,:,Krhs) with the now advective tracer trends 80 80 !! - send trends to trdtra module for further diagnostcs (l_trdtra=T) 81 !! - htr_adv, str_adv :poleward advective heat and salt transport (ln_diaptr=T)81 !! - poleward advective heat and salt transport (ln_diaptr=T) 82 82 !! 83 83 !! Reference : Shchepetkin, A. F., J. C. McWilliams, 2005, Ocean Modelling, 9, 347-404. … … 111 111 l_ptr = .FALSE. 112 112 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 113 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.113 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE. 114 114 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 115 115 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trabbc.F90
r11960 r12193 102 102 ENDIF 103 103 ! 104 CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) ) 104 105 IF(ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbc - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 105 106 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf_iso.F90
r11949 r12193 125 125 l_hst = .FALSE. 126 126 l_ptr = .FALSE. 127 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.127 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) ) l_ptr = .TRUE. 128 128 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 129 129 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf_lap_blp.F90
r11949 r12193 90 90 l_hst = .FALSE. 91 91 l_ptr = .FALSE. 92 IF( cdtype == 'TRA' .AND. ln_diaptr ) l_ptr = .TRUE.92 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) ) l_ptr = .TRUE. 93 93 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 94 94 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf_triad.F90
r11949 r12193 111 111 l_hst = .FALSE. 112 112 l_ptr = .FALSE. 113 IF( cdtype == 'TRA' .AND. ln_diaptr )l_ptr = .TRUE.113 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) ) l_ptr = .TRUE. 114 114 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 115 115 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/nemogcm.F90
r12150 r12193 485 485 CALL flo_init( Nnn ) ! drifting Floats 486 486 IF( ln_diacfl ) CALL dia_cfl_init ! Initialise CFL diagnostics 487 CALL dia_ptr_init ! Poleward TRansports initialization487 ! CALL dia_ptr_init ! Poleward TRansports initialization 488 488 CALL dia_dct_init ! Sections tranports 489 489 CALL dia_hsb_init( Nnn ) ! heat content, salt content and volume budgets -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/step.F90
r12150 r12193 196 196 IF(.NOT.ln_linssh) CALL dom_vvl_sf_nxt( kstp, Nbb, Nnn, Naa, kcall=2 ) ! after vertical scale factors (update depth average component) 197 197 ENDIF 198 CALL dyn_zdf( kstp, Nbb, Nnn, Nrhs, uu, vv, Naa ) ! vertical diffusion ==> after 199 200 IF( ln_dynspg_ts ) THEN 201 CALL wzv ( kstp, Nbb, Nnn, ww, Naa ) ! now cross-level velocity 202 IF( ln_zad_Aimp ) CALL wAimp ( kstp, Nnn ) ! Adaptive-implicit vertical advection partitioning 198 CALL dyn_zdf ( kstp, Nbb, Nnn, Nrhs, uu, vv, Naa ) ! vertical diffusion 199 IF( ln_dynspg_ts ) THEN ! vertical scale factors and vertical velocity need to be updated 200 CALL wzv ( kstp, Nbb, Nnn, ww, Naa ) ! now cross-level velocity 201 IF( ln_zad_Aimp ) CALL wAimp ( kstp, Nnn ) ! Adaptive-implicit vertical advection partitioning 203 202 ENDIF 204 203 … … 212 211 ! diagnostics and outputs 213 212 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 214 IF( ln_floats ) CALL flo_stp ( kstp, Nbb, Nnn ) ! drifting Floats 215 IF( ln_diacfl ) CALL dia_cfl ( kstp, Nnn ) ! Courant number diagnostics 216 IF( lk_diahth ) CALL dia_hth ( kstp, Nnn ) ! Thermocline depth (20 degres isotherm depth) 217 IF( ln_diadct ) CALL dia_dct ( kstp, Nnn ) ! Transports 218 CALL dia_ar5 ( kstp, Nnn ) ! ar5 diag 219 IF( ln_diaharm ) CALL dia_harm( kstp, Nnn ) ! Tidal harmonic analysis 220 CALL dia_wri ( kstp, Nnn ) ! ocean model: outputs 213 IF( ln_floats ) CALL flo_stp ( kstp, Nbb, Nnn ) ! drifting Floats 214 IF( ln_diacfl ) CALL dia_cfl ( kstp, Nnn ) ! Courant number diagnostics 215 CALL dia_hth ( kstp, Nnn ) ! Thermocline depth (20 degres isotherm depth) 216 IF( ln_diadct ) CALL dia_dct ( kstp, Nnn ) ! Transports 217 CALL dia_ar5 ( kstp, Nnn ) ! ar5 diag 218 CALL dia_ptr ( kstp, Nnn ) ! Poleward adv/ldf TRansports diagnostics 219 IF( ln_diaharm ) CALL dia_harm( kstp, Nnn ) ! Tidal harmonic analysis 220 CALL dia_wri ( kstp, Nnn ) ! ocean model: outputs 221 221 ! 222 222 IF( ln_crs ) CALL crs_fld ( kstp, Nnn ) ! ocean model: online field coarsening & output … … 253 253 CALL tra_ldf ( kstp, Nbb, Nnn, ts, Nrhs ) ! lateral mixing 254 254 255 !!gm : why CALL to dia_ptr has been moved here??? (use trends info?) 256 IF( ln_diaptr ) CALL dia_ptr( Nnn ) ! Poleward adv/ldf TRansports diagnostics 257 !!gm 258 CALL tra_zdf ( kstp, Nbb, Nnn, Nrhs, ts, Naa ) ! vert. mixing & after tracer ==> after 255 CALL tra_zdf ( kstp, Nbb, Nnn, Nrhs, ts, Naa ) ! vertical mixing and after tracer fields 259 256 IF( ln_zdfnpc ) CALL tra_npc ( kstp, Nnn, Nrhs, ts, Naa ) ! update after fields by non-penetrative convection 260 257 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/MY_TRC/trcsms_my_trc.F90
r11949 r12193 15 15 USE trd_oce 16 16 USE trdtrc 17 USE trcbc, only : trc_bc18 17 19 18 IMPLICIT NONE … … 55 54 IF( l_trdtrc ) ALLOCATE( ztrmyt(jpi,jpj,jpk) ) 56 55 57 CALL trc_bc ( kt, Kmm, Krhs ) ! tracers: surface and lateral Boundary Conditions58 59 56 ! add here the call to BGC model 60 57 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zbc.F90
r12182 r12193 55 55 CONTAINS 56 56 57 SUBROUTINE p4z_bc( kt )57 SUBROUTINE p4z_bc( kt, Kbb, Kmm, Krhs ) 58 58 !!---------------------------------------------------------------------- 59 59 !! *** routine p4z_bc *** … … 66 66 !! 67 67 !!---------------------------------------------------------------------- 68 INTEGER, INTENT(in) :: kt ! ocean time step 68 INTEGER, INTENT(in) :: kt ! ocean time step 69 INTEGER, INTENT(in) :: Kbb, Kmm, Krhs ! time level index 69 70 ! 70 71 INTEGER :: ji, jj, jk, jl … … 86 87 ! 87 88 jl = n_trc_indsbc(jpfer) 88 zirondep(:,:,1) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t _n(:,:,1) / rn_sbc_time89 zirondep(:,:,1) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t(:,:,1,Kmm) / rn_sbc_time 89 90 ! ! Iron solubilization of particles in the water column 90 91 ! ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ; wdust in m/j 91 92 zwdust = 0.03 / ( wdust / rday ) / ( 270. * rday ) 92 93 DO jk = 2, jpkm1 93 zirondep(:,:,jk) = ( mfrac * dust(:,:) * zwdust / mMass_Fe ) * rfact * EXP( -gdept _n(:,:,jk) / 540. )94 tr a(:,:,jk,jpfer) = tra(:,:,jk,jpfer) + zirondep(:,:,jk)95 tr a(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zirondep(:,:,jk) * 0.02394 zirondep(:,:,jk) = ( mfrac * dust(:,:) * zwdust / mMass_Fe ) * rfact * EXP( -gdept(:,:,jk,Kmm) / 540. ) 95 tr(:,:,jk,jpfer,Krhs) = tr(:,:,jk,jpfer,Krhs) + zirondep(:,:,jk) 96 tr(:,:,jk,jppo4,Krhs) = tr(:,:,jk,jppo4,Krhs) + zirondep(:,:,jk) * 0.023 96 97 ENDDO 97 98 ! 98 99 IF( lk_iomput ) THEN 99 100 IF( iom_use( "Irondep" ) ) & 100 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfactr * e3t _n(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron101 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 101 102 IF( iom_use( "pdust" ) ) & 102 103 & CALL iom_put( "pdust" , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface … … 117 118 zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 118 119 zrivdin = rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zcoef 119 tr a(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - rno3 * zrivdin * rfact120 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) - rno3 * zrivdin * rfact 120 121 ENDDO 121 122 END DO … … 129 130 IF( ln_trc_sbc(jpno3) ) THEN 130 131 jl = n_trc_indsbc(jpno3) 131 zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t _n(:,:,1) / rn_sbc_time132 tr a(:,:,1,jptal) = tra(:,:,1,jptal) - rno3 * zndep(:,:) * rfact132 zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t(:,:,1,Kmm) / rn_sbc_time 133 tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * zndep(:,:) * rfact 133 134 ENDIF 134 135 IF( ln_trc_sbc(jpnh4) ) THEN 135 136 jl = n_trc_indsbc(jpnh4) 136 zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t _n(:,:,1) / rn_sbc_time137 tr a(:,:,1,jptal) = tra(:,:,1,jptal) - rno3 * zndep(:,:) * rfact137 zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t(:,:,1,Kmm) / rn_sbc_time 138 tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * zndep(:,:) * rfact 138 139 ENDIF 139 140 DEALLOCATE( zndep ) … … 149 150 DO jj = 1, jpj 150 151 DO ji = 1, jpi 151 zdep = rfact / e3t _n(ji,jj,1)152 zdep = rfact / e3t(ji,jj,1,Kmm) 152 153 zwflux = fmmflx(ji,jj) / 1000._wp 153 zironice(ji,jj) = MAX( -0.99 * tr b(ji,jj,1,jpfer), -zwflux * icefeinput * zdep )154 zironice(ji,jj) = MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 154 155 END DO 155 156 END DO 156 157 ! 157 tr a(:,:,1,jpfer) = tra(:,:,1,jpfer) + zironice(:,:)158 tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) 158 159 ! 159 160 IF( lk_iomput .AND. iom_use( "Ironice" ) ) & 160 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfactr * e3t _n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice161 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 161 162 ! 162 163 DEALLOCATE( zironice ) … … 167 168 ! ------------------------------------------------------ 168 169 IF( ln_ironsed .AND. .NOT.lk_sed ) THEN 169 tr a(:,:,:,jpfer) = tra(:,:,:,jpfer) + ironsed(:,:,:) * rfact170 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact 170 171 ! 171 172 IF( lk_iomput .AND. iom_use( "Ironsed" ) ) & … … 179 180 DO jk = 1, jpk 180 181 hydrofe(:,:,jk) = ( MAX( rtrn, sf_hydrofe(1)%fnow(:,:,jk) ) * hratio ) & 181 & / ( e1e2t(:,:) * e3t _n(:,:,jk) * ryyss + rtrn ) / 1000._wp &182 & / ( e1e2t(:,:) * e3t(:,:,jk,Kmm) * ryyss + rtrn ) / 1000._wp & 182 183 & * tmask(:,:,jk) 183 184 ENDDO 184 tr a(:,:,:,jpfer) = tra(:,:,:,jpfer) + hydrofe(:,:,:) * rfact185 IF( ln_ligand ) tr a(:,:,:,jplgw) = tra(:,:,:,jplgw) + ( hydrofe(:,:,:) * lgw_rath ) * rfact185 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + hydrofe(:,:,:) * rfact 186 IF( ln_ligand ) tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact 186 187 ! 187 188 IF( lk_iomput .AND. iom_use( "HYDR" ) ) & … … 193 194 194 195 195 SUBROUTINE p4z_bc_init 196 SUBROUTINE p4z_bc_init( Kmm ) 196 197 !!---------------------------------------------------------------------- 197 198 !! *** routine p4z_bc_init *** … … 205 206 !! 206 207 !!---------------------------------------------------------------------- 208 INTEGER, INTENT( in ) :: Kmm ! time level index 207 209 INTEGER :: ji, jj, jk, jm 208 210 INTEGER :: ii0, ii1, ij0, ij1 … … 229 231 ENDIF 230 232 ! !* set file information 231 REWIND( numnatp_ref ) ! Namelist nampisbc in reference namelist : Pisces external sources of nutrients232 233 READ ( numnatp_ref, nampisbc, IOSTAT = ios, ERR = 901) 233 234 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbc in reference namelist' ) 234 REWIND( numnatp_cfg ) ! Namelist nampisbc in configuration namelist : Pisces external sources of nutrients235 235 READ ( numnatp_cfg, nampisbc, IOSTAT = ios, ERR = 902 ) 236 236 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampisbc in configuration namelist' ) … … 328 328 DO jj = 1, jpj 329 329 DO ji = 1, jpi 330 zexpide = MIN( 8.,( gdept _n(ji,jj,jk) / 500. )**(-1.5) )330 zexpide = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 331 331 zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 332 332 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) * MIN( 1., EXP( zdenitide ) / 0.5 ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zfechem.F90
r11960 r12193 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 16 USE p4zche ! chemical model 17 USE p4z sbc! Boundary conditions from sediments17 USE p4zbc ! Boundary conditions from sediments 18 18 USE prtctl_trc ! print control for debugging 19 19 USE iom ! I/O manager … … 134 134 ! 135 135 ztrc = ( tr(ji,jj,jk,jppoc,Kbb) + tr(ji,jj,jk,jpgoc,Kbb) + tr(ji,jj,jk,jpcal,Kbb) + tr(ji,jj,jk,jpgsi,Kbb) ) * 1.e6 136 IF( l n_dust ) zdust = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) &136 IF( ll_dust ) zdust = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) & 137 137 & * EXP( -gdept(ji,jj,jk,Kmm) / 540. ) 138 138 IF (ln_ligand) THEN -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zflx.F90
r11960 r12193 161 161 zfld = zfco2 * chemc(ji,jj,1) * zkgco2(ji,jj) ! (mol/L) * (m/s) 162 162 zflu = zh2co3(ji,jj) * zkgco2(ji,jj) ! (mol/L) (m/s) ? 163 oce_co2(ji,jj) = ( zfld - zflu ) * rfact2 * e1e2t(ji,jj) * tmask(ji,jj,1) * 1000.163 oce_co2(ji,jj) = ( zfld - zflu ) * tmask(ji,jj,1) 164 164 ! compute the trend 165 tr(ji,jj,1,jpdic,Krhs) = tr(ji,jj,1,jpdic,Krhs) + ( zfld - zflu ) * rfact2 / e3t(ji,jj,1,Kmm) * tmask(ji,jj,1)165 tr(ji,jj,1,jpdic,Krhs) = tr(ji,jj,1,jpdic,Krhs) + oce_co2(ji,jj) * rfact2 / e3t(ji,jj,1,Kmm) 166 166 167 167 ! Compute O2 flux … … 175 175 IF( iom_use("tcflx") .OR. iom_use("tcflxcum") .OR. kt == nitrst & 176 176 & .OR. (ln_check_mass .AND. kt == nitend) ) & 177 t_oce_co2_flx = glob_sum( 'p4zflx', oce_co2(:,:) ) ! Total Flux of Carbon177 t_oce_co2_flx = glob_sum( 'p4zflx', oce_co2(:,:) * e1e2t(:,:) * 1000. ) ! Total Flux of Carbon 178 178 t_oce_co2_flx_cum = t_oce_co2_flx_cum + t_oce_co2_flx ! Cumulative Total Flux of Carbon 179 179 ! t_atm_co2_flx = glob_sum( 'p4zflx', satmco2(:,:) * e1e2t(:,:) ) ! Total atmospheric pCO2 … … 187 187 188 188 IF( lk_iomput .AND. knt == nrdttrc ) THEN 189 CALL iom_put( "AtmCo2" , satmco2(:,:) * tmask(:,:,1) ) ! Atmospheric CO2 concentration 190 ! 189 191 ALLOCATE( zw2d(jpi,jpj) ) 190 192 IF( iom_use( "Cflx" ) ) THEN 191 zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) * rfact2r193 zw2d(:,:) = oce_co2(:,:) * 1000. ! conversion in molC/m2/s 192 194 CALL iom_put( "Cflx" , zw2d ) 193 195 ENDIF 194 196 IF( iom_use( "Oflx" ) ) THEN 195 zw2d(:,:) = zoflx(:,:) * 1000 * tmask(:,:,1)197 zw2d(:,:) = zoflx(:,:) * 1000. 196 198 CALL iom_put( "Oflx" , zw2d ) 197 199 ENDIF … … 204 206 CALL iom_put( "Dpco2" , zw2d ) 205 207 ENDIF 208 IF( iom_use( "pCO2sea" ) ) THEN 209 zw2d(:,:) = ( zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 210 CALL iom_put( "pCO2sea" , zw2d ) 211 ENDIF 212 206 213 IF( iom_use( "Dpo2" ) ) THEN 207 214 zw2d(:,:) = ( atcox * patm(:,:) - atcox * tr(:,:,1,jpoxy,Kbb) / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) 208 215 CALL iom_put( "Dpo2" , zw2d ) 209 216 ENDIF 210 CALL iom_put( "tcflx" , t_oce_co2_flx * rfact2r) ! molC/s211 CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum 217 CALL iom_put( "tcflx" , t_oce_co2_flx ) ! molC/s 218 CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum ) ! molC 212 219 ! 213 220 DEALLOCATE( zw2d ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsed.F90
r11949 r12193 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 16 USE p4zlim ! Co-limitations of differents nutrients 17 USE p4zsbc ! External source of nutrients18 17 USE p4zint ! interpolation and computation of various fields 19 18 USE sed ! Sediment module … … 25 24 26 25 PUBLIC p4z_sed 26 PUBLIC p4z_sed_init 27 27 PUBLIC p4z_sed_alloc 28 28 29 REAL(wp), PUBLIC :: nitrfix !: Nitrogen fixation rate 30 REAL(wp), PUBLIC :: diazolight !: Nitrogen fixation sensitivty to light 31 REAL(wp), PUBLIC :: concfediaz !: Fe half-saturation Cste for diazotrophs 32 29 33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrpot !: Nitrogen fixation 30 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,: ) :: sdenit !: Nitrate reduction in the sediments 31 REAL(wp) :: r1_rday !: inverse of rday 32 LOGICAL, SAVE :: lk_sed 35 ! 36 REAL(wp), SAVE :: r1_rday 37 REAL(wp), SAVE :: sedsilfrac, sedcalfrac 33 38 34 39 !!---------------------------------------------------------------------- … … 54 59 INTEGER :: ji, jj, jk, ikt 55 60 REAL(wp) :: zrivalk, zrivsil, zrivno3 56 REAL(wp) :: z wflux, zlim, zfact, zfactcal61 REAL(wp) :: zlim, zfact, zfactcal 57 62 REAL(wp) :: zo2, zno3, zflx, zpdenit, z1pdenit, zolimit 58 63 REAL(wp) :: zsiloss, zcaloss, zws3, zws4, zwsc, zdep … … 67 72 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight 68 73 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zpdep 69 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zsidep, zironice70 74 !!--------------------------------------------------------------------- 71 75 ! 72 76 IF( ln_timing ) CALL timing_start('p4z_sed') 73 77 ! 74 IF( kt == nittrc000 .AND. knt == 1 ) THEN 75 r1_rday = 1. / rday 76 IF (ln_sediment .AND. ln_sed_2way) THEN 77 lk_sed = .TRUE. 78 ELSE 79 lk_sed = .FALSE. 80 ENDIF 81 ENDIF 82 ! 83 IF( kt == nittrc000 .AND. knt == 1 ) r1_rday = 1. / rday 84 ! 78 85 79 ! Allocate temporary workspace 86 80 ALLOCATE( ztrpo4(jpi,jpj,jpk) ) … … 94 88 zsedc (:,:) = 0.e0 95 89 96 ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. 97 ! ---------------------------------------------------- 98 IF( ln_ironice ) THEN 99 ! 100 ALLOCATE( zironice(jpi,jpj) ) 101 ! 90 IF( .NOT.lk_sed ) THEN 91 ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 92 ! -------------------------------------------------------------------- 102 93 DO jj = 1, jpj 103 94 DO ji = 1, jpi 104 zdep = rfact2 / e3t(ji,jj,1,Kmm) 105 zwflux = fmmflx(ji,jj) / 1000._wp 106 zironice(ji,jj) = MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 107 END DO 108 END DO 109 ! 110 tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) 111 ! 112 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironice" ) ) & 113 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 114 ! 115 DEALLOCATE( zironice ) 116 ! 117 ENDIF 118 119 ! Add the external input of nutrients from dust deposition 120 ! ---------------------------------------------------------- 121 IF( ln_dust ) THEN 122 ! 123 ALLOCATE( zsidep(jpi,jpj), zpdep(jpi,jpj,jpk), zirondep(jpi,jpj,jpk) ) 124 ! ! Iron and Si deposition at the surface 125 IF( ln_solub ) THEN 126 zirondep(:,:,1) = solub(:,:) * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 55.85 + 3.e-10 * r1_ryyss 127 ELSE 128 zirondep(:,:,1) = dustsolub * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 55.85 + 3.e-10 * r1_ryyss 129 ENDIF 130 zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 28.1 131 zpdep (:,:,1) = 0.1 * 0.021 * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 31. / po4r 132 ! ! Iron solubilization of particles in the water column 133 ! ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ; wdust in m/j 134 zwdust = 0.03 * rday / ( wdust * 55.85 ) / ( 270. * rday ) 135 DO jk = 2, jpkm1 136 zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -gdept(:,:,jk,Kmm) / 540. ) 137 zpdep (:,:,jk) = zirondep(:,:,jk) * 0.023 138 END DO 139 ! ! Iron solubilization of particles in the water column 140 tr(:,:,1,jpsil,Krhs) = tr(:,:,1,jpsil,Krhs) + zsidep (:,:) 141 DO jk = 1, jpkm1 142 tr(:,:,jk,jppo4,Krhs) = tr(:,:,jk,jppo4,Krhs) + zpdep (:,:,jk) 143 tr(:,:,jk,jpfer,Krhs) = tr(:,:,jk,jpfer,Krhs) + zirondep(:,:,jk) 144 ENDDO 145 ! 146 IF( lk_iomput ) THEN 147 IF( knt == nrdttrc ) THEN 148 IF( iom_use( "Irondep" ) ) & 149 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 150 IF( iom_use( "pdust" ) ) & 151 & CALL iom_put( "pdust" , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 152 ENDIF 153 ENDIF 154 DEALLOCATE( zsidep, zpdep, zirondep ) 155 ! 156 ENDIF 157 158 ! Add the external input of nutrients from river 159 ! ---------------------------------------------------------- 160 IF( ln_river ) THEN 161 DO jj = 1, jpj 162 DO ji = 1, jpi 163 DO jk = 1, nk_rnf(ji,jj) 164 tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) + rivdip(ji,jj) * rfact2 165 tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) + rivdin(ji,jj) * rfact2 166 tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + rivdic(ji,jj) * 5.e-5 * rfact2 167 tr(ji,jj,jk,jpsil,Krhs) = tr(ji,jj,jk,jpsil,Krhs) + rivdsi(ji,jj) * rfact2 168 tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + rivdic(ji,jj) * rfact2 169 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + ( rivalk(ji,jj) - rno3 * rivdin(ji,jj) ) * rfact2 170 tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + rivdoc(ji,jj) * rfact2 171 ENDDO 172 ENDDO 173 ENDDO 174 IF (ln_ligand) THEN 175 DO jj = 1, jpj 176 DO ji = 1, jpi 177 DO jk = 1, nk_rnf(ji,jj) 178 tr(ji,jj,jk,jplgw,Krhs) = tr(ji,jj,jk,jplgw,Krhs) + rivdic(ji,jj) * 5.e-5 * rfact2 179 ENDDO 180 ENDDO 181 ENDDO 182 ENDIF 183 IF( ln_p5z ) THEN 184 DO jj = 1, jpj 185 DO ji = 1, jpi 186 DO jk = 1, nk_rnf(ji,jj) 187 tr(ji,jj,jk,jpdop,Krhs) = tr(ji,jj,jk,jpdop,Krhs) + rivdop(ji,jj) * rfact2 188 tr(ji,jj,jk,jpdon,Krhs) = tr(ji,jj,jk,jpdon,Krhs) + rivdon(ji,jj) * rfact2 189 ENDDO 190 ENDDO 191 ENDDO 192 ENDIF 193 ENDIF 194 195 ! Add the external input of nutrients from nitrogen deposition 196 ! ---------------------------------------------------------- 197 IF( ln_ndepo ) THEN 198 tr(:,:,1,jpno3,Krhs) = tr(:,:,1,jpno3,Krhs) + nitdep(:,:) * rfact2 199 tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * nitdep(:,:) * rfact2 200 ENDIF 201 202 ! Add the external input of iron from hydrothermal vents 203 ! ------------------------------------------------------ 204 IF( ln_hydrofe ) THEN 205 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + hydrofe(:,:,:) * rfact2 206 IF( ln_ligand ) THEN 207 tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact2 208 ENDIF 209 ! 210 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "HYDR" ) ) & 211 & CALL iom_put( "HYDR", hydrofe(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! hydrothermal iron input 212 ENDIF 213 214 ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 215 ! -------------------------------------------------------------------- 216 DO jj = 1, jpj 217 DO ji = 1, jpi 218 ikt = mbkt(ji,jj) 219 zdep = e3t(ji,jj,ikt,Kmm) / xstep 220 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 221 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 222 END DO 223 END DO 224 ! 225 IF( .NOT.lk_sed ) THEN 226 ! 227 ! Add the external input of iron from sediment mobilization 228 ! ------------------------------------------------------ 229 IF( ln_ironsed ) THEN 230 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact2 231 ! 232 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironsed" ) ) & 233 & CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! iron inputs from sediments 234 ENDIF 95 ikt = mbkt(ji,jj) 96 zdep = e3t(ji,jj,ikt,Kmm) / xstep 97 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 98 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 99 END DO 100 END DO 235 101 236 102 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used … … 495 361 END SUBROUTINE p4z_sed 496 362 363 SUBROUTINE p4z_sed_init 364 !!---------------------------------------------------------------------- 365 !! *** routine p4z_sed_init *** 366 !! 367 !! ** purpose : initialization of some parameters 368 !! 369 !!---------------------------------------------------------------------- 370 !!---------------------------------------------------------------------- 371 INTEGER :: ji, jj, jk, jm 372 INTEGER :: ios ! Local integer output status for namelist read 373 ! 374 !! 375 NAMELIST/nampissed/ nitrfix, diazolight, concfediaz 376 !!---------------------------------------------------------------------- 377 ! 378 IF(lwp) THEN 379 WRITE(numout,*) 380 WRITE(numout,*) 'p4z_sed_init : initialization of sediment mobilisation ' 381 WRITE(numout,*) '~~~~~~~~~~~~ ' 382 ENDIF 383 ! !* set file information 384 READ ( numnatp_ref, nampissed, IOSTAT = ios, ERR = 901) 385 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissed in reference namelist' ) 386 READ ( numnatp_cfg, nampissed, IOSTAT = ios, ERR = 902 ) 387 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampissed in configuration namelist' ) 388 IF(lwm) WRITE ( numonp, nampissed ) 389 390 IF(lwp) THEN 391 WRITE(numout,*) ' Namelist : nampissed ' 392 WRITE(numout,*) ' nitrogen fixation rate nitrfix = ', nitrfix 393 WRITE(numout,*) ' nitrogen fixation sensitivty to light diazolight = ', diazolight 394 WRITE(numout,*) ' Fe half-saturation cste for diazotrophs concfediaz = ', concfediaz 395 ENDIF 396 ! 397 r1_rday = 1. / rday 398 ! 399 sedsilfrac = 0.03 ! percentage of silica loss in the sediments 400 sedcalfrac = 0.6 ! percentage of calcite loss in the sediments 401 ! 402 lk_sed = ln_sediment .AND. ln_sed_2way 403 ! 404 END SUBROUTINE p4z_sed_init 497 405 498 406 INTEGER FUNCTION p4z_sed_alloc() -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsms.F90
r11960 r12193 17 17 USE p4zlys ! Calcite saturation 18 18 USE p4zflx ! Gas exchange 19 USE p4z sbc! External source of nutrients19 USE p4zbc ! External source of nutrients 20 20 USE p4zsed ! Sedimentation 21 21 USE p4zint ! time interpolation … … 35 35 INTEGER :: numco2, numnut, numnit ! logical unit for co2 budget 36 36 REAL(wp) :: alkbudget, no3budget, silbudget, ferbudget, po4budget 37 REAL(wp) :: xfact 1, xfact2, xfact337 REAL(wp) :: xfact, xfact1, xfact2, xfact3 38 38 39 39 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnegtr ! Array used to indicate negative tracer values … … 64 64 REAL(wp) :: ztra 65 65 CHARACTER (len=25) :: charout 66 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d 67 REAL(wp), ALLOCATABLE, DIMENSION(:,:,: ) :: zw3d 68 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrdt ! 4D workspace 69 66 70 !!--------------------------------------------------------------------- 67 71 ! … … 86 90 rfact = r2dttrc 87 91 ! 92 ! trends computation initialisation 93 IF( l_trdtrc ) THEN 94 ALLOCATE( ztrdt(jpi,jpj,jpk,jp_pisces) ) !* store now fields before applying the Asselin filter 95 ztrdt(:,:,:,:) = tr(:,:,:,:,Kmm) 96 ENDIF 97 ! 98 88 99 IF( ( ln_top_euler .AND. kt == nittrc000 ) .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + 1 ) ) THEN 89 100 rfactr = 1. / rfact … … 91 102 rfact2r = 1. / rfact2 92 103 xstep = rfact2 / rday ! Time step duration for biology 104 xfact = 1.e+3 * rfact2r 93 105 IF(lwp) WRITE(numout,*) 94 106 IF(lwp) WRITE(numout,*) ' Passive Tracer time step rfact = ', rfact, ' rdt = ', rdt … … 103 115 ENDIF 104 116 ! 105 IF( ll_ sbc ) CALL p4z_sbc( kt, Kmm) ! external sources of nutrients117 IF( ll_bc ) CALL p4z_bc( kt, Kbb, Kmm, Krhs ) ! external sources of nutrients 106 118 ! 107 119 #if ! defined key_sed_off … … 135 147 END DO 136 148 ! 149 IF( iom_use( 'INTdtAlk' ) .OR. iom_use( 'INTdtDIC' ) .OR. iom_use( 'INTdtFer' ) .OR. & 150 & iom_use( 'INTdtDIN' ) .OR. iom_use( 'INTdtDIP' ) .OR. iom_use( 'INTdtSil' ) ) THEN 151 ! 152 ALLOCATE( zw3d(jpi,jpj,jpk), zw2d(jpi,jpj) ) 153 zw3d(:,:,jpk) = 0. 154 DO jk = 1, jpkm1 155 zw3d(:,:,jk) = xnegtr(:,:,jk) * xfact * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 156 ENDDO 157 ! 158 zw2d(:,:) = 0. 159 DO jk = 1, jpkm1 160 zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jptal,Krhs) 161 ENDDO 162 CALL iom_put( 'INTdtAlk', zw2d ) 163 ! 164 zw2d(:,:) = 0. 165 DO jk = 1, jpkm1 166 zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jpdic,Krhs) 167 ENDDO 168 CALL iom_put( 'INTdtDIC', zw2d ) 169 ! 170 zw2d(:,:) = 0. 171 DO jk = 1, jpkm1 172 zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * rno3 * ( tr(:,:,jk,jpno3,Krhs) + tr(:,:,jk,jpnh4,Krhs) ) 173 ENDDO 174 CALL iom_put( 'INTdtDIN', zw2d ) 175 ! 176 zw2d(:,:) = 0. 177 DO jk = 1, jpkm1 178 zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * po4r * tr(:,:,jk,jppo4,Krhs) 179 ENDDO 180 CALL iom_put( 'INTdtDIP', zw2d ) 181 ! 182 zw2d(:,:) = 0. 183 DO jk = 1, jpkm1 184 zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jpfer,Krhs) 185 ENDDO 186 CALL iom_put( 'INTdtFer', zw2d ) 187 ! 188 zw2d(:,:) = 0. 189 DO jk = 1, jpkm1 190 zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jpsil,Krhs) 191 ENDDO 192 CALL iom_put( 'INTdtSil', zw2d ) 193 ! 194 DEALLOCATE( zw3d, zw2d ) 195 ENDIF 196 ! 137 197 DO jn = jp_pcs0, jp_pcs1 138 198 tr(:,:,:,jn,Krhs) = 0._wp … … 145 205 ENDIF 146 206 END DO 147 148 207 ! 149 208 IF( l_trdtrc ) THEN 150 209 DO jn = jp_pcs0, jp_pcs1 210 ztrdt(:,:,:,jn) = ( tr(:,:,:,jn,Kbb) - ztrdt(:,:,:,jn) ) * rfact2r 151 211 CALL trd_trc( tr(:,:,:,jn,Krhs), jn, jptra_sms, kt, Kmm ) ! save trends 152 212 END DO 213 DEALLOCATE( ztrdt ) 153 214 END IF 154 215 #endif -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/SED/oce_sed.F90
r11949 r12193 49 49 USE p4zche, ONLY : sulfat => sulfat !: Chemical constants 50 50 USE p4zche, ONLY : sio3eq => sio3eq !: Chemical constants 51 USE p4z sbc, ONLY : dust => dust52 USE trc 51 USE p4zbc, ONLY : dust => dust 52 USE trc , ONLY : r2dttrc => r2dttrc 53 53 54 54 END MODULE oce_sed -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/par_pisces.F90
r10416 r12193 6 6 !! History : 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture 7 7 !!---------------------------------------------------------------------- 8 USE par_kind 8 9 9 10 IMPLICIT NONE … … 60 61 !! Default No CFC geochemical model 61 62 ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 62 INTEGER, PUBLIC :: jp_pcs0 !: First index of PISCES tracers 63 INTEGER, PUBLIC :: jp_pcs1 !: Last index of PISCES tracers 63 INTEGER, PUBLIC :: jp_pcs0 !: First index of PISCES tracers 64 INTEGER, PUBLIC :: jp_pcs1 !: Last index of PISCES tracers 65 66 REAL(wp), PUBLIC :: mMass_C = 12.00 ! Molar mass of carbon 67 REAL(wp), PUBLIC :: mMass_N = 14.00 ! Molar mass of nitrogen 68 REAL(wp), PUBLIC :: mMass_P = 31.00 ! Molar mass of phosphorus 69 REAL(wp), PUBLIC :: mMass_Fe = 55.85 ! Molar mass of iron 70 REAL(wp), PUBLIC :: mMass_Si = 28.00 ! Molar mass of silver 64 71 65 72 !!---------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/sms_pisces.F90
r11960 r12193 121 121 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tgfunc2 !: Temp. dependancy of mesozooplankton rates 122 122 123 LOGICAL, SAVE :: lk_sed 124 123 125 !!---------------------------------------------------------------------- 124 126 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/trcini_pisces.F90
r11949 r12193 59 59 USE p4zsink ! vertical flux of particulate matter due to sinking 60 60 USE p4zopt ! optical model 61 USE p4z sbc ! Boundary conditions61 USE p4zbc ! Boundary conditions 62 62 USE p4zfechem ! Iron chemistry 63 63 USE p4zrem ! Remineralisation of organic matter … … 256 256 CALL p5z_prod_init ! phytoplankton growth rate over the global ocean. 257 257 ENDIF 258 CALL p4z_ sbc_init( Kmm )! boundary conditions258 CALL p4z_bc_init( Kmm ) ! boundary conditions 259 259 CALL p4z_fechem_init ! Iron chemistry 260 260 CALL p4z_rem_init ! remineralisation … … 277 277 278 278 ! Initialization of the sediment model 279 IF( ln_sediment) CALL sed_init 279 IF( ln_sediment) & 280 & CALL sed_init ! Initialization of the sediment model 281 282 CALL p4z_sed_init ! loss of organic matter in the sediments 280 283 281 284 IF(lwp) WRITE(numout,*) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trctrp.F90
r11949 r12193 23 23 USE trcrad ! positivity (trc_rad routine) 24 24 USE trcsbc ! surface boundary condition (trc_sbc routine) 25 USE trcbc ! Tracers boundary condtions ( trc_bc routine) 25 26 USE zpshde ! partial step: hor. derivative (zps_hde routine) 26 27 USE bdy_oce , ONLY: ln_bdy … … 61 62 IF( .NOT. lk_c1d ) THEN 62 63 ! 63 CALL trc_sbc ( kt, Kmm, tr, Krhs ) ! surface boundary condition 64 IF( ln_trabbl ) CALL trc_bbl ( kt, Kbb, Kmm, tr, Krhs ) ! advective (and/or diffusive) bottom boundary layer scheme 65 IF( ln_trcdmp ) CALL trc_dmp ( kt, Kbb, Kmm, tr, Krhs ) ! internal damping trends 64 CALL trc_sbc ( kt, Kmm, tr, Krhs ) ! surface boundary condition 65 IF( ln_trcbc .AND. lltrcbc .AND. kt /= nit000 ) & 66 CALL trc_bc ( kt, Kmm, tr, Krhs ) ! tracers: surface and lateral Boundary Conditions 67 IF( ln_trabbl ) CALL trc_bbl ( kt, Kbb, Kmm, tr, Krhs ) ! advective (and/or diffusive) bottom boundary layer scheme 68 IF( ln_trcdmp ) CALL trc_dmp ( kt, Kbb, Kmm, tr, Krhs ) ! internal damping trends 66 69 IF( ln_bdy ) CALL trc_bdy_dmp( kt, Kbb, Krhs ) ! BDY damping trends 67 CALL trc_adv ( kt, Kbb, Kmm, tr, Krhs ) ! horizontal & vertical advection68 ! ! Partial top/bottom cell: GRADh( tr(Kbb))70 CALL trc_adv ( kt, Kbb, Kmm, tr, Krhs ) ! horizontal & vertical advection 71 ! ! Partial top/bottom cell: GRADh( trb ) 69 72 IF( ln_zps ) THEN 70 73 IF( ln_isfcav ) THEN ; CALL zps_hde_isf( kt, Kmm, jptra, tr(:,:,:,:,Kbb), pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! both top & bottom -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trc.F90
r11960 r12193 65 65 LOGICAL , PUBLIC :: ln_top_euler !: boolean term for euler integration 66 66 LOGICAL , PUBLIC :: ln_trcdta !: Read inputs data from files 67 LOGICAL , PUBLIC :: ln_trcbc !: Enable surface, lateral or open boundaries conditions 67 68 LOGICAL , PUBLIC :: ln_trcdmp !: internal damping flag 68 69 LOGICAL , PUBLIC :: ln_trcdmp_clo !: internal damping flag on closed seas … … 115 116 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ln_trc_cbc !: Use coastal boundary condition data 116 117 LOGICAL , PUBLIC :: ln_rnf_ctl !: remove runoff dilution on tracers 117 REAL(wp), PUBLIC :: rn_bc_time !: Time scaling factor for SBC and CBC data (seconds in a day) 118 REAL(wp), PUBLIC :: rn_sbc_time !: Time scaling factor for SBC data (seconds in a day) 119 REAL(wp), PUBLIC :: rn_cbc_time !: Time scaling factor for CBC data (seconds in a day) 120 LOGICAL , PUBLIC :: lltrcbc !: Applying one of the boundary conditions 118 121 ! 119 122 CHARACTER(len=20), PUBLIC, DIMENSION(jp_bdy) :: cn_trc_dflt ! Default OBC condition for all tracers -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcbc.F90
r11960 r12193 82 82 !! 83 83 NAMELIST/namtrc_bc/ cn_dir_obc, sn_trcobc, rn_trofac, cn_dir_sbc, sn_trcsbc, rn_trsfac, & 84 & cn_dir_cbc, sn_trccbc, rn_trcfac, ln_rnf_ctl, rn_ bc_time84 & cn_dir_cbc, sn_trccbc, rn_trcfac, ln_rnf_ctl, rn_sbc_time, rn_cbc_time 85 85 NAMELIST/namtrc_bdy/ cn_trc_dflt, cn_trc, nn_trcdmp_bdy 86 86 !!---------------------------------------------------------------------- … … 336 336 337 337 338 SUBROUTINE trc_bc(kt, Kmm, Krhs, jit)338 SUBROUTINE trc_bc(kt, Kmm, ptr, Krhs, jit) 339 339 !!---------------------------------------------------------------------- 340 340 !! *** ROUTINE trc_bc *** … … 347 347 USE fldread 348 348 !! 349 INTEGER, INTENT(in) :: kt ! ocean time-step index 350 INTEGER, INTENT(in) :: Kmm, Krhs ! time level indices 351 INTEGER, INTENT(in), OPTIONAL :: jit ! subcycle time-step index (for timesplitting option) 349 INTEGER , INTENT(in) :: kt ! ocean time-step index 350 INTEGER , INTENT(in) :: Kmm, Krhs ! time level indices 351 INTEGER , INTENT(in), OPTIONAL :: jit ! subcycle time-step index (for timesplitting option) 352 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 352 353 !! 353 354 INTEGER :: ji, jj, jk, jn, jl ! Loop index … … 416 417 DO jk = 1, nk_rnf(ji,jj) 417 418 zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rau0 / h_rnf(ji,jj) 418 tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + (tr(ji,jj,jk,jn,Kmm) * zrnf)419 ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + (ptr(ji,jj,jk,jn,Kmm) * zrnf) 419 420 END DO 420 421 END DO … … 427 428 IF( ln_trc_sbc(jn) ) THEN 428 429 jl = n_trc_indsbc(jn) 430 sf_trcsbc(jl)%fnow(:,:,1) = MAX( rtrn, sf_trcsbc(jl)%fnow(:,:,1) ) ! avoid nedgative value due to interpolation 429 431 DO jj = 2, jpj 430 432 DO ji = fs_2, fs_jpim1 ! vector opt. 431 zfact = 1. / ( e3t(ji,jj,1,Kmm) * rn_ bc_time )432 tr(ji,jj,1,jn,Krhs) =tr(ji,jj,1,jn,Krhs) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact433 zfact = 1. / ( e3t(ji,jj,1,Kmm) * rn_sbc_time ) 434 ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact 433 435 END DO 434 436 END DO … … 436 438 ! 437 439 ! COASTAL boundary conditions 438 IF( ln_rnf .AND. ln_trc_cbc(jn) ) THEN 440 IF( ( ln_rnf .OR. l_offline ) .AND. ln_trc_cbc(jn) ) THEN 441 IF( l_offline ) rn_rfact = 1._wp 439 442 jl = n_trc_indcbc(jn) 440 443 DO jj = 2, jpj 441 444 DO ji = fs_2, fs_jpim1 ! vector opt. 442 445 DO jk = 1, nk_rnf(ji,jj) 443 zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_ bc_time )444 tr(ji,jj,jk,jn,Krhs) =tr(ji,jj,jk,jn,Krhs) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact446 zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 447 ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact 445 448 END DO 446 449 END DO -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcdta.F90
r11960 r12193 177 177 ! 178 178 IF( ln_timing ) CALL timing_start('trc_dta') 179 ! 180 IF( kt == nit000 .AND. lwp) THEN 181 WRITE(numout,*) 182 WRITE(numout,*) 'trc_dta : passive tracers data for IC' 183 WRITE(numout,*) '~~~~~~~ ' 184 ENDIF 179 185 ! 180 186 IF( nb_trcdta > 0 ) THEN -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcini.F90
r11949 r12193 24 24 USE lib_mpp ! distribued memory computing library 25 25 USE trcice ! tracers in sea ice 26 USE trcbc, only : trc_bc_ini ! generalized Boundary Conditions 27 USE trcstp ! for time level indices (to be initialised) 26 USE trcbc ! generalized Boundary Conditions 28 27 29 28 IMPLICIT NONE … … 177 176 ln_trc_obc(jn) = sn_tracer(jn)%llobc 178 177 END DO 178 ! 179 IF( .NOT.ln_trcbc ) THEN 180 DO jn = 1, jp_bgc 181 ln_trc_sbc(jn) = .FALSE. 182 ln_trc_cbc(jn) = .FALSE. 183 ln_trc_obc(jn) = .FALSE. 184 END DO 185 ENDIF 186 187 lltrcbc = ( COUNT(ln_trc_sbc) + COUNT(ln_trc_obc) + COUNT(ln_trc_cbc) ) > 0 179 188 ! 180 189 IF( ln_pisces ) CALL trc_ini_pisces( Kmm ) ! PISCES model … … 193 202 END DO 194 203 ENDIF 204 IF( lwp .AND. ln_trcbc .AND. lltrcbc ) THEN 205 WRITE(numout,*) 206 WRITE(numout,*) ' Applying tracer boundary conditions ' 207 ENDIF 208 195 209 9001 FORMAT(3x,i3,1x,a10,3x,l2,3x,l2,3x,l2,3x,l2) 196 210 ! … … 238 252 IF( ln_trcdta ) CALL trc_dta_ini( jptra ) ! set initial tracers values 239 253 ! 240 IF( ln_my_trc ) CALL trc_bc_ini ( jptra, Kmm ) ! set tracers Boundary Conditions 254 IF( ln_trcbc .AND. lltrcbc ) THEN 255 CALL trc_bc_ini ( jptra, Kmm ) ! set tracers Boundary Conditions 256 CALL trc_bc ( nit000, Kmm, tr, Kaa ) ! tracers: surface and lateral Boundary Conditions 257 ENDIF 241 258 ! 242 259 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcnam.F90
r11960 r12193 138 138 !! 139 139 NAMELIST/namtrc/jp_bgc, ln_pisces, ln_my_trc, ln_age, ln_cfc11, ln_cfc12, ln_sf6, ln_c14, & 140 & sn_tracer, ln_trcdta, ln_trc dmp, ln_trcdmp_clo, jp_dia3d, jp_dia2d140 & sn_tracer, ln_trcdta, ln_trcbc, ln_trcdmp, ln_trcdmp_clo, jp_dia3d, jp_dia2d 141 141 !!--------------------------------------------------------------------- 142 142 ! Dummy settings to fill tracers data structure … … 210 210 WRITE(numout,*) ' Simulating C14 passive tracer ln_c14 = ', ln_c14 211 211 WRITE(numout,*) ' Read inputs data from file (y/n) ln_trcdta = ', ln_trcdta 212 WRITE(numout,*) ' Enable surface, lateral or open boundaries conditions (y/n) ln_trcbc = ', ln_trcbc 212 213 WRITE(numout,*) ' Damping of passive tracer (y/n) ln_trcdmp = ', ln_trcdmp 213 214 WRITE(numout,*) ' Restoring of tracer on closed seas ln_trcdmp_clo = ', ln_trcdmp_clo -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/CANAL/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 21 24 <!-- Files definition --> 22 25 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <!-- 24 ============================================================================================================ 25 = grid definition = = DO NOT CHANGE = 26 ============================================================================================================ 27 --> 28 29 <axis_definition> 30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 39 </axis_definition> 26 27 <!-- Axis definition --> 28 <axis_definition src="./axis_def_nemo.xml"/> 40 29 30 <!-- Domain definition --> 41 31 <domain_definition src="./domain_def_nemo.xml"/> 32 33 <!-- Grids definition --> 34 <grid_definition src="./grid_def_nemo.xml"/> 42 35 43 <grid_definition src="./grid_def_nemo.xml"/>44 36 45 37 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ICE_ADV1D/EXPREF/context_nemo.xml
r10413 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 23 26 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 27 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 28 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ICE_ADV2D/EXPREF/context_nemo.xml
r10515 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 23 26 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 27 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 28 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ICE_AGRIF/EXPREF/context_nemo.xml
r9930 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 23 26 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 24 27 <file_definition src="./file_def_nemo-ice.xml"/> <!-- NEMO sea-ice model --> 25 <!-- 26 ============================================================================================================ 27 = grid definition = = DO NOT CHANGE = 28 ============================================================================================================ 29 --> 30 31 <axis_definition> 32 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 33 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 34 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 35 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 36 <axis id="nfloat" long_name="Float number" unit="-" /> 37 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 38 <axis id="ncatice" long_name="Ice category" unit="1" /> 39 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 40 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 41 </axis_definition> 28 29 30 <!-- Axis definition --> 31 <axis_definition src="./axis_def_nemo.xml"/> 42 32 33 <!-- Domain definition --> 43 34 <domain_definition src="./domain_def_nemo.xml"/> 35 36 <!-- Grids definition --> 37 <grid_definition src="./grid_def_nemo.xml"/> 44 38 45 <grid_definition src="./grid_def_nemo.xml"/>46 39 47 40 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ISOMIP/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 21 24 <!-- Files definition --> 22 25 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <!-- 24 ============================================================================================================ 25 = grid definition = = DO NOT CHANGE = 26 ============================================================================================================ 27 --> 28 29 <axis_definition> 30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 39 </axis_definition> 26 27 <!-- Axis definition --> 28 <axis_definition src="./axis_def_nemo.xml"/> 40 29 30 <!-- Domain definition --> 41 31 <domain_definition src="./domain_def_nemo.xml"/> 32 33 <!-- Grids definition --> 34 <grid_definition src="./grid_def_nemo.xml"/> 42 35 43 <grid_definition src="./grid_def_nemo.xml"/>44 36 45 37 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/LOCK_EXCHANGE/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 21 24 <!-- Files definition --> 22 25 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <!-- 24 ============================================================================================================ 25 = grid definition = = DO NOT CHANGE = 26 ============================================================================================================ 27 --> 28 29 <axis_definition> 30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 39 </axis_definition> 26 27 <!-- Axis definition --> 28 <axis_definition src="./axis_def_nemo.xml"/> 40 29 30 <!-- Domain definition --> 41 31 <domain_definition src="./domain_def_nemo.xml"/> 32 33 <!-- Grids definition --> 34 <grid_definition src="./grid_def_nemo.xml"/> 42 35 43 <grid_definition src="./grid_def_nemo.xml"/>44 36 45 37 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/OVERFLOW/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 21 24 <!-- Files definition --> 22 25 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <!-- 24 ============================================================================================================ 25 = grid definition = = DO NOT CHANGE = 26 ============================================================================================================ 27 --> 28 29 <axis_definition> 30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 39 </axis_definition> 26 27 <!-- Axis definition --> 28 <axis_definition src="./axis_def_nemo.xml"/> 40 29 30 <!-- Domain definition --> 41 31 <domain_definition src="./domain_def_nemo.xml"/> 32 33 <!-- Grids definition --> 34 <grid_definition src="./grid_def_nemo.xml"/> 42 35 43 <grid_definition src="./grid_def_nemo.xml"/>44 36 45 37 </context> -
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/WAD/EXPREF/context_nemo.xml
r11536 r12193 5 5 --> 6 6 <context id="nemo"> 7 <!-- $id$ -->7 <!-- $id$ --> 8 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 9 <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 10 <variable id="ref_year" type="int"> 1900 </variable> 11 <variable id="ref_month" type="int"> 01 </variable> 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="rau0" type="float" > 1026.0 </variable> 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 16 <variable id="rhoic" type="float" > 917.0 </variable> 17 <variable id="rhosn" type="float" > 330.0 </variable> 18 <variable id="missval" type="float" > 1.e20 </variable> 17 19 </variable_definition> 20 18 21 <!-- Fields definition --> 19 22 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 21 24 <!-- Files definition --> 22 25 <file_definition src="./file_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> 23 <!-- 24 ============================================================================================================ 25 = grid definition = = DO NOT CHANGE = 26 ============================================================================================================ 27 --> 28 29 <axis_definition> 30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 39 </axis_definition> 26 27 <!-- Axis definition --> 28 <axis_definition src="./axis_def_nemo.xml"/> 40 29 30 <!-- Domain definition --> 41 31 <domain_definition src="./domain_def_nemo.xml"/> 32 33 <!-- Grids definition --> 34 <grid_definition src="./grid_def_nemo.xml"/> 42 35 43 <grid_definition src="./grid_def_nemo.xml"/>44 36 45 37 </context>
Note: See TracChangeset
for help on using the changeset viewer.