spherical_quad_area Function

private pure function spherical_quad_area(r, lat1, lon1, lat2, lon2, lat3, lon3, lat4, lon4) result(area)

Area (m^2) of a spherical quadrilateral with the four corners (1,2,3,4 counter-clockwise) given in degrees, via L’Huilier’s theorem on the two triangles (1,2,3) and (1,3,4).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: r
real(kind=wp), intent(in) :: lat1
real(kind=wp), intent(in) :: lon1
real(kind=wp), intent(in) :: lat2
real(kind=wp), intent(in) :: lon2
real(kind=wp), intent(in) :: lat3
real(kind=wp), intent(in) :: lon3
real(kind=wp), intent(in) :: lat4
real(kind=wp), intent(in) :: lon4

Return Value real(kind=wp)


Calls

proc~~spherical_quad_area~~CallsGraph proc~spherical_quad_area spherical_quad_area proc~spherical_tri_area spherical_tri_area proc~spherical_quad_area->proc~spherical_tri_area proc~great_circle great_circle proc~spherical_tri_area->proc~great_circle

Called by

proc~~spherical_quad_area~~CalledByGraph proc~spherical_quad_area spherical_quad_area proc~tripolar_supergrid_arrays tripolar_supergrid_arrays proc~tripolar_supergrid_arrays->proc~spherical_quad_area proc~metrics_fill_tripolar_whole metrics_fill_tripolar_whole proc~metrics_fill_tripolar_whole->proc~tripolar_supergrid_arrays proc~metrics_fill_tripolar metrics_fill_tripolar proc~metrics_fill_tripolar->proc~metrics_fill_tripolar_whole proc~configure_ocean_metrics configure_ocean_metrics proc~configure_ocean_metrics->proc~metrics_fill_tripolar proc~engine_setup engine_setup proc~engine_setup->proc~configure_ocean_metrics

Source Code

   pure function spherical_quad_area(r, lat1, lon1, lat2, lon2, &
                                     lat3, lon3, lat4, lon4) result(area)
      !! Area (m^2) of a spherical quadrilateral with the four corners
      !! (1,2,3,4 counter-clockwise) given in degrees, via L'Huilier's
      !! theorem on the two triangles (1,2,3) and (1,3,4).
      real(wp), intent(in) :: r
      real(wp), intent(in) :: lat1, lon1, lat2, lon2, lat3, lon3, lat4, lon4
      real(wp) :: area
      area = (spherical_tri_area(r, lat1, lon1, lat2, lon2, lat3, lon3) &
              + spherical_tri_area(r, lat1, lon1, lat3, lon3, lat4, lon4))
   end function spherical_quad_area