Encyclopaedia Index

### (o) Single-cell values

INDYX(INDVAR) is an integer function which returns the value:

L0F(INDVAR)+IY+NY*(IX-1).

Clearly, its use in (g) above would have saved some writing; and it will perform the same service for anyone using it in GROUND coding. The variables IY and IX are carried through a COMMON block appearing in GRDLOC.

VARYX(INDVAR) carries the simplification one stage further. It yields the F-array value corresponding to INDYX(INDVAR). Thus the three lines of FORTRAN leading to DIFC1 in sectopn (l) can be replaced by the following single line:

DIFC1=VARYX(C1)-VARYX(OLD(C1))

INDONE(INDVAR,IYY,IXX) has the same effect as INDYX(INDVR), but is useful when the IY and IX to be referred to are not those carried through COMMON. Thus the difference between the north and the local- cell values of H2 might be expressed as:

F(INDONE(H2,IY+1,IX))-F(INDONE(H2,IY,IX))

VARONE(INDVAR,IYY,IXX) bears to INDONE the same relation as does VARYX to INDYX. Therefore the just-mentioned difference could be expressed more compactly as:

VARONE(H2,IY+1,IX)-VARONE(H2,IY,IX)

INDZ(INDVRZ,IZZ) and VARZ(INDVRZ,IZZ) perform similar functions to those of INDYX and VARYX; but they relate to z-wise variables, ie those with NZ-long segments of the F-array. The following three expressions are therefore equivalent:

F(L0F(INDVRZ)+IZZ)
F(INDZ(INDVRZ,IZZ))
VARZ(INDVRZ,IZZ)

In addition to the integer functions INDYX, INDONE and INDZ, and the corresponding real functions VARYX, VARONE and VARZ, there exist the subroutines GETONE and GETZ, having related capabilities. Thus:

CALL GETONE(INDVAR,VALUE,IYY,IXX)

is equivalent to:

VALUE=VARONE(INDVAR,IYY,IXX)

It should be remarked that to interchange the two sides of the last statement is not allowable, and would be rejected by most compilers. Integer and real functions can appear only on the right-hand side.

The statement:

CALL GETZ(INDVAR,GZ,NZDIM)

fills the 1D array GZ with the values at each IZ of the quantity referred to by INDVRZ. The array element GZ(IZZ) is equal to the value returned by the function VARZ(INDVRZ,IZZ).

wbs