Encyclopaedia Index

Read

--------------------------------------- Photon Help ----

[Read] prompts for the name of a file that contains your geometry for display on the plot. The file name 'screen' (as default) activates the geometry input menu which allows you to draw geometry interactively.


READARR

---- Command; group 6 ---------------

READARR is a command to read the contents of a disk file into a PIL array. The syntax of the command for 1-D and 2-D arrays is as follows:

READARR(array_name, [type], file_name, [no_of_lines_read], [no_of_elements_per_line])

ARRAY_NAME - is the name of the array to be filled.
If it exists, it will be used. If it is too small, or the wrong shape there will be error messages. If it is too big, the spare elements will not be filled.
If it does not exist, it will be created exactly the right size and shape.

TYPE - is an optional argument specifying the type of the array. It can be REAL, INT, LOG or CHAR. If the argument is missing, REAL is assumed.

FILE_NAME - Is the name of the file to be read, up to 80 characters long.
Blank lines and lines starting * or # in column 1 are ignored. Characters after ! are ignored.
Space, comma, semi-colon or tab can be used as separators between columns.

NO_OF_LINES_READ - is an optional PIL integer which will be filled with the number of lines read from the input file.

NO_OF_ELEMENTS_PER_LINE - is an optional PIL integer which will be filled with the number of elements read from each line.

A file containing M lines, with N columns per line will be read into a 2-D array dimensioned (M,N). If The file contains a single column of values, a 1-D array will be used. Each active line of the file must contain the same number of data values.

The array can be any PIL array, or any user-declared PIL array.

For 3-D arrays, the command is slightly different:

READARR(array_name, [type], file_name, NI, NJ, NK)

ARRAY_NAME - is the name of the array to be filled.
If it exists, it will be used. If it is too small, or the wrong shape there will be error messages. If it is too big, the spare elements will not be filled.
If it does not exist, it will be created exactly the right size and shape.

TYPE - is an optional argument specifying the type of the array. It can be REAL, INT, LOG or CHAR. If the argument is missing, REAL is assumed.

FILE_NAME - Is the name of the file to be read, up to 80 characters long.
Blank lines and lines starting * or #in column 1 are ignored. Characters after ! are ignored.
Space, comma, semi-colon or tab can be used as separators between columns.

NI, NJ, NK - are the three dimensions of array_name(NI,NJ,NK) which will be filled with the values read from the input file.

A file containing NI*NK lines in NK groups of NI, with NJ columns per line will be read into a 3-D array dimensioned (NI,NJ,NK).

The array can be any PIL array, or any user-declared PIL array.


READCO

---- Command; group 6 ---------------

READCO....is a command to read the corner coordinates of a body-fitted grid from a file. The single argument of READCO identifies the name of the file to be read. The following file names are used by the Input Library:

GRID1, GRID2, GRID3, GRID4, GRID5, GRID6 and GRID7.

Users should therefore use a different name, eg GRID.

The command READCO(GRID) reads the corner coordinates from the disc file named GRID. The file is a formatted one, and the data items on it must be arranged as follows:- the first line contains 3 integer data items in the format 3I5, followed by 5 items of real data per line in the format 5(1PE13.6), namely,


    NX+1 NY+1 NZ+1
    XC(1,1,1) XC(1,2,1) XC(1,3,1) XC(1,4,1) XC(1,5,1)
    XC(1,6,1) .....
     .............   XC(1,NY+1,1) XC(2,1,1) XC(2,2,1)
     .............   XC(2,NY+1,1) XC(3,1,1) ........
     .............XC(NX+1,NY+1,1)
    YC(1,1,1) YC(1,2,1) ............................
     .............YC(NX+1,NY+1,1)
    ZC(1,1,1) ZC(1,2,1) ............................
     .............ZC(NX+1,NY+1,1)
    XC(1,1,2) XC(1,2,2).............................
     ..............ZC(NX+1,NY+1,2)
    XC(1,1,3).......................................
     ..............ZC(NX+1,NY+1,NZ+1)

