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

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

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


Revision 1.9 - (show 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 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_cost.F,v 1.8 2008/04/04 21:37:06 dfer Exp $
2 C $Name: $
3
4 #include "DIC_OPTIONS.h"
5
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 c#include "PTRACERS_SIZE.h"
22 c#include "PTRACERS_PARAMS.h"
23 c#include "PTRACERS_FIELDS.h"
24 #include "GCHEM.h"
25 #include "DIC_VARS.h"
26 #ifdef DIC_BIOTIC
27 #include "DIC_DIAGS.h"
28 #include "DIC_COST.h"
29 #endif
30 c#ifdef ALLOW_SEAICE
31 c#include "SEAICE.h"
32 c#endif
33
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 _RL po4cost, o2cost, sumvol
45 _RL po4costm, o2costm, sumvolm
46 c
47 c calculate costfunction
48
49 _BEGIN_MASTER(myThid)
50
51 sumvol= 0. _d 0
52 po4cost= 0. _d 0
53 o2cost=0.d0
54 cswdmonth-add--
55 sumvolm=0.d0
56 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 & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
92 cQQ & (po4lev4(i,j,it,bi,bj)-po4obsl4(i,j,it,bi,bj))**2
93 cQQ & /po4varm(it,4)
94 cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
95 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 & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
105 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 _END_MASTER(myThid)
126 c
127 #endif
128 RETURN
129 END
130 cswd -- end added subroutine --

  ViewVC Help
Powered by ViewVC 1.1.22