1 |
gforget |
1.5 |
C $Header: /u/gcmpack/MITgcm/pkg/ecco/cost_gencost_assignperiod.F,v 1.4 2011/06/19 22:47:51 heimbach Exp $ |
2 |
heimbach |
1.1 |
C $Name: $ |
3 |
|
|
|
4 |
|
|
#include "COST_CPPOPTIONS.h" |
5 |
|
|
|
6 |
|
|
subroutine cost_gencost_assignperiod( |
7 |
|
|
I startofday, startofmonth, startofyear, |
8 |
|
|
I inday, inmonth, inyear, |
9 |
|
|
I endofday, endofmonth, endofyear, |
10 |
|
|
O startofgen, endofgen, ingen, |
11 |
|
|
O sum1gen, genrec, |
12 |
|
|
I mythid ) |
13 |
|
|
|
14 |
|
|
c ================================================================== |
15 |
|
|
c SUBROUTINE cost_gencost_assignperiod |
16 |
|
|
c ================================================================== |
17 |
|
|
|
18 |
|
|
implicit none |
19 |
|
|
|
20 |
|
|
c == global variables == |
21 |
|
|
|
22 |
|
|
#include "EEPARAMS.h" |
23 |
|
|
#include "SIZE.h" |
24 |
|
|
#include "PARAMS.h" |
25 |
|
|
#include "optim.h" |
26 |
|
|
#include "ecco_cost.h" |
27 |
|
|
#include "ctrl_dummy.h" |
28 |
|
|
|
29 |
|
|
c == routine arguments == |
30 |
|
|
|
31 |
|
|
logical startofday |
32 |
|
|
logical startofmonth |
33 |
|
|
logical startofyear |
34 |
|
|
logical inday |
35 |
|
|
logical inmonth |
36 |
|
|
logical inyear |
37 |
|
|
logical endofday |
38 |
|
|
logical endofmonth |
39 |
|
|
logical endofyear |
40 |
|
|
logical startofgen(NGENCOST) |
41 |
|
|
logical endofgen(NGENCOST) |
42 |
|
|
logical ingen(NGENCOST) |
43 |
heimbach |
1.2 |
integer sum1gen(NGENCOST) |
44 |
|
|
integer genrec(NGENCOST) |
45 |
heimbach |
1.1 |
|
46 |
|
|
integer mythid |
47 |
|
|
|
48 |
|
|
#ifdef ALLOW_GENCOST_CONTRIBUTION |
49 |
|
|
c == local variables == |
50 |
|
|
|
51 |
|
|
integer num_var |
52 |
|
|
|
53 |
|
|
c == end of interface == |
54 |
|
|
|
55 |
|
|
do num_var = 1, NGENCOST |
56 |
gforget |
1.5 |
#ifndef ALLOW_GENCOST_FREEFORM |
57 |
heimbach |
1.4 |
if ( gencost_datafile(num_var) .ne. ' ' ) then |
58 |
gforget |
1.5 |
#endif |
59 |
heimbach |
1.1 |
if ( gencost_avgperiod(num_var) .EQ. 'day' .OR. |
60 |
|
|
& gencost_avgperiod(num_var) .EQ. 'DAY' ) then |
61 |
|
|
startofgen(num_var) = startofday |
62 |
|
|
endofgen(num_var) = endofday |
63 |
|
|
ingen(num_var) = inday |
64 |
|
|
sum1gen(num_var) = sum1day |
65 |
|
|
genrec(num_var) = dayrec |
66 |
|
|
else if ( gencost_avgperiod(num_var) .EQ. 'month' .OR. |
67 |
|
|
& gencost_avgperiod(num_var) .EQ. 'MONTH' ) then |
68 |
|
|
startofgen(num_var) = startofmonth |
69 |
|
|
endofgen(num_var) = endofmonth |
70 |
|
|
ingen(num_var) = inmonth |
71 |
|
|
sum1gen(num_var) = sum1mon |
72 |
|
|
genrec(num_var) = monrec |
73 |
|
|
else if ( gencost_avgperiod(num_var) .EQ. 'year' .OR. |
74 |
|
|
& gencost_avgperiod(num_var) .EQ. 'YEAR' ) then |
75 |
|
|
startofgen(num_var) = startofyear |
76 |
|
|
endofgen(num_var) = endofyear |
77 |
|
|
ingen(num_var) = inyear |
78 |
|
|
sum1gen(num_var) = sum1year |
79 |
|
|
genrec(num_var) = yearrec |
80 |
gforget |
1.3 |
#ifndef ALLOW_GENCOST_FREEFORM |
81 |
heimbach |
1.1 |
else |
82 |
|
|
STOP 'gencost_avgperiod wrongly specified' |
83 |
gforget |
1.3 |
#endif |
84 |
heimbach |
1.1 |
end if |
85 |
gforget |
1.5 |
#ifndef ALLOW_GENCOST_FREEFORM |
86 |
heimbach |
1.4 |
end if |
87 |
gforget |
1.5 |
#endif |
88 |
heimbach |
1.1 |
end do |
89 |
|
|
|
90 |
|
|
#endif /* ALLOW_GENCOST_CONTRIBUTION */ |
91 |
|
|
|
92 |
|
|
end |