/[MITgcm]/MITgcm/pkg/ecco/ecco_cost_init_fixed.F
ViewVC logotype

Annotation of /MITgcm/pkg/ecco/ecco_cost_init_fixed.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.11 - (hide annotations) (download)
Tue Oct 9 00:02:51 2007 UTC (16 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59k, checkpoint59j, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61h, checkpoint61i
Changes since 1.10: +6 -5 lines
add missing cvs $Header:$ or $Name:$

1 jmc 1.11 C $Header: $
2     C $Name: $
3 heimbach 1.1
4     #include "PACKAGES_CONFIG.h"
5 heimbach 1.2 #include "AD_CONFIG.h"
6 heimbach 1.1 #include "COST_CPPOPTIONS.h"
7    
8     subroutine ecco_cost_init_fixed( mythid )
9    
10     c ==================================================================
11     c SUBROUTINE ecco_cost_init_fixed
12     c ==================================================================
13     c
14     c o Set contributions to the cost function and the cost function
15     c itself to zero. The cost function and the individual contribu-
16     c tions are defined in the header file "ecco_cost.h".
17     c
18     c started: Christian Eckert eckert@mit.edu 30-Jun-1999
19     c
20     c changed: Christian Eckert eckert@mit.edu 25-Feb-2000
21     c
22     c - Restructured the code in order to create a package
23     c for the MITgcmUV.
24     c
25     c changed: Ralf Giering 18-Jan-2001
26     c
27     c - move namelist reading to cost_readparms.F
28     c
29     c ==================================================================
30     c SUBROUTINE ecco_cost_init_fixed
31     c ==================================================================
32    
33     implicit none
34    
35     c == global variables ==
36    
37     #include "EEPARAMS.h"
38     #include "SIZE.h"
39     #include "GRID.h"
40     #include "PARAMS.h"
41    
42 heimbach 1.3 #ifdef ALLOW_CAL
43 heimbach 1.1 #include "cal.h"
44 heimbach 1.3 #endif
45 heimbach 1.1 #include "ecco_cost.h"
46    
47     c == routine arguments ==
48    
49     integer mythid
50    
51     c == local variables ==
52    
53     integer tempDate1(4)
54     integer tempDate2(4)
55 heimbach 1.9 integer gwunit
56     integer ilo,ihi
57     integer irec
58 heimbach 1.1 logical exst
59 heimbach 1.9 _RL dummy
60     _RL missingObsFlag
61     PARAMETER ( missingObsFlag = 1. _d 23 )
62 heimbach 1.1
63     c == external functions ==
64    
65 heimbach 1.8 integer cal_IntYears
66     external cal_IntYears
67 heimbach 1.1 integer cal_IntMonths
68     external cal_IntMonths
69     integer cal_IntDays
70     external cal_IntDays
71 heimbach 1.9 integer ifnblnk
72     external ifnblnk
73     integer ilnblnk
74     external ilnblnk
75 heimbach 1.1
76     c == end of interface ==
77    
78     #ifdef ALLOW_CAL
79    
80     c-- The number of monthly and daily averages generated by the
81     c-- current model integration.
82 heimbach 1.8 nyearsrec = cal_IntYears( mythid )
83 heimbach 1.1 nmonsrec = cal_IntMonths( mythid )
84     ndaysrec = cal_IntDays( mythid )
85    
86     _BEGIN_MASTER( myThid )
87    
88     c-- Get the complete dates of the ...
89     c-- ... TMI data.
90     call cal_FullDate( tmistartdate1, tmistartdate2,
91     & tmistartdate, mythid )
92     c-- ... SST data.
93     call cal_FullDate( sststartdate1, sststartdate2,
94     & sststartdate, mythid )
95     c-- ... SSS data.
96     call cal_FullDate( sssstartdate1, sssstartdate2,
97 jmc 1.11 & sssstartdate, mythid )
98 heimbach 1.10 c-- ... BP data.
99     call cal_FullDate( bpstartdate1, bpstartdate2,
100 jmc 1.11 & bpstartdate, mythid )
101 heimbach 1.1 c-- ... T/P data.
102     call cal_FullDate( topexstartdate1, topexstartdate2,
103     & topexstartdate, mythid )
104     c-- ... ERS data.
105     call cal_FullDate( ersstartdate1, ersstartdate2,
106     & ersstartdate, mythid )
107 heimbach 1.4 c-- ... GFO data.
108     call cal_FullDate( gfostartdate1, gfostartdate2,
109     & gfostartdate, mythid )
110 heimbach 1.1 c-- ... SCAT data.
111     call cal_FullDate( scatstartdate1, scatstartdate2,
112     & scatxstartdate, mythid )
113 jmc 1.11 call cal_FullDate( scatstartdate1, scatstartdate2,
114 heimbach 1.1 & scatystartdate, mythid )
115     c-- ... ARGO data.
116     call cal_FullDate( argotstartdate1, argotstartdate2,
117     & argotstartdate, mythid )
118     call cal_FullDate( argosstartdate1, argotstartdate2,
119     & argosstartdate, mythid )
120    
121     _END_MASTER( mythid )
122    
123     #endif /* ALLOW_CAL */
124    
125     c-- Get the weights that are to be used for the individual cost
126     c-- function contributions.
127     call ecco_cost_weights( mythid )
128    
129     c-- Initialise adjoint of monthly mean files calculated
130     c-- in cost_averagesfields (and their ad...).
131     cph(
132     cph The following init. shoud not be applied if in the middle
133     cph of a divided adjoint run
134     cph)
135     #ifndef ALLOW_TANGENTLINEAR_RUN
136     cph!!! and I think it needs to be seen by TAF
137     cph!!! for repeated TLM runs
138     cph!!!
139     inquire( file='costfinal', exist=exst )
140     if ( .NOT. exst) then
141     call ecco_cost_init_barfiles( mythid )
142     endif
143     #endif
144    
145 heimbach 1.9 #ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION
146     _BEGIN_MASTER(myThid)
147     ilo = ifnblnk(costTranspDataFile)
148     ihi = ilnblnk(costTranspDataFile)
149     CALL OPEN_COPY_DATA_FILE(
150 jmc 1.11 I costTranspDataFile(ilo:ihi),
151 heimbach 1.9 I 'ECCO_COST_INIT_FIXED',
152     O gwunit,
153     I myThid )
154     do irec = 1, ndaysrec
155     c-- read daily transport time series
156     c-- 1st: transport in m/s
157     c-- 2nd: date in YYYYMMDD
158     c-- 3rd: uncertainty in m/s
159     read(gwunit,*) transpobs(irec), dummy, wtransp(irec)
160     c-- convert std.dev. to weight
161     if ( wtransp(irec) .NE. 0. )
162     & wtransp(irec) =1./(wtransp(irec)*wtransp(irec))
163     c-- set weight to zero for missing values
164     if ( transpobs(irec) .EQ. missingObsFlag )
165     & wtransp(irec) = 0.
166     enddo
167     _END_MASTER(myThid)
168     _BARRIER
169     #endif /* ALLOW_TRANSPORT_COST_CONTRIBUTION */
170    
171 heimbach 1.1 c-- Summarize the cost function's setup.
172     _BEGIN_MASTER( mythid )
173     call ecco_cost_summary( mythid )
174     _END_MASTER( mythid )
175    
176     _BARRIER
177    
178     end

  ViewVC Help
Powered by ViewVC 1.1.22