KTH framework for Nek5000 toolboxes; testing version  0.0.1

Backbone for toolboxes. More...

+ Collaboration diagram for Frame module:

Modules

 Monitoring module
 Monitoring routines for toolboxes.
 
 Runtime parameters
 Routines related to module's runtime parameters.
 

Files

file  frame.f
 Set of routines for framework operation.
 

Functions

subroutine frame_start
 Start framework. More...
 
subroutine frame_monitor
 Simulataion monitoring. More...
 
subroutine frame_end
 Finalise framework. More...
 
integer function frame_get_master ()
 Specify master node id. More...
 

Detailed Description

Backbone for toolboxes.

The frame module provides backbone of the whole framework consisting of dynamical (as much as fortran 77 allows for it) databases for registered modules, runtime parameters and timers. This is supposed to simplify interactions between different modules, logging and operations on runtime parameters. It provides interfaces for intialisation, monitoring and finalisation of the framework. It requires as well three subroutines defined in setup.usr and providing modules registration (frame_usr_register), initialisation (frame_usr_init) and finalisation (frame_usr_end). There are three modules automatically started by framework: monitor, runtime parameters and I/O tools. These modules should not be registered inside (frame_usr_register).

This module also provides an include file FRAMELP defining log priorities and runtime parameter types. Using logging routines from the monitor submodule, one can easily specify the verbosity of the code. The logging level can be set in two ways: by LOGLEVEL runtime parameter in [_MNTR] section of setup.par file (doeas not cover framework initialisation) or by setting the enviromental variable FRAMELOGL. The second way covers all stages of the simulation. For the bash shell this variable can be set by:

FRAMELOGL = 5
export FRAMELOGL
Module interface:
Global interface list:
Interface provided:
  1. frame_start
  2. frame_monitor
  3. frame_end
  4. frame_get_master
Global interface dependency:
Interface required:
  1. multiple interfaces from Runtime parameters and Monitoring module modules (automatically registered)
  2. io_file_close from I/O tools module (automatically registered)
  3. frame_usr_register; user defined
  4. frame_usr_init; user defined
  5. frame_usr_end; user defined
Module interface usage:
!======================================================================
subroutine userchk
include 'TSTEP'
if (istep.eq.0) then
! start framework
endif
! monitor simulation
! place other modules calls
! finalise framework
if (istep.eq.nsteps.or.lastep.eq.1) then
call frame_end
endif
return
end
!======================================================================
subroutine frame_monitor
Simulataion monitoring.
Definition: frame.f:59
subroutine frame_start
Start framework.
Definition: frame.f:12
subroutine frame_end
Finalise framework.
Definition: frame.f:76
!=======================================================================
subroutine frame_usr_register
implicit none
include 'SIZE'
include 'FRAMELP'
!-----------------------------------------------------------------------
! register modules
return
end subroutine
!======================================================================
subroutine frame_usr_init
implicit none
include 'SIZE'
include 'FRAMELP'
!-----------------------------------------------------------------------
! initialise modules
return
end subroutine
!======================================================================
subroutine frame_usr_end
implicit none
include 'SIZE'
include 'FRAMELP'
!-----------------------------------------------------------------------
! finalise modules
return
end subroutine
!======================================================================

Function Documentation

◆ frame_end()

subroutine frame_end

Finalise framework.

Definition at line 75 of file frame.f.

References io_file_close(), and mntr_tmr_summary_print().

+ Here is the call graph for this function:

◆ frame_get_master()

integer function frame_get_master

Specify master node id.

Returns
frame_get_master

Definition at line 97 of file frame.f.

◆ frame_monitor()

subroutine frame_monitor

Simulataion monitoring.

Definition at line 58 of file frame.f.

References mntr_wclock().

+ Here is the call graph for this function:

◆ frame_start()

subroutine frame_start

Start framework.

Note
This routine requires frame_usr_register and frame_usr_init to be defined in setup.usr

Definition at line 11 of file frame.f.

References bcast(), io_register(), mntr_init(), mntr_register_mod(), mntr_register_par(), rprm_dict_get(), rprm_init(), and rprm_register().

+ Here is the call graph for this function: