SICOPOLIS V5dev
Revision 1288

the module containing the revolve implementation More...
Data Types  
type  rvAction 
this encapsulates all the information needed to perfrom the correct action an instance is returned from rvNextAction More...  
Functions/Subroutines  
logical function, public  rvInit (steps, checkpoints, errorMsgRevolve, anActionInstance, bundle) 
method to initialize the internal state; must be called before any call to rvNextAction More...  
logical function, public  rvAdjust (steps, checkpoints, errorMsgRevolve) 
method to change the internal state for the total number of steps/checkpoints; must be called after rvInit More...  
subroutine, public  rvVerbose (level) 
method to set the verbosity to a level in [03] as described for ourVerbosity More...  
type(rvaction) function, public  rvNextAction () 
the method to determine the next action; to be called in an unbound loop after rvInit More...  
integer function, public  rvGuess (steps, bundle) 
estimates the number of checkpoints required; equivalent to adjust in Alg. 799 More...  
double precision function, public  rvFactor (steps, checkpoints, bundle) 
computes the run time overhead factor; equivalent to expense in Alg. 799 More...  
Variables  
integer, parameter, public  rvstore =1 
store a checkpoint now equivalent to TAKESHOT in Alg. 799 More...  
integer, parameter, public  rvrestore =2 
restore a checkpoint now equivalent to RESTORE in Alg. 799 More...  
integer, parameter, public  rvforward =3 
execute iteration(s) forward equivalent to ADVANCE in Alg. 799 More...  
integer, parameter, public  rvfirstuturn =4 
tape iteration(s); optionally leave to return later; and (upon return) do the adjoint(s) equivalent to FIRSTTURN in Alg. 799 More...  
integer, parameter, public  rvuturn =5 
tape iteration(s) and do the adjoint(s) equivalent to YOUTURN in Alg. 799 More...  
integer, parameter, public  rvdone =6 
we are done with adjoining the loop equivalent to the terminate enum value in Alg. 799 More...  
integer, parameter, public  rverror =7 
an error has occurred equivalent to the error enum value in Alg. 799; see also errorMsgRevolve in rvAction More...  
integer  ourbundle = 1 
the number of iterations that may be bundled for a taping/adjoining sweep; set by calling rvInit; not supposed to be set/used directly by the user; More...  
integer  ourtail = 1 
the number of iterations in the last bundle set by calling rvInit; not supposed to be set/used directly by the user; More...  
integer, dimension(:), allocatable  ourstepof 
vector of step numbers indexed by checkpoint; not to be set/referemced directly by the user More...  
the module containing the revolve implementation
logical function, public revolve::rvAdjust  (  integer, intent(in)  steps, 
integer, intent(in)  checkpoints,  
character(*), intent(out)  errorMsgRevolve  
) 
method to change the internal state for the total number of steps/checkpoints; must be called after rvInit
steps  the total number of steps in the iteration; equivalent to steps in Alg. 799 
errorMsgRevolve  set when an error condition occurs; else set to "none" 
.true.
if successfull, else .false.
ansd errorMsgRevolve
will be set Definition at line 261 of file revolve.f90.
double precision function, public revolve::rvFactor  (  integer, intent(in)  steps, 
integer, intent(in)  checkpoints,  
integer, intent(in), optional  bundle  
) 
computes the run time overhead factor; equivalent to expense
in Alg. 799
steps  is the number of iterations 
checkpoints  is the number of allowed checkpoints 
bundle  is optional; detaults to 1, if specified indicates the number of iterations bundled in one tape/adjoint sweep 
this method does not change the internal state and does not require rvInit
Definition at line 514 of file revolve.f90.
integer function, public revolve::rvGuess  (  integer, intent(in)  steps, 
integer, intent(in), optional  bundle  
) 
estimates the number of checkpoints required; equivalent to adjust
in Alg. 799
steps  is the number of iterations 
bundle  is optional; detaults to 1, if specified indicates the number of iterations bundled in one tape/adjoint sweep 
this method does not change the internal state and does not require rvInit
Definition at line 448 of file revolve.f90.
logical function, public revolve::rvInit  (  integer, intent(in)  steps, 
integer, intent(in)  checkpoints,  
character(*), intent(out)  errorMsgRevolve,  
type(rvaction), optional  anActionInstance,  
integer, intent(in), optional  bundle  
) 
method to initialize the internal state; must be called before any call to rvNextAction
steps  the total number of steps in the iteration; equivalent to steps in Alg. 799 
checkpoints  the total number of checkpoints allowed to be stored at any time; equivalent to snaps in Alg. 799 
errorMsgRevolve  set when an error condition occurs; else set to "none" 
anActionInstance  if supplied initializes its contents 
bundle  if supplied initializes ourBundle 
.true.
if successfull, else .false.
ansd errorMsgRevolve
will be set Definition at line 182 of file revolve.f90.
type(rvaction) function, public revolve::rvNextAction  (  ) 
the method to determine the next action; to be called in an unbound loop after rvInit
rvAction
set to describe the next action (see the member documentation);this method modifies the internal state; it is approximately equivalent to the method revolve
in Alg. 799
available checkpoint slots
local copy of previous subrange start
Definition at line 284 of file revolve.f90.
subroutine, public revolve::rvVerbose  (  integer, intent(in)  level  ) 
method to set the verbosity to a level in [03] as described for ourVerbosity
Definition at line 273 of file revolve.f90.
integer revolve::ourbundle = 1 
the number of iterations that may be bundled for a taping/adjoining sweep; set by calling rvInit; not supposed to be set/used directly by the user;
the default is 1 loop iteration which makes it equivalent to Alg. 799
Definition at line 110 of file revolve.f90.
integer, dimension(:), allocatable revolve::ourstepof 
vector of step numbers indexed by checkpoint; not to be set/referemced directly by the user
Definition at line 159 of file revolve.f90.
integer revolve::ourtail = 1 
the number of iterations in the last bundle set by calling rvInit; not supposed to be set/used directly by the user;
the default is 1 (for ourBundle
= 1) which makes it equivalent to Alg. 799
Definition at line 116 of file revolve.f90.
integer, parameter, public revolve::rvdone =6 
we are done with adjoining the loop equivalent to the terminate
enum value in Alg. 799
Definition at line 53 of file revolve.f90.
integer, parameter, public revolve::rverror =7 
an error has occurred equivalent to the error
enum value in Alg. 799; see also errorMsgRevolve
in rvAction
Definition at line 58 of file revolve.f90.
integer, parameter, public revolve::rvfirstuturn =4 
tape iteration(s); optionally leave to return later; and (upon return) do the adjoint(s) equivalent to FIRSTTURN in Alg. 799
Definition at line 45 of file revolve.f90.
integer, parameter, public revolve::rvforward =3 
execute iteration(s) forward equivalent to ADVANCE in Alg. 799
Definition at line 41 of file revolve.f90.
integer, parameter, public revolve::rvrestore =2 
restore a checkpoint now equivalent to RESTORE in Alg. 799
Definition at line 37 of file revolve.f90.
integer, parameter, public revolve::rvstore =1 
store a checkpoint now equivalent to TAKESHOT in Alg. 799
Definition at line 33 of file revolve.f90.
integer, parameter, public revolve::rvuturn =5 
tape iteration(s) and do the adjoint(s) equivalent to YOUTURN in Alg. 799
Definition at line 49 of file revolve.f90.