/[MITgcm]/MITgcm/pkg/gchem/gchem_forcing_sep.F
ViewVC logotype

Contents of /MITgcm/pkg/gchem/gchem_forcing_sep.F

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


Revision 1.19 - (show annotations) (download)
Mon Nov 5 22:27:00 2007 UTC (16 years, 6 months ago) by stephd
Branch: MAIN
Changes since 1.18: +5 -2 lines
o dic_atmos call was in wrong place

1 C $Header: /u/gcmpack/MITgcm/pkg/gchem/gchem_forcing_sep.F,v 1.18 2007/11/05 21:02:03 stephd Exp $
2 C $Name: $
3
4 #include "GCHEM_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: GCHEM_FORCING_SEP
8 C !INTERFACE: ==========================================================
9 SUBROUTINE GCHEM_FORCING_SEP(myTime,myIter, myThid )
10
11 C !DESCRIPTION:
12 C calls subroutine that will update passive tracers values
13 C with a separate timestep. Since GCHEM_FORCING_SEP is now
14 C called before DO_FIELDS_BLOCKING_EXCHANGES, the passive
15 C tracer values in the halo regions are not up to date and
16 C must not be used.
17
18 C !USES: ===============================================================
19 IMPLICIT NONE
20 #include "SIZE.h"
21 #include "GRID.h"
22 #include "DYNVARS.h"
23 #include "EEPARAMS.h"
24 #include "PARAMS.h"
25 #include "PTRACERS_SIZE.h"
26 c#include "PTRACERS_PARAMS.h"
27 #include "PTRACERS_FIELDS.h"
28 #ifdef ALLOW_DIC
29 #include "DIC_BIOTIC.h"
30 #include "DIC_ABIOTIC.h"
31 #endif /* ALLOW_DIC */
32
33 C !INPUT PARAMETERS: ===================================================
34 C myThid :: thread number
35 INTEGER myThid, myIter
36 _RL myTime
37
38 c!LOCAL VARIABLES: ====================================================
39 C i,j :: loop indices
40 C bi,bj :: tile indices
41 C k :: vertical level
42 INTEGER bi,bj,imin,imax,jmin,jmax
43 INTEGER i,j
44 INTEGER niter
45 CEOP
46
47 #ifdef ALLOW_GCHEM
48 #ifdef GCHEM_SEPARATE_FORCING
49
50 ccccccccccccccccccccccccc
51 c global calculations c
52 ccccccccccccccccccccccccc
53 #ifdef ALLOW_DIC
54 #ifdef ALLOW_OLD_VIRTUALFLUX
55 c find global surface averages
56 gsm_s = 0.
57 gsm_dic = 0.
58 gsm_alk = 0.
59 call tracer_meanarea(myThid,salt, 1,gsm_s)
60 call tracer_meanarea(myThid,
61 & ptracer(1-Olx,1-Oly,1,1,1,1), 1, gsm_dic)
62 print*,'mean surface dic', gsm_dic,gsm_s
63 call tracer_meanarea(myThid,
64 & ptracer(1-Olx,1-Oly,1,1,1,2), 1, gsm_alk)
65 #endif /* ALLOW_OLD_VIRTUALFLUX */
66 #endif
67 ccccccccccccccccccccccccccccccccccccccccccc
68
69
70 ccccccccccccccccccccccccc
71 c chemical forcing c
72 ccccccccccccccccccccccccc
73 C$taf loop = parallel
74 DO bj=myByLo(myThid),myByHi(myThid)
75 C$taf loop = parallel
76 DO bi=myBxLo(myThid),myBxHi(myThid)
77
78 jMin=1
79 jMax=sNy
80 iMin=1
81 iMax=sNx
82 c
83 ccccccccccccccccccccccccccc DIC cccccccccccccccccccccccccccccccc
84 c
85 #ifdef ALLOW_DIC
86 #ifdef ALLOW_FE
87 call DIC_BIOTIC_Forcing( Ptracer(1-Olx,1-Oly,1,bi,bj,1),
88 & Ptracer(1-Olx,1-Oly,1,bi,bj,2),
89 & Ptracer(1-Olx,1-Oly,1,bi,bj,3),
90 & Ptracer(1-Olx,1-Oly,1,bi,bj,4),
91 & Ptracer(1-Olx,1-Oly,1,bi,bj,5),
92 & Ptracer(1-Olx,1-Oly,1,bi,bj,6),
93 & bi,bj,imin,imax,jmin,jmax,
94 & myIter,myTime,myThid)
95 #else
96 #ifdef ALLOW_O2
97 call DIC_BIOTIC_Forcing( Ptracer(1-Olx,1-Oly,1,bi,bj,1),
98 & Ptracer(1-Olx,1-Oly,1,bi,bj,2),
99 & Ptracer(1-Olx,1-Oly,1,bi,bj,3),
100 & Ptracer(1-Olx,1-Oly,1,bi,bj,4),
101 & Ptracer(1-Olx,1-Oly,1,bi,bj,5),
102 & bi,bj,imin,imax,jmin,jmax,
103 & myIter,myTime,myThid)
104 #else
105 call DIC_BIOTIC_Forcing( Ptracer(1-Olx,1-Oly,1,bi,bj,1),
106 & Ptracer(1-Olx,1-Oly,1,bi,bj,2),
107 & Ptracer(1-Olx,1-Oly,1,bi,bj,3),
108 & Ptracer(1-Olx,1-Oly,1,bi,bj,4),
109 & bi,bj,imin,imax,jmin,jmax,
110 & myIter,myTime,myThid)
111 #endif
112 #endif
113
114 #endif
115 cccccccccccccccccccccccccc END DIC cccccccccccccccccccccccccccccccccc
116
117 c
118 ENDDO
119 ENDDO
120
121 #ifdef ALLOW_DIC
122 call DIC_ATMOS(myIter,myTime,myThid,1)
123 #endif
124
125 #endif /* GCHEM_SEPARATE_FORCING */
126 #endif /* ALLOW_GCHEM */
127
128 RETURN
129 END

  ViewVC Help
Powered by ViewVC 1.1.22