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

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

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

revision 1.2 by heimbach, Tue Nov 20 23:27:29 2001 UTC revision 1.33 by jmc, Mon Apr 22 02:39:46 2013 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4  CBOP  C--   These common blocks are extracted from the
5  C     !ROUTINE: adcommon.h  C--   automatically created tangent linear code.
6  C     !INTERFACE:  C--   You need to make sure that they are up-to-date
7  C     include "adcommon.h "  C--   (i.e. in right order), and customize them accordingly.
8  C     !DESCRIPTION: \bv  C--
9  C     *==========================================================*  C--   heimbach@mit.edu 11-Jan-2001
10  C     | CPP_EEMACROS.h                                              
11  C     *==========================================================*  #ifdef ALLOW_AUTODIFF_MONITOR
12  C--   | common blocks of adjoint variables extracted from  
13  C     | TAMC-/TAF- generated code for use in adjoint support;        common /addynvars_r/
14  C     | Make sure that adjoint common blocks below are up-to-date       &                     adetan,
15  C     | w.r.t. current adjoint code.       &                     aduvel, advvel, adwvel,
16  C     *==========================================================*       &                     adtheta, adsalt,
17  C     | CPP_EEMACROS.h                                                   &                     adgu, adgv, adgt, adgs,
18  C     *==========================================================*  #ifdef ALLOW_ADAMSBASHFORTH_3
19  C     \ev       &                     adgunm, adgvnm, adgtnm, adgsnm
20  CEOP  #else
   
 WARNING:  
 THESE LINES ARE MEANT TO PROVOKE A COMPILER CRASH.  
 THIS IS ONLY A TEMPLATE FILE.  
 YOU NEED TO CUSTOMIZE THIS TO YOUR RESPECTIVE SETUP,  
 E.G. BY PLACING A COPY IN YOUR VERIFICATION DIRECTORY.  
 IT IS IMPORTANT THAT YOU MAKE SURE THAT THE COMMON BLOCKS  
 BELOW CORRESPOND TO THE COMMON BLOCKS IN THE AUTOMATICALLY  
 CREATED ADJOINT CODE.  
   
       common /addynvars_r/  
      &                     adetan, adetanm1,  
      &                     aduvel, advvel, adwvel,  
      &                     adtheta, adsalt,  
      &                     adgu, adgv, adgt, adgs,  
21       &                     adgunm1, adgvnm1, adgtnm1, adgsnm1       &                     adgunm1, adgvnm1, adgtnm1, adgsnm1
22    #endif
23        _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
       _RL adetanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)  
24        _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
       _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
25        _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
       _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
26        _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
       _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
27        _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
       _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
28        _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
29        _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
30        _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
31        _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
32        _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
33    #ifdef ALLOW_ADAMSBASHFORTH_3
34          _RL adgtnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
35          _RL adgsnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
36          _RL adgunm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
37          _RL adgvnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2)
38    #else
39          _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
40          _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
41          _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
42          _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
43    #endif
44    
45        common /addynvars_cd/        common /addynvars_r_2/
46         &                     adetah
47          _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
48    
49    #ifdef ALLOW_AUTODIFF_MONITOR_DIAG
50          common /addynvars_diag/
51         &                     adtotphihyd, adrhoinsitu
52          _RL adrhoinsitu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
53          _RL adtotphihyd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
54    #endif
55    
56    #ifdef ALLOW_CD_CODE
57          common /addynvars_cd/
58       &                      aduveld, advveld,       &                      aduveld, advveld,
59       &                      adunm1, advnm1,       &                       adetanm1,
60       &                      adgucd, adgvcd       &                      adunm1, advnm1
61        _RL aduveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL aduveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
62        _RL advveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL advveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
63          _RL adetanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
64        _RL adunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL adunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
65        _RL advnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL advnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
66        _RL adgucd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  #endif
       _RL adgvcd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
