TABLE OF CONTENTS
::pwtk::input::push
SYNOPSIS
proc ::pwtk::input::push {} {
PURPOSE
The "push" proc for the input data & state stack. The push/pop meschanism for the input data is similar to OpenGL glPush()/glPop(). It works as follows:
... set some default input data (#1) ...
::pwtk::input::push ... modify input data ... ... do some calculations with it ... ::pwtk::input::pop
... here the input data is the same as those labeled (#1) above
The following data are handled by the stacking mechanism (for further details, see the source code):
- input data (i.e. Namelists, Cards, Scripts)
- run options (prefix, serial_prefix, postfix, serial_postfix, input_handle), i.e., options handled by the ::pwtk::RUNopt array (see the source code)
- QE directories (bin_dir, outdir, outdir_prefix, outdir_potfix, wfcdir, wfcdir_prefix, wfcdir_potfix), i.e., directories handled by the ::pwtk::QEdir array
- QE programs as set by ::pwtk::pw, ::pwtk::pp, etc., i.e., QE executable handled by the ::pwtk::QEprog array
- PWTK state status (stopOnError, restart, environ, bin_query, remedy, prerun, postrun, treatrun, backup_io), i.e., state status as handled by the ::pwtk::state array
BEWARE
In PWTK scripts, use the ::pwtk::input::pushpop command instead of the ::pwtk::input::push & ::pwtk::input::pop pair.
SOURCE
variable stack variable stackLevel incr stackLevel lappend stack [list \ ::pwtk::input::namelist [array get ::pwtk::input::namelist] \ ::pwtk::input::card [array get ::pwtk::input::card] \ ::pwtk::input::card_flags [array get ::pwtk::input::card_flags] \ ::pwtk::input::card_content [array get ::pwtk::input::card_content] \ ::pwtk::input::script [array get ::pwtk::input::script] \ ::pwtk::RUNopt [array get ::pwtk::RUNopt] \ ::pwtk::QEdir [array get ::pwtk::QEdir] \ ::pwtk::QEprog [array get ::pwtk::QEprog] \ ::pwtk::state [array get ::pwtk::state] \ \ ::pwtk::queue::profile [array get ::pwtk::queue::profile] \ ::pwtk::queue::pwtk_profile [array get ::pwtk::queue::pwtk_profile] \ ::pwtk::queue::queue [concat [array get ::pwtk::queue::queue *,head] [array get ::pwtk::queue::queue *,tail]] \ ] }