~ubuntu-branches/ubuntu/wily/julia/wily

« back to all changes in this revision

Viewing changes to deps/openlibm/slatec/pinitm.f

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot
  • Date: 2013-01-16 12:29:42 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130116122942-x86e42akjq31repw
Tags: 0.0.0+20130107.gitd9656f41-1
* New upstream snashot
* No longer try to rebuild helpdb.jl.
   + debian/rules: remove helpdb.jl from build-arch rule
   + debian/control: move back python-sphinx to Build-Depends-Indep
* debian/copyright: reflect upstream changes
* Add Build-Conflicts on libatlas3-base (makes linalg tests fail)
* debian/rules: replace obsolete USE_DEBIAN makeflag by a list of
  USE_SYSTEM_* flags
* debian/rules: on non-x86 systems, use libm instead of openlibm
* dpkg-buildflags.patch: remove patch, applied upstream
* Refreshed other patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
*DECK PINITM
 
2
      SUBROUTINE PINITM (M, N, SX, IX, LMX, IPAGEF)
 
3
C***BEGIN PROLOGUE  PINITM
 
4
C***SUBSIDIARY
 
5
C***PURPOSE  Subsidiary to SPLP
 
6
C***LIBRARY   SLATEC
 
7
C***TYPE      SINGLE PRECISION (PINITM-S, DPINTM-D)
 
8
C***AUTHOR  Hanson, R. J., (SNLA)
 
9
C           Wisniewski, J. A., (SNLA)
 
10
C***DESCRIPTION
 
11
C
 
12
C     PINITM LIMITS THE TYPE OF STORAGE TO A SEQUENTIAL SCHEME.
 
13
C     THE MATRIX IS STORED BY COLUMNS.
 
14
C     SPARSE MATRIX INITIALIZATION SUBROUTINE.
 
15
C
 
16
C            M=NUMBER OF ROWS OF THE MATRIX.
 
17
C            N=NUMBER OF COLUMNS OF THE MATRIX.
 
18
C  SX(*),IX(*)=THE WORK ARRAYS WHICH ARE USED TO STORE THE SPARSE
 
19
C              MATRIX.  THESE ARRAYS ARE AUTOMATICALLY MAINTAINED BY
 
20
C              THE PACKAGE FOR THE USER.
 
21
C          LMX=LENGTH OF THE WORK ARRAY SX(*).
 
22
C              LMX MUST BE AT LEAST N+7 WHERE
 
23
C              FOR GREATEST EFFICIENCY LMX SHOULD BE AT LEAST N+NZ+6
 
24
C              WHERE NZ IS THE MAXIMUM NUMBER OF NONZEROES TO BE
 
25
C              STORED IN THE MATRIX.  VALUES OF LMX BETWEEN N+7 AND
 
26
C              N+NZ+6 WILL CAUSE DEMAND PAGING TO OCCUR.
 
27
C              THIS IS IMPLEMENTED BY THE PACKAGE.
 
28
C              IX(*) MUST BE DIMENSIONED AT LEAST LMX
 
29
C      IPAGEF=UNIT NUMBER WHERE DEMAND PAGES WILL BE STORED.
 
30
C
 
31
C     THIS SUBROUTINE IS A MODIFICATION OF THE SUBROUTINE LINITM,
 
32
C     SANDIA LABS. REPT. SAND78-0785.
 
33
C     MODIFICATIONS BY K.L. HIEBERT AND R.J. HANSON
 
34
C     REVISED 811130-1000
 
35
C     REVISED YYMMDD-HHMM
 
36
C
 
37
C***SEE ALSO  SPLP
 
38
C***ROUTINES CALLED  XERMSG
 
39
C***REVISION HISTORY  (YYMMDD)
 
40
C   811215  DATE WRITTEN
 
41
C   890831  Modified array declarations.  (WRB)
 
42
C   891214  Prologue converted to Version 4.0 format.  (BAB)
 
43
C   900315  CALLs to XERROR changed to CALLs to XERMSG.  (THJ)
 
44
C   900328  Added TYPE section.  (WRB)
 
45
C   910403  Updated AUTHOR and DESCRIPTION sections.  (WRB)
 
46
C***END PROLOGUE  PINITM
 
47
      REAL SX(LMX),ZERO,ONE
 
48
      DIMENSION IX(*)
 
49
      SAVE ZERO, ONE
 
50
      DATA ZERO,ONE /0.E0,1.E0/
 
51
C***FIRST EXECUTABLE STATEMENT  PINITM
 
52
      IOPT=1
 
53
C
 
54
C     CHECK FOR INPUT ERRORS.
 
55
C
 
56
      IF (.NOT.(M.LE.0 .OR. N.LE.0)) GO TO 20002
 
57
      NERR=55
 
58
      CALL XERMSG ('SLATEC', 'PINITM',
 
59
     +   'MATRIX DIMENSION M OR N .LE. 0.', NERR, IOPT)
 
60
C
 
61
C     VERIFY IF VALUE OF LMX IS LARGE ENOUGH.
 
62
C
 
63
20002 IF (.NOT.(LMX.LT.N+7)) GO TO 20005
 
64
      NERR=55
 
65
      CALL XERMSG ('SLATEC', 'PINITM',
 
66
     +   'THE VALUE OF LMX IS TOO SMALL.', NERR, IOPT)
 
67
C
 
68
C     INITIALIZE DATA STRUCTURE INDEPENDENT VALUES.
 
69
C
 
70
20005 SX(1)=ZERO
 
71
      SX(2)=ZERO
 
72
      SX(3)=IPAGEF
 
73
      IX(1)=LMX
 
74
      IX(2)=M
 
75
      IX(3)=N
 
76
      IX(4)=0
 
77
      SX(LMX-1)=ZERO
 
78
      SX(LMX)=-ONE
 
79
      IX(LMX-1)=-1
 
80
      LP4=N+4
 
81
C
 
82
C     INITIALIZE DATA STRUCTURE DEPENDENT VALUES.
 
83
C
 
84
      I=4
 
85
      N20008=LP4
 
86
      GO TO 20009
 
87
20008 I=I+1
 
88
20009 IF ((N20008-I).LT.0) GO TO 20010
 
89
      SX(I)=ZERO
 
90
      GO TO 20008
 
91
20010 I=5
 
92
      N20012=LP4
 
93
      GO TO 20013
 
94
20012 I=I+1
 
95
20013 IF ((N20012-I).LT.0) GO TO 20014
 
96
      IX(I)=LP4
 
97
      GO TO 20012
 
98
20014 SX(N+5)=ZERO
 
99
      IX(N+5)=0
 
100
      IX(LMX)=0
 
101
C
 
102
C     INITIALIZATION COMPLETE.
 
103
C
 
104
      RETURN
 
105
      END