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