Octopus
algorithm.F90 File Reference

Go to the source code of this file.

Modules

module  algorithm_oct_m
 This module implements the basic elements defining algorithms.
 

Data Types

type  algorithm_oct_m::algorithmic_operation_t
 Descriptor of one algorithmic operation. More...
 
type  algorithm_oct_m::algorithm_iterator_t
 Iterator to loop over the algorithmic operations of an algorithm. More...
 
type  algorithm_oct_m::algorithm_t
 An algorithm is a list of algorithmic operations executed sequentially. More...
 
interface  algorithm_oct_m::algorithm_finished
 indicate whether the algorithm has finished one time step More...
 
interface  algorithm_oct_m::algorithm_init_iteration_counters
 initializes the algorithm and system iteration counters More...
 

Functions/Subroutines

subroutine algorithm_oct_m::algorithm_add_operation (this, operation)
 add an algorithmic operation to the list More...
 
logical function algorithm_oct_m::algorithm_do_operation (this, operation)
 try to perform one operation of the algorithm. If successfull return .true. More...
 
subroutine algorithm_oct_m::algorithm_update_elapsed_time (this)
 The elapsed time is used for the output of run time information. More...
 
subroutine algorithm_oct_m::algorithm_rewind (this)
 Reset the algorithm to the first operation. More...
 
subroutine algorithm_oct_m::algorithm_next (this)
 move to the next algorithmic operation More...
 
type(algorithmic_operation_t) function algorithm_oct_m::algorithm_get_current_operation (this)
 return the current algorithmic operation. More...
 
type(algorithmic_operation_t) function algorithm_oct_m::algorithm_iterator_get_next (this)
 Get the next algorithmic operation from the iterator. More...
 

Variables

integer, parameter, public algorithm_oct_m::algo_label_len = 50
 
character(len=algo_label_len), parameter, public algorithm_oct_m::skip = 'SKIP'
 Operations that can be used by any algorithm and, therefore, should be implemented by all systems. More...
 
character(len=algo_label_len), parameter, public algorithm_oct_m::update_couplings = 'UPDATE_COUPLINGS'
 
character(len=algo_label_len), parameter, public algorithm_oct_m::update_interactions = 'UPDATE_INTERACTIONS'
 
character(len=algo_label_len), parameter, public algorithm_oct_m::iteration_done = 'ITERATION_DONE'
 
character(len=algo_label_len), parameter, public algorithm_oct_m::rewind_algorithm = 'REWIND_ALGORITHM'
 
type(algorithmic_operation_t), parameter, public algorithm_oct_m::op_skip = algorithmic_operation_t(SKIP, 'Skipping algorithmic operation')
 
type(algorithmic_operation_t), parameter, public algorithm_oct_m::op_update_couplings = algorithmic_operation_t(UPDATE_COUPLINGS, 'Algorithmic operation - Updating couplings')
 
type(algorithmic_operation_t), parameter, public algorithm_oct_m::op_update_interactions = algorithmic_operation_t(UPDATE_INTERACTIONS, 'Algorithmic operation - Updating interactions')
 
type(algorithmic_operation_t), parameter, public algorithm_oct_m::op_iteration_done = algorithmic_operation_t(ITERATION_DONE, 'Iteration finished')
 
type(algorithmic_operation_t), parameter, public algorithm_oct_m::op_rewind_algorithm = algorithmic_operation_t(REWIND_ALGORITHM, 'Rewind algorithm')