tags:

views:

99

answers:

2

I have encountered the following statement in fortran:

  integer           iparam(11), ipntr(14)
  logical           select(maxncv)
  Double precision
 &                  ax(maxn), d(maxncv,3), resid(maxn), 
 &                  v(ldv,maxncv), workd(3*maxn), 
 &                  workev(3*maxncv), 
 &                  workl(3*maxncv*maxncv+6*maxncv)

Well, I can understand what integer, Double precision is.

But what about logical select ? What do they mean?

A: 

logical is a datatype just like double precision is. select is a variable just like d is. maxncv is an array bound just like maxncv is.

Windows programmer
+1  A: 

"logical" is a boolean type, which takes on only the values .TRUE. or .FALSE. The declaration creates a 1D array of name "select" of length "maxncv", just as the previous declaration creates an integer 1D array "iparam" of length "11".

The layout (e.g., the continuation symbol on the start of continued lines) and the use of Double Precision suggest Fortran 77. For new code I recommend Fortran 95/2003.

M. S. B.