MAPL_Cap Derived Type

type, public :: MAPL_Cap


Inherits

type~~mapl_cap~~InheritsGraph type~mapl_cap MAPL_Cap type~mapl_capgridcomp MAPL_CapGridComp type~mapl_cap->type~mapl_capgridcomp cap_gc type~mapl_capoptions MAPL_CapOptions type~mapl_cap->type~mapl_capoptions cap_options type~servermanager ServerManager type~mapl_cap->type~servermanager cap_server type~simplecommsplitter SimpleCommSplitter type~mapl_cap->type~simplecommsplitter splitter ESMF_Alarm ESMF_Alarm type~mapl_capgridcomp->ESMF_Alarm alarm_list ESMF_Clock ESMF_Clock type~mapl_capgridcomp->ESMF_Clock clock, clock_hist ESMF_Config ESMF_Config type~mapl_capgridcomp->ESMF_Config cf_ext, cf_root, cf_hist, config ESMF_GridComp ESMF_GridComp type~mapl_capgridcomp->ESMF_GridComp gc, gcs ESMF_State ESMF_State type~mapl_capgridcomp->ESMF_State import_state, export_state, child_imports, child_exports ESMF_Time ESMF_Time type~mapl_capgridcomp->ESMF_Time cap_restart_time, AlarmRingTime ESMF_VM ESMF_VM type~mapl_capgridcomp->ESMF_VM vm type~throughputtimers ThroughputTimers type~mapl_capgridcomp->type~throughputtimers starts ESMF_LogKind_Flag ESMF_LogKind_Flag type~mapl_capoptions->ESMF_LogKind_Flag esmf_logging_mode type~servermanager->type~simplecommsplitter splitter type~baseserver BaseServer type~servermanager->type~baseserver o_server type~directoryservice DirectoryService type~servermanager->type~directoryservice directory_service type~mpiserver MpiServer type~servermanager->type~mpiserver i_server type~splitcommunicator SplitCommunicator type~servermanager->type~splitcommunicator split_comm type~abstractcommsplitter AbstractCommSplitter type~simplecommsplitter->type~abstractcommsplitter type~commgroupdescriptionvector CommGroupDescriptionVector type~simplecommsplitter->type~commgroupdescriptionvector group_descriptions type~abstractserver AbstractServer type~baseserver->type~abstractserver type~serverthreadvector ServerThreadVector type~baseserver->type~serverthreadvector threads type~commgroupdescription CommGroupDescription type~commgroupdescriptionvector->type~commgroupdescription elements c_ptr c_ptr type~directoryservice->c_ptr server_dir, client_dir type~abstractdirectoryservice AbstractDirectoryService type~directoryservice->type~abstractdirectoryservice type~mpimutex MpiMutex type~directoryservice->type~mpimutex mutex type~portinfo PortInfo type~directoryservice->type~portinfo local_ports type~protocolparser ProtocolParser type~directoryservice->type~protocolparser parser type~mpiserver->type~baseserver StringInteger64Map StringInteger64Map type~abstractserver->StringInteger64Map prefetch_offset, stage_offset type~abstractdatareferencevector AbstractDataReferenceVector type~abstractserver->type~abstractdatareferencevector dataRefPtrs type~mpimutex->c_ptr locks_ptr type~portinfo->type~baseserver server_ptr type~integermessagemap IntegerMessageMap type~protocolparser->type~integermessagemap prototypes type~v_wrapper~13 v_Wrapper type~serverthreadvector->type~v_wrapper~13 elements

Components

Type Visibility Attributes Name Initial
type(MAPL_CapGridComp), public :: cap_gc
type(SimpleCommSplitter), public :: splitter

Constructor

