Changeset 7494
- Timestamp:
- 2016-12-14T10:02:43+01:00 (8 years ago)
- Location:
- branches/2015/nemo_v3_6_STABLE/NEMOGCM
- Files:
-
- 35 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/field_def.xml
r6963 r7494 25 25 <field id="e3t_0" long_name="Initial T-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_T_3D"/> 26 26 27 <field id="toce" long_name=" temperature" standard_name="sea_water_potential_temperature" unit="degC" grid_ref="grid_T_3D"/>28 <field id="toce_e3t" long_name="temperature * e3t" unit="deg C*m" grid_ref="grid_T_3D" > toce * e3t </field >29 <field id="soce" long_name=" salinity" standard_name="sea_water_practical_salinity" unit="1e-3" grid_ref="grid_T_3D"/>30 <field id="soce_e3t" long_name="salinity * e3t" unit=" 1e-3*m" grid_ref="grid_T_3D" > soce * e3t </field >31 32 <field id="sst" long_name=" sea surface temperature" standard_name="sea_surface_temperature" unit="degC" />33 <field id="sst2" long_name=" square of sea surface temperature" standard_name="square_of_sea_surface_temperature" unit="degC2" > sst * sst </field >27 <field id="toce" long_name="Sea Water Potential Temperature" standard_name="sea_water_potential_temperature" unit="degree_C" grid_ref="grid_T_3D"/> 28 <field id="toce_e3t" long_name="temperature * e3t" unit="degree_C*m" grid_ref="grid_T_3D" > toce * e3t </field > 29 <field id="soce" long_name="Sea Water Salinity" standard_name="sea_water_salinity" unit="0.001" grid_ref="grid_T_3D"/> 30 <field id="soce_e3t" long_name="salinity * e3t" unit="0.001*m" grid_ref="grid_T_3D" > soce * e3t </field > 31 32 <field id="sst" long_name="Sea Surface Temperature" standard_name="sea_surface_temperature" unit="degree_C" /> 33 <field id="sst2" long_name="Square of Sea Surface Temperature" standard_name="square_of_sea_surface_temperature" unit="degree_C2" > sst * sst </field > 34 34 <field id="sstmax" long_name="max of sea surface temperature" field_ref="sst" operation="maximum" /> 35 35 <field id="sstmin" long_name="min of sea surface temperature" field_ref="sst" operation="minimum" /> 36 <field id="sstgrad" long_name="module of sst gradient" unit="degC/m" /> 37 <field id="sstgrad2" long_name="square of module of sst gradient" unit="degC2/m2" /> 38 <field id="sbt" long_name="sea bottom temperature" unit="degC" /> 36 <field id="sstgrad" long_name="module of sst gradient" unit="degree_C/m" /> 37 <field id="sstgrad2" long_name="square of module of sst gradient" unit="degree_C2/m2" /> 38 <field id="sbt" long_name="sea bottom temperature" unit="degree_C" /> 39 <field id="tosmint" long_name="vertical integral of temperature times density" standard_name="integral_wrt_depth_of_product_of_density_and_potential_temperature" unit="(kg m2) degree_C" /> 39 40 40 <field id="sss" long_name=" sea surface salinity" standard_name="sea_surface_salinity" unit="1e-3" />41 <field id="sss" long_name="Sea Surface Salinity" standard_name="sea_surface_salinity" unit="0.001" /> 41 42 <field id="sss2" long_name="square of sea surface salinity" unit="1e-6" > sss * sss </field > 42 43 <field id="sssmax" long_name="max of sea surface salinity" field_ref="sss" operation="maximum" /> 43 44 <field id="sssmin" long_name="min of sea surface salinity" field_ref="sss" operation="minimum" /> 44 <field id="sbs" long_name="sea bottom salinity" unit="1e-3" /> 45 <field id="sbs" long_name="sea bottom salinity" unit="0.001" /> 46 <field id="somint" long_name="vertical integral of salinity times density" standard_name="integral_wrt_depth_of_product_of_density_and_salinity" unit="(kg m2) x (1e-3)" /> 45 47 46 48 <field id="taubot" long_name="bottom stress module" unit="N/m2" /> … … 55 57 <field id="mldr10_1min" long_name="Min of Mixed Layer Depth (dsigma = 0.01 wrt 10m)" field_ref="mldr10_1" operation="minimum" /> 56 58 <field id="heatc" long_name="Heat content vertically integrated" standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" /> 57 <field id="saltc" long_name="Salt content vertically integrated" unit=" 1e-3*kg/m2" />59 <field id="saltc" long_name="Salt content vertically integrated" unit="0.001*kg/m2" /> 58 60 59 61 <!-- EOS --> 60 <field id="alpha" long_name="thermal expansion" unit="deg C-1" grid_ref="grid_T_3D" />62 <field id="alpha" long_name="thermal expansion" unit="degree_C-1" grid_ref="grid_T_3D" /> 61 63 <field id="beta" long_name="haline contraction" unit="1e3" grid_ref="grid_T_3D" /> 62 64 <field id="rhop" long_name="potential density (sigma0)" standard_name="sea_water_sigma_theta" unit="kg/m3" grid_ref="grid_T_3D" /> … … 78 80 <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" /> 79 81 <field id="BLT" long_name="Barrier Layer Thickness" unit="m" > topthdep - pycndep </field> 80 <field id="tinv" long_name="Max of vertical invertion of temperature" unit="deg C" />82 <field id="tinv" long_name="Max of vertical invertion of temperature" unit="degree_C" /> 81 83 <field id="depti" long_name="Depth of max. vert. inv. of temperature" unit="m" /> 82 <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"/>83 <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"/>84 <field id="20d" long_name="Depth of 20C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" /> 85 <field id="28d" long_name="Depth of 28C isotherm" standard_name="depth_of_isosurface_of_sea_water_potential_temperature" unit="m" /> 84 86 <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" /> 85 87 86 88 <!-- variables available with key_diaar5 --> 87 <field id="botpres" long_name="Pressure at sea floor" standard_name="sea_water_pressure_at_sea_floor" unit="dbar" /> 89 <field id="botpres" long_name="Sea Water Pressure at Sea Floor" standard_name="sea_water_pressure_at_sea_floor" unit="dbar" /> 90 <field id="sshdyn" long_name="dynamic sea surface height" standard_name="dynamic_sea_surface_height_above_geoid" unit="m" /> 91 <field id="sshdyn2" long_name="square of dynamic sea surface height" standard_name="dynamic_sea_surface_height_above_geoid_squared" unit="m2" > sshdyn * sshdyn </field> 92 <field id="tnpeo" long_name="Tendency of ocean potential energy content" unit="W/m2" /> 88 93 89 94 <!-- variables available with key_vvl --> … … 177 182 <field id="emp_oce" long_name="Evap minus Precip over ocean" standard_name="evap_minus_precip_over_sea_water" unit="kg/m2/s" /> 178 183 <field id="emp_ice" long_name="Evap minus Precip over ice" standard_name="evap_minus_precip_over_sea_ice" unit="kg/m2/s" /> 179 <field id="saltflx" long_name="Downward salt flux" unit=" 1e-3/m2/s" />184 <field id="saltflx" long_name="Downward salt flux" unit="0.001/m2/s" /> 180 185 <field id="fmmflx" long_name="Water flux due to freezing/melting" unit="kg/m2/s" /> 181 186 <field id="snowpre" long_name="Snow precipitation" standard_name="snowfall_flux" unit="kg/m2/s" /> 182 <field id="runoffs" long_name=" River Runoffs"standard_name="water_flux_into_sea_water_from_rivers" unit="kg/m2/s" />187 <field id="runoffs" long_name="Water Flux into Sea Water From Rivers" standard_name="water_flux_into_sea_water_from_rivers" unit="kg/m2/s" /> 183 188 <field id="precip" long_name="Total precipitation" standard_name="precipitation_flux" unit="kg/m2/s" /> 184 189 … … 197 202 <!-- * variable related to ice shelf forcing * --> 198 203 <field id="fwfisf" long_name="Ice shelf melting" unit="kg/m2/s" /> 199 <field id="qisf" long_name="Ice Shelf Heat Flux" unit="W/m2" /> 204 <field id="fwfisf3d" long_name="Ice shelf melting" unit="kg/m2/s" grid_ref="grid_T_3D" /> 205 <field id="qlatisf" long_name="Ice shelf latent heat flux" unit="W/m2" /> 206 <field id="qlatisf3d" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 207 <field id="qhcisf" long_name="Ice shelf heat content flux" unit="W/m2" /> 208 <field id="qhcisf3d" long_name="Ice shelf heat content flux" unit="W/m2" grid_ref="grid_T_3D" /> 200 209 <field id="isfgammat" long_name="transfert coefficient for isf (temperature)" unit="m/s" /> 201 210 <field id="isfgammas" long_name="transfert coefficient for isf (salinity)" unit="m/s" /> 202 <field id="stbl" long_name="salinity in the Losh tbl" unit=" 1e-3" />203 <field id="ttbl" long_name="temperature in the Losh tbl" unit="deg C" />211 <field id="stbl" long_name="salinity in the Losh tbl" unit="0.001" /> 212 <field id="ttbl" long_name="temperature in the Losh tbl" unit="degree_C" /> 204 213 205 214 <!-- *_oce variables available with ln_blk_clio or ln_blk_core --> … … 219 228 <!-- available if key_oasis3 + conservative method --> 220 229 <field id="rain" long_name="Liquid precipitation" standard_name="rainfall_flux" unit="kg/m2/s" /> 230 <field id="rain_ao_cea" long_name="Liquid precipitation over ice-free ocean (cell average)" standard_name="rainfall_flux" unit="kg/m2/s" /> 221 231 <field id="evap_ao_cea" long_name="Evaporation over ice-free ocean (cell average)" standard_name="water_evaporation_flux" unit="kg/m2/s" /> 222 232 <field id="isnwmlt_cea" long_name="Snow over Ice melting (cell average)" standard_name="surface_snow_melt_flux" unit="kg/m2/s" /> … … 224 234 <field id="fsal_real_cea" long_name="Real salt flux due to ice formation (cell average)" standard_name="downward_sea_ice_basal_salt_flux" unit="kg/m2/s" /> 225 235 <field id="hflx_rain_cea" long_name="heat flux due to rainfall" standard_name="temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water" unit="W/m2" /> 236 <field id="hflx_prec_cea" long_name="heat flux due to precipitation" standard_name="temperature_flux_due_to_precipitation_expressed_as_heat_flux_into_sea_water" unit="W/m2" /> 226 237 <field id="hflx_evap_cea" long_name="heat flux due to evaporation" standard_name="temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water" unit="W/m2" /> 227 238 <field id="hflx_snow_cea" long_name="heat flux due to snow falling" standard_name="heat_flux_onto_ocean_and_ice_due_to_snow_thermodynamics" unit="W/m2" /> … … 253 264 254 265 <field id="ice_pres" long_name="Ice presence" unit="" /> 255 <field id="ist_cea" long_name="Ice surface temperature (cell average)" standard_name="surface_temperature" unit="deg C" />256 <field id="ist_ipa" long_name="Ice surface temperature (ice presence average)" standard_name="surface_temperature" unit="deg C" />266 <field id="ist_cea" long_name="Ice surface temperature (cell average)" standard_name="surface_temperature" unit="degree_C" /> 267 <field id="ist_ipa" long_name="Ice surface temperature (ice presence average)" standard_name="surface_temperature" unit="degree_C" /> 257 268 <field id="uice_ipa" long_name="Ice velocity along i-axis at I-point (ice presence average)" standard_name="sea_ice_x_velocity" unit="m/s" /> 258 269 <field id="vice_ipa" long_name="Ice velocity along j-axis at I-point (ice presence average)" standard_name="sea_ice_y_velocity" unit="m/s" /> … … 263 274 <field id="u_imasstr" long_name="Sea-ice mass transport along i-axis" standard_name="sea_ice_x_transport" unit="kg/s" /> 264 275 <field id="v_imasstr" long_name="Sea-ice mass transport along j-axis" standard_name="sea_ice_y_transport" unit="kg/s" /> 265 <field id="emp_x_sst" long_name="Concentration/Dilution term on SST" unit="kg*deg C/m2/s" />266 <field id="emp_x_sss" long_name="Concentration/Dilution term on SSS" unit="kg* 1e-3/m2/s" />276 <field id="emp_x_sst" long_name="Concentration/Dilution term on SST" unit="kg*degree_C/m2/s" /> 277 <field id="emp_x_sss" long_name="Concentration/Dilution term on SSS" unit="kg*0.001/m2/s" /> 267 278 <field id="rnf_x_sst" long_name="Runoff term on SST" unit="kg*degC/m2/s" /> 268 279 <field id="rnf_x_sss" long_name="Runoff term on SSS" unit="kg*1e-3/m2/s" /> 269 280 270 281 <field id="iceconc" long_name="ice concentration" standard_name="sea_ice_area_fraction" unit="%" /> 271 <field id="isst" long_name="sea surface temperature" standard_name="sea_surface_temperature" unit="deg C" />272 <field id="isss" long_name="sea surface salinity" standard_name="sea_surface_salinity" unit=" 1e-3" />282 <field id="isst" long_name="sea surface temperature" standard_name="sea_surface_temperature" unit="degree_C" /> 283 <field id="isss" long_name="sea surface salinity" standard_name="sea_surface_salinity" unit="0.001" /> 273 284 <field id="qt_oce" long_name="total flux at ocean surface" standard_name="surface_downward_heat_flux_in_sea_water" unit="W/m2" /> 274 285 <field id="qsr_oce" long_name="solar heat flux at ocean surface" standard_name="net_downward_shortwave_flux_at_sea_water_surface" unit="W/m2" /> … … 279 290 <field id="qtr_ice" long_name="solar heat flux transmitted through ice: sum over categories" unit="W/m2" /> 280 291 <field id="qemp_ice" long_name="Downward Heat Flux from E-P over ice" unit="W/m2" /> 281 <field id="micesalt" long_name="Mean ice salinity" unit=" 1e-3" />292 <field id="micesalt" long_name="Mean ice salinity" unit="0.001" /> 282 293 <field id="miceage" long_name="Mean ice age" unit="years" /> 283 294 <field id="alb_ice" long_name="Mean albedo over sea ice" unit="" /> … … 290 301 <field id="salinity_cat" long_name="Sea-Ice Bulk salinity for categories" unit="g/kg" axis_ref="ncatice" /> 291 302 <field id="brinevol_cat" long_name="Brine volume for categories" unit="%" axis_ref="ncatice" /> 292 <field id="icetemp_cat" long_name="Ice temperature for categories" unit="deg C" axis_ref="ncatice" />293 <field id="snwtemp_cat" long_name="Snow temperature for categories" unit="deg C" axis_ref="ncatice" />294 295 <field id="micet" long_name="Mean ice temperature" unit="deg C" />303 <field id="icetemp_cat" long_name="Ice temperature for categories" unit="degree_C" axis_ref="ncatice" /> 304 <field id="snwtemp_cat" long_name="Snow temperature for categories" unit="degree_C" axis_ref="ncatice" /> 305 306 <field id="micet" long_name="Mean ice temperature" unit="degree_C" /> 296 307 <field id="icehc" long_name="ice total heat content" unit="10^9J" /> 297 308 <field id="isnowhc" long_name="snow total heat content" unit="10^9J" /> 298 <field id="icest" long_name="ice surface temperature" unit="deg C" />309 <field id="icest" long_name="ice surface temperature" unit="degree_C" /> 299 310 <field id="ibrinv" long_name="brine volume" unit="%" /> 300 311 <field id="icecolf" long_name="frazil ice collection thickness" unit="m" /> … … 308 319 <field id="icetrp" long_name="ice volume transport" unit="m/day" /> 309 320 <field id="snwtrp" long_name="snw volume transport" unit="m/day" /> 310 <field id="saltrp" long_name="salt content transport" unit=" 1e-3*kg/m2/day" />321 <field id="saltrp" long_name="salt content transport" unit="0.001*kg/m2/day" /> 311 322 <field id="deitrp" long_name="advected ice enthalpy" unit="W/m2" /> 312 323 <field id="destrp" long_name="advected snw enthalpy" unit="W/m2" /> 313 324 314 <field id="sfxbri" long_name="brine salt flux" unit=" 1e-3*kg/m2/day" />315 <field id="sfxdyn" long_name="salt flux from ridging rafting" unit=" 1e-3*kg/m2/day" />316 <field id="sfxres" long_name="salt flux from lipupdate (resultant)" unit=" 1e-3*kg/m2/day" />317 <field id="sfxbog" long_name="salt flux from bot growth" unit=" 1e-3*kg/m2/day" />318 <field id="sfxbom" long_name="salt flux from bot melt" unit=" 1e-3*kg/m2/day" />319 <field id="sfxsum" long_name="salt flux from surf melt" unit=" 1e-3*kg/m2/day" />320 <field id="sfxsni" long_name="salt flux from snow-ice formation" unit=" 1e-3*kg/m2/day" />321 <field id="sfxopw" long_name="salt flux from open water ice formation" unit=" 1e-3*kg/m2/day" />322 <field id="sfxsub" long_name="salt flux from sublimation" unit=" 1e-3*kg/m2/day" />323 <field id="sfx" long_name="salt flux total" unit=" 1e-3*kg/m2/day" />325 <field id="sfxbri" long_name="brine salt flux" unit="0.001*kg/m2/day" /> 326 <field id="sfxdyn" long_name="salt flux from ridging rafting" unit="0.001*kg/m2/day" /> 327 <field id="sfxres" long_name="salt flux from lipupdate (resultant)" unit="0.001*kg/m2/day" /> 328 <field id="sfxbog" long_name="salt flux from bot growth" unit="0.001*kg/m2/day" /> 329 <field id="sfxbom" long_name="salt flux from bot melt" unit="0.001*kg/m2/day" /> 330 <field id="sfxsum" long_name="salt flux from surf melt" unit="0.001*kg/m2/day" /> 331 <field id="sfxsni" long_name="salt flux from snow-ice formation" unit="0.001*kg/m2/day" /> 332 <field id="sfxopw" long_name="salt flux from open water ice formation" unit="0.001*kg/m2/day" /> 333 <field id="sfxsub" long_name="salt flux from sublimation" unit="0.001*kg/m2/day" /> 334 <field id="sfx" long_name="salt flux total" unit="0.001*kg/m2/day" /> 324 335 325 336 <field id="vfxbog" long_name="daily bottom thermo ice prod." unit="m/day" /> … … 363 374 <field id="hfxtur" long_name="turbulent heat flux at the ice base" unit="W/m2" /> 364 375 <!-- sbcssm variables --> 365 <field id="sst_m" unit="deg C" />376 <field id="sst_m" unit="degree_C" /> 366 377 <field id="sss_m" unit="psu" /> 367 378 <field id="ssu_m" unit="m/s" /> … … 378 389 <field id="e3u" long_name="U-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_U_3D" /> 379 390 <field id="e3u_0" long_name="Initial U-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_U_3D"/> 380 <field id="utau" long_name=" Wind Stress along i-axis" standard_name="surface_downward_x_stress" unit="N/m2" />381 <field id="uoce" long_name=" ocean current along i-axis" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" />391 <field id="utau" long_name="Surface Downward X Stress" standard_name="surface_downward_x_stress" unit="N/m2" /> 392 <field id="uoce" long_name="Sea Water X Velocity" standard_name="sea_water_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 382 393 <field id="uoce_e3u" long_name="ocean current along i-axis * e3u" unit="m2/s" grid_ref="grid_U_3D" > uoce * e3u </field> 383 394 <field id="ssu" long_name="ocean surface current along i-axis" unit="m/s" /> … … 385 396 <field id="ubar" long_name="ocean barotropic current along i-axis" unit="m/s" /> 386 397 <field id="uocetr_eff" long_name="Effective ocean transport along i-axis" standard_name="ocean_volume_x_transport" unit="m3/s" grid_ref="grid_U_3D" /> 387 <field id="uocet" long_name="ocean transport along i-axis times temperature (CRS)" unit="deg C*m/s" grid_ref="grid_U_3D" />388 <field id="uoces" long_name="ocean transport along i-axis times salinity (CRS)" unit=" 1e-3*m/s" grid_ref="grid_U_3D" />398 <field id="uocet" long_name="ocean transport along i-axis times temperature (CRS)" unit="degree_C*m/s" grid_ref="grid_U_3D" /> 399 <field id="uoces" long_name="ocean transport along i-axis times salinity (CRS)" unit="0.001*m/s" grid_ref="grid_U_3D" /> 389 400 390 401 <!-- variables available with MLE --> … … 392 403 393 404 <!-- uoce_eiv: available with key_traldf_eiv and key_diaeiv --> 394 <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" /> 405 <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" /> 406 <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" /> 407 <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" /> 408 <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" /> 395 409 396 410 <!-- uoce_eiv: available with key_trabbl --> … … 402 416 403 417 <!-- variables available with key_diaar5 --> 404 <field id="u_masstr" long_name="ocean eulerian mass transport along i-axis" standard_name="ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 418 <field id="u_masstr" long_name="Ocean Mass X Transport" standard_name="ocean_mass_x_transport" unit="kg/s" grid_ref="grid_U_3D" /> 419 <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" /> 405 420 <field id="u_heattr" long_name="ocean eulerian heat transport along i-axis" standard_name="ocean_heat_x_transport" unit="W" /> 406 <field id="u_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_x_transport" unit="1e-3*kg/s" /> 421 <field id="uadv_heattr" long_name="ocean advective heat transport along i-axis" standard_name="advectice_ocean_heat_x_transport" unit="W" /> 422 <field id="u_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_x_transport" unit="0.001*kg/s" /> 407 423 <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" /> 424 <field id="ueiv_salttr" long_name="ocean bolus salt transport along i-axis" standard_name="ocean_salt_x_transport_due_to_bolus_advection" unit="W" /> 408 425 <field id="udiff_heattr" long_name="ocean diffusion heat transport along i-axis" standard_name="ocean_heat_x_transport_due_to_diffusion" unit="W" /> 409 426 </field_group> … … 414 431 <field id="e3v" long_name="V-cell thickness" standard_name="cell_thickness" unit="m" grid_ref="grid_V_3D" /> 415 432 <field id="e3v_0" long_name="Initial V-cell thickness" standard_name="ref_cell_thickness" unit="m" grid_ref="grid_V_3D"/> 416 <field id="vtau" long_name=" Wind Stress along j-axis" standard_name="surface_downward_y_stress" unit="N/m2" />417 <field id="voce" long_name=" ocean current along j-axis" standard_name="sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" />433 <field id="vtau" long_name="Surface Downward Y Stress" standard_name="surface_downward_y_stress" unit="N/m2" /> 434 <field id="voce" long_name="Sea Water Y Velocity" standard_name="sea_water_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 418 435 <field id="voce_e3v" long_name="ocean current along j-axis * e3v" unit="m2/s" grid_ref="grid_V_3D" > voce * e3v </field> 419 436 <field id="ssv" long_name="ocean surface current along j-axis" unit="m/s" /> … … 421 438 <field id="vbar" long_name="ocean barotropic current along j-axis" unit="m/s" /> 422 439 <field id="vocetr_eff" long_name="Effective ocean transport along j-axis" standard_name="ocean_volume_y_transport" unit="m3/s" grid_ref="grid_V_3D" /> 423 <field id="vocet" long_name="ocean transport along j-axis times temperature (CRS)" unit="deg C*m/s" grid_ref="grid_V_3D" />424 <field id="voces" long_name="ocean transport along j-axis times salinity (CRS)" unit=" 1e-3*m/s" grid_ref="grid_V_3D" />440 <field id="vocet" long_name="ocean transport along j-axis times temperature (CRS)" unit="degree_C*m/s" grid_ref="grid_V_3D" /> 441 <field id="voces" long_name="ocean transport along j-axis times salinity (CRS)" unit="0.001*m/s" grid_ref="grid_V_3D" /> 425 442 426 443 <!-- variables available with MLE --> … … 429 446 <!-- voce_eiv: available with key_traldf_eiv and key_diaeiv --> 430 447 <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" /> 448 <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" /> 449 <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" /> 450 <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_U_3D" /> 431 451 432 452 <!-- voce_eiv: available with key_trabbl --> … … 438 458 439 459 <!-- variables available with key_diaar5 --> 440 <field id="v_masstr" long_name="ocean eulerian mass transport along j-axis" standard_name="ocean_mass_y_transport" unit="kg/s" grid_ref="grid_V_3D" /> 441 <field id="v_heattr" long_name="ocean eulerian heat transport along j-axis" standard_name="ocean_heat_y_transport" unit="W" /> 442 <field id="v_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_y_transport" unit="1e-3*kg/s" /> 460 <field id="v_masstr" long_name="Ocean Mass Y Transport" standard_name="ocean_mass_y_transport" unit="kg/s" grid_ref="grid_V_3D" /> 461 <field id="v_heattr" long_name="Ocean Heat X Transport" standard_name="ocean_heat_y_transport" unit="W" /> 462 <field id="vadv_heattr" long_name="ocean advective heat transport along j-axis" standard_name="advectice_ocean_heat_y_transport" unit="W" /> 463 <field id="v_salttr" long_name="ocean eulerian salt transport along i-axis" standard_name="ocean_salt_y_transport" unit="0.001*kg/s" /> 443 464 <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" /> 465 <field id="veiv_salttr" long_name="ocean bolus salt transport along j-axis" standard_name="ocean_salt_y_transport_due_to_bolus_advection" unit="W" /> 444 466 <field id="vdiff_heattr" long_name="ocean diffusion heat transport along j-axis" standard_name="ocean_heat_y_transport_due_to_diffusion" unit="W" /> 445 467 </field_group> … … 454 476 <!-- woce_eiv: available with key_traldf_eiv and key_diaeiv --> 455 477 <field id="woce_eiv" long_name="EIV ocean vertical velocity" standard_name="bolus_upward_sea_water_velocity" unit="m/s" /> 478 <field id="weiv_masstr" long_name="EIV Upward Ocean Mass Transport" standard_name="bolus_upward_ocean_mass_transport" unit="kg/s" /> 456 479 457 480 <field id="avt" long_name="vertical eddy diffusivity" standard_name="ocean_vertical_heat_diffusivity" unit="m2/s" /> … … 473 496 <field id="av_ratio" long_name="S over T diffusivity ratio" standard_name="salinity_over_temperature_diffusivity_ratio" unit="1" /> 474 497 <field id="av_wave" long_name="wave-induced vertical diffusivity" standard_name="ocean_vertical_tracer_diffusivity_due_to_internal_waves" unit="m2/s" /> 475 <field id="bn2" long_name="squared Brunt-Vaisala frequency" standard_name="squared_brunt_vaisala_frequency" unit="s-1" />476 498 <field id="bflx_tmx" long_name="wave-induced buoyancy flux" standard_name="buoyancy_flux_due_to_internal_waves" unit="W/kg" /> 477 499 <field id="pcmap_tmx" long_name="power consumed by wave-driven mixing" standard_name="vertically_integrated_power_consumption_by_wave_driven_mixing" unit="W/m2" grid_ref="grid_W_2D" /> … … 479 501 480 502 <!-- variables available with key_diaar5 --> 481 <field id="w_masstr" long_name=" vertical mass transport" standard_name="upward_ocean_mass_transport" unit="kg/s" />503 <field id="w_masstr" long_name="Upward Ocean Mass Transport" standard_name="upward_ocean_mass_transport" unit="kg/s" /> 482 504 <field id="w_masstr2" long_name="square of vertical mass transport" standard_name="square_of_upward_ocean_mass_transport" unit="kg2/s2" /> 483 505 … … 485 507 <field id="aht2d" long_name="lateral eddy diffusivity" standard_name="ocean_tracer_xy_laplacian_diffusivity" unit="m2/s" grid_ref="grid_W_2D" /> 486 508 <field id="aht2d_eiv" long_name="EIV lateral eddy diffusivity" standard_name="ocean_tracer_bolus_laplacian_diffusivity" unit="m2/s" grid_ref="grid_W_2D" /> 509 510 <!-- Variable from eosbn2 --> 511 <field id="bn2" long_name="Squared buoyancy frequency measuring ocean vertical stratification" standard_name="square_of_brunt_vaisala_frequency_in_sea_water" unit="1/s^2" /> 487 512 </field_group> 488 513 514 <!-- product fields --> 515 <field_group id="diaprod"> 516 <field id="ut" long_name="product_of_sea_water_x_velocity_and_potential_temperature" unit="degree_C m/s" grid_ref="grid_U_3D" /> 517 <field id="ut_e3u" long_name="product_of_sea_water_x_velocity_and_potential_temperature * e3u" unit="degree_C m2/s" grid_ref="grid_U_3D" > ut * e3u </field > 518 <field id="us" long_name="product_of_sea_water_x_velocity_and_salinity" unit="PSU m/s" grid_ref="grid_U_3D" /> 519 <field id="us_e3u" long_name="product_of_sea_water_x_velocity_and_salinity * e3u" unit="PSU m2/s" grid_ref="grid_U_3D" > us * e3u </field > 520 <field id="urhop" long_name="product_of_sea_water_x_velocity_and_potential_density" unit="(kg/m3).(m/s)" grid_ref="grid_U_3D" /> 521 <field id="urhop_e3u" long_name="product_of_sea_water_x_velocity_and_potential_density * e3u" unit="(kg/m3).(m2/s)" grid_ref="grid_U_3D" > urhop * e3u </field > 522 <field id="vt" long_name="product_of_sea_water_y_velocity_and_potential_temperature" unit="degree_C m/s" grid_ref="grid_V_3D" /> 523 <field id="vt_e3v" long_name="product_of_sea_water_y_velocity_and_potential_temperature * e3v" unit="degree_C m2/s" grid_ref="grid_V_3D" > vt * e3v </field > 524 <field id="vs" long_name="product_of_sea_water_y_velocity_and_salinity" unit="PSU m/s" grid_ref="grid_V_3D" /> 525 <field id="vs_e3v" long_name="product_of_sea_water_y_velocity_and_salinity * e3t" unit="PSU m2/s" grid_ref="grid_V_3D" > vs * e3v </field > 526 <field id="vrhop" long_name="product_of_sea_water_y_velocity_and_potential_density" unit="(kg/m3).(m/s)" grid_ref="grid_V_3D" /> 527 <field id="vrhop_e3v" long_name="product_of_sea_water_y_velocity_and_potential_density * e3t" unit="(kg/m3).(m2/s)" grid_ref="grid_V_3D" > vrhop * e3v </field > 528 <field id="wt" long_name="product_of_upward_sea_water_velocity_and_potential_temperature" unit="degree_C m/s" grid_ref="grid_W_3D" /> 529 <field id="ws" long_name="product_of_upward_sea_water_velocity_and_salinity" unit="PSU m/s" grid_ref="grid_W_3D" /> 530 <field id="wrhop" long_name="product_of_upward_sea_water_velocity_and_potential_density" unit="(kg/m3).(m/s)" grid_ref="grid_W_3D" /> 531 </field_group> 532 489 533 <!-- scalar variables available with key_diaar5 --> 490 534 491 535 <field_group id="scalar" domain_ref="1point" > 492 <field id="voltot" long_name=" global total volume"standard_name="sea_water_volume" unit="m3" />536 <field id="voltot" long_name="Sea Water Volume" standard_name="sea_water_volume" unit="m3" /> 493 537 <field id="sshtot" long_name="global mean ssh" standard_name="global_average_sea_level_change" unit="m" /> 494 538 <field id="sshsteric" long_name="global mean ssh steric" standard_name="global_average_steric_sea_level_change" unit="m" /> 495 <field id="sshthster" long_name=" global mean ssh thermosteric"standard_name="global_average_thermosteric_sea_level_change" unit="m" />539 <field id="sshthster" long_name="Global Average Thermosteric Sea Level Change" standard_name="global_average_thermosteric_sea_level_change" unit="m" /> 496 540 <field id="masstot" long_name="global total mass" standard_name="sea_water_mass" unit="kg" /> 497 <field id="temptot" long_name=" global mean temperature" standard_name="sea_water_potential_temperature" unit="degC" />498 <field id="saltot" long_name=" global mean salinity" standard_name="sea_water_salinity" unit="1e-3" />541 <field id="temptot" long_name="Global Average Sea Water Potential Temperature" standard_name="sea_water_potential_temperature" unit="degree_C" /> 542 <field id="saltot" long_name="Global Average Sea Water Salinity" standard_name="sea_water_salinity" unit="0.001" /> 499 543 <field id="fram_trans" long_name="Sea Ice Mass Transport Through Fram Strait" standard_name="sea_ice_transport_across_line" unit="kg/s" /> 500 544 501 545 <!-- available with ln_diahsb --> 502 546 <field id="bgtemper" long_name="drift in global mean temperature wrt timestep 1" standard_name="change_over_time_in_sea_water_potential_temperature" unit="degC" /> 503 <field id="bgsaline" long_name="drift in global mean salinity wrt timestep 1" standard_name="change_over_time_in_sea_water_practical_salinity" unit=" 1e-3"/>547 <field id="bgsaline" long_name="drift in global mean salinity wrt timestep 1" standard_name="change_over_time_in_sea_water_practical_salinity" unit="0.001" /> 504 548 <field id="bgheatco" long_name="drift in global mean heat content wrt timestep 1" unit="1.e20J" /> 505 549 <field id="bgheatfx" long_name="drift in global mean heat flux wrt timestep 1" unit="W/m2" /> … … 546 590 <field id="traj_lat" long_name="floats latitude" unit="degrees_north" /> 547 591 <field id="traj_dep" long_name="floats depth" unit="m" /> 548 <field id="traj_temp" long_name="floats temperature" standard_name="sea_water_potential_temperature" unit="deg C" />549 <field id="traj_salt" long_name="floats salinity" standard_name="sea_water_practical_salinity" unit=" 1e-3" />592 <field id="traj_temp" long_name="floats temperature" standard_name="sea_water_potential_temperature" unit="degree_C" /> 593 <field id="traj_salt" long_name="floats salinity" standard_name="sea_water_practical_salinity" unit="0.001" /> 550 594 <field id="traj_dens" long_name="floats in-situ density" standard_name="sea_water_density" unit="kg/m3" /> 551 595 <field id="traj_group" long_name="floats group" unit="1" /> … … 571 615 572 616 <!-- Poleward transport : ptr --> 573 <field_group id="diaptr" domain_ref="ptr">617 <field_group id="diaptr"> 574 618 <field id="zomsfglo" long_name="Meridional Stream-Function: Global" unit="Sv" grid_ref="gznl_W_3D" /> 575 619 <field id="zomsfatl" long_name="Meridional Stream-Function: Atlantic" unit="Sv" grid_ref="gznl_W_3D" /> … … 577 621 <field id="zomsfind" long_name="Meridional Stream-Function: Indian" unit="Sv" grid_ref="gznl_W_3D" /> 578 622 <field id="zomsfipc" long_name="Meridional Stream-Function: Pacific+Indian" unit="Sv" grid_ref="gznl_W_3D" /> 579 <field id="zotemglo" long_name="Zonal Mean Temperature : Global" unit="deg C" grid_ref="gznl_T_3D" />580 <field id="zotematl" long_name="Zonal Mean Temperature : Atlantic" unit="deg C" grid_ref="gznl_T_3D" />581 <field id="zotempac" long_name="Zonal Mean Temperature : Pacific" unit="deg C" grid_ref="gznl_T_3D" />582 <field id="zotemind" long_name="Zonal Mean Temperature : Indian" unit="deg C" grid_ref="gznl_T_3D" />583 <field id="zotemipc" long_name="Zonal Mean Temperature : Pacific+Indian" unit="deg C" grid_ref="gznl_T_3D" />584 <field id="zosalglo" long_name="Zonal Mean Salinity : Global" unit=" 1e-3" grid_ref="gznl_T_3D" />585 <field id="zosalatl" long_name="Zonal Mean Salinity : Atlantic" unit=" 1e-3" grid_ref="gznl_T_3D" />586 <field id="zosalpac" long_name="Zonal Mean Salinity : Pacific" unit=" 1e-3" grid_ref="gznl_T_3D" />587 <field id="zosalind" long_name="Zonal Mean Salinity : Indian" unit=" 1e-3" grid_ref="gznl_T_3D" />588 <field id="zosalipc" long_name="Zonal Mean Salinity : Pacific+Indian" unit=" 1e-3" grid_ref="gznl_T_3D" />623 <field id="zotemglo" long_name="Zonal Mean Temperature : Global" unit="degree_C" grid_ref="gznl_T_3D" /> 624 <field id="zotematl" long_name="Zonal Mean Temperature : Atlantic" unit="degree_C" grid_ref="gznl_T_3D" /> 625 <field id="zotempac" long_name="Zonal Mean Temperature : Pacific" unit="degree_C" grid_ref="gznl_T_3D" /> 626 <field id="zotemind" long_name="Zonal Mean Temperature : Indian" unit="degree_C" grid_ref="gznl_T_3D" /> 627 <field id="zotemipc" long_name="Zonal Mean Temperature : Pacific+Indian" unit="degree_C" grid_ref="gznl_T_3D" /> 628 <field id="zosalglo" long_name="Zonal Mean Salinity : Global" unit="0.001" grid_ref="gznl_T_3D" /> 629 <field id="zosalatl" long_name="Zonal Mean Salinity : Atlantic" unit="0.001" grid_ref="gznl_T_3D" /> 630 <field id="zosalpac" long_name="Zonal Mean Salinity : Pacific" unit="0.001" grid_ref="gznl_T_3D" /> 631 <field id="zosalind" long_name="Zonal Mean Salinity : Indian" unit="0.001" grid_ref="gznl_T_3D" /> 632 <field id="zosalipc" long_name="Zonal Mean Salinity : Pacific+Indian" unit="0.001" grid_ref="gznl_T_3D" /> 589 633 <field id="zosrfglo" long_name="Zonal Mean Surface" unit="m2" grid_ref="gznl_T_3D" /> 590 634 <field id="zosrfatl" long_name="Zonal Mean Surface : Atlantic" unit="m2" grid_ref="gznl_T_3D" /> … … 593 637 <field id="zosrfipc" long_name="Zonal Mean Surface : Pacific+Indian" unit="m2" grid_ref="gznl_T_3D" /> 594 638 <field id="sophtadv" long_name="Advective Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 639 <field id="sophtadv_atl" long_name="Advective Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 640 <field id="sophtadv_pac" long_name="Advective Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 641 <field id="sophtadv_ind" long_name="Advective Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 642 <field id="sophtadv_ipc" long_name="Advective Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 595 643 <field id="sophtldf" long_name="Diffusive Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 644 <field id="sophtldf_atl" long_name="Diffusive Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 645 <field id="sophtldf_pac" long_name="Diffusive Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 646 <field id="sophtldf_ind" long_name="Diffusive Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 647 <field id="sophtldf_ipc" long_name="Diffusive Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 648 <field id="sophtove" long_name="Overturning Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 649 <field id="sophtove_atl" long_name="Overturning Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 650 <field id="sophtove_pac" long_name="Overturning Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 651 <field id="sophtove_ind" long_name="Overturning Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 652 <field id="sophtove_ipc" long_name="Overturning Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 653 <field id="sophtbtr" long_name="Barotropic Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 654 <field id="sophtbtr_atl" long_name="Barotropic Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 655 <field id="sophtbtr_pac" long_name="Barotropic Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 656 <field id="sophtbtr_ind" long_name="Barotropic Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 657 <field id="sophtbtr_ipc" long_name="Barotropic Heat Transport: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 658 <field id="sophteiv" long_name="Heat Transport from mesoscale eddy advection" unit="PW" grid_ref="gznl_T_2D" /> 659 <field id="sophteiv_atl" long_name="Heat Transport from mesoscale eddy advection: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 660 <field id="sophteiv_pac" long_name="Heat Transport from mesoscale eddy advection: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 661 <field id="sophteiv_ind" long_name="Heat Transport from mesoscale eddy advection: Indian" unit="PW" grid_ref="gznl_T_2D" /> 662 <field id="sophteiv_ipc" long_name="Heat Transport from mesoscale eddy advection: Pacific+Indian" unit="PW" grid_ref="gznl_T_2D" /> 596 663 <field id="sopstadv" long_name="Advective Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 664 <field id="sopstadv_atl" long_name="Advective Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 665 <field id="sopstadv_pac" long_name="Advective Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 666 <field id="sopstadv_ind" long_name="Advective Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 667 <field id="sopstadv_ipc" long_name="Advective Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 668 <field id="sopstove" long_name="Overturning Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 669 <field id="sopstove_atl" long_name="Overturning Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 670 <field id="sopstove_pac" long_name="Overturning Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 671 <field id="sopstove_ind" long_name="Overturning Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 672 <field id="sopstove_ipc" long_name="Overturning Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 673 <field id="sopstbtr" long_name="Barotropic Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 674 <field id="sopstbtr_atl" long_name="Barotropic Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 675 <field id="sopstbtr_pac" long_name="Barotropic Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 676 <field id="sopstbtr_ind" long_name="Barotropic Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 677 <field id="sopstbtr_ipc" long_name="Barotropic Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 597 678 <field id="sopstldf" long_name="Diffusive Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 679 <field id="sopstldf_atl" long_name="Diffusive Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 680 <field id="sopstldf_pac" long_name="Diffusive Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 681 <field id="sopstldf_ind" long_name="Diffusive Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 682 <field id="sopstldf_ipc" long_name="Diffusive Salt Transport: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 683 <field id="sopsteiv" long_name="Salt Transport from mesoscale eddy advection" unit="Giga g/s" grid_ref="gznl_T_2D" /> 684 <field id="sopsteiv_atl" long_name="Salt Transport from mesoscale eddy advection: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 685 <field id="sopsteiv_pac" long_name="Salt Transport from mesoscale eddy advection: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 686 <field id="sopsteiv_ind" long_name="Salt Transport from mesoscale eddy advection: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 687 <field id="sopsteiv_ipc" long_name="Salt Transport from mesoscale eddy advection: Pacific+Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 688 <field id="sopht_vt" long_name="Heat Transport" unit="PW" grid_ref="gznl_T_2D" /> 689 <field id="sopht_vt_atl" long_name="Heat Transport: Atlantic" unit="PW" grid_ref="gznl_T_2D" /> 690 <field id="sopht_vt_ind" long_name="Heat Transport: Indian" unit="PW" grid_ref="gznl_T_2D" /> 691 <field id="sopht_vt_pac" long_name="Heat Transport: Pacific" unit="PW" grid_ref="gznl_T_2D" /> 692 <field id="sopht_vt_ipc" long_name="Heat Transport: Indo-Pacific" unit="PW" grid_ref="gznl_T_2D" /> 693 <field id="sopst_vs" long_name="Salt Transport" unit="Giga g/s" grid_ref="gznl_T_2D" /> 694 <field id="sopst_vs_atl" long_name="Salt Transport: Atlantic" unit="Giga g/s" grid_ref="gznl_T_2D" /> 695 <field id="sopst_vs_ind" long_name="Salt Transport: Indian" unit="Giga g/s" grid_ref="gznl_T_2D" /> 696 <field id="sopst_vs_pac" long_name="Salt Transport: Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 697 <field id="sopst_vs_ipc" long_name="Salt Transport: Indo-Pacific" unit="Giga g/s" grid_ref="gznl_T_2D" /> 598 698 </field_group> 599 699 … … 614 714 <field id="ttrd_ad" long_name="temperature-trend: advection" standard_name="tendency_of_sea_water_temperature_due_to_advection" unit="degC/s" > sqrt( ttrd_xad^2 + ttrd_yad^2 + ttrd_zad^2 ) </field> 615 715 <field id="strd_ad" long_name="salinity -trend: advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="1e-3/s" > sqrt( strd_xad^2 + strd_yad^2 + strd_zad^2 ) </field> 716 <field id="ttrd_totad" long_name="temperature-trend: total advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="degC/s" /> 717 <field id="strd_totad" long_name="salinity -trend: total advection" standard_name="tendency_of_sea_water_salinity_due_to_advection" unit="1e-3/s" /> 616 718 <field id="ttrd_sad" long_name="temperature-trend: surface adv. (no-vvl)" unit="degC/s" grid_ref="grid_T_2D" /> 617 719 <field id="strd_sad" long_name="salinity -trend: surface adv. (no-vvl)" unit="1e-3/s" grid_ref="grid_T_2D" /> … … 620 722 <field id="ttrd_zdf" long_name="temperature-trend: vertical diffusion" standard_name="tendency_of_sea_water_temperature_due_to_vertical_mixing" unit="degC/s" /> 621 723 <field id="strd_zdf" long_name="salinity -trend: vertical diffusion" standard_name="tendency_of_sea_water_salinity_due_to_vertical_mixing" unit="1e-3/s" /> 724 <field id="ttrd_evd" long_name="temperature-trend: EVD convection" unit="degC/s" /> 725 <field id="strd_evd" long_name="salinity -trend: EVD convection" unit="1e-3/s" /> 622 726 623 727 <!-- ln_traldf_iso=T only (iso-neutral diffusion) --> 728 <field id="ttrd_iso_x" long_name="temperature-trend: isopycnal diffusion x-component" unit="degC/s" /> 729 <field id="strd_iso_x" long_name="salinity -trend: isopycnal diffusion x-component" unit="1e-3/s" /> 730 <field id="ttrd_iso_y" long_name="temperature-trend: isopycnal diffusion y-component" unit="degC/s" /> 731 <field id="strd_iso_y" long_name="salinity -trend: isopycnal diffusion y-component" unit="1e-3/s" /> 732 <field id="ttrd_iso_z1" long_name="temperature-trend: isopycnal diffusion z-component part 1" unit="degC/s" /> 733 <field id="strd_iso_z1" long_name="salinity -trend: isopycnal diffusion z-component part 1" unit="1e-3/s" /> 734 <field id="ttrd_iso_z" long_name="temperature-trend: isopycnal diffusion z-component" unit="degC/s" > ttrd_iso_z1 + ttrd_zdf - ttrd_zdfp </field> 735 <field id="strd_iso_z" long_name="salinity -trend: isopycnal diffusion z-component" unit="1e-3/s" > strd_iso_z1 + strd_zdf - strd_zdfp </field> 736 <field id="ttrd_iso" long_name="temperature-trend: isopycnal diffusion" unit="degC/s" > ttrd_ldf + ttrd_zdf - ttrd_zdfp </field> 737 <field id="strd_iso" long_name="salinity -trend: isopycnal diffusion" unit="1e-3/s" > strd_ldf + strd_zdf - strd_zdfp </field> 624 738 <field id="ttrd_zdfp" long_name="temperature-trend: pure vert. diffusion" unit="degC/s" /> 625 739 <field id="strd_zdfp" long_name="salinity -trend: pure vert. diffusion" unit="1e-3/s" /> 626 740 627 741 <!-- --> 628 <field id="ttrd_dmp" long_name="temperature-trend: interior restoring" unit="degC/s" /> 629 <field id="strd_dmp" long_name="salinity -trend: interior restoring" unit="1e-3/s" /> 630 <field id="ttrd_bbl" long_name="temperature-trend: bottom boundary layer" unit="degC/s" /> 631 <field id="strd_bbl" long_name="salinity -trend: bottom boundary layer" unit="1e-3/s" /> 632 <field id="ttrd_npc" long_name="temperature-trend: non-penetrative conv." unit="degC/s" /> 633 <field id="strd_npc" long_name="salinity -trend: non-penetrative conv." unit="1e-3/s" /> 634 <field id="ttrd_qns" long_name="temperature-trend: non-solar flux + runoff" unit="degC/s" /> 635 <field id="strd_cdt" long_name="salinity -trend: C/D term + runoff" unit="degC/s" /> 636 <field id="ttrd_qsr" long_name="temperature-trend: solar penetr. heating" unit="degC/s" /> 637 <field id="ttrd_bbc" long_name="temperature-trend: geothermal heating" unit="degC/s" /> 638 <field id="ttrd_atf" long_name="temperature-trend: asselin time filter" unit="degC/s" /> 639 <field id="strd_atf" long_name="salinity -trend: asselin time filter" unit="1e-3/s" /> 742 <field id="ttrd_dmp" long_name="temperature-trend: interior restoring" unit="degree_C/s" /> 743 <field id="strd_dmp" long_name="salinity -trend: interior restoring" unit="0.001/s" /> 744 <field id="ttrd_bbl" long_name="temperature-trend: bottom boundary layer" unit="degree_C/s" /> 745 <field id="strd_bbl" long_name="salinity -trend: bottom boundary layer" unit="0.001/s" /> 746 <field id="ttrd_npc" long_name="temperature-trend: non-penetrative conv." unit="degree_C/s" /> 747 <field id="strd_npc" long_name="salinity -trend: non-penetrative conv." unit="0.001/s" /> 748 <field id="ttrd_qns" long_name="temperature-trend: non-solar flux + runoff" unit="degC/s" grid_ref="grid_T_2D"/> 749 <field id="strd_cdt" long_name="salinity -trend: C/D term + runoff" unit="degC/s" grid_ref="grid_T_2D"/> 750 <field id="ttrd_qsr" long_name="temperature-trend: solar penetr. heating" unit="degree_C/s" /> 751 <field id="ttrd_bbc" long_name="temperature-trend: geothermal heating" unit="degree_C/s" /> 752 <field id="ttrd_atf" long_name="temperature-trend: asselin time filter" unit="degree_C/s" /> 753 <field id="strd_atf" long_name="salinity -trend: asselin time filter" unit="0.001/s" /> 754 <field id="ttrd_tot" long_name="temperature-trend: total model trend" unit="degC/s" /> 755 <field id="strd_tot" long_name="salinity -trend: total model trend" unit="1e-3/s" /> 756 757 <!-- Thickness weighted versions: --> 758 <field id="ttrd_xad_e3t" unit="degC/s * m" > ttrd_xad * e3t </field> 759 <field id="strd_xad_e3t" unit="1e-3/s * m" > strd_xad * e3t </field> 760 <field id="ttrd_yad_e3t" unit="degC/s * m" > ttrd_yad * e3t </field> 761 <field id="strd_yad_e3t" unit="1e-3/s * m" > strd_yad * e3t </field> 762 <field id="ttrd_zad_e3t" unit="degC/s * m" > ttrd_zad * e3t </field> 763 <field id="strd_zad_e3t" unit="1e-3/s * m" > strd_zad * e3t </field> 764 <field id="ttrd_ad_e3t" unit="degC/s * m" > ttrd_ad * e3t </field> 765 <field id="strd_ad_e3t" unit="1e-3/s * m" > strd_ad * e3t </field> 766 <field id="ttrd_totad_e3t" unit="degC/s * m" > ttrd_totad * e3t </field> 767 <field id="strd_totad_e3t" unit="1e-3/s * m" > strd_totad * e3t </field> 768 <field id="ttrd_ldf_e3t" unit="degC/s * m" > ttrd_ldf * e3t </field> 769 <field id="strd_ldf_e3t" unit="1e-3/s * m" > strd_ldf * e3t </field> 770 <field id="ttrd_zdf_e3t" unit="degC/s * m" > ttrd_zdf * e3t </field> 771 <field id="strd_zdf_e3t" unit="1e-3/s * m" > strd_zdf * e3t </field> 772 <field id="ttrd_evd_e3t" unit="degC/s * m" > ttrd_evd * e3t </field> 773 <field id="strd_evd_e3t" unit="1e-3/s * m" > strd_evd * e3t </field> 774 775 <!-- ln_traldf_iso=T only (iso-neutral diffusion) --> 776 <field id="ttrd_iso_x_e3t" unit="degC/s * m" > ttrd_iso_x * e3t </field> 777 <field id="strd_iso_x_e3t" unit="1e-3/s * m" > strd_iso_x * e3t </field> 778 <field id="ttrd_iso_y_e3t" unit="degC/s * m" > ttrd_iso_y * e3t </field> 779 <field id="strd_iso_y_e3t" unit="1e-3/s * m" > strd_iso_y * e3t </field> 780 <field id="ttrd_iso_z_e3t" unit="degC/s * m" > ttrd_iso_z * e3t </field> 781 <field id="strd_iso_z_e3t" unit="1e-3/s * m" > strd_iso_z * e3t </field> 782 <field id="ttrd_iso_e3t" unit="degC/s * m" > ttrd_iso * e3t </field> 783 <field id="strd_iso_e3t" unit="1e-3/s * m" > strd_iso * e3t </field> 784 <field id="ttrd_zdfp_e3t" unit="degC/s * m" > ttrd_zdfp * e3t </field> 785 <field id="strd_zdfp_e3t" unit="1e-3/s * m" > strd_zdfp * e3t </field> 786 787 <!-- --> 788 <field id="ttrd_dmp_e3t" unit="degC/s * m" > ttrd_dmp * e3t </field> 789 <field id="strd_dmp_e3t" unit="1e-3/s * m" > strd_dmp * e3t </field> 790 <field id="ttrd_bbl_e3t" unit="degC/s * m" > ttrd_bbl * e3t </field> 791 <field id="strd_bbl_e3t" unit="1e-3/s * m" > strd_bbl * e3t </field> 792 <field id="ttrd_npc_e3t" unit="degC/s * m" > ttrd_npc * e3t </field> 793 <field id="strd_npc_e3t" unit="1e-3/s * m" > strd_npc * e3t </field> 794 <field id="ttrd_qns_e3t" unit="degC/s * m" > ttrd_qns * e3t_surf </field> 795 <field id="strd_cdt_e3t" unit="degC/s * m" > strd_cdt * e3t_surf </field> 796 <field id="ttrd_qsr_e3t" unit="degC/s * m" > ttrd_qsr * e3t </field> 797 <field id="ttrd_bbc_e3t" unit="degC/s * m" > ttrd_bbc * e3t </field> 798 <field id="ttrd_atf_e3t" unit="degC/s * m" > ttrd_atf * e3t </field> 799 <field id="strd_atf_e3t" unit="1e-3/s * m" > strd_atf * e3t </field> 800 <field id="ttrd_tot_e3t" unit="degC/s * m" > ttrd_tot * e3t </field> 801 <field id="strd_tot_e3t" unit="1e-3/s * m" > strd_tot * e3t </field> 640 802 641 803 <!-- variables available with ln_KE_trd --> … … 653 815 <field id="ketrd_zad" long_name="ke-trend: vertical advection" unit="W/s^3" /> 654 816 <field id="ketrd_udx" long_name="ke-trend: U.dx[U]" unit="W/s^3" /> 655 <field id="ketrd_ldf" long_name="ke-trend: lateral diffusion" unit="W/ s^3" />817 <field id="ketrd_ldf" long_name="ke-trend: lateral diffusion" unit="W/m^3" /> 656 818 <field id="ketrd_zdf" long_name="ke-trend: vertical diffusion" unit="W/s^3" /> 657 819 <field id="ketrd_tau" long_name="ke-trend: wind stress " unit="W/s^3" grid_ref="grid_T_2D" /> … … 661 823 <field id="ketrd_convP2K" long_name="ke-trend: conversion (potential to kinetic)" unit="W/s^3" /> 662 824 <field id="KE" long_name="kinetic energy: u(n)*u(n+1)/2" unit="W/s^2" /> 825 <field id="ketrd_eiv" long_name="Kinetic energy trend from mesoscale eddy advection" unit="W/s^2" grid_ref="grid_T_2D" /> 663 826 664 827 <!-- variables available with ln_PE_trd --> … … 678 841 <field id="petrd_atf" long_name="pe-trend: asselin time filter" unit="W/m^3" /> 679 842 <field id="PEanom" long_name="potential energy anomaly" unit="1" /> 680 <field id="alphaPE" long_name="partial deriv. of PEanom wrt T" unit="deg C-1" />843 <field id="alphaPE" long_name="partial deriv. of PEanom wrt T" unit="degree_C-1" /> 681 844 <field id="betaPE" long_name="partial deriv. of PEanom wrt S" unit="1e3" /> 845 <field id="petrd_zdfp_e3t" unit="W/m^2" grid_ref="grid_T_3D" > petrd_zdfp * e3t </field> 682 846 </field_group> 683 847 … … 793 957 <field id="CFC11" long_name="CFC-11 Concentration" unit="umol/m3" /> 794 958 <field id="CFC11_E3T" long_name="CFC11 * E3T" unit="umol/m2" > CFC11 * e3t </field > 959 795 960 <!-- Bomb C14 : variables available with key_c14b --> 796 <field id="C14B" long_name="Bomb C14 Concentration" unit="1" /> 797 <field id="C14B_E3T" long_name="C14B * E3T" unit="m" > C14B * e3t </field > 961 <field id="C14B" long_name="Bomb C14 Concentration" unit="1" /> 962 <field id="C14B_E3T" long_name="C14B * E3T" unit="m" > C14B * e3t </field > 963 964 <!-- AGE : variables available with key_age --> 965 <field id="Age" long_name="Sea Water Age Since Surface contact" standard_name="sea_water_age_since_surface_contact" unit="yr" /> 966 <field id="Age_e3t" long_name="Age * e3t" unit="yr * m" > Age * e3t </field > 967 798 968 </field_group> 799 969 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90
r6664 r7494 24 24 USE phycst ! physical constant 25 25 USE in_out_manager ! I/O manager 26 USE zdfddm 27 USE zdf_oce 26 28 27 29 IMPLICIT NONE … … 42 44 !! * Substitutions 43 45 # include "domzgr_substitute.h90" 46 # include "zdfddm_substitute.h90" 44 47 !!---------------------------------------------------------------------- 45 48 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 75 78 INTEGER :: ji, jj, jk ! dummy loop arguments 76 79 REAL(wp) :: zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass 80 REAL(wp) :: zaw, zbw, zrw 77 81 ! 78 82 REAL(wp), POINTER, DIMENSION(:,:) :: zarea_ssh , zbotpres ! 2D workspace 83 REAL(wp), POINTER, DIMENSION(:,:) :: pe ! 2D workspace 79 84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zrhd , zrhop ! 3D workspace 80 85 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztsn ! 4D workspace … … 82 87 IF( nn_timing == 1 ) CALL timing_start('dia_ar5') 83 88 84 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres )89 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres, pe ) 85 90 CALL wrk_alloc( jpi , jpj , jpk , zrhd , zrhop ) 86 91 CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn ) … … 95 100 CALL iom_put( 'voltot', zvol ) 96 101 CALL iom_put( 'sshtot', zvolssh / area_tot ) 102 CALL iom_put( 'sshdyn', sshn(:,:) - (zvolssh / area_tot) ) 97 103 98 104 ! … … 190 196 CALL iom_put( 'temptot', ztemp ) 191 197 CALL iom_put( 'saltot' , zsal ) 192 ! 193 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres ) 198 199 IF( iom_use( 'tnpeo' )) THEN 200 ! Work done against stratification by vertical mixing 201 ! Exclude points where rn2 is negative as convection kicks in here and 202 ! work is not being done against stratification 203 pe(:,:) = 0._wp 204 IF( lk_zdfddm ) THEN 205 DO ji=1,jpi 206 DO jj=1,jpj 207 DO jk=1,jpk 208 zrw = ( fsdepw(ji,jj,jk ) - fsdept(ji,jj,jk) ) & 209 & / ( fsdept(ji,jj,jk-1) - fsdept(ji,jj,jk) ) 210 ! 211 zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 212 zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 213 ! 214 pe(ji, jj) = pe(ji, jj) - MIN(0._wp, rn2(ji,jj,jk)) * & 215 & grav * (avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) ) & 216 & - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 217 218 ENDDO 219 ENDDO 220 ENDDO 221 ELSE 222 DO ji=1,jpi 223 DO jj=1,jpj 224 DO jk=1,jpk 225 pe(ji,jj) = pe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * fse3w(ji, jj, jk) 226 ENDDO 227 ENDDO 228 ENDDO 229 ENDIF 230 CALL lbc_lnk(pe, 'T', 1._wp) 231 CALL iom_put( 'tnpeo', pe ) 232 ENDIF 233 ! 234 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres, pe ) 194 235 CALL wrk_dealloc( jpi , jpj , jpk , zrhd , zrhop ) 195 236 CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn ) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r5147 r7494 9 9 !! 3.3 ! 2010-10 (G. Madec) dynamical allocation 10 10 !! 3.6 ! 2014-12 (C. Ethe) use of IOM 11 !! 3.6 ! 2016-06 (T. Graham) Addition of diagnostics for CMIP6 11 12 !!---------------------------------------------------------------------- 12 13 … … 21 22 USE dom_oce ! ocean space and time domain 22 23 USE phycst ! physical constants 24 USE ldftra_oce 23 25 ! 24 26 USE iom ! IOM library … … 38 40 PUBLIC dia_ptr_init ! call in step module 39 41 PUBLIC dia_ptr ! call in step module 42 PUBLIC dia_ptr_ohst_components ! called from tra_ldf/tra_adv routines 40 43 41 44 ! !!** namelist namptr ** 42 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) :: htr_adv, htr_ldf !: Heat TRansports (adv, diff, overturn.) 43 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) :: str_adv, str_ldf !: Salt TRansports (adv, diff, overturn.) 44 45 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_adv, htr_ldf, htr_eiv, htr_vt !: Heat TRansports (adv, diff, Bolus.) 46 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: str_adv, str_ldf, str_eiv, str_vs !: Salt TRansports (adv, diff, Bolus.) 47 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_ove, str_ove !: heat Salt TRansports ( overturn.) 48 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: htr_btr, str_btr !: heat Salt TRansports ( barotropic ) 45 49 46 50 LOGICAL, PUBLIC :: ln_diaptr ! Poleward transport flag (T) or not (F) 47 51 LOGICAL, PUBLIC :: ln_subbas ! Atlantic/Pacific/Indian basins calculation 48 INTEGER 52 INTEGER, PUBLIC :: nptr ! = 1 (l_subbas=F) or = 5 (glo, atl, pac, ind, ipc) (l_subbas=T) 49 53 50 54 REAL(wp) :: rc_sv = 1.e-6_wp ! conversion from m3/s to Sverdrup … … 65 69 !!---------------------------------------------------------------------- 66 70 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 67 !! $Id$ 71 !! $Id$ 68 72 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 69 73 !!---------------------------------------------------------------------- … … 77 81 ! 78 82 INTEGER :: ji, jj, jk, jn ! dummy loop indices 79 REAL(wp) :: z v, zsfc ! local scalar83 REAL(wp) :: zsfc,zvfc ! local scalar 80 84 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 81 85 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d ! 3D workspace 82 86 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask ! 3D workspace 83 87 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts ! 3D workspace 84 CHARACTER( len = 10 ) :: cl1 88 REAL(wp), DIMENSION(jpj) :: vsum ! 1D workspace 89 REAL(wp), DIMENSION(jpj,jpts) :: tssum ! 1D workspace 90 91 ! 92 !overturning calculation 93 REAL(wp), DIMENSION(jpj,jpk,nptr) :: sjk , r1_sjk ! i-mean i-k-surface and its inverse 94 REAL(wp), DIMENSION(jpj,jpk,nptr) :: v_msf, sn_jk , tn_jk ! i-mean T and S, j-Stream-Function 95 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zvn ! 3D workspace 96 97 98 CHARACTER( len = 12 ) :: cl1 85 99 !!---------------------------------------------------------------------- 86 100 ! … … 111 125 END DO 112 126 ENDIF 127 IF( iom_use("sopstove") .OR. iom_use("sophtove") .OR. iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 128 ! define fields multiplied by scalar 129 zmask(:,:,:) = 0._wp 130 zts(:,:,:,:) = 0._wp 131 zvn(:,:,:) = 0._wp 132 DO jk = 1, jpkm1 133 DO jj = 1, jpjm1 134 DO ji = 1, jpi 135 zvfc = e1v(ji,jj) * fse3v(ji,jj,jk) 136 zmask(ji,jj,jk) = vmask(ji,jj,jk) * zvfc 137 zts(ji,jj,jk,jp_tem) = (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * 0.5 * zvfc !Tracers averaged onto V grid 138 zts(ji,jj,jk,jp_sal) = (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) * 0.5 * zvfc 139 zvn(ji,jj,jk) = vn(ji,jj,jk) * zvfc 140 ENDDO 141 ENDDO 142 ENDDO 143 ENDIF 144 IF( iom_use("sopstove") .OR. iom_use("sophtove") ) THEN 145 sjk(:,:,1) = ptr_sjk( zmask(:,:,:), btmsk(:,:,1) ) 146 r1_sjk(:,:,1) = 0._wp 147 WHERE( sjk(:,:,1) /= 0._wp ) r1_sjk(:,:,1) = 1._wp / sjk(:,:,1) 148 149 ! i-mean T and S, j-Stream-Function, global 150 tn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_tem) ) * r1_sjk(:,:,1) 151 sn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_sal) ) * r1_sjk(:,:,1) 152 v_msf(:,:,1) = ptr_sjk( zvn(:,:,:) ) 153 154 htr_ove(:,1) = SUM( v_msf(:,:,1)*tn_jk(:,:,1) ,2 ) 155 str_ove(:,1) = SUM( v_msf(:,:,1)*sn_jk(:,:,1) ,2 ) 156 157 z2d(1,:) = htr_ove(:,1) * rc_pwatt ! (conversion in PW) 158 DO ji = 1, jpi 159 z2d(ji,:) = z2d(1,:) 160 ENDDO 161 cl1 = 'sophtove' 162 CALL iom_put( TRIM(cl1), z2d ) 163 z2d(1,:) = str_ove(:,1) * rc_ggram ! (conversion in Gg) 164 DO ji = 1, jpi 165 z2d(ji,:) = z2d(1,:) 166 ENDDO 167 cl1 = 'sopstove' 168 CALL iom_put( TRIM(cl1), z2d ) 169 IF( ln_subbas ) THEN 170 DO jn = 2, nptr 171 sjk(:,:,jn) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 172 r1_sjk(:,:,jn) = 0._wp 173 WHERE( sjk(:,:,jn) /= 0._wp ) r1_sjk(:,:,jn) = 1._wp / sjk(:,:,jn) 174 175 ! i-mean T and S, j-Stream-Function, basin 176 tn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 177 sn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 178 v_msf(:,:,jn) = ptr_sjk( zvn(:,:,:), btmsk(:,:,jn) ) 179 htr_ove(:,jn) = SUM( v_msf(:,:,jn)*tn_jk(:,:,jn) ,2 ) 180 str_ove(:,jn) = SUM( v_msf(:,:,jn)*sn_jk(:,:,jn) ,2 ) 181 182 z2d(1,:) = htr_ove(:,jn) * rc_pwatt ! (conversion in PW) 183 DO ji = 1, jpi 184 z2d(ji,:) = z2d(1,:) 185 ENDDO 186 cl1 = TRIM('sophtove_'//clsubb(jn)) 187 CALL iom_put( cl1, z2d ) 188 z2d(1,:) = str_ove(:,jn) * rc_ggram ! (conversion in Gg) 189 DO ji = 1, jpi 190 z2d(ji,:) = z2d(1,:) 191 ENDDO 192 cl1 = TRIM('sopstove_'//clsubb(jn)) 193 CALL iom_put( cl1, z2d ) 194 END DO 195 ENDIF 196 ENDIF 197 IF( iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 198 ! Calculate barotropic heat and salt transport here 199 sjk(:,1,1) = ptr_sj( zmask(:,:,:), btmsk(:,:,1) ) 200 r1_sjk(:,1,1) = 0._wp 201 WHERE( sjk(:,1,1) /= 0._wp ) r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 202 203 vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) 204 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 205 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) 206 htr_btr(:,1) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,1) 207 str_btr(:,1) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,1) 208 z2d(1,:) = htr_btr(:,1) * rc_pwatt ! (conversion in PW) 209 DO ji = 2, jpi 210 z2d(ji,:) = z2d(1,:) 211 ENDDO 212 cl1 = 'sophtbtr' 213 CALL iom_put( TRIM(cl1), z2d ) 214 z2d(1,:) = str_btr(:,1) * rc_ggram ! (conversion in Gg) 215 DO ji = 2, jpi 216 z2d(ji,:) = z2d(1,:) 217 ENDDO 218 cl1 = 'sopstbtr' 219 CALL iom_put( TRIM(cl1), z2d ) 220 IF( ln_subbas ) THEN 221 DO jn = 2, nptr 222 sjk(:,1,jn) = ptr_sj( zmask(:,:,:), btmsk(:,:,jn) ) 223 r1_sjk(:,1,jn) = 0._wp 224 WHERE( sjk(:,1,jn) /= 0._wp ) r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 225 vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,jn)) 226 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 227 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 228 htr_btr(:,jn) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,jn) 229 str_btr(:,jn) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,jn) 230 z2d(1,:) = htr_btr(:,jn) * rc_pwatt ! (conversion in PW) 231 DO ji = 1, jpi 232 z2d(ji,:) = z2d(1,:) 233 ENDDO 234 cl1 = TRIM('sophtbtr_'//clsubb(jn)) 235 CALL iom_put( cl1, z2d ) 236 z2d(1,:) = str_btr(:,jn) * rc_ggram ! (conversion in Gg) 237 DO ji = 1, jpi 238 z2d(ji,:) = z2d(1,:) 239 ENDDO 240 cl1 = TRIM('sopstbtr_'//clsubb(jn)) 241 CALL iom_put( cl1, z2d ) 242 ENDDO 243 ENDIF !ln_subbas 244 ENDIF !iom_use("sopstbtr....) 113 245 ! 114 246 ELSE … … 150 282 ! ! Advective and diffusive heat and salt transport 151 283 IF( iom_use("sophtadv") .OR. iom_use("sopstadv") ) THEN 152 z2d(1,:) = htr_adv(: ) * rc_pwatt ! (conversion in PW)284 z2d(1,:) = htr_adv(:,1) * rc_pwatt ! (conversion in PW) 153 285 DO ji = 1, jpi 154 286 z2d(ji,:) = z2d(1,:) … … 156 288 cl1 = 'sophtadv' 157 289 CALL iom_put( TRIM(cl1), z2d ) 158 z2d(1,:) = str_adv(: ) * rc_ggram ! (conversion in Gg)290 z2d(1,:) = str_adv(:,1) * rc_ggram ! (conversion in Gg) 159 291 DO ji = 1, jpi 160 292 z2d(ji,:) = z2d(1,:) … … 162 294 cl1 = 'sopstadv' 163 295 CALL iom_put( TRIM(cl1), z2d ) 296 IF( ln_subbas ) THEN 297 DO jn=2,nptr 298 z2d(1,:) = htr_adv(:,jn) * rc_pwatt ! (conversion in PW) 299 DO ji = 1, jpi 300 z2d(ji,:) = z2d(1,:) 301 ENDDO 302 cl1 = TRIM('sophtadv_'//clsubb(jn)) 303 CALL iom_put( cl1, z2d ) 304 z2d(1,:) = str_adv(:,jn) * rc_ggram ! (conversion in Gg) 305 DO ji = 1, jpi 306 z2d(ji,:) = z2d(1,:) 307 ENDDO 308 cl1 = TRIM('sopstadv_'//clsubb(jn)) 309 CALL iom_put( cl1, z2d ) 310 ENDDO 311 ENDIF 164 312 ENDIF 165 313 ! 166 314 IF( iom_use("sophtldf") .OR. iom_use("sopstldf") ) THEN 167 z2d(1,:) = htr_ldf(: ) * rc_pwatt ! (conversion in PW)315 z2d(1,:) = htr_ldf(:,1) * rc_pwatt ! (conversion in PW) 168 316 DO ji = 1, jpi 169 317 z2d(ji,:) = z2d(1,:) … … 171 319 cl1 = 'sophtldf' 172 320 CALL iom_put( TRIM(cl1), z2d ) 173 z2d(1,:) = str_ldf(: ) * rc_ggram ! (conversion in Gg)321 z2d(1,:) = str_ldf(:,1) * rc_ggram ! (conversion in Gg) 174 322 DO ji = 1, jpi 175 323 z2d(ji,:) = z2d(1,:) … … 177 325 cl1 = 'sopstldf' 178 326 CALL iom_put( TRIM(cl1), z2d ) 179 ENDIF 327 IF( ln_subbas ) THEN 328 DO jn=2,nptr 329 z2d(1,:) = htr_ldf(:,jn) * rc_pwatt ! (conversion in PW) 330 DO ji = 1, jpi 331 z2d(ji,:) = z2d(1,:) 332 ENDDO 333 cl1 = TRIM('sophtldf_'//clsubb(jn)) 334 CALL iom_put( cl1, z2d ) 335 z2d(1,:) = str_ldf(:,jn) * rc_ggram ! (conversion in Gg) 336 DO ji = 1, jpi 337 z2d(ji,:) = z2d(1,:) 338 ENDDO 339 cl1 = TRIM('sopstldf_'//clsubb(jn)) 340 CALL iom_put( cl1, z2d ) 341 ENDDO 342 ENDIF 343 ENDIF 344 345 IF( iom_use("sopht_vt") .OR. iom_use("sopst_vs") ) THEN 346 z2d(1,:) = htr_vt(:,1) * rc_pwatt ! (conversion in PW) 347 DO ji = 1, jpi 348 z2d(ji,:) = z2d(1,:) 349 ENDDO 350 cl1 = 'sopht_vt' 351 CALL iom_put( TRIM(cl1), z2d ) 352 z2d(1,:) = str_vs(:,1) * rc_ggram ! (conversion in Gg) 353 DO ji = 1, jpi 354 z2d(ji,:) = z2d(1,:) 355 ENDDO 356 cl1 = 'sopst_vs' 357 CALL iom_put( TRIM(cl1), z2d ) 358 IF( ln_subbas ) THEN 359 DO jn=2,nptr 360 z2d(1,:) = htr_vt(:,jn) * rc_pwatt ! (conversion in PW) 361 DO ji = 1, jpi 362 z2d(ji,:) = z2d(1,:) 363 ENDDO 364 cl1 = TRIM('sopht_vt_'//clsubb(jn)) 365 CALL iom_put( cl1, z2d ) 366 z2d(1,:) = str_vs(:,jn) * rc_ggram ! (conversion in Gg) 367 DO ji = 1, jpi 368 z2d(ji,:) = z2d(1,:) 369 ENDDO 370 cl1 = TRIM('sopst_vs_'//clsubb(jn)) 371 CALL iom_put( cl1, z2d ) 372 ENDDO 373 ENDIF 374 ENDIF 375 376 #ifdef key_diaeiv 377 IF(lk_traldf_eiv) THEN 378 IF( iom_use("sophteiv") .OR. iom_use("sopsteiv") ) THEN 379 z2d(1,:) = htr_eiv(:,1) * rc_pwatt ! (conversion in PW) 380 DO ji = 1, jpi 381 z2d(ji,:) = z2d(1,:) 382 ENDDO 383 cl1 = 'sophteiv' 384 CALL iom_put( TRIM(cl1), z2d ) 385 z2d(1,:) = str_eiv(:,1) * rc_ggram ! (conversion in Gg) 386 DO ji = 1, jpi 387 z2d(ji,:) = z2d(1,:) 388 ENDDO 389 cl1 = 'sopsteiv' 390 CALL iom_put( TRIM(cl1), z2d ) 391 IF( ln_subbas ) THEN 392 DO jn=2,nptr 393 z2d(1,:) = htr_eiv(:,jn) * rc_pwatt ! (conversion in PW) 394 DO ji = 1, jpi 395 z2d(ji,:) = z2d(1,:) 396 ENDDO 397 cl1 = TRIM('sophteiv_'//clsubb(jn)) 398 CALL iom_put( cl1, z2d ) 399 z2d(1,:) = str_eiv(:,jn) * rc_ggram ! (conversion in Gg) 400 DO ji = 1, jpi 401 z2d(ji,:) = z2d(1,:) 402 ENDDO 403 cl1 = TRIM('sopsteiv_'//clsubb(jn)) 404 CALL iom_put( cl1, z2d ) 405 ENDDO 406 ENDIF 407 ENDIF 408 ENDIF 409 #endif 180 410 ! 181 411 ENDIF … … 256 486 ! Initialise arrays to zero because diatpr is called before they are first calculated 257 487 ! Note that this means diagnostics will not be exactly correct when model run is restarted. 258 htr_adv(:) = 0._wp ; str_adv(:) = 0._wp 259 htr_ldf(:) = 0._wp ; str_ldf(:) = 0._wp 488 htr_adv(:,:) = 0._wp ; str_adv(:,:) = 0._wp 489 htr_ldf(:,:) = 0._wp ; str_ldf(:,:) = 0._wp 490 htr_eiv(:,:) = 0._wp ; str_eiv(:,:) = 0._wp 491 htr_vt(:,:) = 0._wp ; str_vs(:,:) = 0._wp 492 htr_ove(:,:) = 0._wp ; str_ove(:,:) = 0._wp 493 htr_btr(:,:) = 0._wp ; str_btr(:,:) = 0._wp 260 494 ! 261 495 ENDIF … … 263 497 END SUBROUTINE dia_ptr_init 264 498 499 SUBROUTINE dia_ptr_ohst_components( ktra, cptr, pva ) 500 !!---------------------------------------------------------------------- 501 !! *** ROUTINE dia_ptr_ohst_components *** 502 !!---------------------------------------------------------------------- 503 !! Wrapper for heat and salt transport calculations to calculate them for each basin 504 !! Called from all advection and/or diffusion routines 505 !!---------------------------------------------------------------------- 506 INTEGER , INTENT(in ) :: ktra ! tracer index 507 CHARACTER(len=3) , INTENT(in) :: cptr ! transport type 'adv'/'ldf'/'eiv' 508 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: pva ! 3D input array of advection/diffusion 509 INTEGER :: jn ! 510 511 IF( cptr == 'adv' ) THEN 512 IF( ktra == jp_tem ) htr_adv(:,1) = ptr_sj( pva(:,:,:) ) 513 IF( ktra == jp_sal ) str_adv(:,1) = ptr_sj( pva(:,:,:) ) 514 ENDIF 515 IF( cptr == 'ldf' ) THEN 516 IF( ktra == jp_tem ) htr_ldf(:,1) = ptr_sj( pva(:,:,:) ) 517 IF( ktra == jp_sal ) str_ldf(:,1) = ptr_sj( pva(:,:,:) ) 518 ENDIF 519 IF( cptr == 'eiv' ) THEN 520 IF( ktra == jp_tem ) htr_eiv(:,1) = ptr_sj( pva(:,:,:) ) 521 IF( ktra == jp_sal ) str_eiv(:,1) = ptr_sj( pva(:,:,:) ) 522 ENDIF 523 IF( cptr == 'vts' ) THEN 524 IF( ktra == jp_tem ) htr_vt(:,1) = ptr_sj( pva(:,:,:) ) 525 IF( ktra == jp_sal ) str_vs(:,1) = ptr_sj( pva(:,:,:) ) 526 ENDIF 527 ! 528 IF( ln_subbas ) THEN 529 ! 530 IF( cptr == 'adv' ) THEN 531 IF( ktra == jp_tem ) THEN 532 DO jn = 2, nptr 533 htr_adv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 534 END DO 535 ENDIF 536 IF( ktra == jp_sal ) THEN 537 DO jn = 2, nptr 538 str_adv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 539 END DO 540 ENDIF 541 ENDIF 542 IF( cptr == 'ldf' ) THEN 543 IF( ktra == jp_tem ) THEN 544 DO jn = 2, nptr 545 htr_ldf(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 546 END DO 547 ENDIF 548 IF( ktra == jp_sal ) THEN 549 DO jn = 2, nptr 550 str_ldf(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 551 END DO 552 ENDIF 553 ENDIF 554 IF( cptr == 'eiv' ) THEN 555 IF( ktra == jp_tem ) THEN 556 DO jn = 2, nptr 557 htr_eiv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 558 END DO 559 ENDIF 560 IF( ktra == jp_sal ) THEN 561 DO jn = 2, nptr 562 str_eiv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 563 END DO 564 ENDIF 565 ENDIF 566 IF( cptr == 'vts' ) THEN 567 IF( ktra == jp_tem ) THEN 568 DO jn = 2, nptr 569 htr_vt(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 570 END DO 571 ENDIF 572 IF( ktra == jp_sal ) THEN 573 DO jn = 2, nptr 574 str_vs(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 575 END DO 576 ENDIF 577 ENDIF 578 ! 579 ENDIF 580 END SUBROUTINE dia_ptr_ohst_components 581 265 582 266 583 FUNCTION dia_ptr_alloc() … … 273 590 ierr(:) = 0 274 591 ! 275 ALLOCATE( btmsk(jpi,jpj,nptr) , & 276 & htr_adv(jpj) , str_adv(jpj) , & 277 & htr_ldf(jpj) , str_ldf(jpj) , STAT=ierr(1) ) 592 ALLOCATE( btmsk(jpi,jpj,nptr) , & 593 & htr_adv(jpj,nptr) , str_adv(jpj,nptr) , & 594 & htr_eiv(jpj,nptr) , str_eiv(jpj,nptr) , & 595 & htr_vt(jpj,nptr) , str_vs(jpj,nptr) , & 596 & htr_ove(jpj,nptr) , str_ove(jpj,nptr) , & 597 & htr_btr(jpj,nptr) , str_btr(jpj,nptr) , & 598 & htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1) ) 278 599 ! 279 600 ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) … … 402 723 #endif 403 724 !!-------------------------------------------------------------------- 404 725 ! 405 726 p_fval => p_fval2d 406 727 … … 434 755 #endif 435 756 ! 757 436 758 END FUNCTION ptr_sjk 437 759 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r6348 r7494 156 156 IF( iom_use("e3tdef") ) & 157 157 CALL iom_put( "e3tdef" , ( ( fse3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 ) 158 CALL iom_put("tpt_dep", fsdept_n(:,:,:) ) 159 158 160 159 161 … … 318 320 CALL iom_put( "hdiv", hdivn ) ! Horizontal divergence 319 321 ! 320 IF( iom_use("u_masstr") .OR. iom_use("u_ heattr") .OR. iom_use("u_salttr") ) THEN322 IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 321 323 z3d(:,:,jpk) = 0.e0 324 z2d(:,:) = 0.e0 322 325 DO jk = 1, jpkm1 323 326 z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk) 327 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 324 328 END DO 325 329 CALL iom_put( "u_masstr", z3d ) ! mass transport in i-direction 330 CALL iom_put( "u_masstr_vint", z2d ) ! mass transport in i-direction vertical sum 326 331 ENDIF 327 332 … … 386 391 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 387 392 ENDIF 393 394 ! Vertical integral of temperature 395 IF( iom_use("tosmint") ) THEN 396 z2d(:,:)=0._wp 397 DO jk = 1, jpkm1 398 DO jj = 2, jpjm1 399 DO ji = fs_2, fs_jpim1 ! vector opt. 400 z2d(ji,jj) = z2d(ji,jj) + rau0 * fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_tem) 401 END DO 402 END DO 403 END DO 404 CALL lbc_lnk( z2d, 'T', -1. ) 405 CALL iom_put( "tosmint", z2d ) 406 ENDIF 407 408 ! Vertical integral of salinity 409 IF( iom_use("somint") ) THEN 410 z2d(:,:)=0._wp 411 DO jk = 1, jpkm1 412 DO jj = 2, jpjm1 413 DO ji = fs_2, fs_jpim1 ! vector opt. 414 z2d(ji,jj) = z2d(ji,jj) + rau0 * fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_sal) 415 END DO 416 END DO 417 END DO 418 CALL lbc_lnk( z2d, 'T', -1. ) 419 CALL iom_put( "somint", z2d ) 420 ENDIF 421 422 CALL iom_put( "bn2", rn2 ) !Brunt-Vaisala buoyancy frequency (N^2) 388 423 ! 389 424 CALL wrk_dealloc( jpi , jpj , z2d ) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r4990 r7494 166 166 ! 167 167 ENDIF 168 IF( l_trddyn ) THEN ! Put here so code doesn't crash when doing KE trend but needs to be done properly 169 CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv ) 170 ENDIF 168 171 ! 169 172 ELSE ! fixed volume (add the surface pressure gradient + unweighted time stepping) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r6315 r7494 228 228 ! automatic definitions of some of the xml attributs 229 229 CALL set_xmlatt 230 231 CALL set_1point 230 232 231 233 ! end file definition … … 1567 1569 zz=REAL(narea,wp) 1568 1570 CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz) 1569 1571 1570 1572 END SUBROUTINE set_scalar 1573 1574 SUBROUTINE set_1point 1575 !!---------------------------------------------------------------------- 1576 !! *** ROUTINE set_1point *** 1577 !! 1578 !! ** Purpose : define zoom grid for scalar fields 1579 !! 1580 !!---------------------------------------------------------------------- 1581 REAL(wp), DIMENSION(1) :: zz = 1. 1582 INTEGER :: ix, iy 1583 !!---------------------------------------------------------------------- 1584 CALL dom_ngb( 180., 90., ix, iy, 'T' ) ! Nearest point to north pole should be ocean 1585 CALL iom_set_domain_attr('1point', zoom_ibegin=ix, zoom_jbegin=iy) 1586 1587 END SUBROUTINE set_1point 1571 1588 1572 1589 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r7478 r7494 1422 1422 IF( iom_use('rain') ) & 1423 1423 & CALL iom_put( 'rain' , frcv(jpr_rain)%z3(:,:,1) ) ! liquid precipitation 1424 IF( iom_use('rain_ao_cea') ) & 1425 & CALL iom_put( 'rain_ao_cea' , frcv(jpr_rain)%z3(:,:,1)* p_frld(:,:) * tmask(:,:,1) ) ! liquid precipitation 1424 1426 IF( iom_use('hflx_rain_cea') ) & 1425 & CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) ) ! heat flux from liq. precip. 1427 CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) * tmask(:,:,1)) ! heat flux from liq. precip. 1428 IF( iom_use('hflx_prec_cea') ) & 1429 CALL iom_put( 'hflx_prec_cea', ztprecip * zcptn(:,:) * tmask(:,:,1) * p_frld(:,:) ) ! heat content flux from all precip (cell avg) 1430 IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') ) & 1431 ztmp(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) 1426 1432 IF( iom_use('evap_ao_cea' ) ) & 1427 & CALL iom_put( 'evap_ao_cea' , frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) )! ice-free oce evap (cell average)1433 CALL iom_put( 'evap_ao_cea' , ztmp * tmask(:,:,1) ) ! ice-free oce evap (cell average) 1428 1434 IF( iom_use('hflx_evap_cea') ) & 1429 & CALL iom_put( 'hflx_evap_cea', ( frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) ) * zcptn(:,:) )! heat flux from from evap (cell average)1430 CASE( 'oce and ice' ) ! received fields: jpr_sbpr, jpr_semp, jpr_oemp, jpr_ievp1435 CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * zcptn(:,:) * tmask(:,:,1) ) ! heat flux from from evap (cell average) 1436 CASE( 'oce and ice' ) ! received fields: jpr_sbpr, jpr_semp, jpr_oemp, jpr_ievp 1431 1437 zemp_tot(:,:) = p_frld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + zicefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) 1432 1438 zemp_ice(:,:) = frcv(jpr_semp)%z3(:,:,1) * zicefr(:,:) … … 1491 1497 ! runoffs and calving (put in emp_tot) 1492 1498 IF( srcv(jpr_rnf)%laction ) rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 1499 IF( iom_use('hflx_rnf_cea') ) & 1500 CALL iom_put( 'hflx_rnf_cea' , rnf(:,:) * zcptn(:,:) ) 1493 1501 IF( srcv(jpr_cal)%laction ) THEN 1494 1502 zemp_tot(:,:) = zemp_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r6228 r7494 91 91 CHARACTER (LEN=32) :: cvarLeff ! variable name for efficient Length scale 92 92 INTEGER :: ios ! Local integer output status for namelist read 93 94 REAL(wp), DIMENSION(:,:,:), POINTER :: zfwfisf3d, zqhcisf3d, zqlatisf3d 95 REAL(wp), DIMENSION(:,: ), POINTER :: zqhcisf2d 93 96 ! 94 97 !!--------------------------------------------------------------------- … … 273 276 274 277 ! output 275 IF( iom_use('q isf' ) ) CALL iom_put('qisf', qisf)276 IF( iom_use('fwfisf' ) ) CALL iom_put('fwfisf', fwfisf * stbl(:,:) / soce )278 IF( iom_use('qlatisf' ) ) CALL iom_put('qlatisf', qisf) 279 IF( iom_use('fwfisf' ) ) CALL iom_put('fwfisf' , fwfisf * stbl(:,:) / soce ) 277 280 278 281 ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now … … 284 287 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 285 288 CALL lbc_lnk(qisf(:,:) ,'T',1.) 289 290 !============================================================================================================================================= 291 IF ( iom_use('fwfisf3d') .OR. iom_use('qlatisf3d') .OR. iom_use('qhcisf3d') .OR. iom_use('qhcisf')) THEN 292 CALL wrk_alloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 293 CALL wrk_alloc( jpi,jpj, zqhcisf2d ) 294 295 zfwfisf3d(:,:,:) = 0.0_wp ! 3d ice shelf melting (kg/m2/s) 296 zqhcisf3d(:,:,:) = 0.0_wp ! 3d heat content flux (W/m2) 297 zqlatisf3d(:,:,:)= 0.0_wp ! 3d ice shelf melting latent heat flux (W/m2) 298 zqhcisf2d(:,:) = fwfisf(:,:) * zt_frz * rcp ! 2d heat content flux (W/m2) 299 300 DO jj = 1,jpj 301 DO ji = 1,jpi 302 ikt = misfkt(ji,jj) 303 ikb = misfkb(ji,jj) 304 DO jk = ikt, ikb - 1 305 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 306 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 307 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 308 END DO 309 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 310 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 311 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 312 END DO 313 END DO 314 315 CALL iom_put('fwfisf3d' , zfwfisf3d (:,:,:)) 316 CALL iom_put('qlatisf3d', zqlatisf3d(:,:,:)) 317 CALL iom_put('qhcisf3d' , zqhcisf3d (:,:,:)) 318 CALL iom_put('qhcisf' , zqhcisf2d (:,: )) 319 320 CALL wrk_dealloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 321 CALL wrk_dealloc( jpi,jpj, zqhcisf2d ) 322 END IF 323 !============================================================================================================================================= 286 324 287 325 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r5147 r7494 26 26 USE cla ! cross land advection (cla_traadv routine) 27 27 USE ldftra_oce ! lateral diffusion coefficient on tracers 28 USE trd_oce ! trends: ocean variables 29 USE trdtra ! trends manager: tracers 28 30 ! 29 31 USE in_out_manager ! I/O manager … … 79 81 INTEGER :: jk ! dummy loop index 80 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds ! 3D workspace 81 84 !!---------------------------------------------------------------------- 82 85 ! … … 120 123 IF( ln_diaptr ) CALL dia_ptr( zvn ) ! diagnose the effective MSF 121 124 ! 122 125 IF( l_trdtra ) THEN !* Save ta and sa trends 126 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 127 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 128 ztrds(:,:,:) = tsa(:,:,:,jp_sal) 129 ENDIF 130 ! 123 131 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 124 132 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered … … 151 159 END SELECT 152 160 ! 161 IF( l_trdtra ) THEN ! save the advective trends for further diagnostics 162 DO jk = 1, jpkm1 163 ztrdt(:,:,jk) = tsa(:,:,jk,jp_tem) - ztrdt(:,:,jk) 164 ztrds(:,:,jk) = tsa(:,:,jk,jp_sal) - ztrds(:,:,jk) 165 END DO 166 CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 167 CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds ) 168 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 169 ENDIF 153 170 ! ! print mean trends (used for debugging) 154 171 IF(ln_ctl) CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv - Ta: ', mask1=tmask, & -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r5540 r7494 279 279 END IF 280 280 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 281 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 282 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 283 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 284 ENDIF 281 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 285 282 ! 286 283 END DO -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r6204 r7494 28 28 USE wrk_nemo ! Memory Allocation 29 29 USE timing ! Timing 30 USE diaptr ! Heat/Salt transport diagnostics 31 USE trddyn 32 USE trd_oce 30 33 31 34 IMPLICIT NONE … … 78 81 # endif 79 82 REAL(wp), POINTER, DIMENSION(:,:) :: zu_eiv, zv_eiv, zw_eiv, z2d 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: z3d, z3d_T 80 84 !!---------------------------------------------------------------------- 81 85 ! … … 84 88 # if defined key_diaeiv 85 89 CALL wrk_alloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv, z2d ) 90 CALL wrk_alloc( jpi, jpj, jpk, z3d, z3d_T ) 86 91 # else 87 92 CALL wrk_alloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv ) … … 160 165 CALL iom_put( "voce_eiv", v_eiv ) ! j-eiv current 161 166 CALL iom_put( "woce_eiv", w_eiv ) ! vert. eiv current 162 IF( iom_use('ueiv_heattr') ) THEN 163 zztmp = 0.5 * rau0 * rcp 167 IF( iom_use('weiv_masstr') ) THEN ! vertical mass transport & its square value 168 z2d(:,:) = rau0 * e12t(:,:) 169 DO jk = 1, jpk 170 z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 171 END DO 172 CALL iom_put( "weiv_masstr" , z3d ) 173 ENDIF 174 IF( iom_use("ueiv_masstr") .OR. iom_use("ueiv_heattr") .OR. iom_use('ueiv_heattr3d') & 175 .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 176 z3d(:,:,jpk) = 0.e0 177 z2d(:,:) = 0.e0 178 DO jk = 1, jpkm1 179 z3d(:,:,jk) = rau0 * u_eiv(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk) 180 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 181 END DO 182 CALL iom_put( "ueiv_masstr", z3d ) ! mass transport in i-direction 183 ENDIF 184 185 IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 186 zztmp = 0.5 * rcp 164 187 z2d(:,:) = 0.e0 165 DO jk = 1, jpkm1 166 DO jj = 2, jpjm1 167 DO ji = fs_2, fs_jpim1 ! vector opt. 168 z2d(ji,jj) = z2d(ji,jj) + u_eiv(ji,jj,jk) & 169 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji+1,jj,jk,jp_tem)) * e2u(ji,jj) * fse3u(ji,jj,jk) 170 END DO 171 END DO 172 END DO 173 CALL lbc_lnk( z2d, 'U', -1. ) 174 CALL iom_put( "ueiv_heattr", zztmp * z2d ) ! heat transport in i-direction 188 z3d_T(:,:,:) = 0.e0 189 DO jk = 1, jpkm1 190 DO jj = 2, jpjm1 191 DO ji = fs_2, fs_jpim1 ! vector opt. 192 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 193 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 194 END DO 195 END DO 196 END DO 197 IF (iom_use('ueiv_heattr') ) THEN 198 CALL lbc_lnk( z2d, 'U', -1. ) 199 CALL iom_put( "ueiv_heattr", zztmp * z2d ) ! 2D heat transport in i-direction 200 ENDIF 201 IF (iom_use('ueiv_heattr3d') ) THEN 202 CALL lbc_lnk( z3d_T, 'U', -1. ) 203 CALL iom_put( "ueiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in i-direction 204 ENDIF 205 ENDIF 206 207 IF( iom_use('ueiv_salttr') .OR. iom_use('ueiv_salttr3d') ) THEN 208 zztmp = 0.5 * 0.001 209 z2d(:,:) = 0.e0 210 z3d_T(:,:,:) = 0.e0 211 DO jk = 1, jpkm1 212 DO jj = 2, jpjm1 213 DO ji = fs_2, fs_jpim1 ! vector opt. 214 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) ) 215 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 216 END DO 217 END DO 218 END DO 219 IF (iom_use('ueiv_salttr') ) THEN 220 CALL lbc_lnk( z2d, 'U', -1. ) 221 CALL iom_put( "ueiv_salttr", zztmp * z2d ) ! 2D salt transport in i-direction 222 ENDIF 223 IF (iom_use('ueiv_salttr3d') ) THEN 224 CALL lbc_lnk( z3d_T, 'U', -1. ) 225 CALL iom_put( "ueiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in i-direction 226 ENDIF 227 ENDIF 228 229 IF( iom_use("veiv_masstr") .OR. iom_use("veiv_heattr") .OR. iom_use('veiv_heattr3d') & 230 .OR. iom_use("veiv_salttr") .OR. iom_use('veiv_salttr3d') ) THEN 231 z3d(:,:,jpk) = 0.e0 232 DO jk = 1, jpkm1 233 z3d(:,:,jk) = rau0 * v_eiv(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk) 234 END DO 235 CALL iom_put( "veiv_masstr", z3d ) ! mass transport in j-direction 175 236 ENDIF 176 237 177 IF( iom_use('veiv_heattr') ) THEN178 zztmp = 0.5 * r au0 * rcp238 IF( iom_use('veiv_heattr') .OR. iom_use('veiv_heattr3d') ) THEN 239 zztmp = 0.5 * rcp 179 240 z2d(:,:) = 0.e0 180 DO jk = 1, jpkm1 181 DO jj = 2, jpjm1 182 DO ji = fs_2, fs_jpim1 ! vector opt. 183 z2d(ji,jj) = z2d(ji,jj) + v_eiv(ji,jj,jk) & 184 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * e1v(ji,jj) * fse3v(ji,jj,jk) 185 END DO 186 END DO 187 END DO 188 CALL lbc_lnk( z2d, 'V', -1. ) 189 CALL iom_put( "veiv_heattr", zztmp * z2d ) ! heat transport in i-direction 190 ENDIF 241 z3d_T(:,:,:) = 0.e0 242 DO jk = 1, jpkm1 243 DO jj = 2, jpjm1 244 DO ji = fs_2, fs_jpim1 ! vector opt. 245 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_tem) + tsn(ji,jj+1,jk,jp_tem) ) 246 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 247 END DO 248 END DO 249 END DO 250 IF (iom_use('veiv_heattr') ) THEN 251 CALL lbc_lnk( z2d, 'V', -1. ) 252 CALL iom_put( "veiv_heattr", zztmp * z2d ) ! 2D heat transport in j-direction 253 ENDIF 254 IF (iom_use('veiv_heattr3d') ) THEN 255 CALL lbc_lnk( z3d_T, 'V', -1. ) 256 CALL iom_put( "veiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in j-direction 257 ENDIF 258 ENDIF 259 260 IF( iom_use('veiv_salttr') .OR. iom_use('veiv_salttr3d') ) THEN 261 zztmp = 0.5 * 0.001 262 z2d(:,:) = 0.e0 263 z3d_T(:,:,:) = 0.e0 264 DO jk = 1, jpkm1 265 DO jj = 2, jpjm1 266 DO ji = fs_2, fs_jpim1 ! vector opt. 267 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_sal) + tsn(ji,jj+1,jk,jp_sal) ) 268 z2d(ji,jj) = z2d(ji,jj) + z3d_T(ji,jj,jk) 269 END DO 270 END DO 271 END DO 272 IF (iom_use('veiv_salttr') ) THEN 273 CALL lbc_lnk( z2d, 'V', -1. ) 274 CALL iom_put( "veiv_salttr", zztmp * z2d ) ! 2D salt transport in i-direction 275 ENDIF 276 IF (iom_use('veiv_salttr3d') ) THEN 277 CALL lbc_lnk( z3d_T, 'V', -1. ) 278 CALL iom_put( "veiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in i-direction 279 ENDIF 280 ENDIF 281 282 IF( iom_use('weiv_masstr') .OR. iom_use('weiv_heattr3d') .OR. iom_use('weiv_salttr3d')) THEN ! vertical mass transport & its square value 283 z2d(:,:) = rau0 * e12t(:,:) 284 DO jk = 1, jpk 285 z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 286 END DO 287 CALL iom_put( "weiv_masstr" , z3d ) ! mass transport in k-direction 288 ENDIF 289 290 IF( iom_use('weiv_heattr3d') ) THEN 291 zztmp = 0.5 * rcp 292 DO jk = 1, jpkm1 293 DO jj = 2, jpjm1 294 DO ji = fs_2, fs_jpim1 ! vector opt. 295 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_tem) + tsn(ji,jj,jk+1,jp_tem) ) 296 END DO 297 END DO 298 END DO 299 CALL lbc_lnk( z3d_T, 'T', 1. ) 300 CALL iom_put( "weiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in k-direction 301 ENDIF 302 303 IF( iom_use('weiv_salttr3d') ) THEN 304 zztmp = 0.5 * 0.001 305 DO jk = 1, jpkm1 306 DO jj = 2, jpjm1 307 DO ji = fs_2, fs_jpim1 ! vector opt. 308 z3d_T(ji,jj,jk) = z3d(ji,jj,jk) * ( tsn(ji,jj,jk,jp_sal) + tsn(ji,jj,jk+1,jp_sal) ) 309 END DO 310 END DO 311 END DO 312 CALL lbc_lnk( z3d_T, 'T', 1. ) 313 CALL iom_put( "weiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in k-direction 314 ENDIF 315 191 316 END IF 317 ! 318 IF( ln_diaptr .AND. cdtype == 'TRA' ) THEN 319 z3d(:,:,:) = 0._wp 320 DO jk = 1, jpkm1 321 DO jj = 2, jpjm1 322 DO ji = fs_2, fs_jpim1 ! vector opt. 323 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) & 324 & * e1v(ji,jj) * fse3v(ji,jj,jk) 325 END DO 326 END DO 327 END DO 328 CALL dia_ptr_ohst_components( jp_tem, 'eiv', z3d ) 329 z3d(:,:,:) = 0._wp 330 DO jk = 1, jpkm1 331 DO jj = 2, jpjm1 332 DO ji = fs_2, fs_jpim1 ! vector opt. 333 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) & 334 & * e1v(ji,jj) * fse3v(ji,jj,jk) 335 END DO 336 END DO 337 END DO 338 CALL dia_ptr_ohst_components( jp_sal, 'eiv', z3d ) 339 ENDIF 340 341 IF( ln_KE_trd ) CALL trd_dyn(u_eiv, v_eiv, jpdyn_eivke, kt ) 192 342 # endif 193 ! 343 194 344 # if defined key_diaeiv 195 345 CALL wrk_dealloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv, z2d ) 346 CALL wrk_dealloc( jpi, jpj, jpk, z3d, z3d_T ) 196 347 # else 197 348 CALL wrk_dealloc( jpi, jpj, zu_eiv, zv_eiv, zw_eiv ) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r5147 r7494 45 45 !!---------------------------------------------------------------------- 46 46 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 47 !! $Id$ 47 !! $Id$ 48 48 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 49 49 !!---------------------------------------------------------------------- … … 219 219 END IF 220 220 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 221 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 222 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 223 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 224 ENDIF 221 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 225 222 226 223 ! II. Vertical advective fluxes -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r5147 r7494 37 37 !!---------------------------------------------------------------------- 38 38 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 39 !! $Id$ 39 !! $Id$ 40 40 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 41 41 !!---------------------------------------------------------------------- … … 200 200 201 201 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 202 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 203 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 204 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 205 ENDIF 202 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 206 203 207 204 ! II. Vertical advective fluxes -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r5147 r7494 355 355 IF( l_trd ) CALL trd_tra( kt, cdtype, jn, jptra_yad, zwy, pvn, ptn(:,:,:,jn) ) 356 356 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 357 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 358 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 359 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 360 ENDIF 357 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', zwy(:,:,:) ) 361 358 ! 362 359 END DO -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r6770 r7494 34 34 USE timing ! Timing 35 35 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 36 USE iom 36 37 37 38 IMPLICIT NONE … … 42 43 43 44 LOGICAL :: l_trd ! flag to compute trends 45 LOGICAL :: l_trans ! flag to output vertically integrated transports 44 46 45 47 !! * Substitutions … … 85 87 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk ! - - 86 88 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz 87 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 89 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, zptry 90 REAL(wp), POINTER, DIMENSION(:,:) :: z2d 88 91 !!---------------------------------------------------------------------- 89 92 ! … … 98 101 ! 99 102 l_trd = .FALSE. 103 l_trans = .FALSE. 100 104 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 105 IF( cdtype == 'TRA' .AND. (iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") ) ) l_trans = .TRUE. 101 106 ENDIF 102 107 ! 103 IF( l_trd ) THEN108 IF( l_trd .OR. l_trans ) THEN 104 109 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 105 110 ztrdx(:,:,:) = 0.e0 ; ztrdy(:,:,:) = 0.e0 ; ztrdz(:,:,:) = 0.e0 111 CALL wrk_alloc( jpi, jpj, z2d ) 112 ENDIF 113 ! 114 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 115 CALL wrk_alloc( jpi, jpj, jpk, zptry ) 116 zptry(:,:,:) = 0._wp 106 117 ENDIF 107 118 ! … … 187 198 188 199 ! ! trend diagnostics (contribution of upstream fluxes) 189 IF( l_trd ) THEN200 IF( l_trd .OR. l_trans ) THEN 190 201 ! store intermediate advective trends 191 202 ztrdx(:,:,:) = zwx(:,:,:) ; ztrdy(:,:,:) = zwy(:,:,:) ; ztrdz(:,:,:) = zwz(:,:,:) 192 203 END IF 193 204 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 194 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 195 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 196 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 197 ENDIF 205 IF( cdtype == 'TRA' .AND. ln_diaptr ) zptry(:,:,:) = zwy(:,:,:) 198 206 199 207 ! 3. antidiffusive flux : high order minus low order … … 253 261 254 262 ! ! trend diagnostics (contribution of upstream fluxes) 255 IF( l_trd ) THEN263 IF( l_trd .OR. l_trans ) THEN 256 264 ztrdx(:,:,:) = ztrdx(:,:,:) + zwx(:,:,:) ! <<< Add to previously computed 257 265 ztrdy(:,:,:) = ztrdy(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed 258 266 ztrdz(:,:,:) = ztrdz(:,:,:) + zwz(:,:,:) ! <<< Add to previously computed 259 260 CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) ) 261 CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) ) 262 CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) ) 267 ENDIF 268 269 IF( l_trd ) THEN 270 CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) ) 271 CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) ) 272 CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) ) 263 273 END IF 264 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 274 275 IF( l_trans .AND. jn==jp_tem ) THEN 276 z2d(:,:) = 0._wp 277 DO jk = 1, jpkm1 278 DO jj = 2, jpjm1 279 DO ji = fs_2, fs_jpim1 ! vector opt. 280 z2d(ji,jj) = z2d(ji,jj) + ztrdx(ji,jj,jk) 281 END DO 282 END DO 283 END DO 284 CALL lbc_lnk( z2d, 'U', -1. ) 285 CALL iom_put( "uadv_heattr", rau0_rcp * z2d ) ! heat transport in i-direction 286 ! 287 z2d(:,:) = 0._wp 288 DO jk = 1, jpkm1 289 DO jj = 2, jpjm1 290 DO ji = fs_2, fs_jpim1 ! vector opt. 291 z2d(ji,jj) = z2d(ji,jj) + ztrdy(ji,jj,jk) 292 END DO 293 END DO 294 END DO 295 CALL lbc_lnk( z2d, 'V', -1. ) 296 CALL iom_put( "vadv_heattr", rau0_rcp * z2d ) ! heat transport in j-direction 297 ENDIF 298 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 265 299 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 266 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:)267 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:)300 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed 301 CALL dia_ptr_ohst_components( jn, 'adv', zptry(:,:,:) ) 268 302 ENDIF 269 303 ! 270 304 END DO 271 305 ! 272 CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz ) 273 IF( l_trd ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 306 CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz ) 307 IF( l_trd .OR. l_trans ) THEN 308 CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 309 CALL wrk_dealloc( jpi, jpj, z2d ) 310 ENDIF 311 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 274 312 ! 275 313 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_tvd') … … 318 356 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz, zhdiv, zwz_sav, zwzts 319 357 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 358 REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry 320 359 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrs 321 360 !!---------------------------------------------------------------------- … … 339 378 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 340 379 ztrdx(:,:,:) = 0._wp ; ztrdy(:,:,:) = 0._wp ; ztrdz(:,:,:) = 0._wp 380 ENDIF 381 ! 382 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 383 CALL wrk_alloc( jpi, jpj,jpk, zptry ) 384 zptry(:,:,:) = 0._wp 341 385 ENDIF 342 386 ! … … 428 472 END IF 429 473 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 430 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 431 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 432 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 433 ENDIF 474 IF( cdtype == 'TRA' .AND. ln_diaptr ) zptry(:,:,:) = zwy(:,:,:) 434 475 435 476 ! 3. antidiffusive flux : high order minus low order … … 556 597 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 557 598 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 558 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:)559 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:)599 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) 600 CALL dia_ptr_ohst_components( jn, 'adv', zptry(:,:,:) ) 560 601 ENDIF 561 602 ! … … 566 607 CALL wrk_dealloc( jpi, jpj, zwx_sav, zwy_sav ) 567 608 IF( l_trd ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 609 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 568 610 ! 569 611 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_tvd_zts') -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r5147 r7494 177 177 END IF 178 178 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 179 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 180 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( ztv(:,:,:) ) 181 IF( jn == jp_sal ) str_adv(:) = ptr_sj( ztv(:,:,:) ) 182 ENDIF 179 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'adv', ztv(:,:,:) ) 183 180 184 181 ! TVD scheme for the vertical direction -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90
r5147 r7494 173 173 ! 174 174 ! "zonal" mean lateral diffusive heat and salt transport 175 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 176 IF( jn == jp_tem ) htr_ldf(:) = ptr_sj( ztv(:,:,:) ) 177 IF( jn == jp_sal ) str_ldf(:) = ptr_sj( ztv(:,:,:) ) 178 ENDIF 175 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', ztv(:,:,:) ) 179 176 ! ! =========== 180 177 END DO ! tracer loop -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90
r5147 r7494 247 247 ! ! =============== 248 248 ! "Poleward" diffusive heat or salt transport 249 IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( kaht == 2 ) ) THEN 250 ! note sign is reversed to give down-gradient diffusive transports (#1043) 251 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 252 IF( jn == jp_sal) str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 253 ENDIF 249 ! note sign is reversed to give down-gradient diffusive transports (#1043) 250 IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( kaht == 2 ) ) CALL dia_ptr_ohst_components( jn, 'ldf', -zftv(:,:,:) ) 254 251 255 252 ! ! ************ ! ! =============== -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r5149 r7494 235 235 ! 236 236 ! "Poleward" diffusive heat or salt transports (T-S case only) 237 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN238 237 ! note sign is reversed to give down-gradient diffusive transports (#1043) 239 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 240 IF( jn == jp_sal) str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 241 ENDIF 238 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', -zftv(:,:,:) ) 242 239 243 240 IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90
r5147 r7494 386 386 ! 387 387 ! ! "Poleward" diffusive heat or salt transports (T-S case only) 388 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 389 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( zftv(:,:,:) ) ! 3.3 names 390 IF( jn == jp_sal) str_ldf(:) = ptr_sj( zftv(:,:,:) ) 391 ENDIF 388 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', zftv(:,:,:) ) 392 389 393 390 IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90
r5147 r7494 154 154 ! 155 155 ! "Poleward" diffusive heat or salt transports 156 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 157 IF( jn == jp_tem) htr_ldf(:) = ptr_sj( ztv(:,:,:) ) 158 IF( jn == jp_sal) str_ldf(:) = ptr_sj( ztv(:,:,:) ) 159 ENDIF 156 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', ztv(:,:,:) ) 160 157 ! ! ================== 161 158 END DO ! end of tracer loop -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRD/trd_oce.F90
r5215 r7494 33 33 # endif 34 34 ! !!!* Active tracers trends indexes 35 INTEGER, PUBLIC, PARAMETER :: jptot_tra = 14!: Total trend nb: change it when adding/removing one indice below35 INTEGER, PUBLIC, PARAMETER :: jptot_tra = 20 !: Total trend nb: change it when adding/removing one indice below 36 36 ! =============== ! 37 37 INTEGER, PUBLIC, PARAMETER :: jptra_xad = 1 !: x- horizontal advection … … 39 39 INTEGER, PUBLIC, PARAMETER :: jptra_zad = 3 !: z- vertical advection 40 40 INTEGER, PUBLIC, PARAMETER :: jptra_sad = 4 !: z- vertical advection 41 INTEGER, PUBLIC, PARAMETER :: jptra_ldf = 5 !: lateral diffusion 42 INTEGER, PUBLIC, PARAMETER :: jptra_zdf = 6 !: vertical diffusion 43 INTEGER, PUBLIC, PARAMETER :: jptra_zdfp = 7 !: "PURE" vert. diffusion (ln_traldf_iso=T) 44 INTEGER, PUBLIC, PARAMETER :: jptra_bbc = 8 !: Bottom Boundary Condition (geoth. heating) 45 INTEGER, PUBLIC, PARAMETER :: jptra_bbl = 9 !: Bottom Boundary Layer (diffusive and/or advective) 46 INTEGER, PUBLIC, PARAMETER :: jptra_npc = 10 !: non-penetrative convection treatment 47 INTEGER, PUBLIC, PARAMETER :: jptra_dmp = 11 !: internal restoring (damping) 48 INTEGER, PUBLIC, PARAMETER :: jptra_qsr = 12 !: penetrative solar radiation 49 INTEGER, PUBLIC, PARAMETER :: jptra_nsr = 13 !: non solar radiation / C/D on salinity (+runoff if ln_rnf=T) 50 INTEGER, PUBLIC, PARAMETER :: jptra_atf = 14 !: Asselin time filter 41 INTEGER, PUBLIC, PARAMETER :: jptra_totad = 5 !: total advection 42 INTEGER, PUBLIC, PARAMETER :: jptra_ldf = 6 !: lateral diffusion 43 INTEGER, PUBLIC, PARAMETER :: jptra_zdf = 7 !: vertical diffusion 44 INTEGER, PUBLIC, PARAMETER :: jptra_zdfp = 8 !: "PURE" vert. diffusion (ln_traldf_iso=T) 45 INTEGER, PUBLIC, PARAMETER :: jptra_evd = 9 !: EVD term (convection) 46 INTEGER, PUBLIC, PARAMETER :: jptra_bbc = 10 !: Bottom Boundary Condition (geoth. heating) 47 INTEGER, PUBLIC, PARAMETER :: jptra_bbl = 11 !: Bottom Boundary Layer (diffusive and/or advective) 48 INTEGER, PUBLIC, PARAMETER :: jptra_npc = 12 !: non-penetrative convection treatment 49 INTEGER, PUBLIC, PARAMETER :: jptra_dmp = 13 !: internal restoring (damping) 50 INTEGER, PUBLIC, PARAMETER :: jptra_qsr = 14 !: penetrative solar radiation 51 INTEGER, PUBLIC, PARAMETER :: jptra_nsr = 15 !: non solar radiation / C/D on salinity (+runoff if ln_rnf=T) 52 INTEGER, PUBLIC, PARAMETER :: jptra_atf = 16 !: Asselin time filter 53 INTEGER, PUBLIC, PARAMETER :: jptra_tot = 17 !: Model total trend 51 54 ! 52 55 ! !!!* Passive tracers trends indices (use if "key_top" defined) 53 INTEGER, PUBLIC, PARAMETER :: jptra_sms = 1 5!: sources m. sinks54 INTEGER, PUBLIC, PARAMETER :: jptra_radn = 1 6!: corr. trn<0 in trcrad55 INTEGER, PUBLIC, PARAMETER :: jptra_radb = 17!: corr. trb<0 in trcrad (like atf)56 INTEGER, PUBLIC, PARAMETER :: jptra_sms = 18 !: sources m. sinks 57 INTEGER, PUBLIC, PARAMETER :: jptra_radn = 19 !: corr. trn<0 in trcrad 58 INTEGER, PUBLIC, PARAMETER :: jptra_radb = 20 !: corr. trb<0 in trcrad (like atf) 56 59 ! 57 60 ! !!!* Momentum trends indices 58 INTEGER, PUBLIC, PARAMETER :: jptot_dyn = 1 5!: Total trend nb: change it when adding/removing one indice below61 INTEGER, PUBLIC, PARAMETER :: jptot_dyn = 16 !: Total trend nb: change it when adding/removing one indice below 59 62 ! =============== ! 60 63 INTEGER, PUBLIC, PARAMETER :: jpdyn_hpg = 1 !: hydrostatic pressure gradient … … 73 76 INTEGER, PUBLIC, PARAMETER :: jpdyn_spgflt = 14 !: filter contribution to surface pressure gradient (spg_flt) 74 77 INTEGER, PUBLIC, PARAMETER :: jpdyn_spgexp = 15 !: explicit contribution to surface pressure gradient (spg_flt) 78 INTEGER, PUBLIC, PARAMETER :: jpdyn_eivke = 16 !: K.E trend from Gent McWilliams scheme 75 79 ! 76 80 !!---------------------------------------------------------------------- -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRD/trdini.F90
r5215 r7494 91 91 !!gm end 92 92 ! 93 IF( lk_vvl .AND. ( l_trdtra .OR. l_trddyn ) ) CALL ctl_stop( 'trend diagnostics with variable volume not validated' )93 ! IF( lk_vvl .AND. ( l_trdtra .OR. l_trddyn ) ) CALL ctl_stop( 'trend diagnostics with variable volume not validated' ) 94 94 95 95 !!gm : Potential BUG : 3D output only for vector invariant form! add a ctl_stop or code the flux form case -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90
r6204 r7494 27 27 USE lib_mpp ! MPP library 28 28 USE wrk_nemo ! Memory allocation 29 USE ldfslp ! Isopycnal slopes 29 30 30 31 IMPLICIT NONE … … 42 43 # include "domzgr_substitute.h90" 43 44 # include "vectopt_loop_substitute.h90" 45 # include "ldfeiv_substitute.h90" 46 44 47 !!---------------------------------------------------------------------- 45 48 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 192 195 CALL ken_p2k( kt , zke ) 193 196 CALL iom_put( "ketrd_convP2K", zke ) ! conversion -rau*g*w 197 CASE( jpdyn_eivke ) 198 ! CMIP6 diagnostic tknebto = tendency of KE from 199 ! parameterized mesoscale eddy advection 200 ! = vertical_integral( k (N S)^2 ) rho dz 201 ! rho = reference density 202 ! S = isoneutral slope. 203 ! Most terms are on W grid so work on this grid 204 CALL wrk_alloc( jpi, jpj, zke2d ) 205 zke2d(:,:) = 0._wp 206 DO jk = 1,jpk 207 DO ji = 1,jpi 208 DO jj = 1,jpj 209 zke2d(ji,jj) = zke2d(ji,jj) + rau0 * fsaeiw(ji, jj, jk) & 210 & * ( wslpi(ji, jj, jk) * wslpi(ji,jj,jk) & 211 & + wslpj(ji, jj, jk) * wslpj(ji,jj,jk) ) & 212 & * rn2(ji,jj,jk) * fse3w(ji, jj, jk) 213 ENDDO 214 ENDDO 215 ENDDO 216 CALL iom_put("ketrd_eiv", zke2d) 217 CALL wrk_dealloc( jpi, jpj, zke2d ) 194 218 ! 195 219 END SELECT -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRD/trdpen.F90
r6204 r7494 150 150 rab_pe(:,:,:,:) = 0._wp 151 151 ! 152 IF ( lk_vvl ) CALL ctl_stop('trd_pen_init : PE trends not coded for variable volume')152 ! IF ( lk_vvl ) CALL ctl_stop('trd_pen_init : PE trends not coded for variable volume') 153 153 ! 154 154 nkstp = nit000 - 1 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
r4990 r7494 38 38 REAL(wp) :: r2dt ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 39 39 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt ! use to store the temperature trends 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt ! use to store the temperature trends 41 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_evd ! store avt_evd to calculate EVD trend 41 42 42 43 !! * Substitutions … … 55 56 !! *** FUNCTION trd_tra_alloc *** 56 57 !!--------------------------------------------------------------------- 57 ALLOCATE( trdtx(jpi,jpj,jpk) , trdty(jpi,jpj,jpk) , trdt(jpi,jpj,jpk) , STAT= trd_tra_alloc )58 ALLOCATE( trdtx(jpi,jpj,jpk) , trdty(jpi,jpj,jpk) , trdt(jpi,jpj,jpk) , avt_evd(jpi,jpj,jpk), STAT= trd_tra_alloc ) 58 59 ! 59 60 IF( lk_mpp ) CALL mpp_sum ( trd_tra_alloc ) … … 104 105 ztrds(:,:,:) = 0._wp 105 106 CALL trd_tra_mng( trdt, ztrds, ktrd, kt ) 107 CASE( jptra_evd ) ; avt_evd(:,:,:) = ptrd(:,:,:) * tmask(:,:,:) 106 108 CASE DEFAULT ! other trends: masked trends 107 109 trdt(:,:,:) = ptrd(:,:,:) * tmask(:,:,:) ! mask & store … … 128 130 zwt(:,:,jpk) = 0._wp ; zws(:,:,jpk) = 0._wp 129 131 DO jk = 2, jpk 130 zwt(:,:,jk) = avt(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / fse3w(:,:,jk) * tmask(:,:,jk)132 zwt(:,:,jk) = avt_k(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / fse3w(:,:,jk) * tmask(:,:,jk) 131 133 zws(:,:,jk) = fsavs(:,:,jk) * ( tsa(:,:,jk-1,jp_sal) - tsa(:,:,jk,jp_sal) ) / fse3w(:,:,jk) * tmask(:,:,jk) 132 134 END DO … … 138 140 END DO 139 141 CALL trd_tra_mng( ztrdt, ztrds, jptra_zdfp, kt ) 142 ! 143 ! ! Also calculate EVD trend at this point. 144 zwt(:,:,:) = 0._wp ; zws(:,:,:) = 0._wp ! vertical diffusive fluxes 145 DO jk = 2, jpk 146 zwt(:,:,jk) = avt_evd(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / fse3w(:,:,jk) * tmask(:,:,jk) 147 zws(:,:,jk) = avt_evd(:,:,jk) * ( tsa(:,:,jk-1,jp_sal) - tsa(:,:,jk,jp_sal) ) / fse3w(:,:,jk) * tmask(:,:,jk) 148 END DO 149 ! 150 ztrdt(:,:,jpk) = 0._wp ; ztrds(:,:,jpk) = 0._wp 151 DO jk = 1, jpkm1 152 ztrdt(:,:,jk) = ( zwt(:,:,jk) - zwt(:,:,jk+1) ) / fse3t(:,:,jk) 153 ztrds(:,:,jk) = ( zws(:,:,jk) - zws(:,:,jk+1) ) / fse3t(:,:,jk) 154 END DO 155 CALL trd_tra_mng( ztrdt, ztrds, jptra_evd, kt ) 140 156 ! 141 157 CALL wrk_dealloc( jpi, jpj, jpk, zwt, zws, ztrdt ) … … 312 328 CALL wrk_dealloc( jpi, jpj, z2dx, z2dy ) 313 329 ENDIF 330 CASE( jptra_totad ) ; CALL iom_put( "ttrd_totad" , ptrdx ) ! total advection 331 CALL iom_put( "strd_totad" , ptrdy ) 314 332 CASE( jptra_ldf ) ; CALL iom_put( "ttrd_ldf" , ptrdx ) ! lateral diffusion 315 333 CALL iom_put( "strd_ldf" , ptrdy ) … … 318 336 CASE( jptra_zdfp ) ; CALL iom_put( "ttrd_zdfp", ptrdx ) ! PURE vertical diffusion (no isoneutral contribution) 319 337 CALL iom_put( "strd_zdfp", ptrdy ) 338 CASE( jptra_evd ) ; CALL iom_put( "ttrd_evd", ptrdx ) ! EVD trend (convection) 339 CALL iom_put( "strd_evd", ptrdy ) 320 340 CASE( jptra_dmp ) ; CALL iom_put( "ttrd_dmp" , ptrdx ) ! internal restoring (damping) 321 341 CALL iom_put( "strd_dmp" , ptrdy ) … … 324 344 CASE( jptra_npc ) ; CALL iom_put( "ttrd_npc" , ptrdx ) ! static instability mixing 325 345 CALL iom_put( "strd_npc" , ptrdy ) 326 CASE( jptra_nsr ) ; CALL iom_put( "ttrd_qns" , ptrdx ) ! surface forcing + runoff (ln_rnf=T)327 CALL iom_put( "strd_cdt" , ptrdy )346 CASE( jptra_nsr ) ; CALL iom_put( "ttrd_qns" , ptrdx(:,:,1) ) ! surface forcing + runoff (ln_rnf=T) 347 CALL iom_put( "strd_cdt" , ptrdy(:,:,1) ) ! output as 2D surface fields 328 348 CASE( jptra_qsr ) ; CALL iom_put( "ttrd_qsr" , ptrdx ) ! penetrative solar radiat. (only on temperature) 329 349 CASE( jptra_bbc ) ; CALL iom_put( "ttrd_bbc" , ptrdx ) ! geothermal heating (only on temperature) 330 350 CASE( jptra_atf ) ; CALL iom_put( "ttrd_atf" , ptrdx ) ! asselin time Filter 331 351 CALL iom_put( "strd_atf" , ptrdy ) 352 CASE( jptra_tot ) ; CALL iom_put( "ttrd_tot" , ptrdx ) ! model total trend 353 CALL iom_put( "strd_tot" , ptrdy ) 332 354 END SELECT 333 355 ! -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90
r4990 r7494 19 19 USE zdf_oce ! ocean vertical physics variables 20 20 USE zdfkpp ! KPP vertical mixing 21 USE trd_oce ! trends: ocean variables 22 USE trdtra ! trends manager: tracers 21 23 USE in_out_manager ! I/O manager 22 24 USE iom ! for iom_put … … 122 124 zavt_evd(:,:,:) = avt(:,:,:) - zavt_evd(:,:,:) ! change in avt due to evd 123 125 CALL iom_put( "avt_evd", zavt_evd ) ! output this change 126 IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 124 127 ! 125 128 IF( nn_timing == 1 ) CALL timing_stop('zdf_evd') -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/step.F90
r6963 r7494 234 234 IF( lk_diaar5 ) CALL dia_ar5( kstp ) ! ar5 diag 235 235 IF( lk_diaharm ) CALL dia_harm( kstp ) ! Tidal harmonic analysis 236 CALL dia_prod( kstp ) ! ocean model: product diagnostics 236 237 CALL dia_wri( kstp ) ! ocean model: outputs 237 238 ! -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
r3680 r7494 7 7 !!---------------------------------------------------------------------- 8 8 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 9 !! $Id$ 9 !! $Id$ 10 10 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 11 11 !!---------------------------------------------------------------------- … … 25 25 USE par_c14b , ONLY : jp_c14b_trd !: number of tracers in C14 26 26 27 USE par_age , ONLY : jp_age !: number of tracers in AGE 28 USE par_age , ONLY : jp_age_2d !: number of tracers in AGE 29 USE par_age , ONLY : jp_age_3d !: number of tracers in AGE 30 USE par_age , ONLY : jp_age_trd !: number of tracers in AGE 31 27 32 IMPLICIT NONE 28 33 29 INTEGER, PARAMETER :: jp_lm = jp_pisces + jp_cfc + jp_c14b !:30 INTEGER, PARAMETER :: jp_lm_2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d !:31 INTEGER, PARAMETER :: jp_lm_3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d !:32 INTEGER, PARAMETER :: jp_lm_trd = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:34 INTEGER, PARAMETER :: jp_lm = jp_pisces + jp_cfc + jp_c14b + jp_age !: 35 INTEGER, PARAMETER :: jp_lm_2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_age_2d !: 36 INTEGER, PARAMETER :: jp_lm_3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_age_3d !: 37 INTEGER, PARAMETER :: jp_lm_trd = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_age_trd !: 33 38 34 39 #if defined key_my_trc -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90
r4990 r7494 28 28 !!---------------------------------------------------------------------- 29 29 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 30 !! $Id$ 30 !! $Id$ 31 31 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 32 32 !!---------------------------------------------------------------------- … … 61 61 ENDIF 62 62 63 IF( lk_age ) CALL trc_rad_sms( kt, trb, trn, jp_age0 , jp_age1 ) ! AGE tracer 63 64 IF( lk_cfc ) CALL trc_rad_sms( kt, trb, trn, jp_cfc0 , jp_cfc1 ) ! CFC model 64 65 IF( lk_c14b ) CALL trc_rad_sms( kt, trb, trn, jp_c14b0, jp_c14b1 ) ! bomb C14 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/par_trc.F90
r4529 r7494 14 14 USE par_c14b ! C14 bomb tracer 15 15 USE par_cfc ! CFC 11 and 12 tracers 16 USE par_age ! AGE tracer 16 17 USE par_my_trc ! user defined passive tracers 17 18 … … 24 25 ! Passive tracers : Total size 25 26 ! --------------- ! total number of passive tracers, of 2d and 3d output and trend arrays 26 INTEGER, PUBLIC, PARAMETER :: jptra = jp_pisces + jp_cfc + jp_c14b + jp_ my_trc27 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_ my_trc_2d28 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_ my_trc_3d27 INTEGER, PUBLIC, PARAMETER :: jptra = jp_pisces + jp_cfc + jp_c14b + jp_age + jp_my_trc 28 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_age_2d + jp_my_trc_2d 29 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_age_3d + jp_my_trc_3d 29 30 ! ! total number of sms diagnostic arrays 30 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_ my_trc_trd31 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_age_trd + jp_my_trc_trd 31 32 32 33 ! 1D configuration ("key_c1d") … … 42 43 !!---------------------------------------------------------------------- 43 44 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 44 !! $Id$ 45 !! $Id$ 45 46 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 46 47 !!====================================================================== -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r6941 r7494 23 23 USE trcini_pisces ! PISCES initialisation 24 24 USE trcini_c14b ! C14 bomb initialisation 25 USE trcini_age ! AGE initialisation 25 26 USE trcini_my_trc ! MY_TRC initialisation 26 27 USE trcdta ! initialisation from files … … 41 42 !!---------------------------------------------------------------------- 42 43 !! NEMO/TOP 4.0 , NEMO Consortium (2011) 43 !! $Id$ 44 !! $Id$ 44 45 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 45 46 !!---------------------------------------------------------------------- … … 96 97 97 98 IF( lk_pisces ) CALL trc_ini_pisces ! PISCES bio-model 98 IF( lk_cfc ) CALL trc_ini_cfc ! CFC tracers99 IF( lk_cfc ) CALL trc_ini_cfc ! CFC tracers 99 100 IF( lk_c14b ) CALL trc_ini_c14b ! C14 bomb tracer 100 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers 101 IF( lk_age ) CALL trc_ini_age ! AGE tracer 102 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers 101 103 102 104 CALL trc_ice_ini ! Tracers in sea ice -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r6204 r7494 24 24 USE trcnam_cfc ! CFC SMS namelist 25 25 USE trcnam_c14b ! C14 SMS namelist 26 USE trcnam_age ! AGE SMS namelist 26 27 USE trcnam_my_trc ! MY_TRC SMS namelist 27 28 USE trd_oce … … 61 62 62 63 ! ! passive tracer informations 63 CALL trc_nam_trc64 CALL trc_nam_trc 64 65 65 66 ! ! Parameters of additional diagnostics 66 CALL trc_nam_dia67 IF( .NOT. lk_iomput) CALL trc_nam_dia 67 68 68 69 ! ! namelist of transport 69 CALL trc_nam_trp70 CALL trc_nam_trp 70 71 71 72 … … 161 162 ENDIF 162 163 163 IF( lk_c14b ) THEN ; CALL trc_nam_c14b ! C14 bomb tracers 164 ELSE ; IF(lwp) WRITE(numout,*) ' C14 not used' 165 ENDIF 166 167 IF( lk_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers 168 ELSE ; IF(lwp) WRITE(numout,*) ' MY_TRC not used' 164 IF( lk_c14b ) THEN ; CALL trc_nam_c14b ! C14 bomb tracers 165 ELSE ; IF(lwp) WRITE(numout,*) ' C14 not used' 166 ENDIF 167 168 IF( lk_age ) THEN ; CALL trc_nam_age ! AGE tracer 169 ELSE ; IF(lwp) WRITE(numout,*) ' AGE not used' 170 ENDIF 171 172 IF( lk_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers 173 ELSE ; IF(lwp) WRITE(numout,*) ' MY_TRC not used' 169 174 ENDIF 170 175 ! … … 359 364 ENDIF 360 365 361 IF( ln_diatrc .AND. .NOT. lk_iomput) THEN366 IF( ln_diatrc ) THEN 362 367 ALLOCATE( trc2d(jpi,jpj,jpdia2d), trc3d(jpi,jpj,jpk,jpdia3d), & 363 368 & ctrc2d(jpdia2d), ctrc2l(jpdia2d), ctrc2u(jpdia2d) , & … … 370 375 ENDIF 371 376 372 IF( ( ln_diabio .AND. .NOT. lk_iomput ).OR. l_trdtrc ) THEN377 IF( ln_diabio .OR. l_trdtrc ) THEN 373 378 ALLOCATE( trbio (jpi,jpj,jpk,jpdiabio) , & 374 379 & ctrbio(jpdiabio), ctrbil(jpdiabio), ctrbiu(jpdiabio), STAT = ierr ) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
r6204 r7494 18 18 USE trcsms_cfc ! CFC 11 & 12 19 19 USE trcsms_c14b ! C14b tracer 20 USE trcsms_age ! AGE tracer 20 21 USE trcsms_my_trc ! MY_TRC tracers 21 22 USE prtctl_trc ! Print control for debbuging … … 28 29 !!---------------------------------------------------------------------- 29 30 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 30 !! $Id$ 31 !! $Id$ 31 32 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 32 33 !!---------------------------------------------------------------------- … … 51 52 IF( lk_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC 52 53 IF( lk_c14b ) CALL trc_sms_c14b ( kt ) ! surface fluxes of C14 54 IF( lk_age ) CALL trc_sms_age ( kt ) ! AGE tracer 53 55 IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers 54 56 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r3750 r7494 20 20 USE trcwri_cfc 21 21 USE trcwri_c14b 22 USE trcwri_age 22 23 USE trcwri_my_trc 23 24 … … 59 60 IF( lk_cfc ) CALL trc_wri_cfc ! surface fluxes of CFC 60 61 IF( lk_c14b ) CALL trc_wri_c14b ! surface fluxes of C14 62 IF( lk_age ) CALL trc_wri_age ! AGE tracer 61 63 IF( lk_my_trc ) CALL trc_wri_my_trc ! MY_TRC tracers 62 64 ! … … 78 80 !!---------------------------------------------------------------------- 79 81 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 80 !! $Id$ 82 !! $Id$ 81 83 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 82 84 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.