geopotential_model Derived Type

type, public :: geopotential_model

The base abstract class for the various geopotential models


Inherited by

type~~geopotential_model~~InheritedByGraph type~geopotential_model geopotential_model type~geopotential_model_matrix_coeff geopotential_model_matrix_coeff type~geopotential_model_matrix_coeff->type~geopotential_model type~geopotential_model_vector_coeff geopotential_model_vector_coeff type~geopotential_model_vector_coeff->type~geopotential_model type~geopotential_model_kuga_carrara geopotential_model_kuga_carrara type~geopotential_model_kuga_carrara->type~geopotential_model_matrix_coeff type~geopotential_model_lear geopotential_model_lear type~geopotential_model_lear->type~geopotential_model_matrix_coeff type~geopotential_model_mueller geopotential_model_mueller type~geopotential_model_mueller->type~geopotential_model_vector_coeff type~geopotential_model_normalized_pines geopotential_model_normalized_pines type~geopotential_model_normalized_pines->type~geopotential_model_matrix_coeff type~geopotential_model_pines geopotential_model_pines type~geopotential_model_pines->type~geopotential_model_matrix_coeff

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: name

model name

character(len=:), public, allocatable :: filename

model file name

integer, public :: nmax = 0

degree of the model

integer, public :: mmax = 0

order of the model

real(kind=wp), public :: re = zero

body radius [km]

real(kind=wp), public :: mu = zero

body grav. parameter [km3/s2]


Type-Bound Procedures

procedure, public :: initialize => read_geopotential_file

  • private subroutine read_geopotential_file(me, filename, nmax, mmax, status_ok)

    Author
    Jacob Williams
    Date
    9/20/2014

    Read the gravity coefficient file. Example file: ftp://ftp.csr.utexas.edu/pub/grav/EGM96.GEO.Z

    Arguments

    Type IntentOptional Attributes Name
    class(geopotential_model), intent(inout) :: me
    character(len=*), intent(in) :: filename
    integer, intent(in) :: nmax
    integer, intent(in) :: mmax
    logical, intent(out) :: status_ok

procedure, public :: destroy => destroy_geopotential_model

procedure(acc_function), public, deferred :: get_acc

  • subroutine acc_function(me, r, n, m, a) Prototype

    Interface to the acceleration function for the different methods

    Arguments

    Type IntentOptional Attributes Name
    class(geopotential_model), intent(inout) :: me
    real(kind=wp), intent(in), dimension(3) :: r
    integer, intent(in) :: n
    integer, intent(in) :: m
    real(kind=wp), intent(out), dimension(3) :: a

Source Code

    type,abstract,public :: geopotential_model

        !! The base abstract class for the various geopotential models

        character(len=:),allocatable :: name      !! model name
        character(len=:),allocatable :: filename  !! model file name

        integer  :: nmax = 0     !! degree of the model
        integer  :: mmax = 0     !! order of the model
        real(wp) :: re   = zero  !! body radius [km]
        real(wp) :: mu   = zero  !! body grav. parameter [km3/s2]

        contains

        procedure,public :: initialize  => read_geopotential_file
        procedure,public :: destroy     => destroy_geopotential_model

        procedure(acc_function),deferred,public :: get_acc

    end type geopotential_model