/[MITgcm]/MITgcm/verification/OpenAD/code_oad_all/openad_dumpAdjoint.F
ViewVC logotype

Annotation of /MITgcm/verification/OpenAD/code_oad_all/openad_dumpAdjoint.F

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


Revision 1.3 - (hide annotations) (download)
Thu Mar 21 18:06:18 2013 UTC (11 years, 2 months ago) by jahn
Branch: MAIN
CVS Tags: checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64g, checkpoint64f
Changes since 1.2: +2 -2 lines
update header name

1 jahn 1.3 C $Header: /u/gcmpack/MITgcm/verification/OpenAD/code_oad_all/openad_dumpAdjoint.F,v 1.2 2011/05/24 20:59:04 jmc Exp $
2 utke 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6     #ifdef ALLOW_OBCS
7     # include "OBCS_OPTIONS.h"
8     #endif
9     #ifdef ALLOW_SEAICE
10     # include "SEAICE_OPTIONS.h"
11     #endif
12     #ifdef ALLOW_GMREDI
13     # include "GMREDI_OPTIONS.h"
14     #endif
15    
16     C start with a copy of THE_MAIN_LOOP
17     C and remove some the obvious extras
18     SUBROUTINE openad_dumpAdjoint(myTime, myIter, myThid )
19     IMPLICIT NONE
20    
21     C == Global variables ==
22     #include "SIZE.h"
23     #include "EEPARAMS.h"
24     #include "PARAMS.h"
25    
26     c**************************************
27     #ifdef ALLOW_AUTODIFF_TAMC
28    
29     c These includes are needed for
30     c AD-checkpointing.
31     c They provide the fields to be stored.
32    
33     # include "GRID.h"
34     # include "DYNVARS.h"
35     # include "FFIELDS.h"
36     # include "EOS.h"
37     # include "GAD.h"
38     # ifdef ALLOW_CD_CODE
39     # include "CD_CODE_VARS.h"
40     # endif
41     # ifdef ALLOW_PTRACERS
42     # include "PTRACERS_SIZE.h"
43 jahn 1.3 # include "PTRACERS_FIELDS.h"
44 utke 1.1 # endif
45     # ifdef EXACT_CONSERV
46     # include "SURFACE.h"
47     # endif
48     # ifdef ALLOW_OBCS
49 jmc 1.2 # include "OBCS_PARAMS.h"
50     # include "OBCS_GRID.h"
51     # include "OBCS_FIELDS.h"
52     # include "OBCS_SEAICE.h"
53 utke 1.1 # endif
54     # ifdef ALLOW_EXF
55     # include "EXF_FIELDS.h"
56     # include "EXF_PARAM.h"
57     # ifdef ALLOW_BULKFORMULAE
58     # include "EXF_CONSTANTS.h"
59     # endif
60     # endif /* ALLOW_EXF */
61     # ifdef ALLOW_SEAICE
62     # include "SEAICE.h"
63     # endif
64     # ifdef ALLOW_EBM
65     # include "EBM.h"
66     # endif
67     # ifdef ALLOW_KPP
68     # include "KPP.h"
69     # include "KPP_DIAGS.h"
70     # include "KPP_PARAMS.h"
71     # endif
72     # ifdef ALLOW_DIVIDED_ADJOINT_MPI
73     # include "mpif.h"
74     # endif
75    
76     # include "tamc.h"
77     # include "ctrl.h"
78     # include "ctrl_dummy.h"
79     # include "cost.h"
80    
81     #endif /* ALLOW_AUTODIFF_TAMC */
82    
83     INTEGER myThid
84     INTEGER myIter
85     _RL myTime
86    
87     double precision foo5(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
88     double precision foo4(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
89    
90     CHARACTER*(10) suff
91 jmc 1.2
92 utke 1.1 if (Mod(myiter,360).eq.0) then
93     WRITE(suff,'(I10.10)') myIter
94     foo5=theta%d
95     call write_fld_xyz_rl('adjtheta.',suff,foo5,myiter,1)
96     foo5=salt%d
97     call write_fld_xyz_rl('adjsalt.',suff,foo5,myiter,1)
98     foo5=uvel%d
99     call write_fld_xyz_rl('adjuvel.',suff,foo5,myiter,1)
100     foo5=vvel%d
101     call write_fld_xyz_rl('adjvvel.',suff,foo5,myiter,1)
102     foo5=wvel%d
103     call write_fld_xyz_rl('adjwvel.',suff,foo5,myiter,1)
104     foo4=etan%d
105     call write_fld_xy_rl('adjetan.',suff,foo4,myiter,1)
106     # ifdef ALLOW_DIFFKR_CONTROL
107     foo5=diffkr%d
108     call write_fld_xy_rl('adjdiffkr.',suff,foo5,myiter,1)
109     # endif
110     # ifdef ALLOW_HFLUX0_CONTROL
111     foo4=qnet%d
112     call write_fld_xy_rl('adjqnet.',suff,foo4,myiter,1)
113     # endif
114     # ifdef ALLOW_SFLUX0_CONTROL
115     foo4=empmr%d
116     call write_fld_xy_rl('adjempmr.',suff,foo4,myiter,1)
117     # endif
118     # ifdef ALLOW_TAUU0_CONTROL
119     foo4=fu%d
120     call write_fld_xy_rl('adjfu.',suff,foo4,myiter,1)
121     # endif
122     # ifdef ALLOW_TAUV0_CONTROL
123     foo4=fv%d
124     call write_fld_xy_rl('adjfv.',suff,foo4,myiter,1)
125     # endif
126     endif
127     END
128    

  ViewVC Help
Powered by ViewVC 1.1.22