Appendix A. Computer Program Listing and
Instructions
SUBROUTINE BAKTRAK
c
·»«««»«»»*««««*»*»«*««««
R
2
c***« DIMENSION f COMMON · INTEGER * REAL AND LOGICAL STATEMENTS
β
3
COMMON /UNOSA/ HI(300)
R
4
COMMON /DOS/ NODES* APCS* INFES* IRET
Β
5
COMMON /TRES/ DERT* DELIM* LL* MM* Ν* PMAX* R* RI* SS* SUMA* Τ* TM
Β
6
1AX* TOT
Β
7
COMMON /CUATRO/ AVCAP(50)* CAPAC(20). INV(20)* LIFE(20) * MAR(20)*
Β
8
1NONO(20). NRES(20)* PVFARN(50)
Β
9
COMMON /CINCO/ OPTIME
R
10
COMMON /SEIS/ BND(20* 50)* IGORET(50)* PERRAR(20* 50)* PVBAR(20* 5
Β
11
10)
R
12
COMMON /SIETE/ M(20* 50)
Β
13
COMMON /OCHO/ IZ. TAOPCS
R
14
COMMON /NUEVE/ YO. IST(20* 50)
Ρ
15
INTEGER HI
R
16
INTEGER SS
Β
17
INTEGER SUMA
Η
18
INTEGER T* TMAX * TOT* Tl
Β
19
INTEGER TEX* TU
Β
20
LOGICAL OPTIME
Β
21
LOGICAL SIMPLE
Β
22
LOGICAL YO
Β
23
£««»« CREATE A TEMPORARY FILF ON NEW PPOJFCTS
R
24
YO = .FALSE.
Β
25
=
0
Β
26
00 10 J = 1* TMAX
Β
27
DO 10 I s LL* MM
Β
28
ISTU* J) = M(i, j)
Β
29
10
CONTINUE
Β
30
Τ s
M
Β
31
TOT = T-l
Β
32
TEX = TMAX
Β
33
TU = TEX
R
34
SIMPLE = .TRUE.
Β
35
CHOOSING THE LARGEST ROUND
R
36
20
Tl = T*l
Β
37
30
KX = LL
Β
38
LM =
*1
Β
39
00 40 I s LM» SS
Β
40
IF (BND(KX * T) .LT. RNO(I * T)) KX = Τ
Β
41
CONTINUE
R
42
IF (Τ .EO. TEX) KXI = KX
Η 43
c»«»« IS THIS BOUND GREATER THAN ZERO OR LARGER THAN PMAX
R 44
IF (TEX .NE. T) GO TO 50
Θ
45
IF (RND(KX* TEX) .LT. 0.1) GO TO 220
Β
46
IF (BND(KX* TEX) .LE. PMAX) GO TO 60
Β
47
50
IF (KX .EO. SS) GO TO 80
Β
48
IF (RND( X• Τ) .LT. 0.1) GO TO 120
Β
49
IF (INV(KX) .LE. AVCAP(T)) GO TO 80
Β
50
IF (INV(KX) .GT. AVCAP(T)) BND(KX· T) = 0.0
Β
51
GO TO 30
Β
5?
c«««« THE CASE WHEN LARGEST BOUND IS LESS THAN PMAX
Β
53
c«««« LOOK AT ALTERNATIVE WITH BOUND HIGHER THAN PMAX
Β
54
60
DO 70 I = LL* SS
R 55
BND(I« TEX) = 0.
R
56
70
CONTINUE
Β
57
GO TO 220
Β
58
REMOVE CONFIGURATION ADDED IN YEAR Τ I.E. PICK OUT THE CONFIGURATΒ
59
Instructions
SUBROUTINE BAKTRAK
c
·»«««»«»»*««««*»*»«*««««
R
2
c***« DIMENSION f COMMON · INTEGER * REAL AND LOGICAL STATEMENTS
β
3
COMMON /UNOSA/ HI(300)
R
4
COMMON /DOS/ NODES* APCS* INFES* IRET
Β
5
COMMON /TRES/ DERT* DELIM* LL* MM* Ν* PMAX* R* RI* SS* SUMA* Τ* TM
Β
6
1AX* TOT
Β
7
COMMON /CUATRO/ AVCAP(50)* CAPAC(20). INV(20)* LIFE(20) * MAR(20)*
Β
8
1NONO(20). NRES(20)* PVFARN(50)
Β
9
COMMON /CINCO/ OPTIME
R
10
COMMON /SEIS/ BND(20* 50)* IGORET(50)* PERRAR(20* 50)* PVBAR(20* 5
Β
11
10)
R
12
COMMON /SIETE/ M(20* 50)
Β
13
COMMON /OCHO/ IZ. TAOPCS
R
14
COMMON /NUEVE/ YO. IST(20* 50)
Ρ
15
INTEGER HI
R
16
INTEGER SS
Β
17
INTEGER SUMA
Η
18
INTEGER T* TMAX * TOT* Tl
Β
19
INTEGER TEX* TU
Β
20
LOGICAL OPTIME
Β
21
LOGICAL SIMPLE
Β
22
LOGICAL YO
Β
23
£««»« CREATE A TEMPORARY FILF ON NEW PPOJFCTS
R
24
YO = .FALSE.
Β
25
=
0
Β
26
00 10 J = 1* TMAX
Β
27
DO 10 I s LL* MM
Β
28
ISTU* J) = M(i, j)
Β
29
10
CONTINUE
Β
30
Τ s
M
Β
31
TOT = T-l
Β
32
TEX = TMAX
Β
33
TU = TEX
R
34
SIMPLE = .TRUE.
Β
35
CHOOSING THE LARGEST ROUND
R
36
20
Tl = T*l
Β
37
30
KX = LL
Β
38
LM =
*1
Β
39
00 40 I s LM» SS
Β
40
IF (BND(KX * T) .LT. RNO(I * T)) KX = Τ
Β
41
CONTINUE
R
42
IF (Τ .EO. TEX) KXI = KX
Η 43
c»«»« IS THIS BOUND GREATER THAN ZERO OR LARGER THAN PMAX
R 44
IF (TEX .NE. T) GO TO 50
Θ
45
IF (RND(KX* TEX) .LT. 0.1) GO TO 220
Β
46
IF (BND(KX* TEX) .LE. PMAX) GO TO 60
Β
47
50
IF (KX .EO. SS) GO TO 80
Β
48
IF (RND( X• Τ) .LT. 0.1) GO TO 120
Β
49
IF (INV(KX) .LE. AVCAP(T)) GO TO 80
Β
50
IF (INV(KX) .GT. AVCAP(T)) BND(KX· T) = 0.0
Β
51
GO TO 30
Β
5?
c«««« THE CASE WHEN LARGEST BOUND IS LESS THAN PMAX
Β
53
c«««« LOOK AT ALTERNATIVE WITH BOUND HIGHER THAN PMAX
Β
54
60
DO 70 I = LL* SS
R 55
BND(I« TEX) = 0.
R
56
70
CONTINUE
Β
57
GO TO 220
Β
58
REMOVE CONFIGURATION ADDED IN YEAR Τ I.E. PICK OUT THE CONFIGURATΒ
59
