monitor_obj_Init Subroutine

private impure subroutine monitor_obj_Init(this, name, ncol, sep)

Intializes a single monitor.

Type Bound

monitor_obj

Arguments

Type IntentOptional Attributes Name
class(monitor_obj), intent(inout) :: this

A monitor object

character(len=*), intent(in) :: name

Name of the monitor

integer, intent(in) :: ncol

Number of columns

character(len=*), intent(in), optional :: sep

Column separator


Calls

proc~~monitor_obj_init~~CallsGraph proc~monitor_obj_init monitor_obj%monitor_obj_Init proc~monitor_obj_formats monitor_obj%monitor_obj_Formats proc~monitor_obj_init->proc~monitor_obj_formats proc~sysutils_obj_createdirectory sysutils_obj%sysutils_obj_CreateDirectory proc~monitor_obj_init->proc~sysutils_obj_createdirectory

Called by

proc~~monitor_obj_init~~CalledByGraph proc~monitor_obj_init monitor_obj%monitor_obj_Init proc~monitor_set_create monitor_set%monitor_set_Create proc~monitor_set_create->proc~monitor_obj_init proc~cdifs_obj_preparesolvermonitor cdifs_obj_PrepareSolverMonitor proc~cdifs_obj_preparesolvermonitor->proc~monitor_set_create proc~respart_set_createmonitor ResPart_set%ResPart_set_CreateMonitor proc~cdifs_obj_preparesolvermonitor->proc~respart_set_createmonitor proc~grans_obj_preparesolvermonitor grans_obj_PrepareSolverMonitor proc~grans_obj_preparesolvermonitor->proc~monitor_set_create proc~grans_obj_preparesolvermonitor->proc~respart_set_createmonitor proc~particle_set_createmonitor particle_set%particle_set_CreateMonitor proc~particle_set_createmonitor->proc~monitor_set_create proc~respart_set_createmonitor->proc~monitor_set_create proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolvermonitor proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_preparesolvermonitor interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver

Source Code

    impure subroutine monitor_obj_Init(this,name,ncol,sep)
      !> Intializes a single monitor.
      implicit none
      class(monitor_obj), intent(inout) :: this                                !! A monitor object
      character(len=*),   intent(in)    :: name                                !! Name of the monitor
      integer,            intent(in)    :: ncol                                !! Number of columns
      character(len=*),   intent(in),    &
                               optional :: sep                                 !! Column separator
      ! Work variables
      type(sysutils_obj) :: sysutils

      ! Set the name
      this%name=trim(name)

      ! Set the column seperator
      if (present(sep)) then
        if(len(sep).ne.1) stop "Cannot use a separtor that is larger than one character"
        this%sep=sep
      else
        this%sep=" "
      end if

      ! Set the number of columns
      if( ncol.le.0) stop "Cannot initialize a monitor with less than 1 column"
      allocate(this%col(ncol))

      ! Initialize labels to a default value
      this%col(:)%label="UNASSIGNED"

      ! Define formats
      call this%Formats

      ! Do we print to stdout or file
      if (.not.this%stdout) then
        ! Create monitor directory if it doesn't exist
        call sysutils%CreateDirectory(baseDirName)
        ! Open file
        open(newunit=this%fid, file=baseDirName//'/'//baseFileName//trim(adjustl(this%name)),status="replace")
      else
        ! Connect to stdout
        this%fid=6
      end if

      return
    end subroutine monitor_obj_Init