2
SUBROUTINE DSRCMA (RSAV, ISAV, JOB)
3
C-----------------------------------------------------------------------
4
C This routine saves or restores (depending on JOB) the contents of
5
C the Common blocks DLS001, DLSA01, which are used
6
C internally by one or more ODEPACK solvers.
8
C RSAV = real array of length 240 or more.
9
C ISAV = integer array of length 46 or more.
10
C JOB = flag indicating to save or restore the Common blocks:
11
C JOB = 1 if Common is to be saved (written to RSAV/ISAV)
12
C JOB = 2 if Common is to be restored (read from RSAV/ISAV)
13
C A call with JOB = 2 presumes a prior call with JOB = 1.
14
C-----------------------------------------------------------------------
17
INTEGER I, LENRLS, LENILS, LENRLA, LENILA
19
DOUBLE PRECISION RLS, RLSA
20
DIMENSION RSAV(*), ISAV(*)
21
SAVE LENRLS, LENILS, LENRLA, LENILA
22
COMMON /DLS001/ RLS(218), ILS(37)
23
COMMON /DLSA01/ RLSA(22), ILSA(9)
24
DATA LENRLS/218/, LENILS/37/, LENRLA/22/, LENILA/9/
26
IF (JOB .EQ. 2) GO TO 100
30
15 RSAV(LENRLS+I) = RLSA(I)
35
25 ISAV(LENILS+I) = ILSA(I)
43
115 RLSA(I) = RSAV(LENRLS+I)
48
125 ILSA(I) = ISAV(LENILS+I)
51
C----------------------- End of Subroutine DSRCMA ----------------------