/[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.2 - (show 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 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_prescribe_read.F,v 1.1 2004/09/22 20:43:04 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 _RL fac
44
45 c == end of interface ==
46
47 #ifdef ALLOW_EXF
48 #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 #else /* not ALLOW_EXF */
158 CALL OBCS_EXTERNAL_FIELDS_LOAD(
159 & myCurrentTime, myCurrentIter, myThid )
160 #endif /* ALLOw_EXF */
161
162 #endif /* ALLOW_OBCS */
163
164 end
165

  ViewVC Help
Powered by ViewVC 1.1.22