1*DECK DFILL
2      SUBROUTINE DFILL (N, V, VAL)
3C***BEGIN PROLOGUE  DFILL
4C***SUBSIDIARY
5C***PURPOSE  Fill a vector with a value.
6C***LIBRARY   SLATEC (SLAP)
7C***TYPE      DOUBLE PRECISION (VFILL-S, DFILL-D)
8C***AUTHOR  Seager, Mark K., (LLNL)
9C             Lawrence Livermore National Laboratory
10C             PO BOX 808, L-300
11C             Livermore, CA 94550 (510) 423-3141
12C             seager@llnl.gov
13C***DESCRIPTION
14C
15C *Usage:
16C     INTEGER  N
17C     DOUBLE PRECISION V(N), VAL
18C
19C     CALL DFILL( N, V, VAL )
20C
21C *Arguments:
22C N      :IN       Integer.
23C         Length of the vector
24C V      :OUT      Double Precision V(N).
25C         Vector to be set.
26C VAL    :IN       Double Precision.
27C         Value to seed the vector with.
28C***REFERENCES  (NONE)
29C***ROUTINES CALLED  (NONE)
30C***REVISION HISTORY  (YYMMDD)
31C   890404  DATE WRITTEN
32C   890920  Converted prologue to SLATEC 4.0 format.  (FNF)
33C   920511  Added complete declaration section.  (WRB)
34C***END PROLOGUE  DFILL
35C     .. Scalar Arguments ..
36      DOUBLE PRECISION VAL
37      INTEGER N
38C     .. Array Arguments ..
39      DOUBLE PRECISION V(*)
40C     .. Local Scalars ..
41      INTEGER I, IS, NR
42C     .. Intrinsic Functions ..
43      INTRINSIC MOD
44C***FIRST EXECUTABLE STATEMENT  DFILL
45      IF (N .LE. 0) RETURN
46      NR=MOD(N,4)
47C
48C         The following construct assumes a zero pass do loop.
49C
50      IS=1
51      GOTO(1,2,3,4), NR+1
52    4   IS=4
53        V(1)=VAL
54        V(2)=VAL
55        V(3)=VAL
56        GOTO 1
57    3   IS=3
58        V(1)=VAL
59        V(2)=VAL
60        GOTO 1
61    2   IS=2
62        V(1)=VAL
63    1 DO 10 I=IS,N,4
64        V(I)  =VAL
65        V(I+1)=VAL
66        V(I+2)=VAL
67        V(I+3)=VAL
68 10   CONTINUE
69      RETURN
70C------------- LAST LINE OF DFILL FOLLOWS -----------------------------
71      END
72