public interface MAPL_Cap

  • private function new_MAPL_Cap_from_set_services(name, set_services, unusable, cap_options, rc) result(cap)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: name
    procedure :: set_services
    class(KeywordEnforcer), intent(in), optional :: unusable
    type(MAPL_CapOptions), intent(in), optional :: cap_options
    integer, intent(out), optional :: rc

    Return Value type(MAPL_Cap)

  • private function new_MAPL_Cap_from_dso(name, unusable, cap_options, rc) result(cap)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: name
    class(KeywordEnforcer), intent(in), optional :: unusable
    type(MAPL_CapOptions), intent(in), optional :: cap_options
    integer, intent(out), optional :: rc

    Return Value type(MAPL_Cap)


Type-Bound Procedures

procedure, public :: create_member_subcommunicator

  • private function create_member_subcommunicator(this, comm, unusable, rc) result(subcommunicator)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    integer, intent(in) :: comm
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

    Return Value integer

procedure, public :: finalize_io_clients_servers

  • private subroutine finalize_io_clients_servers(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout), target :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: finalize_mpi

  • private subroutine finalize_mpi(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: get_cap_gc

  • private function get_cap_gc(this) result(cap_gc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this

    Return Value type(MAPL_CapGridComp)

procedure, public :: get_cap_rc_file

  • private function get_cap_rc_file(this) result(cap_rc_file)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this

    Return Value character(len=:), allocatable

procedure, public :: get_comm_world

  • private function get_comm_world(this) result(comm_world)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this

    Return Value integer

procedure, public :: get_egress_file

  • private function get_egress_file(this) result(egress_file)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this

    Return Value character(len=:), allocatable

procedure, public :: get_n_members

  • private function get_n_members(this) result(n_members)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this

    Return Value integer

procedure, public :: get_npes_model

  • private function get_npes_model(this) result(npes_model)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(in) :: this

    Return Value integer

procedure, public :: initialize_cap_gc

  • private subroutine initialize_cap_gc(this, unusable, n_run_phases, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(in), optional :: n_run_phases
    integer, intent(out), optional :: rc

procedure, public :: initialize_io_clients_servers

  • private subroutine initialize_io_clients_servers(this, comm, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout), target :: this
    integer, intent(in) :: comm
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: initialize_mpi

  • private subroutine initialize_mpi(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: rewind_model

  • private subroutine rewind_model(this, time, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    type(ESMF_Time), intent(inout) :: time
    integer, intent(out) :: rc

procedure, public :: run

  • private subroutine run(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: run_ensemble

  • private subroutine run_ensemble(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout), target :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: run_member

  • private subroutine run_member(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: run_model

  • private subroutine run_model(this, comm, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    integer, intent(in) :: comm
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: step_model

  • private subroutine step_model(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(MAPL_Cap), intent(inout) :: this
    integer, intent(out) :: rc

Source Code

   type :: MAPL_Cap
      private
      character(:), allocatable :: name
      procedure(), nopass, pointer :: set_services => null()
      logical :: non_dso = .false.
      integer :: comm_world
      integer :: rank
      integer :: npes_member
      character(:), allocatable :: root_dso

      type (MAPL_CapOptions), allocatable :: cap_options
      ! misc
      logical :: mpi_already_initialized = .false.
      type(MAPL_CapGridComp), public :: cap_gc
      type(ServerManager) :: cap_server
      type(SimpleCommSplitter), public :: splitter
   contains
      procedure :: run
      procedure :: run_ensemble
      procedure :: run_member
      procedure :: run_model
      procedure :: step_model
      procedure :: rewind_model

      procedure :: create_member_subcommunicator
      procedure :: initialize_io_clients_servers
      procedure :: finalize_io_clients_servers
      procedure :: initialize_cap_gc
      procedure :: initialize_mpi
      procedure :: finalize_mpi


      !getters
      procedure :: get_npes_model
      procedure :: get_comm_world
      procedure :: get_n_members
      procedure :: get_cap_gc
      procedure :: get_cap_rc_file
      procedure :: get_egress_file

   end type MAPL_Cap