/[MITgcm]/MITgcm/pkg/autodiff/adcommon.h
ViewVC logotype

Annotation of /MITgcm/pkg/autodiff/adcommon.h

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


Revision 1.28 - (hide annotations) (download)
Wed Aug 17 15:01:18 2011 UTC (13 years, 1 month ago) by heimbach
Branch: MAIN
Changes since 1.27: +17 -1 lines
File MIME type: text/plain
Start adjoint monitor for ptracers

1 heimbach 1.28 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/adcommon.h,v 1.27 2011/06/16 22:49:15 heimbach Exp $
2 jmc 1.19 C $Name: $
3    
4 heimbach 1.5 C-- These common blocks are extracted from the
5     C-- automatically created tangent linear code.
6     C-- You need to make sure that they are up-to-date
7     C-- (i.e. in right order), and customize them
8     C-- accordingly.
9     C--
10     C-- heimbach@mit.edu 11-Jan-2001
11 heimbach 1.4
12     #ifdef ALLOW_AUTODIFF_MONITOR
13    
14 heimbach 1.10 #include "PACKAGES_CONFIG.h"
15    
16     #ifdef ALLOW_EXF
17     # include "EXF_OPTIONS.h"
18     #endif
19 heimbach 1.27 c#ifdef ALLOW_SEAICE
20     c# include "SEAICE_OPTIONS.h"
21     c#endif
22 heimbach 1.28 #ifdef ALLOW_PTRACERS
23     # include "PTRACERS_OPTIONS.h"
24     #endif
25 heimbach 1.10
26 heimbach 1.13
27     common /addynvars_r/
28 heimbach 1.14 & adetan,
29 heimbach 1.13 & aduvel, advvel, adwvel,
30 jmc 1.19 & adtheta, adsalt,
31     & adgu, adgv, adgt, adgs,
32 gforget 1.24 #ifdef ALLOW_ADAMSBASHFORTH_3
33     & adgunm, adgvnm, adgtnm, adgsnm
34     #else
35 heimbach 1.13 & adgunm1, adgvnm1, adgtnm1, adgsnm1
36 gforget 1.24 #endif
37 heimbach 1.1 _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
38     _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
39     _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
40     _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
41     _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
42     _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
43     _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
44     _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
45     _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
46     _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
47 gforget 1.24 #ifdef ALLOW_ADAMSBASHFORTH_3
48     _RL adgtnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
49     _RL adgsnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
50     _RL adgunm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
51     _RL adgvnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
52     #else
53     _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
54     _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
55     _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
56     _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
57     #endif
58 heimbach 1.1
59 heimbach 1.14 common /addynvars_r_2/
60     & adetah
61     _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
62    
63 heimbach 1.26 #ifdef ALLOW_AUTODIFF_MONITOR_DIAG
64     common /addynvars_diag/
65     & adtotphihyd, adrhoinsitu
66     _RL adrhoinsitu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
67     _RL adtotphihyd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
68     #endif
69    
70 heimbach 1.5 #ifdef ALLOW_CD_CODE
71 jmc 1.19 common /addynvars_cd/
72 heimbach 1.1 & aduveld, advveld,
73 jmc 1.19 & adetanm1,
74 heimbach 1.8 & adunm1, advnm1
75 heimbach 1.1 _RL aduveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
76     _RL advveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
77 heimbach 1.3 _RL adetanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
78 heimbach 1.1 _RL adunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
79     _RL advnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
80 heimbach 1.5 #endif
81 heimbach 1.3
82 heimbach 1.16 COMMON /adffields_fu/ adfu
83     COMMON /adffields_fv/ adfv
84     COMMON /adffields_Qnet/ adQnet
85     COMMON /adffields_Qsw/ adQsw
86     COMMON /adffields_dQdT/ addQdT
87     COMMON /adffields_EmPmR/ adEmPmR
88     COMMON /adffields_saltFlux/ adsaltFlux
89     COMMON /adffields_SST/ adSST
90     COMMON /adffields_SSS/ adSSS
91     COMMON /adffields_lambdaThetaClimRelax/ adlambdaThetaClimRelax
92     COMMON /adffields_lambdaSaltClimRelax/ adlambdaSaltClimRelax
93     #ifdef ATMOSPHERIC_LOADING
94     COMMON /adffields_pload/ adpload
95     COMMON /adffields_sIceLoad/ adsIceLoad
96     #endif
97    
98     _RS adfu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
99     _RS adfv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
100     _RS adQnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
101     _RS adQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
102     _RS addQdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
103     _RS adEmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
104     _RS adsaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
105     _RS adSST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
106     _RS adSSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
107     _RS adlambdaThetaClimRelax
108     & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
109     _RS adlambdaSaltClimRelax
110     & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
111     #ifdef ATMOSPHERIC_LOADING
112     _RS adpload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
113     _RS adsIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
114     #endif
115 heimbach 1.4
116 heimbach 1.6 #ifdef ALLOW_DIFFKR_CONTROL
117     COMMON /ADDYNVARS_DIFFKR/
118     & addiffKr
119     _RL addiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
120 jmc 1.19 #endif
121 heimbach 1.17 #ifdef ALLOW_KAPGM_CONTROL
122     COMMON /ADDYNVARS_KAPGM/
123     & adkapgm
124     _RL adkapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
125     #endif
126 gforget 1.20 #ifdef ALLOW_KAPREDI_CONTROL
127     COMMON /ADDYNVARS_KAPREDI/
128     & adkapredi
129     _RL adkapredi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
130     #endif
131 gforget 1.18 #ifdef ALLOW_BOTTOMDRAG_CONTROL
132     COMMON /ADDYNVARS_BOTTOMDRAG/
133     & adbottomdragfld
134     _RL adbottomdragfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
135 jmc 1.19 #endif
136 gforget 1.21 #ifdef ALLOW_EDDYPSI_CONTROL
137     double precision adeddypsix(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,
138 heimbach 1.7 $nsy)
139 gforget 1.21 double precision adeddypsiy(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,
140 heimbach 1.7 $nsy)
141 gforget 1.21 common /adeddypsiffields/ adeddypsix, adeddypsiy
142 heimbach 1.7
143     #endif
144 heimbach 1.6
145 heimbach 1.5 #ifdef ALLOW_EXF
146 heimbach 1.27
147 heimbach 1.5 _RL adhflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
148     _RL adsflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
149     common /adexf_hsflux_r/ adhflux, adsflux
150 heimbach 1.27 c
151 heimbach 1.5 _RL adustress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
152     _RL advstress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
153     common /adexf_stress_r/ adustress, advstress
154 heimbach 1.27 c
155     _RL adwspeed(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
156     common /adexf_wspeed_r/ adwspeed
157    
158 heimbach 1.10 # ifdef ALLOW_ATM_TEMP
159 heimbach 1.5 _RL adatemp (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
160     _RL adaqh (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
161     _RL adlwflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
162     _RL adprecip (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
163 heimbach 1.27 common /adexf_atm_temp_r/ adatemp, adaqh, adlwflux,
164     & adprecip
165     # ifdef SHORTWAVE_HEATING
166     _RL adswflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
167     common /adexf_swflux_r/ adswflux
168     # endif
169 heimbach 1.5 # endif
170     # ifdef ALLOW_ATM_WIND
171     _RL aduwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
172     _RL advwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
173     common /adexf_atm_wind_r/ aduwind, advwind
174     # endif
175 heimbach 1.10 # ifdef ALLOW_DOWNWARD_RADIATION
176     _RL adswdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
177     _RL adlwdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
178     common /adexf_rad_down_r/
179     & adswdown, adlwdown
180     # endif
181 heimbach 1.12 # ifdef ALLOW_CLIMSST_RELAXATION
182     _RL adclimsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
183     common /adexf_clim_sst_r/ adclimsst
184     # endif
185     # ifdef ALLOW_CLIMSSS_RELAXATION
186     _RL adclimsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
187     common /adexf_clim_sss_r/ adclimsss
188     # endif
189 heimbach 1.27
190     #endif /* ALLOW_EXF */
191 heimbach 1.5
192 heimbach 1.11 #ifdef ALLOW_SEAICE
193 mlosch 1.23 _RL adarea (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
194     _RL adheff (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
195     _RL adhsnow (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
196     _RL aduice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
197     _RL advice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
198     common /adseaice_dynvars_1/
199     & adarea, adheff, adhsnow, aduice, advice
200 heimbach 1.27 # ifdef SEAICE_VARIABLE_SALINITY
201     _RL adhsalt (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
202     common /seaice_salinity_r/
203     & adhsalt
204     # endif
205     #endif /* ALLOW_SEAICE */
206 heimbach 1.11
207 gforget 1.25 #ifdef ALLOW_GGL90
208     _RL adggl90tke (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
209     _RL adggl90diffkr (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
210     common /adggl90_fields/
211     & adggl90tke, adggl90diffkr
212     #endif
213    
214 heimbach 1.15 #ifdef ALLOW_DEPTH_CONTROL
215     _RL adr_low_control(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
216     _RL adhfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
217     _RL adhfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
218     _RL adhfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
219     _RL adrecip_hfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
220     _RL adrecip_hfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
221     _RL adrecip_hfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
222 jmc 1.19 common /adgrid_r/ adr_low_control,
223 heimbach 1.15 & adrecip_hfacc, adrecip_hfacw, adrecip_hfacs
224     common /adgrid_r_c/ adhfacc
225     common /adgrid_r_s/ adhfacs
226     common /adgrid_r_w/ adhfacw
227     #endif /* ALLOW_DEPTH_CONTROL */
228    
229 heimbach 1.28 #ifdef ALLOW_PTRACERS
230     _RL adgptr(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,
231     $ptracers_num)
232     _RL adgptrnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,
233     $ptracers_num)
234     _RL adptracer(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,
235     $ptracers_num)
236     _RL adsurfaceforcingptr(1-olx:snx+olx,1-oly:sny+oly,
237     $nsx,nsy,ptracers_num)
238     common /adptracers_fields/ adptracer, adgptr, adgptrnm1,
239     $adsurfaceforcingptr
240     #endif
241    
242 heimbach 1.4 #endif /* ALLOW_AUTODIFF_MONITOR */

  ViewVC Help
Powered by ViewVC 1.1.22