-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSELL.F
111 lines (89 loc) · 3.21 KB
/
SELL.F
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
SUBROUTINE SELL(IN, VEN)
COMMON /INIT/ NR, NW, ND, NT7, NT8, NDAT, NS1, NS2
COMMON /GEN/ ITOT, ISIZE, NOWT, NOWY, NDAYS, NRUNS, IATRIB(18), ATRIB(4)
COMMON /HOUSE/ NH(6), N1, N2, N3, N4, N5, N6
COMMON /SALES/ MDSELL, WTS, NXTSAL, NSLD(4), WTSLD(4), VSLD(4), PRIH, PRIS
COMMON /GAIN2/ SOP(6), HOP(6), SSLD(6), HSLD(6), SEND(6), HEND(6)
COMMON /SALE2/ NSLDP(4), WTSLDP(4), VSLDP(4), DIS
COMMON /COST/ FCS, FCB, CLAB, TFAR, TNUR, TSOW, TFIN, VAR(3), FEED(2, 5), ABOR(2, 10)
COMMON /SKIP/ ISTOP4, ISTOP5, ISTOP6, ISTOP7, MAXSKP
COMMON /RPT3/ MJEV, ISALS, IFARS, IBRDS
C SWITCH DIAGNOSTIC
IF(NS1 .NE. 8) GO TO 800
CALL OUT(IN, VEN, N3 + 1, N4, 8888.2)
C SELL FROM HOUSE 7 FIRST
800 CONTINUE
NH4 = NH(4)
IF (NH4) 901, 901, 801
801 DO 810 J = 1,NH4
CALL REMOV(IN, VEN, N3 + 1)
AT1 = ATRIB(1)
IF(AT1-WTS) 805, 850, 850
805 CALL FILEM(IN, VEN, 7)
GO TO 810
C SELL BY RECORDING SALE.
850 NSLD(4) = NSLD(4) + 1
WTSLD(4) = WTSLD(4) + AT1
VSLD(4) = VSLD(4) + PRIH / 100.0 * AT1
C RECORD SALES FOR PRODUCTION SUMMARY.
HSLD(1) = HSLD(1) + 1.0
HSLD(2) = HSLD(2) + AT1
HSLD(3) = HSLD(3) + AT1 * PRIH / 100.0
810 CONTINUE
C SELL CULL SOWS AND GILTS FROM FILE 9, REPORT BELOW.
901 NH6=NH(6)
IF(NH6) 811, 811, 900
900 DO 910 J = 1,NH6
CALL REMOV(IN, VEN, N5 + 1)
C CULL SOW SALES USE NSLD(3), NSLDP(3), BUT WT6, WS6, ETC.
NSLD(3) = NSLD(3) + 1
AT1 = ATRIB(1)
WTSLD(3) = WTSLD(3) + AT1
PS = PRIS / 100.0
IF(AT1-350.0) 821, 821, 815
C DIS IS A DISCOUNT/LB. OVER ALL WT.
815 PS = PS - DIS
821 VSLD(3) = VSLD(3) + PS * AT1
C RECORD SALES FOR PRODUCTION SUMMARY.
SSLD(1) = SSLD(1) + 1.0
SSLD(2) = SSLD(2) + ATRIB(1)
SSLD(3) = SSLD(3) + AT1 * PS
910 CONTINUE
C REPORT ON TAPE IJK, SALES MADE
811 IJK = ND
NSTOT = 0
C CALCULATE CHANGE SINCE LAST SALES DATE.
DO 5 I2 = 3,4
5 NSTOT = NSTOT + NSLD(I2)
NS4 = NSLD(4) - NSLDP(4)
WT4 = WTSLD(4) - WTSLDP(4)
VS4 = VSLD(4) - VSLDP(4)
AVWT = WT4 / NS4
NS6 = NSLD(3) - NSLDP(3)
WT6 = WTSLD(3) - WTSLDP(3)
VS6 = VSLD(3) - VSLDP(3)
AVWT6 = WT6 / NS6
KTOT46 = NS6 + NS4
IF(ISALS) 1243, 1243, 1201
1201 IF(KTOT46) 1243, 1243, 1202
1202 WRITE(IJK, 1203) KTOT46, NOWT
1203 FORMAT(/////' SALES SEASONAL REPORT'/1X, 60(1H=)/16X'REPORT OF'I5' SALE(S) ON DAY'I5)
IF(NS4) 1903, 1903, 1204
1204 WRITE(IJK, 1205) NS4, AVWT, VS4
1205 FORMAT(/' FROM FINISHING HOUSE'/7X'SOLD'I3' HOGS AT'F6.1' POUNDS AVERAGE WEIGHT'/7X'SALES VALUE WAS'F10.2' DOL.')
1903 IF(NS6) 1906, 1906, 1904
1904 WRITE(IJK, 1905) NS6, AVWT6, VS6
1905 FORMAT(/' CULL SOWS AND GILTS '/7X'SOLD'I3' HEAD AT'F6.1' POUNDS AVERAGE WEIGHT'/7X'SALES VALUE WAS'F7.2'DOL')
1906 WRITE(IJK, 1210) NSTOT
1210 FORMAT(/' TOTAL NUMBER SOLD TO DATE=' I5/ '====END SALES REPORT' 40(1H=))
1243 DO 1245 JK = 1,4
NSLDP(JK) = NSLD(JK)
WTSLDP(JK) = WTSLD(JK)
1245 VSLDP(JK) = VSLD(JK)
C ISTOP7 SET FOR DATE OF NEXT SALE NXTSAL.
NXTSAL = NOWT + MDSELL
ISTOP7 = NXTSAL
C DIAGNOSTIC SWITCH CALLS
IF(NS1 .EQ. 8) CALL OUT(IN, VEN, N3 + 1, N4, 8888.8)
RETURN
END