MODULE Print_Procedures

Module Print_Procedures exports constants and routines for printing vectors, matrices and results from other STATPACK routines.

Here is the list of the public constants exported by module Print_Procedures:

!
! DEFAULT VALUES FOR PRINTING.
!
integer(i4b), parameter :: defline   = 80 ,   & ! DEFAULT LINE SIZE
                           defindent = 0  ,   & ! DEFAULT INDENTATION
                           defw      = 12 ,   & ! DEFAULT WIDTH FOR EDIT DESCRIPTOR
                           defd      = 6  ,   & ! DEFAULT NUMBER OF SIGNIFICANT DIGITS
                           defs      = 3        ! DEFAULT NUMBER OF SPACES BETWEEN ENTRIES

In order to use one of these constants or one of the routines listed below, you must include an appropriate use Print_Procedures or use Statpack statement in your Fortran program, like:

use Print_Procedures, only: defline

or :

use Statpack, only: defline

Here is the list of the public routines exported by module Print_Procedures:

enter_proc()

purpose:

Upon entering a procedure, enter_proc() can be called. It would skips two lines and outputs a message that the routine, identified by the string argument STRING, was entered. If the optional argument LEVEL is present, the message STRING is prepended by LEVEL blanks.

Synopsis:

call enter_proc( string , level=level , prt_unit=prt_unit )
leave_proc()

purpose:

leave_proc() is the opposite of routine enter_proc(). It should be called just before leaving a routine. The exit message STRING is output on the unit PRT_UNIT (or the default unit defunit defined in the Select_Parameters module if PRT_UNIT is absent) and two lines are skipped.

Optionally, the output message STRING is prepended by LEVEL blanks.

Synopsis:

call leave_proc( string , level=level , prt_unit=prt_unit )
entering()

purpose:

Upon entering a procedure, entering() can be called. It will return a prefix string suitable for indenting output lines from the procedure. It takes the given character argument STRING and prepends LEVEL blanks, followed by a [, and appends the character ].

For example, if string = "hi" and level = 7, it would return _______[hi]. LEVEL is then also incremented by 2.

Trailing blanks in STRING are removed. If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

If the argument TRACE is true, it also outputs a message that the routine identified by STRING was entered.

Synopsis:

message = entering( string , level , trace , prt_unit=prt_unit )
leaving()

purpose:

leaving() is the opposite to entering. It should be called just before leaving a routine. The argument LEVEL is reduced by 2 and if the argument TRACE is true, an exit message is output.

Trailing blanks in STRING are removed. If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

Synopsis:

call leaving( string , level , trace , prt_unit=prt_unit )
indent()

purpose:

indent() can also used to indent output, albeit in a manner different from entering and leaving.

It simply writes out LEVEL blanks followed by the string ID in [], and leaves the output file marker where it is. It uses nonadvancing output.

If the LEVEL argument is not present, just the ID part is output; i.e. LEVEL is treated as zero.

Leading and trailing blanks in ID are removed.

If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

Synopsis:

call indent(id , level=level , prt_unit=prt_unit )
write_array()

purpose:

write_array() prints out an integer or real array X (e.g. a vector or matrix) with a given format and a title, as given in its input arguments.

The integer or real array X is printed row by row.

If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

Synopsis:

call write_array( x(:),   f=f , w=w , d=d , s=s , name=name , indent=indent , line=line , prt_unit=prt_unit )   ! x is a real array
call write_array( x(:,:), f=f , w=w , d=d , s=s , name=name , indent=indent , line=line , prt_unit=prt_unit )   ! x is a real array
call write_array( x(:),         w=w ,       s=s , name=name , indent=indent , line=line , prt_unit=prt_unit )   ! x is an integer array
call write_array( x(:,:),       w=w ,       s=s , name=name , indent=indent , line=line , prt_unit=prt_unit )   ! x is an integer array

purpose:

print_array() is a routine for labeled integer or real matrix/vector output, with given format and title, as given in its input arguments.

The integer or real array is printed columns block by columns block.

If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

Synopsis:

call print_array( x(:p),     f=f , w=w , d=d , sign_ed=sign_ed ,       title=title , namlig=namlig(:p) ,                     indent=indent ,             prt_unit=prt_unit )   ! x is a real array
call print_array( x(:p,:n) , f=f , w=w , d=d , sign_ed=sign_ed , s=s , title=title , namlig=namlig(:p) , namcol=namcol(:n) , indent=indent , line=line , prt_unit=prt_unit )   ! x is a real array
call print_array( x(:),            w=w ,       sign_ed=sign_ed ,       title=title , namlig=namlig(:p) ,                     indent=indent ,             prt_unit=prt_unit )   ! x is an integer array
call print_array( x(:p,:n) ,       w=w ,       sign_ed=sign_ed , s=s , title=title , namlig=namlig(:p) , namcol=namcol(:n) , indent=indent , line=line , prt_unit=prt_unit )   ! x is an integer array

Examples:

ex1_print_array.F90

purpose:

print_prinfac() is a routine for labeled matrix output after an EOF or SVD analysis.

Print an EOF model (MODE = 1) or the associated principal components (MODE = 2) and an SVD model (MODE = 3) or the associated singular variables (MODE = 4).

If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

Synopsis:

call print_prinfac( mode, a(:p) ,    f=f , names=names(:p) ,             prt_unit=prt_unit )
call print_prinfac( mode, a(:p,:n) , f=f , names=names(:p) , line=line , prt_unit=prt_unit )

purpose:

print_stat() prints statistics for an EOF “missing” or “weighted” analysis, for

  • Variables (MODE = 1)
  • Observations (MODE = 2)

If the PRT_UNIT argument is absent, then all output is on the unit defunit defined in the Select_Parameters module.

Synopsis:

call print_stat( mode , nomiss(:p) , var(:p) , inr(:p) , qlt(:p) , names(:p) , prt_unit=prt_unit )
call print_stat ( mode , weight(:p) , var(:p) , inr(:p) , qlt(:p) , names(:p) , prt_unit=prt_unit )
Flag Counter