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

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

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


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

1 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_init_ctrlvar.F,v 1.8 2010/05/09 16:24:45 jmc Exp $
2 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 #include "optim.h"
41
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 character*( 80) fname(3)
58 logical exst
59
60 c _BEGIN_MASTER( mythid )
61 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 c _END_MASTER( mythid )
70
71 cph add following flag to make pack/unpack only less error-prone
72 #ifndef CTRL_DO_PACK_UNPACK_ONLY
73
74 call ctrl_set_fname( xx_fname, fname, mythid )
75
76 c _BEGIN_MASTER( mythid )
77 inquire( file='costfinal', exist=exst )
78 c _END_MASTER( mythid )
79
80 IF ( .NOT. exst) THEN
81
82 if ( whichxyz .EQ. '3d') then
83 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
84 & call ctrl_set_globfld_xyz( fname(2), ivarindex, mythid)
85 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
86 & call ctrl_set_globfld_xyz( fname(1), ivarindex, mythid)
87 else if ( whichxyz .EQ. 'xy') then
88 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
89 & call ctrl_set_globfld_xy( fname(2), ivarindex, mythid)
90 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
91 & call ctrl_set_globfld_xy( fname(1), ivarindex, mythid )
92 else if ( whichxyz .EQ. 'xz') then
93 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
94 & call ctrl_set_globfld_xz( fname(2), ivarindex, mythid)
95 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
96 & call ctrl_set_globfld_xz( fname(1), ivarindex, mythid )
97 else if ( whichxyz .EQ. 'yz') then
98 if ( .NOT.doAdmTlm .OR. (doAdmTlm.AND.yadprefix.EQ.'ad') )
99 & call ctrl_set_globfld_yz( fname(2), ivarindex, mythid)
100 if ( ( doInitXX .AND. optimcycle.eq.0 ) .OR. doAdmTlm )
101 & call ctrl_set_globfld_yz( fname(1), ivarindex, mythid )
102 else
103 STOP 'whichxyz option not implemented'
104 end if
105
106 ELSE
107
108 c-- for DIVA, avoid forward-related output in adjoint part
109 CALL TURNOFF_MODEL_IO( 1, myThid )
110
111 ENDIF
112
113 #endif /* CTRL_DO_PACK_UNPACK_ONLY */
114
115
116 return
117 end

  ViewVC Help
Powered by ViewVC 1.1.22