roquet_spv_value Function

public pure function roquet_spv_value(T_pt, S_sp, p) result(sv)

VALUE-ONLY Roquet et al. (2015) specific volume (m^3/kg) at a point, model variables (PT degC, SP PSU, p Pa). The same number as roquet_spv_point’s sv without the dSV/dT, dSV/dS and PT->CT chain-rule work that a density-only consumer (rho_layer, eos_density_point) would discard – roughly half the arithmetic.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: T_pt
real(kind=wp), intent(in) :: S_sp
real(kind=wp), intent(in) :: p

Return Value real(kind=wp)


Calls

proc~~roquet_spv_value~~CallsGraph proc~roquet_spv_value roquet_spv_value rdb_roq_spv_p rdb_roq_spv_p proc~roquet_spv_value->rdb_roq_spv_p rdb_roq_ts_coeffs rdb_roq_ts_coeffs proc~roquet_spv_value->rdb_roq_ts_coeffs

Called by

proc~~roquet_spv_value~~CalledByGraph proc~roquet_spv_value roquet_spv_value proc~eos_density_point eos_density_point proc~eos_density_point->proc~roquet_spv_value proc~eos_roquet_spv_impl eos_roquet_spv_impl proc~eos_roquet_spv_impl->proc~roquet_spv_value proc~boole_dpa_intz_layer boole_dpa_intz_layer proc~boole_dpa_intz_layer->proc~eos_density_point proc~eos_compute_arrays eos_compute_arrays proc~eos_compute_arrays->proc~eos_roquet_spv_impl proc~ocean_vcoord_rho_target_column ocean_vcoord_rho_target_column proc~ocean_vcoord_rho_target_column->proc~eos_density_point proc~remap_layer_to_density_impl remap_layer_to_density_impl proc~remap_layer_to_density_impl->proc~eos_density_point proc~boole_dpa_face boole_dpa_face proc~boole_dpa_face->proc~boole_dpa_intz_layer proc~boole_dpa_face_pcm boole_dpa_face_pcm proc~boole_dpa_face_pcm->proc~boole_dpa_intz_layer proc~compute_fv_mom6_reconstruct_impl compute_fv_mom6_reconstruct_impl proc~compute_fv_mom6_reconstruct_impl->proc~boole_dpa_intz_layer proc~compute_fv_mom6_reconstruct_impl->proc~boole_dpa_face proc~ocean_eos_compute ocean_eos_compute proc~ocean_eos_compute->proc~eos_compute_arrays proc~ocean_vcoord_rho_target ocean_vcoord_rho_target proc~ocean_vcoord_rho_target->proc~ocean_vcoord_rho_target_column proc~remap_layer_to_density remap_layer_to_density proc~remap_layer_to_density->proc~remap_layer_to_density_impl proc~ocean_pressure_force_compute ocean_pressure_force_compute proc~ocean_pressure_force_compute->proc~compute_fv_mom6_reconstruct_impl proc~ocean_vcoord_compute_target_h_rho_impl ocean_vcoord_compute_target_h_rho_impl proc~ocean_vcoord_compute_target_h_rho_impl->proc~ocean_vcoord_rho_target proc~rdb_ocean_set_h rdb_ocean_set_h proc~rdb_ocean_set_h->proc~ocean_eos_compute proc~rdb_ocean_set_tracer rdb_ocean_set_tracer proc~rdb_ocean_set_tracer->proc~ocean_eos_compute proc~run_stage run_stage proc~run_stage->proc~ocean_eos_compute proc~run_stage->proc~ocean_pressure_force_compute proc~run_stage_split run_stage_split proc~run_stage_split->proc~ocean_eos_compute proc~run_stage_split->proc~ocean_pressure_force_compute proc~ocean_dyn_step ocean_dyn_step proc~ocean_dyn_step->proc~run_stage proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~run_stage_split proc~ocean_vcoord_compute_target_h_rho ocean_vcoord_t%ocean_vcoord_compute_target_h_rho proc~ocean_vcoord_compute_target_h_rho->proc~ocean_vcoord_compute_target_h_rho_impl

Variables

Type Visibility Attributes Name Initial
real(kind=wp), private :: sv0
real(kind=wp), private :: sv1
real(kind=wp), private :: sv2
real(kind=wp), private :: sv3

Source Code

   pure function roquet_spv_value(T_pt, S_sp, p) result(sv)
      !! VALUE-ONLY Roquet et al. (2015) specific volume (m^3/kg) at a point,
      !! model variables (PT degC, SP PSU, p Pa).  The same number as
      !! `roquet_spv_point`'s `sv` without the dSV/dT, dSV/dS and PT->CT
      !! chain-rule work that a density-only consumer (`rho_layer`,
      !! `eos_density_point`) would discard -- roughly half the arithmetic.
      !$acc routine seq
      real(wp), intent(in) :: T_pt, S_sp, p
      real(wp) :: sv

      real(wp) :: sv0, sv1, sv2, sv3

      call rdb_roq_ts_coeffs(T_pt, S_sp, sv0, sv1, sv2, sv3)
      sv = rdb_roq_spv_p(sv0, sv1, sv2, sv3, p)
   end function roquet_spv_value