2
SUBROUTINE FULMAT (I, J, AIJ, INDCAT, PRGOPT, DATTRV, IFLAG)
3
C***BEGIN PROLOGUE FULMAT
5
C***PURPOSE Subsidiary to SPLP
7
C***TYPE SINGLE PRECISION (FULMAT-S, DFULMT-D)
11
C DECODES A STANDARD TWO-DIMENSIONAL FORTRAN ARRAY PASSED
12
C IN THE ARRAY DATTRV(IA,*). THE ROW DIMENSION IA AND THE
13
C MATRIX DIMENSIONS MRELAS AND NVARS MUST SIMULTANEOUSLY BE
14
C PASSED USING THE OPTION ARRAY, PRGOPT(*). IT IS AN ERROR
15
C IF THIS DATA IS NOT PASSED TO FULMAT( ).
16
C EXAMPLE-- (FOR USE TOGETHER WITH SPLP().)
18
C DIMENSION DATTRV(IA,*)
26
C CALL SPLP( ... FULMAT INSTEAD OF USRMAT...)
29
C***ROUTINES CALLED XERMSG
30
C***REVISION HISTORY (YYMMDD)
32
C 891214 Prologue converted to Version 4.0 format. (BAB)
33
C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ)
34
C 900328 Added TYPE section. (WRB)
35
C***END PROLOGUE FULMAT
36
REAL AIJ,ZERO,DATTRV(*),PRGOPT(*)
39
C***FIRST EXECUTABLE STATEMENT FULMAT
40
IF (.NOT.(IFLAG(1).EQ.1)) GO TO 50
41
C INITIALIZE POINTERS TO PROCESS FULL TWO-DIMENSIONAL FORTRAN
46
IF (.NOT.(NEXT.LE.1)) GO TO 20
49
CALL XERMSG ('SLATEC', 'FULMAT',
50
+ 'IN SPLP PACKAGE, ROW DIM., MRELAS, NVARS ARE MISSING FROM ' //
51
+ 'PRGOPT.', NERR, LEVEL)
55
IF (.NOT.(KEY.NE.68)) GO TO 30
58
30 IF (.NOT.(PRGOPT(LP+2).EQ.ZERO)) GO TO 40
63
IFLAG(4) = PRGOPT(LP+3)
64
IFLAG(5) = PRGOPT(LP+4)
65
IFLAG(6) = PRGOPT(LP+5)
67
50 IF (.NOT.(IFLAG(1).EQ.2)) GO TO 100
70
IF (.NOT.(J.GT.IFLAG(6))) GO TO 70
73
70 IF (.NOT.(I.GT.IFLAG(5))) GO TO 80
77
80 AIJ = DATTRV(IFLAG(4)*(J-1)+I)
79
IF (.NOT.(AIJ.EQ.ZERO)) GO TO 90