run Subroutine

public subroutine run(rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(out), optional :: rc

Calls

proc~~run~14~~CallsGraph proc~run~14 run fargparsecli fargparsecli proc~run~14->fargparsecli mpi_init mpi_init proc~run~14->mpi_init proc~mapl_return MAPL_Return proc~run~14->proc~mapl_return proc~mapl_verify MAPL_Verify proc~run~14->proc~mapl_verify at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception

Called by

proc~~run~14~~CalledByGraph proc~run~14 run program~main~7 main program~main~7->proc~run~14

Source Code

      subroutine run(rc)

         integer, intent(out), optional :: rc

         type(FargparseCLI_Type) :: cli
         type(MAPL_CapOptions)   :: cap_options

         integer :: status
         character(len=:), allocatable :: input_file

         call MPI_Init(status)
         _VERIFY(status)

         ! Read and parse the command line, and set parameters
         ! If you have extra options, you need to make two procedures as seen below:
         ! 1. a procedure to declare the options
         ! 2. a procedure to cast the options
         cap_options = FargparseCLI(extra_options=extra_options, cast_extras=cast_extras)

         write(*,*) "done with MAPL_FargparseCLI"
         write(*,*) "  cap_options%with_esmf_moab = ", cap_options%with_esmf_moab
         write(*,*) "  cap_options%npes_input_server = ", cap_options%npes_input_server
         write(*,*) "  cap_options%nodes_input_server = ", cap_options%nodes_input_server
         write(*,*) "  cap_options%npes_output_server = ", cap_options%npes_output_server
         write(*,*) "  cap_options%nodes_output_server = ", cap_options%nodes_output_server
         write(*,*) "  cap_options%egress_file = ", cap_options%egress_file
         write(*,*) ""
         write(*,*) "Extra arguments"
         write(*,*) "  input file = ", input_file

         _RETURN(_SUCCESS)

         contains

            subroutine extra_options(parser, rc)
               type (ArgParser), intent(inout) :: parser
               integer, intent(out), optional :: rc

               call parser%add_argument('-f', '--file', &
                  help='A file to read', &
                  type='string', &
                  default='default.config', &
                  action='store')

               !_RETURN(_SUCCESS)
               if (present(rc)) rc = 0

            end subroutine extra_options

            subroutine cast_extras(cli, rc)
               type(FargparseCLI_Type), intent(inout) :: cli
               integer, intent(out), optional :: rc

               class(*), pointer :: option

               option => cli%options%at('file')
               if (associated(option)) then
                  call cast(option, input_file, _RC)
               end if

               !_RETURN(_SUCCESS)
               if (present(rc)) rc = 0

            end subroutine cast_extras

      end subroutine run