/[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.5 - (show annotations) (download)
Wed Apr 6 18:36:47 2005 UTC (19 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58l_post, checkpoint57t_post, checkpoint57o_post, checkpoint58e_post, checkpoint57v_post, checkpoint58u_post, checkpoint58w_post, checkpoint57m_post, checkpoint57s_post, checkpoint57k_post, checkpoint57g_post, checkpoint58r_post, checkpoint57i_post, checkpoint57y_post, checkpoint58n_post, checkpoint58x_post, checkpoint57g_pre, checkpoint58t_post, checkpoint58h_post, checkpoint57y_pre, checkpoint58q_post, checkpoint58j_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59i, checkpoint59h, checkpoint57r_post, checkpoint59, checkpoint58, checkpoint57h_done, checkpoint58f_post, checkpoint57x_post, checkpoint57n_post, checkpoint58d_post, checkpoint58c_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint57f_post, checkpoint58a_post, checkpoint58i_post, checkpoint57q_post, checkpoint58g_post, checkpoint58o_post, checkpoint57z_post, checkpoint58y_post, checkpoint58k_post, checkpoint58v_post, checkpoint58s_post, checkpoint58p_post, checkpoint57j_post, checkpoint58b_post, checkpoint57h_pre, checkpoint58m_post, checkpoint57l_post, checkpoint57h_post
Changes since 1.4: +1 -3 lines
use baseTime as time origin ; DIFF_BASE_MULTIPLE replaces DIFFERENT_MULTIPLE

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

  ViewVC Help
Powered by ViewVC 1.1.22