/[MITgcm]/MITgcm/pkg/dic/dic_cost.F
ViewVC logotype

Annotation of /MITgcm/pkg/dic/dic_cost.F

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


Revision 1.9 - (hide annotations) (download)
Mon Apr 7 20:31:16 2008 UTC (16 years, 2 months ago) by dfer
Branch: MAIN
Changes since 1.8: +1 -4 lines
Moving dic options to DIC_OPTIONS.h

1 dfer 1.9 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_cost.F,v 1.8 2008/04/04 21:37:06 dfer Exp $
2 jmc 1.4 C $Name: $
3    
4 edhill 1.3 #include "DIC_OPTIONS.h"
5 stephd 1.1
6     CStartOfInterFace
7     SUBROUTINE DIC_COST (
8     I myTime,myIter,myThid)
9    
10     C /==========================================================\
11     C | SUBROUTINE DIC_COST i |
12     C |==========================================================|
13     IMPLICIT NONE
14    
15     C == GLobal variables ==
16     #include "SIZE.h"
17     #include "DYNVARS.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GRID.h"
21 jmc 1.6 c#include "PTRACERS_SIZE.h"
22     c#include "PTRACERS_PARAMS.h"
23     c#include "PTRACERS_FIELDS.h"
24 stephd 1.1 #include "GCHEM.h"
25 dfer 1.8 #include "DIC_VARS.h"
26 stephd 1.1 #ifdef DIC_BIOTIC
27     #include "DIC_DIAGS.h"
28 stephd 1.2 #include "DIC_COST.h"
29 stephd 1.1 #endif
30 stephd 1.7 c#ifdef ALLOW_SEAICE
31     c#include "SEAICE.h"
32     c#endif
33 stephd 1.1
34     C == Routine arguments ==
35     INTEGER myIter
36     _RL myTime
37     INTEGER myThid
38    
39     #ifdef ALLOW_DIC_COST
40    
41     C == Local variables ==
42     INTEGER i, j, bi, bj, k, it
43     c
44 stephd 1.2 _RL po4cost, o2cost, sumvol
45 stephd 1.1 _RL po4costm, o2costm, sumvolm
46     c
47     c calculate costfunction
48    
49 stephd 1.2 _BEGIN_MASTER(myThid)
50 stephd 1.1
51     sumvol= 0. _d 0
52     po4cost= 0. _d 0
53     o2cost=0.d0
54     cswdmonth-add--
55 stephd 1.2 sumvolm=0.d0
56 stephd 1.1 po4costm=0.d0
57     o2costm=0.d0
58     cswdmonth -- end add --
59    
60     DO bj=myByLo(myThid),myByHi(myThid)
61     DO bi=myBxLo(myThid),myBxHi(myThid)
62     DO i=1,sNx
63     DO j=1,sNy
64     do k=1,nR
65     sumvol=sumvol+
66     & rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
67     po4cost=po4cost+
68     & (po4ann(i,j,k,bi,bj)-po4obs(i,j,k,bi,bj))**2
69     & /po4var(k)
70     & *rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
71     o2cost=o2cost+
72     & (o2ann(i,j,k,bi,bj)-o2obs(i,j,k,bi,bj))**2
73     & /o2var(k)
74     & *rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
75     enddo
76     cswdmonth-add--
77     do k=1,4
78     sumvolm=sumvolm+
79     & rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
80     enddo
81     do it=1,12
82     po4costm=po4costm+
83     & (po4lev1(i,j,it,bi,bj)-po4obsl1(i,j,it,bi,bj))**2
84     & /po4varm(it,1)
85     & *rA(i,j,bi,bj)*drF(1)*maskC(i,j,1,bi,bj) +
86     & (po4lev2(i,j,it,bi,bj)-po4obsl2(i,j,it,bi,bj))**2
87     & /po4varm(it,2)
88     & *rA(i,j,bi,bj)*drF(2)*maskC(i,j,2,bi,bj) +
89     & (po4lev3(i,j,it,bi,bj)-po4obsl3(i,j,it,bi,bj))**2
90     & /po4varm(it,3)
91 jmc 1.6 & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
92 stephd 1.1 cQQ & (po4lev4(i,j,it,bi,bj)-po4obsl4(i,j,it,bi,bj))**2
93     cQQ & /po4varm(it,4)
94 jmc 1.6 cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
95 stephd 1.1 o2costm=o2costm+
96     & (o2lev1(i,j,it,bi,bj)-o2obsl1(i,j,it,bi,bj))**2
97     & /o2varm(it,1)
98     & *rA(i,j,bi,bj)*drF(1)*maskC(i,j,1,bi,bj) +
99     & (o2lev2(i,j,it,bi,bj)-o2obsl2(i,j,it,bi,bj))**2
100     & /o2varm(it,2)
101     & *rA(i,j,bi,bj)*drF(2)*maskC(i,j,2,bi,bj) +
102     & (o2lev3(i,j,it,bi,bj)-o2obsl3(i,j,it,bi,bj))**2
103     & /o2varm(it,3)
104 jmc 1.6 & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
105 stephd 1.1 cQQ & (O2lev4(i,j,it,bi,bj)-o2obsl4(i,j,it,bi,bj))**2
106     cQQ & /o2varm(it,4)
107     cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
108    
109     enddo
110     cswdmonth -end-
111     ENDDO
112     ENDDO
113     ENDDO
114     ENDDO
115     po4cost=po4cost/sumvol
116     o2cost=o2cost/sumvol
117     cswdmonth-add
118     po4costm=po4costm/sumvolm/12.d0
119     o2costm=o2costm/sumvolm/12.d0
120     cswdmonth-end
121     totcost=po4cost+o2cost+po4costm+o2costm
122    
123     print*,'COST ',totcost, po4cost, o2cost,po4costm,o2costm
124    
125 stephd 1.2 _END_MASTER(myThid)
126 stephd 1.1 c
127     #endif
128     RETURN
129     END
130     cswd -- end added subroutine --

  ViewVC Help
Powered by ViewVC 1.1.22