67    
68        common /adffields/        COMMON /adffields_fu/ adfu
69       &                   adfu, adfv, adqnet, adempmr, adsst, adsss        COMMON /adffields_fv/ adfv
70        _RL adfu(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        COMMON /adffields_Qnet/ adQnet
71        _RL adfv(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        COMMON /adffields_Qsw/ adQsw
72        _RL adqnet(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        COMMON /adffields_EmPmR/ adEmPmR
73        _RL adempmr(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        COMMON /adffields_saltFlux/ adsaltFlux
74        _RL adsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        COMMON /adffields_SST/ adSST
75        _RL adsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        COMMON /adffields_SSS/ adSSS
76          COMMON /adffields_lambdaThetaClimRelax/ adlambdaThetaClimRelax
77  #ifdef ALLOW_TR10_CONTROL        COMMON /adffields_lambdaSaltClimRelax/ adlambdaSaltClimRelax
78        common /adtr1_r/  #ifdef ATMOSPHERIC_LOADING
79       &                 adtr1, adgtr1, adgtr1nm1        COMMON /adffields_pload/ adpload
80        _RL adgtr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        COMMON /adffields_sIceLoad/ adsIceLoad
       _RL adgtr1nm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
       _RL adtr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)  
81  #endif  #endif
82    
83  #ifdef ALLOW_DIFFKR_CONTROL        _RS  adfu       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
84        common /addynvars_diffkr/        _RS  adfv       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
85       &                          addiffkr        _RS  adQnet     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
86        _RL addiffkr(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RS  adQsw      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
87          _RS  adEmPmR    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
88          _RS  adsaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
89          _RS  adSST      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
90          _RS  adSSS      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
91          _RS  adlambdaThetaClimRelax
92         &    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
93          _RS  adlambdaSaltClimRelax
94         &    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
95    #ifdef ATMOSPHERIC_LOADING
96          _RS  adpload    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
97          _RS  adsIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
98  #endif  #endif
99    
100    #ifdef ALLOW_DIFFKR_CONTROL
101          COMMON /ADDYNVARS_DIFFKR/
102         &                       addiffKr
103          _RL  addiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
104    #endif
105  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
106        common /addynvars_kapgm/        COMMON /ADDYNVARS_KAPGM/
107       &                          adkapgm       &                       adkapgm
108        _RL adkapgm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)        _RL  adkapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
109    #endif
110    #ifdef ALLOW_KAPREDI_CONTROL
111          COMMON /ADDYNVARS_KAPREDI/
112         &                       adkapredi
113          _RL  adkapredi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
114    #endif
115    #ifdef ALLOW_BOTTOMDRAG_CONTROL
116          COMMON /ADDYNVARS_BOTTOMDRAG/
117         &                adbottomdragfld
118          _RL  adbottomdragfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
119    #endif
120    #ifdef ALLOW_EDDYPSI_CONTROL
121          _RS adEddyPsiX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
122          _RS adEddyPsiY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
123          common /adeddypsiffields/ adeddypsix, adeddypsiy
124  #endif  #endif
125    
126    #ifdef ALLOW_EXF
127    
128          _RL adhflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
129          _RL adsflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
130          common /adexf_hsflux_r/ adhflux, adsflux
131    
132          _RL adustress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
133          _RL advstress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
134          common /adexf_stress_r/ adustress, advstress
135    
136          _RL adwspeed(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
137          common /adexf_wspeed_r/ adwspeed
138    
139    # ifdef ALLOW_ATM_TEMP
140          _RL adatemp     (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
141          _RL adaqh       (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
142          _RL adlwflux    (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
143          _RL adprecip    (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
144          common /adexf_atm_temp_r/ adatemp, adaqh, adlwflux,
145         & adprecip
146    #  ifdef SHORTWAVE_HEATING
147          _RL adswflux    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
148          common /adexf_swflux_r/ adswflux
149    #  endif
150    # endif
151    
152          _RL aduwind     (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
153          _RL advwind     (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
154          common /adexf_atm_wind_r/ aduwind, advwind
155    
156    # ifdef ALLOW_DOWNWARD_RADIATION
157          _RL adswdown    (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
158          _RL adlwdown    (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
159          common /adexf_rad_down_r/
160         &     adswdown, adlwdown
161    # endif
162    # ifdef ALLOW_CLIMSST_RELAXATION
163          _RL adclimsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
164          common /adexf_clim_sst_r/ adclimsst
165    # endif
166    # ifdef ALLOW_CLIMSSS_RELAXATION
167          _RL adclimsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
168          common /adexf_clim_sss_r/ adclimsss
169    # endif
170    
171    #endif /* ALLOW_EXF */
172    
173    #ifdef ALLOW_SEAICE
174          _RL adarea  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
175          _RL adheff  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
176          _RL adhsnow (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
177          _RL aduice  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
178          _RL advice  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
179          common /adseaice_dynvars_1/
180         &     adarea, adheff, adhsnow, aduice, advice
181    # ifdef SEAICE_VARIABLE_SALINITY
182          _RL adhsalt (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
183          common /seaice_salinity_r/
184         &     adhsalt
185    # endif
186    #endif /* ALLOW_SEAICE */
187    
188    #ifdef ALLOW_GGL90
189          _RL adggl90tke     (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
190          _RL adggl90diffkr  (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
191          common /adggl90_fields/
192         &     adggl90tke, adggl90diffkr
193    #endif
194    
195    #ifdef ALLOW_DEPTH_CONTROL
196          _RL adr_low_control(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
197          _RL adhfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
198          _RL adhfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
199          _RL adhfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
200          _RL adrecip_hfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
201          _RL adrecip_hfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
202          _RL adrecip_hfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy)
203          common /adgrid_r/ adr_low_control,
204         &                  adrecip_hfacc, adrecip_hfacw, adrecip_hfacs
205          common /adgrid_r_c/ adhfacc
206          common /adgrid_r_s/ adhfacs
207          common /adgrid_r_w/ adhfacw
208    #endif /* ALLOW_DEPTH_CONTROL */
209    
210    #endif /* ALLOW_AUTODIFF_MONITOR */

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.33

  ViewVC Help
Powered by ViewVC 1.1.22