/[MITgcm]/MITgcm/pkg/ctrl/ctrl_init_ctrlvar.F
ViewVC logotype

Annotation of /MITgcm/pkg/ctrl/ctrl_init_ctrlvar.F

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


Revision 1.9 - (hide annotations) (download)
Fri Dec 2 18:43:03 2011 UTC (12 years, 6 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63g
Changes since 1.8: +2 -2 lines
Minor tweaks to adjoint.

1 heimbach 1.9 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_init_ctrlvar.F,v 1.8 2010/05/09 16:24:45 jmc Exp $
2 heimbach 1.1 C $Name: $
3    
4     #include "CTRL_CPPOPTIONS.h"
5    
6     subroutine ctrl_init_ctrlvar(
7     & xx_fname
8     & , ivarindex
9     & , ncvarindex_loc
10     & , ncvarrecs_loc
11     & , ncvarrecstart_loc
12     & , ncvarrecsend_loc
13     & , ncvarxmax_loc
14     & , ncvarymax_loc
15     & , ncvarnrmax_loc
16     & , ncvargrd_loc
17     & , whichxyz
18     & , mythid
19     & )
20    
21     c ==================================================================
22     c SUBROUTINE ctrl_init_ctrlvar
23     c ==================================================================
24     c
25     c started: heimbach@mit.edu 28-Oct-2003
26     c
27     c ==================================================================
28     c SUBROUTINE ctrl_init_ctrlvar
29     c ==================================================================
30    
31     implicit none
32    
33     c == global variables ==
34    
35     #include "EEPARAMS.h"
36     #include "SIZE.h"
37     #include "PARAMS.h"
38     #include "GRID.h"
39     #include "ctrl.h"
40 heimbach 1.4 #include "optim.h"
41 heimbach 1.1
42     c == routine arguments ==
43     character*(MAX_LEN_FNAM) xx_fname
44     integer ivarindex
45     integer ncvarindex_loc
46     integer ncvarrecs_loc
47     integer ncvarrecstart_loc
48     integer ncvarrecsend_loc
49     integer ncvarxmax_loc
50     integer ncvarymax_loc
51     integer ncvarnrmax_loc
52     character ncvargrd_loc*1
53     character whichxyz*2
54     integer mythid
55    
56     c == local variables ==
57 heimbach 1.9 character*( 80) fname(3)
58 heimbach 1.2 logical exst
59 heimbach 1.1
60 jmc 1.8 c _BEGIN_MASTER( mythid )
61 heimbach 1.1 ncvarindex(ivarindex) = ncvarindex_loc
62     ncvarrecs (ivarindex) = ncvarrecs_loc
63     ncvarrecstart(ivarindex) = ncvarrecstart_loc
64     ncvarrecsend(ivarindex) = ncvarrecsend_loc
65     ncvarxmax (ivarindex) = ncvarxmax_loc
66     ncvarymax (ivarindex) = ncvarymax_loc
67     ncvarnrmax(ivarindex) = ncvarnrmax_loc
68     ncvargrd (ivarindex) = ncvargrd_loc
69 jmc 1.8 c _END_MASTER( mythid )
70 heimbach 1.1
71 heimbach 1.7 cph add following flag to make pack/unpack only less error-prone
72     #ifndef CTRL_DO_PACK_UNPACK_ONLY
73    
74 heimbach 1.1 call ctrl_set_fname( xx_fname, fname, mythid )
75    
76 jmc 1.8 c _BEGIN_MASTER( mythid )
77 heimbach 1.2 inquire( file='costfinal', exist=exst )
78 jmc 1.8 c _END_MASTER( mythid )
79    
80 heimbach 1.2 IF ( .NOT. exst) THEN
81    
82     if ( whichxyz .EQ. '3d') then
83 heimbach 1.4 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
84     & call ctrl_set_globfld_xyz( fname(2), ivarindex, mythid)
85 heimbach 1.6 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
86 heimbach 1.2 & call ctrl_set_globfld_xyz( fname(1), ivarindex, mythid)
87     else if ( whichxyz .EQ. 'xy') then
88 heimbach 1.4 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
89     & call ctrl_set_globfld_xy( fname(2), ivarindex, mythid)
90 heimbach 1.6 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
91 heimbach 1.2 & call ctrl_set_globfld_xy( fname(1), ivarindex, mythid )
92     else if ( whichxyz .EQ. 'xz') then
93 heimbach 1.4 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
94     & call ctrl_set_globfld_xz( fname(2), ivarindex, mythid)
95 heimbach 1.6 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
96 heimbach 1.2 & call ctrl_set_globfld_xz( fname(1), ivarindex, mythid )
97     else if ( whichxyz .EQ. 'yz') then
98 heimbach 1.4 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
99     & call ctrl_set_globfld_yz( fname(2), ivarindex, mythid)
100 heimbach 1.6 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
101 heimbach 1.2 & call ctrl_set_globfld_yz( fname(1), ivarindex, mythid )
102     else
103     STOP 'whichxyz option not implemented'
104     end if
105    
106 heimbach 1.5 ELSE
107    
108 jmc 1.8 c-- for DIVA, avoid forward-related output in adjoint part
109     CALL TURNOFF_MODEL_IO( 1, myThid )
110 heimbach 1.5
111 heimbach 1.2 ENDIF
112 heimbach 1.1
113 heimbach 1.7 #endif /* CTRL_DO_PACK_UNPACK_ONLY */
114    
115 heimbach 1.1
116     return
117     end

  ViewVC Help
Powered by ViewVC 1.1.22