Click here for grid1 of the bfc input library.

Evidently, the grid in question, which is used in BFC input-library case 524, has NX=5, NY=5, NZ=12.

The file therefore contains, as its first line, 5=1, 5=1, 12+1.

There follow 12+1 blocks of data, each of which contains three sub-blocks, (5+1)*(5+1) in size, containing the XC, YC and ZC values for each if the NX+1 slabs.


READFI

---- PIL real flag; value=-10220.0; group -

READFI....is a flag to which FIINIT(phi) may be set to indicate to EARTH that the initial field of the phi in question is to be read from a data file. See also FIINIT.


Reading in corner coordinates

(see READCO)


READQ1

is a PIL command (See also the Encyclopaedia entry RQ1.

When READQ1 = T appears in the Q1 file, subroutine GREX3 reads data from the Q1 file at the start of the EARTH execution (provided that the PIL variable USEGRX is T, as it is by default).

It does so by calling the subroutine GXRDQ1, which resides in GXUTIL.FOR.

The data statements must be placed below a line containing the word:
READQ1_BEGIN
and above one containing the word:
READQ1_END.

It ignores lines of which the first non-blank character is "*".

The lines which are read are printed both in the result file and on the VDU screen.

Among its other advantages, the feature permits the transmission from the Q1 file to the RESULT file of an unlimited amount of descriptive material.

It also allows transfer to EARTH of data, without the necessity to run the satellite; this is often useful when many runs are to be performed in quick succession after alteration of a single input-data item.

A few commonly-used PHOENICS variables may be inserted directly, namely:

LSWEEP, LSTEP, ISOLX, ISOLY, ISOLZ, ISOLBK, RHO1, ENUL, ENUT CFIPS, CMDOT, CARTES, STEADY, NONORT

Arrayed variable such as PRNDTL(INDVAR), LITER(INDVAR) and NAME(INDVAR) may be entered as: (1) array name, (2) numerical value of INDVAR, (3) value, followed by comments if desired.

The arrays which can be addressed are listed below:


    ITERMS(NPHI)  LITER(NPHI)   ISLN(NPHI)    IPRN(NPHI)
    NAME(NPHI)    DTFALS(NPHI)  RESREF(NPHI)  PRNDTL(NPHI)
    PRT(NPHI)     ENDIT(NPHI)   VARMIN(NPHI)  VARMAX(NPHI)
    FIINIT(NPHI)  PHINT(NPHI)   CINT(NPHI)
    LG(20)        IG(20)        RG(100)       CG(10)

Others variables may be entered via:

  1. SATEAR COMMON block name,
  2. position in block,
  3. value, followed by comments if desired, as in the following example.
The position of the item in the block can of course be found by counting. However, a useful table is included below.

This feature must be used with caution, because some resettings of data may conflict with settings made in the satellite.

For example, whole-field solution cannot necesarily be switched ON because necessary storage may not be provided; but it may be switched OFF (by dividing the relevant ISLN by 5).

Example:


        LSWEEP  10
        ISOLZ    1
        CARTES   F
        LITER   14  100     ...liter(H1)
        * ISLN    14    6     ...whole field solution for H1
        PRNDTL  14    0.01  ...prndtl(H1)
        NAME     7  aw1     ...name of W1
        LDAT    25    t     ...echo
 
The whole-field solver will not be set for H1 due to the "*" as the first non-blank character in the line.

Library case 240 illustrates this feature.

The locations of the variables stored in COMMON blocks are given below:


    ** Locations in LDAT are:-
        LDAT(1      2     3    4     5      6      7
                CARTES,USTEER,YZPR,ONEPHS,YANGLE,SAVE,ZANGLE,
    8     9    10     11    12    13     14     15     16
    XCYCLE,XZPR,EQDVDP,UCONV,UDIFF,UCONNE,UDIFNE,USOURC,UCORCO,
    17     18     19   20  21      22     23     24    25
    USOLVE,UCORR,STEADY,BFC,AUTOPS,EQUVEL,ADDDIF,NOWIPE,ECHO,
    26     27     28    29     30     31     32    33     34
    UWATCH,NOSORT,NOADAP,UGEOM,NEWENT,NEWENL,NULLPR,BLOCKZ,NODEF,
    35    36     37     38     39    40     41,42
    TRACE,NOCOMM,NOCOPY,OLDSOL,Q1QUIT,DMPSTK,LSP40(2),
    43     44   45     46     47     48    49     50
    THINX,THINY,THINZ,STCENP,STCORN,STCORO,SAVGEO,RSTGEO,
    51     52    53     54     55     56     57    58     59
    NEWRH1,NEWRH2,LINIT,SUBWGR,INIADD,INIFLD,WALPRN,GALA,DONACC,
    60     61     62    63    64     65     66    67     68
    PARAB,DENPCO,DEBUG,DISTIL,PICKUP,NONORT,HIGHLO,EARTH,USEGRD,
    69     70     71    72    73 74  75  76    77     78
    USEGRX,PILBUG,SMPLR,VOID,DARCY,UUP,VUP,WUP,OLDSTO,NOGRID,
    79  80   81    82      83,84
    XFIX,ZFIZ,SETBFC,MOVBFC,LDATSP(2)
 
    ** Locations in IDAT are:-
    IDAT(1  2  3    4     5     6     7     8    9
        NX,NY,NZ,LUPR1,LUPR2,LUPR3,ISOLBK,LUSDA,IPROF,
    10      11    12     13    14    15    16    17    18    19
    NUMCOL,MAXBLK,LUGRF,IVARBK,LUOLD,LUDEP,LUPCO,LUDVL,IRUNN,IOPTN,
    20    21    22    23    24    25     26     27     28
    LITC,LITFLX,NRUN,LITHYD,FSTEP,LSTEP,FSWEEP,LSWEEP,NPRINT,
    29    30       31    32    33    34    35   36    37    38
    LIBREF,NPLERR,IXMON,IYMON,IZMON,IINIT,NLSG1,NISG1,N
 
    RSG1,NCSG1,
    39    40    41       42    43    44    45    46   47    48
    IPARAB,NFUSER,NXFR1,NYFR1,NZFR1,NTFR1,ENTH1,ENTH2,ISWR1,ISWR2,
    49   50    51     52    53    54     55    56     57
    IXPRF,IXPRL,IYPRF,IYPRL,NPRMNT,ISTPRL,ISTPRF,IZPRL,IZPRF,
    58    59    60       61    62      63     64     65     66
    NUMCLS,TSTSWP,NYPRIN,NXPRIN,NZPRIN,NPRMON,NTPRIN,NTZPRF,ISOLY,
    67    68      69     70     71     72     73   74    75
    IURINI,IURPRN,IURVAL,I0RTCV,NUMREG,NRTCV,ICHR,INTFRC,ITHC1,
    76   77  78   79     80     81     82    83   84   85
    ISWC1,DEN1,DEN2,VISL,INTMDT,ISWPRF,ISWPRL,IPSA,NCRT,IPLTF,
    86    87   88    89     90   91   92   93   94   95   96
    IPLTL,NPLT,ITABL,TEMP1,TEMP2,LEN1,LEN2,NLG1,NIG1,NRG1,NCG1,
    97     98      99   100   101     102   103  104 105   106
    NPNAM1,NMDSTL,ISOLX,ISOLZ,LENREC,LUGEOM,IMB1,IMB2,PCOR,NCOLPF,
    107    108    109  110  111  112  113  114  115  116  117
    NCOLCO,NROWCO,EPOR,NPOR,HPOR,VPOR,KXFR,KYFR,KZFR,KTFR,NDST,
    118    119  120
    GPHERR,VIST,NPHI
 
    ** Locations in RDAT are:-
        RDAT( 1    2     3      4     5     6     7
                TINY,GREAT,RUPLIM,RLOLIM,AZDZ,AZXU,AZYV,
    8   9    10   11      12     13     14    15    16    17
    AZRI,AZAL,AZPH,XULAST,YVLAST,ZWLAST,TLAST,TFIRST,PBAR,SNALFA,
    18     19   20   21   22   23     24    25    26   27
    RINNER,ENUL,ENUT,RHO1,RHO2,CFIPS,CMDOT,TSURR,GRND,HEATBL,
    28      29     30     31     32     33    34   35   36
    FIXFLU,READFI,ZMOVE1,ZDIFAC,DRH1DP,DRH2DP,U1AD,U2AD,V1AD,
    37   38   39   40    41     42    43     44    45   46
    V2AD,W1AD,W2AD,HUNIT,DIFCUT,ABSIZ,ORSIZ,OPPVAL,TMP1,TMP2,
    47  48  49    50    51    52    53    54    55    56    57
    EL1,EL2,GRND1,GRND2,GRND3,GRND4,GRND5,GRND6,GRND7,GRND8,GRND9,
    58      59    60   61    62    63   64    65    66
    GRND10,ZWADD,RINIT,SAME,FIXVAL,AXDZ,AYDZ,OVRRLX,DSTTOL,
    67    68    69    70    71     72     73    74 to 85
    ZERO,ONLYMS,FIXP,DARCON,ANGMIN,REFLIB,CORIOL,RDATSP(12)
 
    ** Locations in LDEB are:-
                            LDEB(  1      2      3     4
                                DBGEOM,DBADJS,DBCOMP,DBINDX,
    5     6      7      8      9     10    11    12    13
    DBFLUX,DBMAIN,DBSOL1,DBSOL2,DBSOL3,DBEMU,DBRHO,DBEXP,DBSODA,
    14    15 16    17     18    19     20     21    22
    DBONLY,DBT,DBL,DBCMPE,DBCMPN,DBCMPH,DBCONV,DBGAM,DBCMP2,
    23    24      25    26     27    28     29      30
    DBSHFT,DBOUT,DBCMPR,DBMDOT,DBCFIP,DBPRBL,DBEDGE,DBGRND,
    31   32     33    34     35   36     37 - 45
    FLAG,MONITR,SEARCH,DBCONT,TEST,TSTGNK,LDBS37(9)
 
    ** Locations in IDEB are:-
    IDEB( 1    2     3      4      5      6     7
        IZDB1,IZDB2,ITHDB1,ITHDB2,ISWDB1,ISWDB2,ISTDB1,
    8      9      10    11    12     13     14    15,16
    ISTDB2,INCHCK,IREGDB,NFMAX,IDBF0,IDBCMN,IDBGRD,IDEBSP(2)
 
 

READVDU

READVDU is a PIL command enabling users to respond via the keyboard to requests from the SATELLITE for specific information. Its syntax is:
READVDU(variable,type,default value,[help index]) where:

variableis a previously-declared INTEGER, REAL, CHARacter or BOOLean variable;
typeis INT, REAL, CHAR or BOOL, according to the variable type;
default valueis a REAL, INTEGER, CHARacter or BOOLean expression which will be assigned to the variable if no input is received;
help indexis an (optional) pointer to the help file where help can be obtained if '?' is typed in.

Example:

MESG(Enter number of sweeps to be performed)
READVDU(LSWEEP,INT,60)

Multiple inputs can be made to consecutive READVDU commands, if the inputs are delimited by semi-colons.

Example:


in Q1 file set:
mesg(Enter values of LSWEEP, ONEPHS and W1IN
READVDU(LSWEEP,INT,60)
READVDU(ONEPHS,BOOL,T)
READVDU(W1IN,REAL,0.0)

Then entering on the keyboard the following:

1000;F;10.0

will result in the assignment of the following results:

LSWEEP=1000; ONEPHS=F; W1IN=10.0.

Note that READVDU is not disabled by TALK=F, so care should be taken not to run multi-run Q1 files containing READVDU in batch mode unless arrangements are made to read from a file (which may simply contain carriage-returns, which will activate the default options) rather than from the keyboard.


wbs