/[MITgcm]/MITgcm/pkg/obcs/obcs_prescribe_read.F
ViewVC logotype

Contents of /MITgcm/pkg/obcs/obcs_prescribe_read.F

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


Revision 1.5 - (show annotations) (download)
Thu Oct 14 11:56:43 2004 UTC (19 years, 7 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint55g_post
Changes since 1.4: +2 -1 lines
Another try:
fix for new exf_getffieldrec format.

1 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_prescribe_read.F,v 1.4 2004/10/14 11:53:20 heimbach Exp $
2 C $Name: $
3
4 # include "OBCS_OPTIONS.h"
5
6 subroutine obcs_prescribe_read (
7 I mycurrenttime
8 I , mycurrentiter
9 I , mythid
10 & )
11 c |==================================================================|
12 c | SUBROUTINE obcs_prescribe_read |
13 c |==================================================================|
14 c | read open boundary conditions from file |
15 c | N.B.: * uses exf and cal routines for file/record handling |
16 c | * uses ctrl routines for control variable handling |
17 c |==================================================================|
18
19 implicit none
20
21 c == global variables ==
22
23 #include "EEPARAMS.h"
24 #include "SIZE.h"
25 #include "GRID.h"
26 #include "OBCS.h"
27 #ifdef ALLOW_EXF
28 # include "exf_param.h"
29 #endif
30
31 c == routine arguments ==
32
33 _RL mycurrenttime
34 integer mycurrentiter
35 integer mythid
36
37 #if (defined (ALLOW_OBCS) && defined (ALLOW_OBCS_PRESCRIBE))
38
39 c == local variables ==
40
41 logical first, changed
42 integer count0, count1
43 integer year0, year1
44 _RL fac
45
46 c == end of interface ==
47
48 #ifdef ALLOW_EXF
49 #ifdef ALLOW_OBCS_NORTH
50 call exf_getffieldrec(
51 I obcsNstartdate, obcsNperiod
52 I , obcsNstartdate1, obcsNstartdate2
53 I , .false.
54 O , fac, first, changed,
55 O , count0, count1, year0, year1
56 I , mycurrenttime, mycurrentiter, mythid
57 & )
58
59 call exf_set_obcs_xz( OBNu, OBNu0, OBNu1, OBNufile, 'u'
60 I , fac, first, changed, count0, count1
61 I , mycurrenttime, mycurrentiter, mythid )
62 call exf_set_obcs_xz( OBNv, OBNv0, OBNv1, OBNvfile, 'v'
63 I , fac, first, changed, count0, count1
64 I , mycurrenttime, mycurrentiter, mythid )
65 call exf_set_obcs_xz( OBNt, OBNt0, OBNt1, OBNtfile, 's'
66 I , fac, first, changed, count0, count1
67 I , mycurrenttime, mycurrentiter, mythid )
68 call exf_set_obcs_xz( OBNs, OBNs0, OBNs1, OBNsfile, 's'
69 I , fac, first, changed, count0, count1
70 I , mycurrenttime, mycurrentiter, mythid )
71 #endif
72
73 #ifdef ALLOW_OBCS_SOUTH
74 call exf_getffieldrec(
75 I obcsSstartdate, obcsSperiod
76 I , obcsSstartdate1, obcsSstartdate2
77 I , .false.
78 O , fac, first, changed
79 O , count0, count1, year0, year1
80 I , mycurrenttime, mycurrentiter, mythid
81 & )
82
83 call exf_set_obcs_xz( OBSu, OBSu0, OBSu1, OBSufile, 'u'
84 I , fac, first, changed, count0, count1
85 I , mycurrenttime, mycurrentiter, mythid )
86 call exf_set_obcs_xz( OBSv, OBSv0, OBSv1, OBSvfile, 'v'
87 I , fac, first, changed, count0, count1
88 I , mycurrenttime, mycurrentiter, mythid )
89 call exf_set_obcs_xz( OBSt, OBSt0, OBSt1, OBStfile, 's'
90 I , fac, first, changed, count0, count1
91 I , mycurrenttime, mycurrentiter, mythid )
92 call exf_set_obcs_xz( OBSs, OBSs0, OBSs1, OBSsfile, 's'
93 I , fac, first, changed, count0, count1
94 I , mycurrenttime, mycurrentiter, mythid )
95
96 #endif
97
98 #ifdef ALLOW_OBCS_EAST
99 call exf_getffieldrec(
100 I obcsEstartdate, obcsEperiod
101 I , obcsEstartdate1, obcsEstartdate2
102 I , .false.
103 O , fac, first, changed
104 O , count0, count1, year0, year1
105 I , mycurrenttime, mycurrentiter, mythid
106 & )
107
108 call exf_set_obcs_yz( OBEu, OBEu0, OBEu1, OBEufile, 'u'
109 I , fac, first, changed, count0, count1
110 I , mycurrenttime, mycurrentiter, mythid )
111 call exf_set_obcs_yz( OBEv, OBEv0, OBEv1, OBEvfile, 'v'
112 I , fac, first, changed, count0, count1
113 I , mycurrenttime, mycurrentiter, mythid )
114 call exf_set_obcs_yz( OBEt, OBEt0, OBEt1, OBEtfile, 's'
115 I , fac, first, changed, count0, count1
116 I , mycurrenttime, mycurrentiter, mythid )
117 call exf_set_obcs_yz( OBEs, OBEs0, OBEs1, OBEsfile, 's'
118 I , fac, first, changed, count0, count1
119 I , mycurrenttime, mycurrentiter, mythid )
120
121 #endif
122
123 #ifdef ALLOW_OBCS_WEST
124 call exf_getffieldrec(
125 I obcsWstartdate, obcsWperiod
126 I , obcsWstartdate1, obcsWstartdate2
127 I , .false.
128 O , fac, first, changed
129 O , count0, count1, year0, year1
130 I , mycurrenttime, mycurrentiter, mythid
131 & )
132
133 call exf_set_obcs_yz( OBWu, OBWu0, OBWu1, OBWufile, 'u'
134 I , fac, first, changed, count0, count1
135 I , mycurrenttime, mycurrentiter, mythid )
136 call exf_set_obcs_yz( OBWv, OBWv0, OBWv1, OBWvfile, 'v'
137 I , fac, first, changed, count0, count1
138 I , mycurrenttime, mycurrentiter, mythid )
139 call exf_set_obcs_yz( OBWt, OBWt0, OBWt1, OBWtfile, 's'
140 I , fac, first, changed, count0, count1
141 I , mycurrenttime, mycurrentiter, mythid )
142 call exf_set_obcs_yz( OBWs, OBWs0, OBWs1, OBWsfile, 's'
143 I , fac, first, changed, count0, count1
144 I , mycurrenttime, mycurrentiter, mythid )
145
146 #endif
147
148 #ifdef ALLOW_OBCS_CONTROL
149 cgg WARNING: Assuming North Open Boundary exists and has same
150 cgg calendar information as other boundaries.
151 call ctrl_obcsbal ( mycurrenttime,mycurrentiter,mythid )
152 #endif
153
154 #ifdef ALLOW_OBCSN_CONTROL
155 call ctrl_getobcsn ( mycurrenttime, mycurrentiter, mythid )
156 #endif
157
158 #ifdef ALLOW_OBCSS_CONTROL
159 call ctrl_getobcss ( mycurrenttime, mycurrentiter, mythid )
160 #endif
161
162 #ifdef ALLOW_OBCSW_CONTROL
163 call ctrl_getobcsw ( mycurrenttime, mycurrentiter, mythid )
164 #endif
165
166 #ifdef ALLOW_OBCSE_CONTROL
167 call ctrl_getobcse ( mycurrenttime, mycurrentiter, mythid )
168 #endif
169
170 #else /* not ALLOW_EXF */
171 CALL OBCS_EXTERNAL_FIELDS_LOAD(
172 & myCurrentTime, myCurrentIter, myThid )
173 #endif /* ALLOw_EXF */
174
175 #endif /* ALLOW_OBCS */
176
177 end
178

  ViewVC Help
Powered by ViewVC 1.1.22