M_matrix(3f) - [M_matrix::INTRO] The Los Alamos-inspired Linear Algebra Fortran Facility (LALA)
LICENSE(MIT)
The M_matrix module contains the Linear Algebra Fortran Facility (LALA) which allows for interacting with a Fortran program using Matlab or Octave-like commands. LALA is also usable as a simple one-line language. It is a WIP (Work In Progress) but is already useful.
All together, this allows lala(3f) to be used for self-describing configuration and data files, inspecting data in existing programs, transferring small amounts of data between programs or assisting in debugging and development, unit testing and macro-level timing.
Sample program:
program demo_M_matrix
use M_matrix, only : lala, put_into_lala, get_from_lala, ifin_lala
!real,allocatable :: r
!complex,allocatable :: cvec(:)
integer,allocatable :: iarr(:,:)
character(len=:),allocatable :: t(:)
integer :: ierr
integer :: i
! store some data into lala(3)
call put_into_lala('A',[1,2,3,4,5]*10.5,ierr)
write(*,*)'is A defined in LALA?',ifin_lala('A')
call lala('A/2.0')
! pass some commands to lala(3f)
call lala([character(len=80) :: &
&'PI=atan(1)*4 ', &
&"mytitle='this is my title';", &
&'littlearray=< ', &
&' 1 2 3; ', &
&' 4 5 6; ', &
&' 7 8 9; ', &
&'> ', &
&'S=sum(A) ', &
&'I=inv(littlearray); ', &
&'B=littlearray*sin(PI/3) ', &
&"save('keepB',B) ", &
&''])
! read a file containing lala(3f) commands
call lala("exec('mycommands');")
! interactively interact with lala(3f) interpreter
call lala()
! get some data from LALA into the calling program
call get_from_lala('littlearray',iarr,ierr)
write(*,'(a)')'IN CALLING PROGRAM IARR='
write(*,'(1x,*(g0,1x))')(IARR(i,:),new_line('A'),i=1,size(iarr,dim=1))
call get_from_lala('mytitle',t,ierr)
write(*,*)'IN CALLING PROGRAM T=',t
end program demo_M_matrix
A formal description of the language acceptable to LALA, as well as
a flow chart of the lala program, is provided by the syntax diagrams
or syntax graphs of wirth [6]. There are eleven non-terminal symbols
in the language:
LINE, STATEMENT, CLAUSE, EXPRESSION, TERM,
FACTOR, NUMBER, INTEGER, NAME, COMMAND, TEXT .
The diagrams define each of the non-terminal symbols using the others
and the terminal symbols:
LETTER -- A THROUGH Z,
DIGIT -- 0 THROUGH 9,
CHAR -- ( ) ; : + - * / \ = . , < >
QUOTE -- '
LINE
|-----> STATEMENT >----|
| |
|-----> CLAUSE >-------|
| |
-------|-----> EXPR >---------|------>
| | | |
| |-----> COMMAND >------| |
| | | |
| |-> > >-> EXPR >-> < >-| |
| | | |
| |----------------------| |
| |
| |-< ; <-| |
|--------| |---------|
|-< , <-|
STATEMENT
|-> NAME >--------------------------------|
| | |
| | |--> : >---| |
| | | | |
| |-> ( >---|-> EXPR >-|---> ) >-|
| | | |
-----| |-----< , <----| |--> = >--> EXPR >--->
| |
| |--< , <---| |
| | | |
|-> < >---> NAME >---> > >----------------|
CLAUSE
|---> FOR >---> NAME >---> = >---> EXPR >--------------|
| |
| |-> WHILE >-| |
|-| |-> EXPR >---------------------- |
| |-> IF >-| | | | | | | |
-----| < <= = <> >= > |---->
| | | | | | | |
| ----------------------> EXPR >--|
| |
|---> ELSE >--------------------------------------------|
| |
|---> END >--------------------------------------------|
EXPR
|-> + >-|
| |
-------|-------|-------> TERM >---------->
| | | |
|-> - >-| | |-< + <-| |
| | | |
|--|-< - <-|--|
| |
|-< : <-|
TERM
---------------------> FACTOR >---------------------->
| |
| |-< * <-| |
| |-------| | | |-------| |
|--| |--|-< / <-|--| |--|
|-< . <-| | | |-< . <-|
|-< \ <-|
FACTOR
|----------------> NUMBER >---------------|
| |
|-> NAME >--------------------------------|
| | |
| | |--> : >---| |
| | | | |
| |-> ( >---|-> EXPR >-|---> ) >-|
| | | |
| |-----< , <----| |
| |
-----|------------> ( >-----> EXPR >-----> ) >-|-|-------|----->
| | | | |
| |--------------| | |-> ' >-| |
| | | | |
|------------> < >-|---> EXPR >---|-> > >-| |
| | | | |
| |--< <---| | |
| | | | |
| |--< ; <---| | |
| | | | |
| |--< , <---| | |
| | |
|------------> > >-----> EXPR >-----> < >-| |
| | |
|-----> FACTOR >---> ** >---> FACTOR >----| |
| |
|------------> ' >-----> TEXT >-----> ' >-------------|
NUMBER
|----------| |-> + >-|
| | | |
-----> INT >-----> . >---> INT >-----> E >---------> INT >---->
| | | | | |
| | | |-> - >-| |
| | | |
|---------------------------------------------|
INT
------------> DIGIT >----------->
| |
|-----------|
NAME
|--< LETTER <--|
| |
------> LETTER >--|--------------|----->
| |
|--< DIGIT <--|
COMMAND
|--> NAME >--|
| |
--------> NAME >--------|------------|---->
| |
|--> CHAR >--|
| |
|---> ' >----|
TEXT
|-> LETTER >--|
| |
|-> DIGIT >---|
----------------| |-------------->
| |-> CHAR >----| |
| | | |
| |-> ' >-> ' >-| |
| |
|---------------------|
Originally based on a routine called MATLAB, although heavily modified since. The original stated …
MATLAB stands for MATrix LABoratory. It is a FORTRAN package
developed by Argonne National Laboratories for in-house use. It
provides comprehensive vector and tensor operations in a package
which may be programmed, either through a macro language or through
execution of script files.
Matlab is reentrant and recursive. Functions supported include (but
are not by any means limited to) sin, cos, tan, arc functions, upper
triangular, lower triangular, determinants, matrix multiplication,
identity, Hilbert matrices, eigenvalues and eigenvectors, matrix
roots and products, inversion and so on and so forth.
The file available on the bulletin board as Matlab.arc contains an
Amiga-ized executable copy of MATLAB and the online help file, as
well as this intro.
If you want the source code (over 300K) and a manual, or if your
bulletin board only has this message and not the package, send $5.00
and a 3.5" disk to:
Jim Locker
4443 N. Hyland Ave.
Dayton, OH 45424
The package is public domain, but of course postage and reproduction
cost money. Believe me, this package is a bargain at the price.
Please feel free to distribute the package.
The source was taken off a VAX 11/780. It ran without modification
(except the file handler and some minor error handling) on an Amiga
1000 using ABSoft Fortran v2.2. It will run in 512K environment.
I have seen it on IBM mainframes and IBM PCs.
Subsequent changes per John S. Urban: see change log and git(1) history
public :: size_lala
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | GG_EOL | = | 99999 | |
integer, | public, | parameter | :: | GG_LINELEN | = | 1024 | |
integer, | public, | parameter | :: | GG_MAX_NAME_LENGTH | = | 63 | |
integer, | public, | parameter | :: | GG_MAX_NUMBER_OF_NAMES | = | 480 | |
integer, | public, | parameter | :: | GG_PAD(63) | = | blank | |
integer, | public, | save | :: | GM_BIGMEM | = | -1 | |
doubleprecision, | public, | allocatable | :: | GM_IMAGS(:) | |||
doubleprecision, | public, | allocatable | :: | GM_REALS(:) | |||
integer, | public | :: | G_ARGUMENT_POINTER | ||||
integer, | public | :: | G_BUF(GG_LINELEN) | ||||
integer, | public, | parameter | :: | G_CHARSET_SIZE | = | 256 | |
integer, | public | :: | G_CHRA | ||||
integer, | public | :: | G_CURRENT_RANDOM_SEED | ||||
integer, | public | :: | G_CURRENT_RANDOM_TYPE | ||||
integer, | public | :: | G_DEBUG_LEVEL | ||||
logical, | public, | save | :: | G_ECHO | = | .false. | |
integer, | public | :: | G_ERR | ||||
logical, | public | :: | G_FILE_OPEN_ERROR | ||||
integer, | public | :: | G_FIN | ||||
integer, | public | :: | G_FLOP_COUNTER(2) | ||||
integer, | public | :: | G_FMT | ||||
character(len=:), | public, | allocatable | :: | G_FORTRAN_TEXT(:) | |||
integer, | public | :: | G_FUN | ||||
character(len=:), | public, | allocatable | :: | G_HELP_TEXT(:) | |||
integer, | public | :: | G_IDS(GG_MAX_NAME_LENGTH,G_PSIZE) | ||||
integer, | public | :: | G_INPUT_LUN | ||||
integer, | public | :: | G_LHS | ||||
integer, | public | :: | G_LIN(GG_LINELEN) | ||||
integer, | public | :: | G_LINECOUNT(4) | ||||
integer, | public | :: | G_LINE_POINTER(6) | ||||
logical, | public | :: | G_PROMPT | ||||
character(len=GG_LINELEN), | public, | allocatable, save | :: | G_PSEUDO_FILE(:) | |||
integer, | public, | parameter | :: | G_PSIZE | = | 32 | |
integer, | public | :: | G_PSTK(G_PSIZE) | ||||
integer, | public | :: | G_PT | ||||
integer, | public | :: | G_PTZ | ||||
integer, | public | :: | G_RHS | ||||
integer, | public | :: | G_RIO | ||||
integer, | public | :: | G_RSTK(G_PSIZE) | ||||
integer, | public | :: | G_SYM | ||||
integer, | public | :: | G_SYN(GG_MAX_NAME_LENGTH) | ||||
integer, | public | :: | G_TOP_OF_SAVED | ||||
integer, | public | :: | G_VAR_COLS(GG_MAX_NUMBER_OF_NAMES) | ||||
integer, | public | :: | G_VAR_DATALOC(GG_MAX_NUMBER_OF_NAMES) | ||||
integer, | public | :: | G_VAR_IDS(GG_MAX_NAME_LENGTH,GG_MAX_NUMBER_OF_NAMES) | ||||
integer, | public | :: | G_VAR_ROWS(GG_MAX_NUMBER_OF_NAMES) | ||||
integer, | public, | parameter | :: | a_low | = | 97 | |
integer, | public, | parameter | :: | a_up | = | 65 | |
character(len=*), | public, | parameter | :: | big | = | 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' | |
integer, | public, | parameter | :: | blank | = | 32 | |
integer, | public, | parameter | :: | bslash | = | 92 | |
integer, | public, | parameter | :: | colon | = | 58 | |
integer, | public, | allocatable | :: | cols(:) | |||
integer, | public, | parameter | :: | comma | = | 44 | |
integer, | public, | parameter | :: | d_low | = | 100 | |
integer, | public, | parameter | :: | d_up | = | 68 | |
character(len=*), | public, | parameter | :: | digit | = | '0123456789' | |
integer, | public, | parameter | :: | dot | = | 46 | |
integer, | public, | parameter | :: | dstar | = | 3042 | |
integer, | public, | parameter | :: | e_low | = | 101 | |
integer, | public, | parameter | :: | e_up | = | 69 | |
integer, | public, | parameter | :: | equal | = | 61 | |
character(len=*), | public, | parameter | :: | gen0 | = | '(*(g0))' | |
character(len=*), | public, | parameter | :: | gen1 | = | '(*(g0,1x))' | |
integer, | public, | parameter | :: | great | = | 62 | |
integer, | public, | parameter | :: | isname | = | 0 | |
integer, | public, | parameter | :: | isnum | = | 1 | |
character(len=:), | public, | allocatable | :: | keywords(:) | |||
integer, | public, | parameter | :: | lbrace | = | 123 | |
integer, | public, | parameter | :: | lbracket | = | 91 | |
integer, | public, | parameter | :: | less | = | 60 | |
character(len=*), | public, | parameter | :: | little | = | 'abcdefghijklmnopqrstuvwxyz' | |
integer, | public, | allocatable | :: | locs(:) | |||
integer, | public, | parameter | :: | lparen | = | 40 | |
integer, | public, | parameter | :: | minus | = | 45 | |
integer, | public, | parameter | :: | plus | = | 43 | |
integer, | public, | parameter | :: | quote | = | 39 | |
integer, | public, | parameter | :: | rbrace | = | 125 | |
integer, | public, | parameter | :: | rbracket | = | 93 | |
integer, | public, | allocatable | :: | rows(:) | |||
integer, | public, | parameter | :: | rparen | = | 41 | |
integer, | public, | parameter | :: | score | = | 95 | |
integer, | public, | allocatable | :: | scr_cols(:) | |||
character(len=:), | public, | allocatable | :: | scr_keywords(:) | |||
integer, | public, | allocatable | :: | scr_locs(:) | |||
integer, | public, | allocatable | :: | scr_rows(:) | |||
integer, | public, | parameter | :: | semi | = | 59 | |
integer, | public, | parameter | :: | slash | = | 47 | |
integer, | public, | parameter | :: | star | = | 42 | |
procedure(usersub_interface), | public, | pointer | :: | usersub | => | usersub_placeholder | |
type(vctr), | public, | allocatable | :: | vals(:) | |||
integer, | public, | parameter | :: | z_low | = | 122 | |
integer, | public, | parameter | :: | z_up | = | 90 | |
integer, | public, | parameter | :: | zero | = | 48 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=*), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=*), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=:), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=:), | intent(out), | allocatable | :: | out | ||
integer, | intent(out) | :: | ierr |
LALA(3f) - [M_matrix] initialize and/or pass commands to matrix
laboratory interpreter
LICENSE(MIT)
subroutine lala(init,cmd)
integer,intent(in),optional :: init
character(len=*),intent(in),optional :: cmd
or
character(len=*),intent(in),optional :: cmd(:)
LALA(3f) is modeled on MATLAB(3f) (MATrix LABoratory), a FORTRAN
package developed by Argonne National Laboratories for in-house use.
It provides comprehensive vector and tensor operations in a package
which may be programmed, either through a macro language or through
execution of script files.
LALA(3f) Functions supported include (but are not by any means limited
to) sin, cos, tan, arcfunctions, upper triangular, lower triangular,
determinants, matrix multiplication, identity, Hilbert matrices,
eigenvalues and eigenvectors, matrix roots and products, inversion
and so on and so forth.
LALA() can be used
+ as a stand-alone utility for working with lala() files and
for basic computations.
+ embedded in a Fortran program, passing variables back and forth
between the calling program and the utility.
+ to read configuration and data files that contain expressions
and conditionally selected values.
+ for interactively inspecting data generated by the calling program.
+ for creating unit tests that allow for further interactive examination.
The HELP command describes using the interpreter.
INIT indicate size of scratch space to allocate and (re)initialize
LALA.
CMD LALA command(s) to perform. May be CHARACTER scalar or vector
INIT and CMD cannot be combined on a single call.
The first call may be an initialization declaring the number of
doubleprecision complex values to allocate for the combined scratch
and variable storage area. This form may be repeated and reinitializes
the utility at each call. A size of zero will deallocate any allocated
storage (after which the routine cannot be called with commands until
reallocated by another call to lala()).
If no parameters are supplied interactive mode is entered.
If a CMD is passed and no previous initialization call was made the
scratch space will be allocated to 200000.
Example 1:
program demo_LALA
use M_matrix, only : lala
write(*,'(a)')'optionally initialize scratch area size'
call LALA(20000)
write(*,'(a)')'do some commands'
call LALA([character(len=80) :: &
& 'semi; ',&
& 'a=magic(4),b=-a ',&
& 'a+b;a;b ',&
& "display('That is all Folks!') "])
write(*,'(a)')'do a single command'
call LALA('who')
write(*,'(a)')'enter interactive mode'
call LALA()
write(*,'(a)')'ending program'
end program demo_LALA
Example 2:
program bigmat
use M_matrix, only : lala
! pass strings to LALA but do not enter interactive mode
call lala(20000) ! initialize silently
call lala( 'a=[1 2 3 4; 5 6 7 8]')
call lala( [character(len=80) :: &
& 'semi;lines(999999) ',&
& '// create a magic square and add 100 to all the values',&
& 'A=magic(4),<X,Y>=shape(A) ',&
& 'B=A+ones(X,Y)*100 ',&
& '// save all current values to a file ',&
& "save('sample.laf') ",&
& '// clear all user values ',&
& 'clear ',&
& '// show variable names, load values from file ',&
& '// and show again to show the variables are restored ',&
& "who;load('sample.laf');who "])
end program bigmat
Example 3: Sample program with custom user function
program custom_user
use M_matrix
implicit none
call set_usersub(lala_user)
call lala()
contains
!-------------------------------------------------------------
subroutine lala_user(a,m,n,s,t) ! sample user routine
! Allows personal Fortran subroutines to be linked into
! LALA. The subroutine should have the heading
!
! subroutine name(a,m,n,s,t)
! integer :: m,n
! doubleprecision a(:),s,t
!
! The LALA statement Y = USER(X,s,t) results in a call to
! the subroutine with a copy of the matrix X stored in the
! argument A, its column and row dimensions in M and N,
! and the scalar parameters S and T stored in S and T.
! If S and T are omitted, they are set to 0.0. After
! the return, A is stored in Y. The dimensions M and
! N may be reset within the subroutine. The statement Y =
! USER(K) results in a call with M = 1, N = 1 and A(1,1) =
! FLOAT(K). After the subroutine has been written, it must
! be compiled and linked to the LALA object code within the
! local programming environment.
!
implicit none
integer :: m,n
doubleprecision :: a(:)
doubleprecision :: s,t
integer :: i, j, k
write(*,*)'MY ROUTINE'
write(*,*)'M=',m
write(*,*)'N=',n
write(*,*)'S=',s
write(*,*)'T=',t
k=0
do i = 1, m
do j = 1, n
k=k+1
write(*,*)i,j,a(k)
enddo
enddo
k=0
if(s.eq.0)s=1
do i = 1, m
do j = 1, n
k=k+1
a(k)=a(k)*s+t
enddo
enddo
end subroutine lala_user
end program custom_user
Example inputs
>:avg:
>for i = 2:2:n, for j = 2:2:n, t = (a(i-1,j-1)+a(i-1,j)+a(i,j-1)+a(i,j))/4; ...
>a(i-1,j-1) = t; a(i,j-1) = t; a(i-1,j) = t; a(i,j) = t;
>:cdiv:
>// ======================================================
>// cdiv
>a=sqrt(random(8))
>ar = real(a); ai = imag(a); br = real(b); bi = imag(b);
>p = bi/br;
>t = (ai - p*ar)/(br + p*bi);
>cr = p*t + ar/br;
>ci = t;
>p2 = br/bi;
>t2 = (ai + p2*ar)/(bi + p2*br);
>ci2 = p2*t2 - ar/bi;
>cr2 = t2;
>s = abs(br) + abs(bi);
>ars = ar/s;
>ais = ai/s;
>brs = br/s;
>bis = bi/s;
>s = brs**2 + bis**2;
>cr3 = (ars*brs + ais*bis)/s;
>ci3 = (ais*brs - ars*bis)/s;
>[cr ci; cr2 ci2; cr3 ci3]
>// ======================================================
>:exp:
>t = 0*x + eye; s = 0*eye(x); n = 1;
>while abs(s+t-s) > 0, s = s+t, t = x*t/n, n = n + 1
>:four:
> n
> pi = 4*atan(1);
> i = sqrt(-1);
> w = exp(2*pi*i/n);
> F = [];
> for k = 1:n, for j = 1:n, F(k,j) = w**((j-1)*(k-1));
> F = F/sqrt(n);
> alpha = r*pi;
> rho = exp(i*alpha);
> S = log(rho*F)/i - alpha*eye;
> serr = norm(imag(S),1);
> S = real(S);
> serr = serr + norm(S-S',1)
> S = (S + S')/2;
> ferr = norm(F-exp(i*S),1)
> :gs:
> for k = 1:n, for j = 1:k-1, d = x(k,:)*x(j,:)'; x(k,:) = x(k,:) - d*x(j,:); ...
> end, s = norm(x(k,:)), x(k,:) = x(k,:)/s;
> :jacobi:
> [n, n] = shape(A);
> X = eye(n);
> anorm = norm(A,'fro');
> cnt = 1;
> while cnt > 0, ...
> cnt = 0; ...
> for p = 1:n-1, ...
> for q = p+1:n, ...
> if anorm + abs(a(p,q)) > anorm, ...
> cnt = cnt + 1; ...
> exec('jacstep'); ...
> end, ...
> end, ...
> end, ...
> display(rat(A)), ...
> end
> :jacstep:
> d = (a(q,q)-a(p,p))*0.5/a(p,q);
> t = 1/(abs(d)+sqrt(d*d+1));
> if d < 0, t = -t; end;
> c = 1/sqrt(1+t*t); s = t*c;
> R = eye(n); r(p,p)=c; r(q,q)=c; r(p,q)=s; r(q,p)=-s;
> X = X*R;
> A = R'*A*R;
> :kron:
> // C = Kronecker product of A and B
> [m, n] = shape(A);
> for i = 1:m, ...
> ci = a(i,1)*B; ...
> for j = 2:n, ci = [ci a(i,j)*B]; end ...
> if i = 1, C = ci; else, C = [C; ci];
> :lanczos:
> [n,n] = shape(A);
> q1 = rand(n,1);
> ort
> alpha = []; beta = [];
> q = q1/norm(q1); r = A*q(:,1);
> for j = 1:n, exec('lanstep',0);
> :lanstep:
> alpha(j) = q(:,j)'*r;
> r = r - alpha(j)*q(:,j);
> if ort <> 0, for k = 1:j-1, r = r - r'*q(:,k)*q(:,k);
> beta(j) = norm(r);
> q(:,j+1) = r/beta(j);
> r = A*q(:,j+1) - beta(j)*q(:,j);
> if j > 1, T = diag(beta(1:j-1),1); T = diag(alpha) + T + T'; eig(T)
> :mgs:
> for k = 1:n, s = norm(x(k,:)), x(k,:) = x(k,:)/s; ...
> for j = k+1:n, d = x(j,:)*x(k,:)'; x(j,:) = x(j,:) - d*x(k,:);
> :net:
> C = [
> 1 2 15 . . .
> 2 1 3 . . .
> 3 2 4 11 . .
> 4 3 5 . . .
> 5 4 6 7 . .
> 6 5 8 . . .
> 7 5 9 30 . .
> 8 6 9 10 11 .
> 9 7 8 30 . .
> 10 8 12 30 31 34
> 11 3 8 12 13 .
> 12 10 11 34 36 .
> 13 11 14 . . .
> 14 13 15 16 38 .
> 15 1 14 . . .
> 16 14 17 20 35 37
> 17 16 18 . . .
> 18 17 19 . . .
> 19 18 20 . . .
> 20 16 19 21 . .
> 21 20 22 . . .
> 22 21 23 . . .
> 23 22 24 35 . .
> 24 23 25 39 . .
> 25 24 . . . .
> 26 27 33 39 . .
> 27 26 32 . . .
> 28 29 32 . . .
> 29 28 30 . . .
> 30 7 9 10 29 .
> 31 10 32 . . .
> 32 27 28 31 34 .
> 33 26 34 . . .
> 34 10 12 32 33 35
> 35 16 23 34 36 .
> 36 12 35 38 . .
> 37 16 38 . . .
> 38 14 36 37 . .
> 39 24 26 . . .
> ];
> [n, m] = shape(C);
> A = 0*ones(n,n);
> for i=1:n, for j=2:m, k=c(i,j); if k>0, a(i,k)=1;
> check = norm(A-A',1), if check > 0, quit
> [X,D] = eig(A+eye);
> D = diag(D); D = D(n:-1:1)
> X = X(:,n:-1:1);
> [x(:,1)/sum(x(:,1)) x(:,2) x(:,3) x(:,19)]
> :pascal:
> //Generate next Pascal matrix
> [k,k] = shape(L);
> k = k + 1;
> L(k,1:k) = [L(k-1,:) 0] + [0 L(k-1,:)];
> :pdq:
> alpha = []; beta = 0; q = []; p = p(:,1)/norm(p(:,1));
> t = A'*p(:,1);
> alpha(1) = norm(t);
> q(:,1) = t/alpha(1);
> X = p(:,1)*(alpha(1)*q(:,1))'
> e(1) = norm(A-X,1)
> for j = 2:r, exec('pdqstep',ip); ...
> X = X + p(:,j)*(alpha(j)*q(:,j)+beta(j)*q(:,j-1))', ...
> e(j) = norm(A-X,1)
> :pdqstep:
> t = A*q(:,j-1) - alpha(j-1)*p(:,j-1);
> if ort>0, for i = 1:j-1, t = t - t'*p(:,i)*p(:,i);
> beta(j) = norm(t);
> p(:,j) = t/beta(j);
> t = A'*p(:,j) - beta(j)*q(:,j-1);
> if ort>0, for i = 1:j-1, t = t - t'*q(:,i)*q(:,i);
> alpha(j) = norm(t);
> q(:,j) = t/alpha(j);
> :pop:
> y = [ 75.995 91.972 105.711 123.203 ...
> 131.669 150.697 179.323 203.212]'
> t = [ 1900:10:1970 ]'
> t = (t - 1940*ones(t))/40; [t y]
> n = 8; A(:,1) = ones(t); for j = 2:n, A(:,j) = t .* A(:,j-1);
> A
> c = A\y
> :qr:
> scale = s(m);
> sm = s(m)/scale; smm1 = s(m-1)/scale; emm1 = e(m-1)/scale;
> sl = s(l)/scale; el = e(l)/scale;
> b = ((smm1 + sm)*(smm1 - sm) + emm1**2)/2;
> c = (sm*emm1)**2;
> shift = sqrt(b**2+c); if b < 0, shift = -shift;
> shift = c/(b + shift)
> f = (sl + sm)*(sl-sm) - shift
> g = sl*el
> for k = l: m-1, exec('qrstep',ip)
> e(m-1) = f
> :qrstep:
> exec('rot');
> if k <> l, e(k-1) = f
> f = cs*s(k) + sn*e(k)
> e(k) = cs*e(k) - sn*s(k)
> g = sn*s(k+1)
> s(k+1) = cs*s(k+1)
> exec('rot');
> s(k) = f
> f = cs*e(k) + sn*s(k+1)
> s(k+1) = -sn*e(k) + cs*s(k+1)
> g = sn*e(k+1)
> e(k+1) = cs*e(k+1)
> :rho:
> //Conductivity example.
> //Parameters ---
> rho //radius of cylindrical inclusion
> n //number of terms in solution
> m //number of boundary points
> //initialize operation counter
> flop = [0 0];
> //initialize variables
> m1 = round(m/3); //number of points on each straight edge
> m2 = m - m1; //number of points with Dirichlet conditions
> pi = 4*atan(1);
> //generate points in Cartesian coordinates
> //right hand edge
> for i = 1:m1, x(i) = 1; y(i) = (1-rho)*(i-1)/(m1-1);
> //top edge
> for i = m2+1:m, x(i) = (1-rho)*(m-i)/(m-m2-1); y(i) = 1;
> //circular edge
> for i = m1+1:m2, t = pi/2*(i-m1)/(m2-m1+1); ...
> x(i) = 1-rho*sin(t); y(i) = 1-rho*cos(t);
> //convert to polar coordinates
> for i = 1:m-1, th(i) = atan(y(i)/x(i)); ...
> r(i) = sqrt(x(i)**2+y(i)**2);
> th(m) = pi/2; r(m) = 1;
> //generate matrix
> //Dirichlet conditions
> for i = 1:m2, for j = 1:n, k = 2*j-1; ...
> a(i,j) = r(i)**k*cos(k*th(i));
> //Neumann conditions
> for i = m2+1:m, for j = 1:n, k = 2*j-1; ...
> a(i,j) = k*r(i)**(k-1)*sin((k-1)*th(i));
> //generate right hand side
> for i = 1:m2, b(i) = 1;
> for i = m2+1:m, b(i) = 0;
> //solve for coefficients
> c = A\b
> //compute effective conductivity
> c(2:2:n) = -c(2:2:n)
> sigma = sum(c)
> //output total operation count
> ops = flop(2)
> :rogers.exec:
> exec('d.boug'); // reads data
> [g,k] = shape(p); // p is matrix of gene frequencies
> wv = ncen/sum(ncen); // ncen contains population sizes
> pbar = wv*p; // weighted average of p
> p = p - ones(g,1)*pbar; // deviations from mean
> p = sqrt(diag(wv)) * p; // weight rows of p by sqrt of pop size
> h = diag(pbar); h = h*(eye-h); // diagonal contains binomial variance: p*(1-p)
> r = p*inv(h)*p'/k; // normalized covariance matrix
> eig(r)'
> :rosser:
> A = [
> 611. 196. -192. 407. -8. -52. -49. 29.
> 196. 899. 113. -192. -71. -43. -8. -44.
> -192. 113. 899. 196. 61. 49. 8. 52.
> 407. -192. 196. 611. 8. 44. 59. -23.
> -8. -71. 61. 8. 411. -599. 208. 208.
> -52. -43. 49. 44. -599. 411. 208. 208.
> -49. -8. 8. 59. 208. 208. 99. -911.
> 29. -44. 52. -23. 208. 208. -911. 99. ];
> :rot:
> // subexec rot(f,g,cs,sn)
> rho = g; if abs(f) > abs(g), rho = f;
> cs = 1.0; sn = 0.0; z = 1.0;
> r = norm([f g]); if rho < 0, r = -r; r
> if r <> 0.0, cs = f/r
> if r <> 0.0, sn = g/r
> if abs(f) > abs(g), z = sn;
> if abs(g) >= abs(f), if cs <> 0, z = 1/cs;
> f = r;
> g = z;
> :rqi:
> rho = (x'*A*x)
> x = (A-rho*eye)\x;
> x = x/norm(x)
> :setup:
> diary('xxx')
> !tail -f xxx > /dev/tty1 &
> !tail -f xxx > /dev/tty2 &
> :sigma:
> RHO = .5 M = 20 N = 10 SIGMA = 1.488934271883534
> RHO = .5 M = 40 N = 20 SIGMA = 1.488920312974229
> RHO = .5 M = 60 N = 30 SIGMA = 1.488920697912116
> :strut.laf:
> // Structure problem, Forsythe, Malcolm and Moler, p. 62
> s = sqrt(2)/2;
> A = [
> -s . . 1 s . . . . . . . . . . . .
> -s . -1 . -s . . . . . . . . . . . .
> . -1 . . . 1 . . . . . . . . . . .
> . . 1 . . . . . . . . . . . . . .
> . . . -1 . . . 1 . . . . . . . . .
> . . . . . . -1 . . . . . . . . . .
> . . . . -s -1 . . s 1 . . . . . . .
> . . . . s . 1 . s . . . . . . . .
> . . . . . . . -1 -s . . 1 s . . . .
> . . . . . . . . -s . -1 . -s . . . .
> . . . . . . . . . -1 . . . 1 . . .
> . . . . . . . . . . 1 . . . . . .
> . . . . . . . . . . . -1 . . . s .
> . . . . . . . . . . . . . . -1 -s .
> . . . . . . . . . . . . -s -1 . . 1
> . . . . . . . . . . . . s . 1 . .
> . . . . . . . . . . . . . . . -s -1];
> b = [
> . . . 10 . . . 15 . . . . . . . 10 .]';
> :test1:
> // -----------------------------------------------------------------
> // start a new log file
> sh rm -fv log.txt
> diary('log.txt')
> // -----------------------------------------------------------------
> titles=['GNP deflator'
> 'GNP '
> 'Unemployment'
> 'Armed Force '
> 'Population '
> 'Year '
> 'Employment '];
> data = ...
> [ 83.0 234.289 235.6 159.0 107.608 1947 60.323
> 88.5 259.426 232.5 145.6 108.632 1948 61.122
> 88.2 258.054 368.2 161.6 109.773 1949 60.171
> 89.5 284.599 335.1 165.0 110.929 1950 61.187
> 96.2 328.975 209.9 309.9 112.075 1951 63.221
> 98.1 346.999 193.2 359.4 113.270 1952 63.639
> 99.0 365.385 187.0 354.7 115.094 1953 64.989
> 100.0 363.112 357.8 335.0 116.219 1954 63.761
> 101.2 397.469 290.4 304.8 117.388 1955 66.019
> 104.6 419.180 282.2 285.7 118.734 1956 67.857
> 108.4 442.769 293.6 279.8 120.445 1957 68.169
> 110.8 444.546 468.1 263.7 121.950 1958 66.513
> 112.6 482.704 381.3 255.2 123.366 1959 68.655
> 114.2 502.601 393.1 251.4 125.368 1960 69.564
> 115.7 518.173 480.6 257.2 127.852 1961 69.331
> 116.9 554.894 400.7 282.7 130.081 1962 70.551];
> short
> X = data;
> [n,p] = shape(X)
> mu = ones(1,n)*X/n
> X = X - ones(n,1)*mu; X = X/diag(sqrt(diag(X'*X)))
> corr = X'*X
> y = data(:,p); X = [ones(y) data(:,1:p-1)];
> long e
> beta = X\y
> expected = [ ...
> -3.482258634594421D+03
> 1.506187227124484D-02
> -3.581917929257409D-02
> -2.020229803816908D-02
> -1.033226867173703D-02
> -5.110410565317738D-02
> 1.829151464612817D+00
> ]
> display('EXPE and BETA should be the same')
> :tryall:
> diary('log.txt')
> a=magic(8)
> n=3
> exec('avg')
> b=random(8,8)
> exec('cdiv')
> exec('exp')
> exec('four')
> exec('gs')
> exec('jacobi')
> // jacstep
> exec('kron')
> exec('lanczos')
> // lanstep
> exec('longley')
> exec('mgs')
> exec('net')
> exec('pascal')
> exec('pdq')
> // pdqstep
> exec('pop')
> exec('qr')
> // qrstep
> exec('rho')
> exec('rosser')
> // rot
> exec('rqi')
> exec('setup')
> exec('sigma')
> exec('strut.laf')
> exec('w5')
> exec('rogers.exec
> exec('rogers.load
> :w5:
> w5 = [
> 1. 1. 0. 0. 0.
> -10. 1. 1. 0. 0.
> 40. 0. 1. 1. 0.
> 205. 0. 0. 1. 1.
> 024. 0. 0. 0. -4.
> ]
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | init | |||
logical, | intent(in), | optional | :: | echo |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | input_string | |||
logical, | intent(in), | optional | :: | echo |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in), | optional | :: | pseudo_file(:) | ||
logical, | intent(in), | optional | :: | echo |
type is (character(len=*)); call store_double_into_lala(varname, reshape(real(str2ade(anything),kind=dp),[1,len(anything)]) ,ierr=ierr) call store_double_into_lala(varname,reshape(real(str2ade(anything),kind=dp),[1,len(anything)]),ierr=ierr)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
class(*) | :: | anything(:,:) | ||||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
class(*) | :: | anything(:) | ||||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
class(*) | :: | anything | ||||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision | :: | a(:) | ||||
integer | :: | m | ||||
integer | :: | n | ||||
doubleprecision | :: | s | ||||
doubleprecision | :: | t |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | cols | ||||
doubleprecision, | public, | allocatable | :: | im(:) | |||
doubleprecision, | public, | allocatable | :: | re(:) | |||
integer, | public | :: | rows |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | buf(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | filename |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | filename |
sample program:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | x(GG_MAX_NAME_LENGTH) | |||
integer, | intent(in) | :: | y(GG_MAX_NAME_LENGTH) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | line |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision, | intent(in) | :: | arr(:,:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | string |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | name | |||
character(len=*), | intent(in), | optional | :: | default |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | expression |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | input_string | |||
logical, | intent(in), | optional | :: | echo |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in), | optional | :: | pseudo_file(:) | ||
logical, | intent(in), | optional | :: | echo |
Example 1:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | init | |||
logical, | intent(in), | optional | :: | echo |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | key | |||
integer | :: | valout1 | ||||
integer | :: | valout2 | ||||
integer | :: | valout3 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out), | allocatable | :: | out(:,:) | ||
integer, | intent(out) | :: | ierr |
sample program:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
doubleprecision, | intent(out), | allocatable | :: | a(:,:) | ||
integer, | intent(in) | :: | type | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out) | :: | out(:,:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=*), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=*), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out) | :: | out(:) | |||
integer, | intent(out) | :: | ierr | |||
logical, | intent(in) | :: | fixed |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=:), | intent(out), | allocatable | :: | out | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out) | :: | out | |||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
character(len=:), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex, | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
complex(kind=dp), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int16), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int32), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int64), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
integer(kind=int8), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
logical, | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real128), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real32), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
real(kind=real64), | intent(out), | allocatable | :: | out(:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ints(:) | |||
character(len=:), | intent(out), | allocatable | :: | string | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision | :: | x | ||||
doubleprecision, | intent(in) | :: | base | |||
doubleprecision, | intent(in) | :: | eps | |||
doubleprecision | :: | s(*) | ||||
integer | :: | n |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*) | :: | string | ||||
integer, | intent(in) | :: | buf(:) | |||
integer, | intent(in) | :: | lrecl |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | id |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out) | :: | x(GG_MAX_NAME_LENGTH) | |||
integer, | intent(in) | :: | y(GG_MAX_NAME_LENGTH) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | lunit | ||||
integer | :: | iname(GG_LINELEN) | ||||
character(len=*), | optional | :: | status |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision, | intent(in) | :: | x | |||
doubleprecision, | intent(in) | :: | y |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | id(GG_MAX_NAME_LENGTH) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision, | intent(out) | :: | s |
! BROKEN BY GOING TO ASCII. ELIMINATE OR CORRECT
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | lplot | ||||
doubleprecision | :: | x(n) | ||||
doubleprecision | :: | y(n) | ||||
integer | :: | n | ||||
doubleprecision | :: | p(*) | ||||
integer | :: | k |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | id(GG_MAX_NAME_LENGTH) | ||||
integer | :: | k |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | id(GG_MAX_NAME_LENGTH,*) | ||||
integer | :: | argcnt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | pause |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | lun | |||
integer | :: | id(GG_MAX_NAME_LENGTH) | ||||
integer | :: | m | ||||
integer | :: | n | ||||
integer | :: | img | ||||
integer | :: | space_left | ||||
doubleprecision | :: | xreal(*) | ||||
doubleprecision | :: | ximag(*) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | op |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | op |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | id(GG_MAX_NAME_LENGTH) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | id(GG_MAX_NAME_LENGTH) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | string | |||
integer, | intent(out) | :: | buf(:) | |||
integer, | intent(in) | :: | lrecl |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision, | intent(in) | :: | xr | |||
doubleprecision, | intent(in) | :: | xi | |||
doubleprecision, | intent(out) | :: | yr | |||
doubleprecision, | intent(out) | :: | yi |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision | :: | ar | ||||
doubleprecision | :: | ai | ||||
doubleprecision | :: | br | ||||
doubleprecision | :: | bi | ||||
doubleprecision | :: | cr | ||||
doubleprecision | :: | ci |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision | :: | in_real | ||||
doubleprecision | :: | in_imag | ||||
doubleprecision | :: | out_real | ||||
doubleprecision | :: | out_imag |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
procedure(usersub_interface) | :: | proc |
type is (character(len=*)); call store_double_into_lala(varname, reshape(real(str2ade(anything),kind=dp),[1,len(anything)]) ,ierr=ierr) call store_double_into_lala(varname,reshape(real(str2ade(anything),kind=dp),[1,len(anything)]),ierr=ierr)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
class(*) | :: | anything(:,:) | ||||
integer, | intent(out) | :: | ierr |
subroutine put_into_lala(varname,A,IERR)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
doubleprecision, | intent(in) | :: | realxx(:,:) | |||
doubleprecision, | intent(in), | optional | :: | imagxx(:,:) | ||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
class(*) | :: | anything | ||||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | varname | |||
class(*) | :: | anything(:) | ||||
integer, | intent(out) | :: | ierr |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | key | |||
integer, | optional | :: | valin1 | |||
integer, | optional | :: | valin2 | |||
integer, | optional | :: | valin3 |