/[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.1 - (hide annotations) (download)
Wed Jun 25 21:00:36 2003 UTC (21 years ago) by stephd
Branch: MAIN
CVS Tags: checkpoint51e_post, checkpoint51a_post, checkpoint51c_post, checkpoint51f_pre, checkpoint51f_post, checkpoint51b_post, checkpoint51b_pre, branchpoint-genmake2, checkpoint51g_post, checkpoint51d_post
Branch point for: branch-genmake2
initial checking in biogeochemistry packages

1 stephd 1.1 cswdcost -- add sunroutine ---
2     #include "CPP_OPTIONS.h"
3     #include "GCHEM_OPTIONS.h"
4    
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     #include "PTRACERS.h"
22     #include "GCHEM.h"
23     #include "DIC_ABIOTIC.h"
24     #ifdef DIC_BIOTIC
25     #include "DIC_BIOTIC.h"
26     #include "DIC_DIAGS.h"
27     #endif
28     #ifdef ALLOW_SEAICE
29     #include "ICE.h"
30     #endif
31    
32     C == Routine arguments ==
33     INTEGER myIter
34     _RL myTime
35     INTEGER myThid
36    
37     #ifdef ALLOW_DIC_COST
38    
39     C == Local variables ==
40     LOGICAL DIFFERENT_MULTIPLE
41     EXTERNAL DIFFERENT_MULTIPLE
42     INTEGER i, j, bi, bj, k, it
43     c
44     _RL po4cost, o2cost, sumvol, totcost
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     po4costm=0.d0
56     o2costm=0.d0
57     cswdmonth -- end add --
58    
59     DO bj=myByLo(myThid),myByHi(myThid)
60     DO bi=myBxLo(myThid),myBxHi(myThid)
61     DO i=1,sNx
62     DO j=1,sNy
63     do k=1,nR
64     sumvol=sumvol+
65     & rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
66     po4cost=po4cost+
67     & (po4ann(i,j,k,bi,bj)-po4obs(i,j,k,bi,bj))**2
68     & /po4var(k)
69     & *rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
70     o2cost=o2cost+
71     & (o2ann(i,j,k,bi,bj)-o2obs(i,j,k,bi,bj))**2
72     & /o2var(k)
73     & *rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
74     enddo
75     cswdmonth-add--
76     do k=1,4
77     sumvolm=sumvolm+
78     & rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
79     enddo
80     do it=1,12
81     po4costm=po4costm+
82     & (po4lev1(i,j,it,bi,bj)-po4obsl1(i,j,it,bi,bj))**2
83     & /po4varm(it,1)
84     & *rA(i,j,bi,bj)*drF(1)*maskC(i,j,1,bi,bj) +
85     & (po4lev2(i,j,it,bi,bj)-po4obsl2(i,j,it,bi,bj))**2
86     & /po4varm(it,2)
87     & *rA(i,j,bi,bj)*drF(2)*maskC(i,j,2,bi,bj) +
88     & (po4lev3(i,j,it,bi,bj)-po4obsl3(i,j,it,bi,bj))**2
89     & /po4varm(it,3)
90     & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
91     cQQ & (po4lev4(i,j,it,bi,bj)-po4obsl4(i,j,it,bi,bj))**2
92     cQQ & /po4varm(it,4)
93     cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
94     o2costm=o2costm+
95     & (o2lev1(i,j,it,bi,bj)-o2obsl1(i,j,it,bi,bj))**2
96     & /o2varm(it,1)
97     & *rA(i,j,bi,bj)*drF(1)*maskC(i,j,1,bi,bj) +
98     & (o2lev2(i,j,it,bi,bj)-o2obsl2(i,j,it,bi,bj))**2
99     & /o2varm(it,2)
100     & *rA(i,j,bi,bj)*drF(2)*maskC(i,j,2,bi,bj) +
101     & (o2lev3(i,j,it,bi,bj)-o2obsl3(i,j,it,bi,bj))**2
102     & /o2varm(it,3)
103     & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
104     cQQ & (O2lev4(i,j,it,bi,bj)-o2obsl4(i,j,it,bi,bj))**2
105     cQQ & /o2varm(it,4)
106     cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
107    
108     enddo
109     cswdmonth -end-
110     ENDDO
111     ENDDO
112     ENDDO
113     ENDDO
114     po4cost=po4cost/sumvol
115     o2cost=o2cost/sumvol
116     cswdmonth-add
117     po4costm=po4costm/sumvolm/12.d0
118     o2costm=o2costm/sumvolm/12.d0
119     cswdmonth-end
120     totcost=po4cost+o2cost+po4costm+o2costm
121    
122     print*,'COST ',totcost, po4cost, o2cost,po4costm,o2costm
123    
124     _END_MASTER(myThid)
125     c
126     #endif
127     RETURN
128     END
129     cswd -- end added subroutine --

  ViewVC Help
Powered by ViewVC 1.1.22