/[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.2 - (hide annotations) (download)
Fri Sep 24 12:32:09 2004 UTC (19 years, 8 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint55d_pre
Changes since 1.1: +6 -1 lines
o initial check-in of alternative to reading open boundary values
  with EXF, for those who like the old external_fields_load
o works for me, gives the same results as with EXF, but use at own risk (:

1 mlosch 1.2 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_prescribe_read.F,v 1.1 2004/09/22 20:43:04 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     _RL fac
44    
45     c == end of interface ==
46    
47 mlosch 1.2 #ifdef ALLOW_EXF
48 heimbach 1.1 #ifdef ALLOW_OBCS_NORTH
49     call exf_getffieldrec(
50     I obcsNstartdate, obcsNperiod
51     O , fac, first, changed, count0, count1
52     I , mycurrenttime, mycurrentiter, mythid
53     & )
54    
55     call exf_set_obcs_xz( OBNu, OBNu0, OBNu1, OBNufile, 'u'
56     I , fac, first, changed, count0, count1
57     I , mycurrenttime, mycurrentiter, mythid )
58     call exf_set_obcs_xz( OBNv, OBNv0, OBNv1, OBNvfile, 'v'
59     I , fac, first, changed, count0, count1
60     I , mycurrenttime, mycurrentiter, mythid )
61     call exf_set_obcs_xz( OBNt, OBNt0, OBNt1, OBNtfile, 's'
62     I , fac, first, changed, count0, count1
63     I , mycurrenttime, mycurrentiter, mythid )
64     call exf_set_obcs_xz( OBNs, OBNs0, OBNs1, OBNsfile, 's'
65     I , fac, first, changed, count0, count1
66     I , mycurrenttime, mycurrentiter, mythid )
67     #endif
68    
69     #ifdef ALLOW_OBCS_SOUTH
70     call exf_getffieldrec(
71     I obcsSstartdate, obcsSperiod
72     O , fac, first, changed, count0, count1
73     I , mycurrenttime, mycurrentiter, mythid
74     & )
75    
76     call exf_set_obcs_xz( OBSu, OBSu0, OBSu1, OBSufile, 'u'
77     I , fac, first, changed, count0, count1
78     I , mycurrenttime, mycurrentiter, mythid )
79     call exf_set_obcs_xz( OBSv, OBSv0, OBSv1, OBSvfile, 'v'
80     I , fac, first, changed, count0, count1
81     I , mycurrenttime, mycurrentiter, mythid )
82     call exf_set_obcs_xz( OBSt, OBSt0, OBSt1, OBStfile, 's'
83     I , fac, first, changed, count0, count1
84     I , mycurrenttime, mycurrentiter, mythid )
85     call exf_set_obcs_xz( OBSs, OBSs0, OBSs1, OBSsfile, 's'
86     I , fac, first, changed, count0, count1
87     I , mycurrenttime, mycurrentiter, mythid )
88    
89     #endif
90    
91     #ifdef ALLOW_OBCS_EAST
92     call exf_getffieldrec(
93     I obcsEstartdate, obcsEperiod
94     O , fac, first, changed, count0, count1
95     I , mycurrenttime, mycurrentiter, mythid
96     & )
97    
98     call exf_set_obcs_yz( OBEu, OBEu0, OBEu1, OBEufile, 'u'
99     I , fac, first, changed, count0, count1
100     I , mycurrenttime, mycurrentiter, mythid )
101     call exf_set_obcs_yz( OBEv, OBEv0, OBEv1, OBEvfile, 'v'
102     I , fac, first, changed, count0, count1
103     I , mycurrenttime, mycurrentiter, mythid )
104     call exf_set_obcs_yz( OBEt, OBEt0, OBEt1, OBEtfile, 's'
105     I , fac, first, changed, count0, count1
106     I , mycurrenttime, mycurrentiter, mythid )
107     call exf_set_obcs_yz( OBEs, OBEs0, OBEs1, OBEsfile, 's'
108     I , fac, first, changed, count0, count1
109     I , mycurrenttime, mycurrentiter, mythid )
110    
111     #endif
112    
113     #ifdef ALLOW_OBCS_WEST
114     call exf_getffieldrec(
115     I obcsWstartdate, obcsWperiod
116     O , fac, first, changed, count0, count1
117     I , mycurrenttime, mycurrentiter, mythid
118     & )
119    
120     call exf_set_obcs_yz( OBWu, OBWu0, OBWu1, OBWufile, 'u'
121     I , fac, first, changed, count0, count1
122     I , mycurrenttime, mycurrentiter, mythid )
123     call exf_set_obcs_yz( OBWv, OBWv0, OBWv1, OBWvfile, 'v'
124     I , fac, first, changed, count0, count1
125     I , mycurrenttime, mycurrentiter, mythid )
126     call exf_set_obcs_yz( OBWt, OBWt0, OBWt1, OBWtfile, 's'
127     I , fac, first, changed, count0, count1
128     I , mycurrenttime, mycurrentiter, mythid )
129     call exf_set_obcs_yz( OBWs, OBWs0, OBWs1, OBWsfile, 's'
130     I , fac, first, changed, count0, count1
131     I , mycurrenttime, mycurrentiter, mythid )
132    
133     #endif
134    
135     #ifdef ALLOW_OBCS_CONTROL
136     cgg WARNING: Assuming North Open Boundary exists and has same
137     cgg calendar information as other boundaries.
138     call ctrl_obcsbal ( mycurrenttime,mycurrentiter,mythid )
139     #endif
140    
141     #ifdef ALLOW_OBCSN_CONTROL
142     call ctrl_getobcsn ( mycurrenttime, mycurrentiter, mythid )
143     #endif
144    
145     #ifdef ALLOW_OBCSS_CONTROL
146     call ctrl_getobcss ( mycurrenttime, mycurrentiter, mythid )
147     #endif
148    
149     #ifdef ALLOW_OBCSW_CONTROL
150     call ctrl_getobcsw ( mycurrenttime, mycurrentiter, mythid )
151     #endif
152    
153     #ifdef ALLOW_OBCSE_CONTROL
154     call ctrl_getobcse ( mycurrenttime, mycurrentiter, mythid )
155     #endif
156    
157 mlosch 1.2 #else /* not ALLOW_EXF */
158     CALL OBCS_EXTERNAL_FIELDS_LOAD(
159     & myCurrentTime, myCurrentIter, myThid )
160     #endif /* ALLOw_EXF */
161 heimbach 1.1
162     #endif /* ALLOW_OBCS */
163    
164     end
165    

  ViewVC Help
Powered by ViewVC 1.1.22