GNU Octave  3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ddawts.f
Go to the documentation of this file.
1  SUBROUTINE ddawts (NEQ, IWT, RTOL, ATOL, Y, WT, RPAR, IPAR)
2 C***BEGIN PROLOGUE DDAWTS
3 C***SUBSIDIARY
4 C***PURPOSE Set error weight vector for DDASSL.
5 C***LIBRARY SLATEC (DASSL)
6 C***TYPE DOUBLE PRECISION (SDAWTS-S, DDAWTS-D)
7 C***AUTHOR PETZOLD, LINDA R., (LLNL)
8 C***DESCRIPTION
9 C-----------------------------------------------------------------------
10 C THIS SUBROUTINE SETS THE ERROR WEIGHT VECTOR
11 C WT ACCORDING TO WT(I)=RTOL(I)*ABS(Y(I))+ATOL(I),
12 C I=1,-,N.
13 C RTOL AND ATOL ARE SCALARS IF IWT = 0,
14 C AND VECTORS IF IWT = 1.
15 C-----------------------------------------------------------------------
16 C***ROUTINES CALLED (NONE)
17 C***REVISION HISTORY (YYMMDD)
18 C 830315 DATE WRITTEN
19 C 901009 Finished conversion to SLATEC 4.0 format (F.N.Fritsch)
20 C 901019 Merged changes made by C. Ulrich with SLATEC 4.0 format.
21 C 901026 Added explicit declarations for all variables and minor
22 C cosmetic changes to prologue. (FNF)
23 C***END PROLOGUE DDAWTS
24 C
25  INTEGER neq, iwt, ipar(*)
26  DOUBLE PRECISION rtol(*), atol(*), y(*), wt(*), rpar(*)
27 C
28  INTEGER i
29  DOUBLE PRECISION atoli, rtoli
30 C
31 C***FIRST EXECUTABLE STATEMENT DDAWTS
32  rtoli=rtol(1)
33  atoli=atol(1)
34  DO 20 i=1,neq
35  IF (iwt .EQ.0) go to 10
36  rtoli=rtol(i)
37  atoli=atol(i)
38 10 wt(i)=rtoli*abs(y(i))+atoli
39 20 CONTINUE
40  RETURN
41 C-----------END OF SUBROUTINE DDAWTS------------------------------------
42  END