/[MITgcm]/MITgcm/pkg/cost/cost_final.F
ViewVC logotype

Annotation of /MITgcm/pkg/cost/cost_final.F

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


Revision 1.16 - (hide annotations) (download)
Mon Oct 8 23:59:21 2007 UTC (16 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59m, checkpoint59l, checkpoint59i, checkpoint59k, checkpoint59j
Changes since 1.15: +6 -5 lines
add missing cvs $Header:$ or $Name:$

1 jmc 1.16 C $Header: $
2     C $Name: $
3 heimbach 1.1
4 heimbach 1.7 #include "PACKAGES_CONFIG.h"
5 heimbach 1.1 #include "COST_CPPOPTIONS.h"
6    
7 heimbach 1.3 subroutine cost_final( mythid )
8 heimbach 1.1
9     c ==================================================================
10 heimbach 1.3 c SUBROUTINE cost_final
11 heimbach 1.1 c ==================================================================
12     c
13     c o Sum of all cost function contributions.
14     c
15     c started: Christian Eckert eckert@mit.edu 30-Jun-1999
16     c changed: Christian Eckert eckert@mit.edu 25-Feb-2000
17 heimbach 1.7 c heimbach@mit.edu 05-Nov-2003 Modularize cost package
18 heimbach 1.1 c
19     c ==================================================================
20 heimbach 1.3 c SUBROUTINE cost_final
21 heimbach 1.1 c ==================================================================
22    
23     implicit none
24    
25     c == global variables ==
26    
27     #include "EEPARAMS.h"
28     #include "SIZE.h"
29 heimbach 1.5 #include "PARAMS.h"
30 heimbach 1.1
31     #include "cost.h"
32 heimbach 1.14 #ifdef ALLOW_CTRL
33     # include "ctrl.h"
34     #endif
35 heimbach 1.1
36     c == routine arguments ==
37    
38     integer mythid
39    
40 heimbach 1.2 #ifdef ALLOW_COST
41 heimbach 1.1 c == local variables ==
42    
43 heimbach 1.3 integer i,j,k
44 heimbach 1.1 integer bi,bj
45     integer itlo,ithi
46     integer jtlo,jthi
47    
48     c == end of interface ==
49    
50     jtlo = mybylo(mythid)
51     jthi = mybyhi(mythid)
52     itlo = mybxlo(mythid)
53     ithi = mybxhi(mythid)
54    
55 heimbach 1.13 #ifdef ALLOW_SEAICE
56     CALL SEAICE_COST_FINAL (myThid)
57     #endif
58    
59 heimbach 1.7 #if (defined (ALLOW_ECCO))
60     CALL ECCO_COST_FINAL (myThid)
61 heimbach 1.3
62 heimbach 1.7 #elif (defined (ALLOW_COST_VECTOR))
63 heimbach 1.3 CALL COST_VECTOR (myThid)
64    
65 heimbach 1.6 #elif (defined (ALLOW_COST_STATE_FINAL))
66     CALL COST_STATE_FINAL (myThid)
67 heimbach 1.3
68 heimbach 1.8 #endif /* above stuff undef */
69    
70     #ifndef ALLOW_ECCO
71 heimbach 1.3
72 heimbach 1.7 # ifdef ALLOW_COST_TEST
73 heimbach 1.2 CALL COST_TEST (myThid)
74 heimbach 1.7 # endif
75     # ifdef ALLOW_COST_ATLANTIC_HEAT
76 heimbach 1.3 CALL COST_ATLANTIC_HEAT (myThid)
77 heimbach 1.7 # endif
78 heimbach 1.3
79 heimbach 1.1 c-- Sum up all contributions.
80     do bj = jtlo,jthi
81     do bi = itlo,ithi
82    
83 jmc 1.16 write(standardmessageunit,'(A,D22.15)')
84 heimbach 1.11 & ' --> objf_test(bi,bj) = ', objf_test(bi,bj)
85 jmc 1.16 write(standardmessageunit,'(A,D22.15)')
86 heimbach 1.11 & ' --> objf_tracer(bi,bj) = ', objf_tracer(bi,bj)
87 jmc 1.16 write(standardmessageunit,'(A,D22.15)')
88 heimbach 1.11 & ' --> objf_atl(bi,bj) = ', objf_atl(bi,bj)
89 heimbach 1.15 #ifdef ALLOW_COST_TRANSPORT
90 jmc 1.16 write(standardmessageunit,'(A,D22.15)')
91 heimbach 1.15 & ' --> objf_transport(bi,bj) = ', objf_transport(bi,bj)
92     #endif
93 heimbach 1.1
94     fc = fc
95 heimbach 1.2 & + mult_test * objf_test(bi,bj)
96     & + mult_tracer * objf_tracer(bi,bj)
97 heimbach 1.3 & + mult_atl * objf_atl(bi,bj)
98 heimbach 1.15 #ifdef ALLOW_COST_TRANSPORT
99     & + mult_transport * objf_transport(bi,bj)
100     #endif
101 heimbach 1.1 enddo
102     enddo
103    
104 heimbach 1.12 write(standardmessageunit,'(A,D22.15)') ' local fc = ', fc
105 heimbach 1.1
106     c-- Do global summation.
107     _GLOBAL_SUM_R8( fc , myThid )
108 heimbach 1.3
109 heimbach 1.12 write(standardmessageunit,'(A,D22.15)') ' global fc = ', fc
110 heimbach 1.6
111 heimbach 1.7 #endif /* ALLOW_ECCO */
112 heimbach 1.5
113     c-- set averaging freq. to zero to avoid re-write of
114     c-- averaged fields in reverse checkpointing loops
115 heimbach 1.10 taveFreq = 0.
116     dumpFreq = 0.
117     pChkptFreq = 0.
118     monitorFreq = 0.
119 heimbach 1.1
120 heimbach 1.2 #endif /* ALLOW_COST */
121 heimbach 1.1
122     return
123     end
124    

  ViewVC Help
Powered by ViewVC 1.1.22