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

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

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


Revision 1.5 - (hide 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 heimbach 1.5 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_prescribe_read.F,v 1.4 2004/10/14 11:53:20 heimbach Exp $
2 heimbach 1.1 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 heimbach 1.5 integer year0, year1
44 heimbach 1.1 _RL fac
45    
46     c == end of interface ==
47    
48 mlosch 1.2 #ifdef ALLOW_EXF
49 heimbach 1.1 #ifdef ALLOW_OBCS_NORTH
50     call exf_getffieldrec(
51     I obcsNstartdate, obcsNperiod
52 heimbach 1.3 I , obcsNstartdate1, obcsNstartdate2
53 heimbach 1.4 I , .false.
54 heimbach 1.3 O , fac, first, changed,
55     O , count0, count1, year0, year1
56 heimbach 1.1 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 heimbach 1.3 I , obcsSstartdate1, obcsSstartdate2
77 heimbach 1.4 I , .false.
78     O , fac, first, changed
79     O , count0, count1, year0, year1
80 heimbach 1.1 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 heimbach 1.3 I , obcsEstartdate1, obcsEstartdate2
102 heimbach 1.4 I , .false.
103     O , fac, first, changed
104     O , count0, count1, year0, year1
105 heimbach 1.1 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 heimbach 1.3 I , obcsWstartdate1, obcsWstartdate2
127 heimbach 1.4 I , .false.
128     O , fac, first, changed
129     O , count0, count1, year0, year1
130 heimbach 1.1 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 mlosch 1.2 #else /* not ALLOW_EXF */
171     CALL OBCS_EXTERNAL_FIELDS_LOAD(
172     & myCurrentTime, myCurrentIter, myThid )
173     #endif /* ALLOw_EXF */
174 heimbach 1.1
175     #endif /* ALLOW_OBCS */
176    
177     end
178    

  ViewVC Help
Powered by ViewVC 1.1.22