Merge remote-tracking branch 'origin/release-v4.5'
[WRF.git] / frame / xxx_template_ioapi.F
blob4b672d8e6d204e5b2c2b9e0e94ef18417edbd3b0
2 ! This is a template for adding a package-dependent implemetnation of
3 ! the I/O API.  You can use the name xxx since that is already set up
4 ! as a placeholder in module_io.F, md_calls.m4, and the Registry, or
5 ! you can change the name here and in those other places.  For additional
6 ! information on adding a package to WRF, see the latest version of the
7 ! WRF Design and Implementation Document 1.1 (Draft). June 21, 2001
10 !--- ioinit
11 SUBROUTINE ext_xxx_ioinit( SysDepInfo,Status )
12   IMPLICIT NONE
13   CHARACTER (LEN=80), INTENT(IN) :: SysDepInfo
14   INTEGER, INTENT(INOUT) :: Status
15   RETURN  
16 END SUBROUTINE ext_xxx_ioinit
18 SUBROUTINE ext_xxx_inquiry( Inquiry, Result,Status )
19   IMPLICIT NONE
20   CHARACTER *(*), INTENT(IN) :: Inquiry
21   CHARACTER *(*), INTENT(OUT) :: Result
22   INTEGER, INTENT(INOUT) :: Status
23   RETURN  
24 END SUBROUTINE ext_xxx_inquiry
26 !--- ioexit
27 SUBROUTINE ext_xxx_ioexit( Status )
28   IMPLICIT NONE
29   INTEGER, INTENT(INOUT) :: Status
30   RETURN  
31 END SUBROUTINE
33 !--- open_for_write_begin
34 SUBROUTINE ext_xxx_open_for_write_begin( FileName , Comm_compute, Comm_io, SysDepInfo, &
35                                      DataHandle , Status )
36   IMPLICIT NONE
37   CHARACTER *(*), INTENT(IN)  :: FileName
38   INTEGER ,       INTENT(IN)  :: Comm_compute , Comm_io
39   CHARACTER *(*), INTENT(IN)  :: SysDepInfo
40   INTEGER ,       INTENT(OUT) :: DataHandle
41   INTEGER ,       INTENT(OUT) :: Status
42   RETURN  
43 END SUBROUTINE ext_xxx_open_for_write_begin
45 !--- open_for_write_commit
46 SUBROUTINE ext_xxx_open_for_write_commit( DataHandle , Status )
47   IMPLICIT NONE
48   INTEGER ,       INTENT(IN ) :: DataHandle
49   INTEGER ,       INTENT(OUT) :: Status
50   RETURN  
51 END SUBROUTINE ext_xxx_open_for_write_commit
53 !--- open_for_read 
54 SUBROUTINE ext_xxx_open_for_read ( FileName , Comm_compute, Comm_io, SysDepInfo, &
55                                DataHandle , Status )
56   IMPLICIT NONE
57   CHARACTER *(*), INTENT(IN)  :: FileName
58   INTEGER ,       INTENT(IN)  :: Comm_compute , Comm_io
59   CHARACTER *(*), INTENT(IN)  :: SysDepInfo
60   INTEGER ,       INTENT(OUT) :: DataHandle
61   INTEGER ,       INTENT(OUT) :: Status
62   RETURN  
63 END SUBROUTINE ext_xxx_open_for_read
65 !--- inquire_opened
66 SUBROUTINE ext_xxx_inquire_opened ( DataHandle, FileName , FileStatus, Status )
67   IMPLICIT NONE
68   INTEGER ,       INTENT(IN)  :: DataHandle
69   CHARACTER *(*), INTENT(IN)  :: FileName
70   INTEGER ,       INTENT(OUT) :: FileStatus
71   INTEGER ,       INTENT(OUT) :: Status
72   RETURN
73 END SUBROUTINE ext_xxx_inquire_opened
75 !--- inquire_filename
76 SUBROUTINE ext_xxx_inquire_filename ( DataHandle, FileName , FileStatus, Status )
77   IMPLICIT NONE
78   INTEGER ,       INTENT(IN)  :: DataHandle
79   CHARACTER *(*), INTENT(OUT) :: FileName
80   INTEGER ,       INTENT(OUT) :: FileStatus
81   INTEGER ,       INTENT(OUT) :: Status
82 END SUBROUTINE ext_xxx_inquire_filename
84 !--- sync
85 SUBROUTINE ext_xxx_iosync ( DataHandle, Status )
86   IMPLICIT NONE
87   INTEGER ,       INTENT(IN)  :: DataHandle
88   INTEGER ,       INTENT(OUT) :: Status
89   RETURN
90 END SUBROUTINE ext_xxx_iosync
92 !--- close
93 SUBROUTINE ext_xxx_ioclose ( DataHandle, Status )
94   IMPLICIT NONE
95   INTEGER ,       INTENT(IN)  :: DataHandle
96   INTEGER ,       INTENT(OUT) :: Status
97   RETURN
98 END SUBROUTINE ext_xxx_ioclose
100 !--- get_next_time (not defined for IntIO )
101 SUBROUTINE ext_xxx_get_next_time ( DataHandle, DateStr, Status )
102   IMPLICIT NONE
103   INTEGER ,       INTENT(IN)  :: DataHandle
104   CHARACTER*(*) , INTENT(OUT) :: DateStr
105   INTEGER ,       INTENT(OUT) :: Status
106   RETURN
107 END SUBROUTINE ext_xxx_get_next_time
109 !--- set_time
110 SUBROUTINE ext_xxx_set_time ( DataHandle, DateStr, Status )
111   IMPLICIT NONE
112   INTEGER ,       INTENT(IN)  :: DataHandle
113   CHARACTER*(*) , INTENT(IN)  :: DateStr
114   INTEGER ,       INTENT(OUT) :: Status
115   RETURN
116 END SUBROUTINE ext_xxx_set_time
118 !--- get_next_var  (not defined for IntIO)
119 SUBROUTINE ext_xxx_get_next_var ( DataHandle, VarName, Status )
120   IMPLICIT NONE
121   INTEGER ,       INTENT(IN)  :: DataHandle
122   CHARACTER*(*) , INTENT(OUT) :: VarName
123   INTEGER ,       INTENT(OUT) :: Status
124   RETURN
125 END SUBROUTINE ext_xxx_get_next_var
127 !--- get_dom_ti_real
128 SUBROUTINE ext_xxx_get_dom_ti_real ( DataHandle,Element,   Data, Count, Outcount, Status )
129   IMPLICIT NONE
130   INTEGER ,       INTENT(IN)  :: DataHandle
131   CHARACTER*(*) , INTENT(IN)  :: Element
132 RETURN
133 END SUBROUTINE ext_xxx_get_dom_ti_real 
135 !--- put_dom_ti_real
136 SUBROUTINE ext_xxx_put_dom_ti_real ( DataHandle,Element,   Data, Count,  Status )
137   IMPLICIT NONE
138   INTEGER ,       INTENT(IN)  :: DataHandle
139   CHARACTER*(*) , INTENT(IN)  :: Element
140   real ,            INTENT(IN) :: Data(*)
141   INTEGER ,       INTENT(IN)  :: Count
142   INTEGER ,       INTENT(OUT) :: Status
143 RETURN
144 END SUBROUTINE ext_xxx_put_dom_ti_real 
146 !--- get_dom_ti_double
147 SUBROUTINE ext_xxx_get_dom_ti_double ( DataHandle,Element,   Data, Count, Outcount, Status )
148   IMPLICIT NONE
149   INTEGER ,       INTENT(IN)  :: DataHandle
150   CHARACTER*(*) , INTENT(IN)  :: Element
151   real*8 ,            INTENT(OUT) :: Data(*)
152   INTEGER ,       INTENT(IN)  :: Count
153   INTEGER ,       INTENT(OUT)  :: OutCount
154   INTEGER ,       INTENT(OUT) :: Status
155 RETURN
156 END SUBROUTINE ext_xxx_get_dom_ti_double 
158 !--- put_dom_ti_double
159 SUBROUTINE ext_xxx_put_dom_ti_double ( DataHandle,Element,   Data, Count,  Status )
160   IMPLICIT NONE
161   INTEGER ,       INTENT(IN)  :: DataHandle
162   CHARACTER*(*) , INTENT(IN)  :: Element
163   real*8 ,            INTENT(IN) :: Data(*)
164   INTEGER ,       INTENT(IN)  :: Count
165   INTEGER ,       INTENT(OUT) :: Status
166 RETURN
167 END SUBROUTINE ext_xxx_put_dom_ti_double 
169 !--- get_dom_ti_integer
170 SUBROUTINE ext_xxx_get_dom_ti_integer ( DataHandle,Element,   Data, Count, Outcount, Status )
171   IMPLICIT NONE
172   INTEGER ,       INTENT(IN)  :: DataHandle
173   CHARACTER*(*) , INTENT(IN)  :: Element
174   integer ,            INTENT(OUT) :: Data(*)
175   INTEGER ,       INTENT(IN)  :: Count
176   INTEGER ,       INTENT(OUT)  :: OutCount
177   INTEGER ,       INTENT(OUT) :: Status
178 RETURN
179 END SUBROUTINE ext_xxx_get_dom_ti_integer 
181 !--- put_dom_ti_integer
182 SUBROUTINE ext_xxx_put_dom_ti_integer ( DataHandle,Element,   Data, Count,  Status )
183   IMPLICIT NONE
184   INTEGER ,       INTENT(IN)  :: DataHandle
185   CHARACTER*(*) , INTENT(IN)  :: Element
186   integer ,            INTENT(IN) :: Data(*)
187   INTEGER ,       INTENT(IN)  :: Count
188   INTEGER ,       INTENT(OUT) :: Status
189 RETURN
190 END SUBROUTINE ext_xxx_put_dom_ti_integer 
192 !--- get_dom_ti_logical
193 SUBROUTINE ext_xxx_get_dom_ti_logical ( DataHandle,Element,   Data, Count, Outcount, Status )
194   IMPLICIT NONE
195   INTEGER ,       INTENT(IN)  :: DataHandle
196   CHARACTER*(*) , INTENT(IN)  :: Element
197   logical ,            INTENT(OUT) :: Data(*)
198   INTEGER ,       INTENT(IN)  :: Count
199   INTEGER ,       INTENT(OUT)  :: OutCount
200   INTEGER ,       INTENT(OUT) :: Status
201 RETURN
202 END SUBROUTINE ext_xxx_get_dom_ti_logical 
204 !--- put_dom_ti_logical
205 SUBROUTINE ext_xxx_put_dom_ti_logical ( DataHandle,Element,   Data, Count,  Status )
206   IMPLICIT NONE
207   INTEGER ,       INTENT(IN)  :: DataHandle
208   CHARACTER*(*) , INTENT(IN)  :: Element
209   logical ,            INTENT(IN) :: Data(*)
210   INTEGER ,       INTENT(IN)  :: Count
211   INTEGER ,       INTENT(OUT) :: Status
212 RETURN
213 END SUBROUTINE ext_xxx_put_dom_ti_logical 
215 !--- get_dom_ti_char
216 SUBROUTINE ext_xxx_get_dom_ti_char ( DataHandle,Element,   Data,  Status )
217   IMPLICIT NONE
218   INTEGER ,       INTENT(IN)  :: DataHandle
219   CHARACTER*(*) , INTENT(IN)  :: Element
220   CHARACTER*(*) , INTENT(OUT) :: Data
221   INTEGER ,       INTENT(OUT) :: Status
222 RETURN
223 END SUBROUTINE ext_xxx_get_dom_ti_char 
225 !--- put_dom_ti_char
226 SUBROUTINE ext_xxx_put_dom_ti_char ( DataHandle,Element,   Data,  Status )
227   IMPLICIT NONE
228   INTEGER ,       INTENT(IN)  :: DataHandle
229   CHARACTER*(*) , INTENT(IN)  :: Element
230   CHARACTER*(*) , INTENT(IN) :: Data
231   INTEGER ,       INTENT(OUT) :: Status
232 RETURN
233 END SUBROUTINE ext_xxx_put_dom_ti_char 
235 !--- get_dom_td_real
236 SUBROUTINE ext_xxx_get_dom_td_real ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
237   IMPLICIT NONE
238   INTEGER ,       INTENT(IN)  :: DataHandle
239   CHARACTER*(*) , INTENT(IN)  :: Element
240   CHARACTER*(*) , INTENT(IN)  :: DateStr
241   real ,            INTENT(OUT) :: Data(*)
242   INTEGER ,       INTENT(IN)  :: Count
243   INTEGER ,       INTENT(OUT)  :: OutCount
244   INTEGER ,       INTENT(OUT) :: Status
245 RETURN
246 END SUBROUTINE ext_xxx_get_dom_td_real 
248 !--- put_dom_td_real
249 SUBROUTINE ext_xxx_put_dom_td_real ( DataHandle,Element, DateStr,  Data, Count,  Status )
250   IMPLICIT NONE
251   INTEGER ,       INTENT(IN)  :: DataHandle
252   CHARACTER*(*) , INTENT(IN)  :: Element
253   CHARACTER*(*) , INTENT(IN)  :: DateStr
254   real ,            INTENT(IN) :: Data(*)
255   INTEGER ,       INTENT(IN)  :: Count
256   INTEGER ,       INTENT(OUT) :: Status
257 RETURN
258 END SUBROUTINE ext_xxx_put_dom_td_real 
260 !--- get_dom_td_double
261 SUBROUTINE ext_xxx_get_dom_td_double ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
262   IMPLICIT NONE
263   INTEGER ,       INTENT(IN)  :: DataHandle
264   CHARACTER*(*) , INTENT(IN)  :: Element
265   CHARACTER*(*) , INTENT(IN)  :: DateStr
266   real*8 ,            INTENT(OUT) :: Data(*)
267   INTEGER ,       INTENT(IN)  :: Count
268   INTEGER ,       INTENT(OUT)  :: OutCount
269   INTEGER ,       INTENT(OUT) :: Status
270 RETURN
271 END SUBROUTINE ext_xxx_get_dom_td_double 
273 !--- put_dom_td_double
274 SUBROUTINE ext_xxx_put_dom_td_double ( DataHandle,Element, DateStr,  Data, Count,  Status )
275   IMPLICIT NONE
276   INTEGER ,       INTENT(IN)  :: DataHandle
277   CHARACTER*(*) , INTENT(IN)  :: Element
278   CHARACTER*(*) , INTENT(IN)  :: DateStr
279   real*8 ,            INTENT(IN) :: Data(*)
280   INTEGER ,       INTENT(IN)  :: Count
281   INTEGER ,       INTENT(OUT) :: Status
282 RETURN
283 END SUBROUTINE ext_xxx_put_dom_td_double 
285 !--- get_dom_td_integer
286 SUBROUTINE ext_xxx_get_dom_td_integer ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
287   IMPLICIT NONE
288   INTEGER ,       INTENT(IN)  :: DataHandle
289   CHARACTER*(*) , INTENT(IN)  :: Element
290   CHARACTER*(*) , INTENT(IN)  :: DateStr
291   integer ,            INTENT(OUT) :: Data(*)
292   INTEGER ,       INTENT(IN)  :: Count
293   INTEGER ,       INTENT(OUT)  :: OutCount
294   INTEGER ,       INTENT(OUT) :: Status
295 RETURN
296 END SUBROUTINE ext_xxx_get_dom_td_integer 
298 !--- put_dom_td_integer
299 SUBROUTINE ext_xxx_put_dom_td_integer ( DataHandle,Element, DateStr,  Data, Count,  Status )
300   IMPLICIT NONE
301   INTEGER ,       INTENT(IN)  :: DataHandle
302   CHARACTER*(*) , INTENT(IN)  :: Element
303   CHARACTER*(*) , INTENT(IN)  :: DateStr
304   integer ,            INTENT(IN) :: Data(*)
305   INTEGER ,       INTENT(IN)  :: Count
306   INTEGER ,       INTENT(OUT) :: Status
307 RETURN
308 END SUBROUTINE ext_xxx_put_dom_td_integer 
310 !--- get_dom_td_logical
311 SUBROUTINE ext_xxx_get_dom_td_logical ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
312   IMPLICIT NONE
313   INTEGER ,       INTENT(IN)  :: DataHandle
314   CHARACTER*(*) , INTENT(IN)  :: Element
315   CHARACTER*(*) , INTENT(IN)  :: DateStr
316   logical ,            INTENT(OUT) :: Data(*)
317   INTEGER ,       INTENT(IN)  :: Count
318   INTEGER ,       INTENT(OUT)  :: OutCount
319   INTEGER ,       INTENT(OUT) :: Status
320 RETURN
321 END SUBROUTINE ext_xxx_get_dom_td_logical 
323 !--- put_dom_td_logical
324 SUBROUTINE ext_xxx_put_dom_td_logical ( DataHandle,Element, DateStr,  Data, Count,  Status )
325   IMPLICIT NONE
326   INTEGER ,       INTENT(IN)  :: DataHandle
327   CHARACTER*(*) , INTENT(IN)  :: Element
328   CHARACTER*(*) , INTENT(IN)  :: DateStr
329   logical ,            INTENT(IN) :: Data(*)
330   INTEGER ,       INTENT(IN)  :: Count
331   INTEGER ,       INTENT(OUT) :: Status
332 RETURN
333 END SUBROUTINE ext_xxx_put_dom_td_logical 
335 !--- get_dom_td_char
336 SUBROUTINE ext_xxx_get_dom_td_char ( DataHandle,Element, DateStr,  Data,  Status )
337   IMPLICIT NONE
338   INTEGER ,       INTENT(IN)  :: DataHandle
339   CHARACTER*(*) , INTENT(IN)  :: Element
340   CHARACTER*(*) , INTENT(IN)  :: DateStr
341   CHARACTER*(*) , INTENT(OUT) :: Data
342   INTEGER ,       INTENT(OUT) :: Status
343 RETURN
344 END SUBROUTINE ext_xxx_get_dom_td_char 
346 !--- put_dom_td_char
347 SUBROUTINE ext_xxx_put_dom_td_char ( DataHandle,Element, DateStr,  Data,  Status )
348   IMPLICIT NONE
349   INTEGER ,       INTENT(IN)  :: DataHandle
350   CHARACTER*(*) , INTENT(IN)  :: Element
351   CHARACTER*(*) , INTENT(IN)  :: DateStr
352   CHARACTER*(*) , INTENT(IN) :: Data
353   INTEGER ,       INTENT(OUT) :: Status
354 RETURN
355 END SUBROUTINE ext_xxx_put_dom_td_char 
357 !--- get_var_ti_real
358 SUBROUTINE ext_xxx_get_var_ti_real ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
359   IMPLICIT NONE
360   INTEGER ,       INTENT(IN)  :: DataHandle
361   CHARACTER*(*) , INTENT(IN)  :: Element
362   CHARACTER*(*) , INTENT(IN)  :: VarName 
363   real ,            INTENT(OUT) :: Data(*)
364   INTEGER ,       INTENT(IN)  :: Count
365   INTEGER ,       INTENT(OUT)  :: OutCount
366   INTEGER ,       INTENT(OUT) :: Status
367 RETURN
368 END SUBROUTINE ext_xxx_get_var_ti_real 
370 !--- put_var_ti_real
371 SUBROUTINE ext_xxx_put_var_ti_real ( DataHandle,Element,  Varname, Data, Count,  Status )
372   IMPLICIT NONE
373   INTEGER ,       INTENT(IN)  :: DataHandle
374   CHARACTER*(*) , INTENT(IN)  :: Element
375   CHARACTER*(*) , INTENT(IN)  :: VarName 
376   real ,            INTENT(IN) :: Data(*)
377   INTEGER ,       INTENT(IN)  :: Count
378   INTEGER ,       INTENT(OUT) :: Status
379 RETURN
380 END SUBROUTINE ext_xxx_put_var_ti_real 
382 !--- get_var_ti_double
383 SUBROUTINE ext_xxx_get_var_ti_double ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
384   IMPLICIT NONE
385   INTEGER ,       INTENT(IN)  :: DataHandle
386   CHARACTER*(*) , INTENT(IN)  :: Element
387   CHARACTER*(*) , INTENT(IN)  :: VarName 
388   real*8 ,            INTENT(OUT) :: Data(*)
389   INTEGER ,       INTENT(IN)  :: Count
390   INTEGER ,       INTENT(OUT)  :: OutCount
391   INTEGER ,       INTENT(OUT) :: Status
392 RETURN
393 END SUBROUTINE ext_xxx_get_var_ti_double 
395 !--- put_var_ti_double
396 SUBROUTINE ext_xxx_put_var_ti_double ( DataHandle,Element,  Varname, Data, Count,  Status )
397   IMPLICIT NONE
398   INTEGER ,       INTENT(IN)  :: DataHandle
399   CHARACTER*(*) , INTENT(IN)  :: Element
400   CHARACTER*(*) , INTENT(IN)  :: VarName 
401   real*8 ,            INTENT(IN) :: Data(*)
402   INTEGER ,       INTENT(IN)  :: Count
403   INTEGER ,       INTENT(OUT) :: Status
404 RETURN
405 END SUBROUTINE ext_xxx_put_var_ti_double 
407 !--- get_var_ti_integer
408 SUBROUTINE ext_xxx_get_var_ti_integer ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
409   IMPLICIT NONE
410   INTEGER ,       INTENT(IN)  :: DataHandle
411   CHARACTER*(*) , INTENT(IN)  :: Element
412   CHARACTER*(*) , INTENT(IN)  :: VarName 
413   integer ,            INTENT(OUT) :: Data(*)
414   INTEGER ,       INTENT(IN)  :: Count
415   INTEGER ,       INTENT(OUT)  :: OutCount
416   INTEGER ,       INTENT(OUT) :: Status
417 RETURN
418 END SUBROUTINE ext_xxx_get_var_ti_integer 
420 !--- put_var_ti_integer
421 SUBROUTINE ext_xxx_put_var_ti_integer ( DataHandle,Element,  Varname, Data, Count,  Status )
422   IMPLICIT NONE
423   INTEGER ,       INTENT(IN)  :: DataHandle
424   CHARACTER*(*) , INTENT(IN)  :: Element
425   CHARACTER*(*) , INTENT(IN)  :: VarName 
426   integer ,            INTENT(IN) :: Data(*)
427   INTEGER ,       INTENT(IN)  :: Count
428   INTEGER ,       INTENT(OUT) :: Status
429 RETURN
430 END SUBROUTINE ext_xxx_put_var_ti_integer 
432 !--- get_var_ti_logical
433 SUBROUTINE ext_xxx_get_var_ti_logical ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
434   IMPLICIT NONE
435   INTEGER ,       INTENT(IN)  :: DataHandle
436   CHARACTER*(*) , INTENT(IN)  :: Element
437   CHARACTER*(*) , INTENT(IN)  :: VarName 
438   logical ,            INTENT(OUT) :: Data(*)
439   INTEGER ,       INTENT(IN)  :: Count
440   INTEGER ,       INTENT(OUT)  :: OutCount
441   INTEGER ,       INTENT(OUT) :: Status
442 RETURN
443 END SUBROUTINE ext_xxx_get_var_ti_logical 
445 !--- put_var_ti_logical
446 SUBROUTINE ext_xxx_put_var_ti_logical ( DataHandle,Element,  Varname, Data, Count,  Status )
447   IMPLICIT NONE
448   INTEGER ,       INTENT(IN)  :: DataHandle
449   CHARACTER*(*) , INTENT(IN)  :: Element
450   CHARACTER*(*) , INTENT(IN)  :: VarName 
451   logical ,            INTENT(IN) :: Data(*)
452   INTEGER ,       INTENT(IN)  :: Count
453   INTEGER ,       INTENT(OUT) :: Status
454 RETURN
455 END SUBROUTINE ext_xxx_put_var_ti_logical 
457 !--- get_var_ti_char
458 SUBROUTINE ext_xxx_get_var_ti_char ( DataHandle,Element,  Varname, Data,  Status )
459   IMPLICIT NONE
460   INTEGER ,       INTENT(IN)  :: DataHandle
461   CHARACTER*(*) , INTENT(IN)  :: Element
462   CHARACTER*(*) , INTENT(IN)  :: VarName 
463   CHARACTER*(*) , INTENT(OUT) :: Data
464   INTEGER ,       INTENT(OUT) :: Status
465 RETURN
466 END SUBROUTINE ext_xxx_get_var_ti_char 
468 !--- put_var_ti_char
469 SUBROUTINE ext_xxx_put_var_ti_char ( DataHandle,Element,  Varname, Data,  Status )
470   IMPLICIT NONE
471   INTEGER ,       INTENT(IN)  :: DataHandle
472   CHARACTER*(*) , INTENT(IN)  :: Element
473   CHARACTER*(*) , INTENT(IN)  :: VarName 
474   CHARACTER*(*) , INTENT(IN) :: Data
475   INTEGER ,       INTENT(OUT) :: Status
476 RETURN
477 END SUBROUTINE ext_xxx_put_var_ti_char 
479 !--- get_var_td_real
480 SUBROUTINE ext_xxx_get_var_td_real ( DataHandle,Element,  DateStr,Varname, Data, Count, Outcount, Status )
481   IMPLICIT NONE
482   INTEGER ,       INTENT(IN)  :: DataHandle
483   CHARACTER*(*) , INTENT(IN)  :: Element
484   CHARACTER*(*) , INTENT(IN)  :: DateStr
485   CHARACTER*(*) , INTENT(IN)  :: VarName 
486   real ,            INTENT(OUT) :: Data(*)
487   INTEGER ,       INTENT(IN)  :: Count
488   INTEGER ,       INTENT(OUT)  :: OutCount
489   INTEGER ,       INTENT(OUT) :: Status
490 RETURN
491 END SUBROUTINE ext_xxx_get_var_td_real 
493 !--- put_var_td_real
494 SUBROUTINE ext_xxx_put_var_td_real ( DataHandle,Element,  DateStr,Varname, Data, Count,  Status )
495   IMPLICIT NONE
496   INTEGER ,       INTENT(IN)  :: DataHandle
497   CHARACTER*(*) , INTENT(IN)  :: Element
498   CHARACTER*(*) , INTENT(IN)  :: DateStr
499   CHARACTER*(*) , INTENT(IN)  :: VarName 
500   real ,            INTENT(IN) :: Data(*)
501   INTEGER ,       INTENT(IN)  :: Count
502   INTEGER ,       INTENT(OUT) :: Status
503 RETURN
504 END SUBROUTINE ext_xxx_put_var_td_real 
506 !--- get_var_td_double
507 SUBROUTINE ext_xxx_get_var_td_double ( DataHandle,Element,  DateStr,Varname, Data, Count, Outcount, Status )
508   IMPLICIT NONE
509   INTEGER ,       INTENT(IN)  :: DataHandle
510   CHARACTER*(*) , INTENT(IN)  :: Element
511   CHARACTER*(*) , INTENT(IN)  :: DateStr
512   CHARACTER*(*) , INTENT(IN)  :: VarName 
513   real*8 ,            INTENT(OUT) :: Data(*)
514   INTEGER ,       INTENT(IN)  :: Count
515   INTEGER ,       INTENT(OUT)  :: OutCount
516   INTEGER ,       INTENT(OUT) :: Status
517 RETURN
518 END SUBROUTINE ext_xxx_get_var_td_double 
520 !--- put_var_td_double
521 SUBROUTINE ext_xxx_put_var_td_double ( DataHandle,Element,  DateStr,Varname, Data, Count,  Status )
522   IMPLICIT NONE
523   INTEGER ,       INTENT(IN)  :: DataHandle
524   CHARACTER*(*) , INTENT(IN)  :: Element
525   CHARACTER*(*) , INTENT(IN)  :: DateStr
526   CHARACTER*(*) , INTENT(IN)  :: VarName 
527   real*8 ,            INTENT(IN) :: Data(*)
528   INTEGER ,       INTENT(IN)  :: Count
529   INTEGER ,       INTENT(OUT) :: Status
530 RETURN
531 END SUBROUTINE ext_xxx_put_var_td_double 
533 !--- get_var_td_integer
534 SUBROUTINE ext_xxx_get_var_td_integer ( DataHandle,Element,  DateStr,Varname, Data, Count, Outcount, Status )
535   IMPLICIT NONE
536   INTEGER ,       INTENT(IN)  :: DataHandle
537   CHARACTER*(*) , INTENT(IN)  :: Element
538   CHARACTER*(*) , INTENT(IN)  :: DateStr
539   CHARACTER*(*) , INTENT(IN)  :: VarName 
540   integer ,            INTENT(OUT) :: Data(*)
541   INTEGER ,       INTENT(IN)  :: Count
542   INTEGER ,       INTENT(OUT)  :: OutCount
543   INTEGER ,       INTENT(OUT) :: Status
544 RETURN
545 END SUBROUTINE ext_xxx_get_var_td_integer 
547 !--- put_var_td_integer
548 SUBROUTINE ext_xxx_put_var_td_integer ( DataHandle,Element,  DateStr,Varname, Data, Count,  Status )
549   IMPLICIT NONE
550   INTEGER ,       INTENT(IN)  :: DataHandle
551   CHARACTER*(*) , INTENT(IN)  :: Element
552   CHARACTER*(*) , INTENT(IN)  :: DateStr
553   CHARACTER*(*) , INTENT(IN)  :: VarName 
554   integer ,            INTENT(IN) :: Data(*)
555   INTEGER ,       INTENT(IN)  :: Count
556   INTEGER ,       INTENT(OUT) :: Status
557 RETURN
558 END SUBROUTINE ext_xxx_put_var_td_integer 
560 !--- get_var_td_logical
561 SUBROUTINE ext_xxx_get_var_td_logical ( DataHandle,Element,  DateStr,Varname, Data, Count, Outcount, Status )
562   IMPLICIT NONE
563   INTEGER ,       INTENT(IN)  :: DataHandle
564   CHARACTER*(*) , INTENT(IN)  :: Element
565   CHARACTER*(*) , INTENT(IN)  :: DateStr
566   CHARACTER*(*) , INTENT(IN)  :: VarName 
567   logical ,            INTENT(OUT) :: Data(*)
568   INTEGER ,       INTENT(IN)  :: Count
569   INTEGER ,       INTENT(OUT)  :: OutCount
570   INTEGER ,       INTENT(OUT) :: Status
571 RETURN
572 END SUBROUTINE ext_xxx_get_var_td_logical 
574 !--- put_var_td_logical
575 SUBROUTINE ext_xxx_put_var_td_logical ( DataHandle,Element,  DateStr,Varname, Data, Count,  Status )
576   IMPLICIT NONE
577   INTEGER ,       INTENT(IN)  :: DataHandle
578   CHARACTER*(*) , INTENT(IN)  :: Element
579   CHARACTER*(*) , INTENT(IN)  :: DateStr
580   CHARACTER*(*) , INTENT(IN)  :: VarName 
581   logical ,            INTENT(IN) :: Data(*)
582   INTEGER ,       INTENT(IN)  :: Count
583   INTEGER ,       INTENT(OUT) :: Status
584 RETURN
585 END SUBROUTINE ext_xxx_put_var_td_logical 
587 !--- get_var_td_char
588 SUBROUTINE ext_xxx_get_var_td_char ( DataHandle,Element,  DateStr,Varname, Data,  Status )
589   IMPLICIT NONE
590   INTEGER ,       INTENT(IN)  :: DataHandle
591   CHARACTER*(*) , INTENT(IN)  :: Element
592   CHARACTER*(*) , INTENT(IN)  :: DateStr
593   CHARACTER*(*) , INTENT(IN)  :: VarName 
594   CHARACTER*(*) , INTENT(OUT) :: Data
595   INTEGER ,       INTENT(OUT) :: Status
596 RETURN
597 END SUBROUTINE ext_xxx_get_var_td_char 
599 !--- put_var_td_char
600 SUBROUTINE ext_xxx_put_var_td_char ( DataHandle,Element,  DateStr,Varname, Data,  Status )
601   IMPLICIT NONE
602   INTEGER ,       INTENT(IN)  :: DataHandle
603   CHARACTER*(*) , INTENT(IN)  :: Element
604   CHARACTER*(*) , INTENT(IN)  :: DateStr
605   CHARACTER*(*) , INTENT(IN)  :: VarName 
606   CHARACTER*(*) , INTENT(IN) :: Data
607   INTEGER ,       INTENT(OUT) :: Status
608 RETURN
609 END SUBROUTINE ext_xxx_put_var_td_char 
611 !--- read_field
612 SUBROUTINE ext_xxx_read_field ( DataHandle , DateStr , VarName , Field , FieldType , Comm , IOComm &
613                             DomainDesc , MemoryOrder , Stagger , DimNames ,              &
614                             DomainStart , DomainEnd ,                                    &
615                             MemoryStart , MemoryEnd ,                                    &
616                             PatchStart , PatchEnd ,                                      &
617                             Status )
618   IMPLICIT NONE
619   INTEGER ,       INTENT(IN)    :: DataHandle 
620   CHARACTER*(*) , INTENT(INOUT) :: DateStr
621   CHARACTER*(*) , INTENT(INOUT) :: VarName
622   INTEGER ,       INTENT(INOUT) :: Field(*)
623   integer                       ,intent(in)    :: FieldType
624   integer                       ,intent(inout) :: Comm
625   integer                       ,intent(inout) :: IOComm
626   integer                       ,intent(in)    :: DomainDesc
627   character*(*)                 ,intent(in)    :: MemoryOrder
628   character*(*)                 ,intent(in)    :: Stagger
629   character*(*) , dimension (*) ,intent(in)    :: DimNames
630   integer ,dimension(*)         ,intent(in)    :: DomainStart, DomainEnd
631   integer ,dimension(*)         ,intent(in)    :: MemoryStart, MemoryEnd
632   integer ,dimension(*)         ,intent(in)    :: PatchStart,  PatchEnd
633   integer                       ,intent(out)   :: Status
634 RETURN
635 END SUBROUTINE ext_xxx_read_field
637 !--- write_field
638 SUBROUTINE ext_xxx_write_field ( DataHandle , DateStr , VarName , Field , FieldType , Comm , IOComm , &
639                              DomainDesc , MemoryOrder , Stagger , DimNames ,              &
640                              DomainStart , DomainEnd ,                                    &
641                              MemoryStart , MemoryEnd ,                                    &
642                              PatchStart , PatchEnd ,                                      &
643                              Status )
644   IMPLICIT NONE
645   INTEGER ,       INTENT(IN)    :: DataHandle 
646   CHARACTER*(*) , INTENT(IN)    :: DateStr
647   CHARACTER*(*) , INTENT(IN)    :: VarName
648   INTEGER ,       INTENT(IN)    :: Field(*)
649   integer                       ,intent(in)    :: FieldType
650   integer                       ,intent(inout) :: Comm
651   integer                       ,intent(inout) :: IOComm
652   integer                       ,intent(in)    :: DomainDesc
653   character*(*)                 ,intent(in)    :: MemoryOrder
654   character*(*)                 ,intent(in)    :: Stagger
655   character*(*) , dimension (*) ,intent(in)    :: DimNames
656   integer ,dimension(*)         ,intent(in)    :: DomainStart, DomainEnd
657   integer ,dimension(*)         ,intent(in)    :: MemoryStart, MemoryEnd
658   integer ,dimension(*)         ,intent(in)    :: PatchStart,  PatchEnd
659   integer                       ,intent(out)   :: Status
660 RETURN
661 END SUBROUTINE ext_xxx_write_field
663 !--- get_var_info  (not implemented for IntIO)
664 SUBROUTINE ext_xxx_get_var_info ( DataHandle , VarName , NDim , MemoryOrder , Stagger , &
665                               DomainStart , DomainEnd , Status )
666   IMPLICIT NONE
667   integer               ,intent(in)     :: DataHandle
668   character*(*)         ,intent(in)     :: VarName
669   integer               ,intent(out)    :: NDim
670   character*(*)         ,intent(out)    :: MemoryOrder
671   character*(*)         ,intent(out)    :: Stagger
672   integer ,dimension(*) ,intent(out)    :: DomainStart, DomainEnd
673   integer               ,intent(out)    :: Status
674 RETURN
675 END SUBROUTINE ext_xxx_get_var_info
678 !--- end_of_frame
679 SUBROUTINE ext_xxx_end_of_frame(DataHandle, Status)
680   IMPLICIT NONE
681   INTEGER, INTENT(IN)  :: DataHandle
682   INTEGER, INTENT(OUT) :: Status
683 RETURN
684 END SUBROUTINE ext_xxx_end_of_frame
687 !--- error_str
688 SUBROUTINE ext_xxx_error_str( Code, ReturnString, Status)
689   IMPLICIT NONE
690   INTEGER       , INTENT(IN)  :: Code
691   CHARACTER *(*), INTENT(OUT) :: ReturnString
692   INTEGER       , INTENT(OUT) :: Status
693 RETURN
694 END SUBROUTINE ext_xxx_error_str
697 !--- get_previous_time
698 SUBROUTINE ext_xxx_get_previous_time(DataHandle, DateStr, Status)
699   IMPLICIT NONE
700   INTEGER      , INTENT(IN)  :: DataHandle
701   CHARACTER*(*), INTENT(OUT) :: DateStr
702   INTEGER      , INTENT(OUT) :: Status
703 RETURN
704 END SUBROUTINE ext_xxx_get_previous_time
707 !--- open_for_read_begin
708 SUBROUTINE ext_xxx_open_for_read_begin( FileName, Comm, IOComm, SysDepInfo, DataHandle, Status)
709   IMPLICIT NONE
710   CHARACTER*(*), INTENT(IN)      :: FileName
711   INTEGER      , INTENT(IN)      :: Comm
712   INTEGER      , INTENT(IN)      :: IOComm
713   CHARACTER*(*), INTENT(IN)      :: SysDepInfo
714   INTEGER      , INTENT(OUT)     :: DataHandle
715   INTEGER      , INTENT(OUT)     :: Status
716 RETURN
717 END SUBROUTINE ext_xxx_open_for_read_begin
720 !--- open_for_read_commit
721 SUBROUTINE ext_xxx_open_for_read_commit(DataHandle, Status)
722   IMPLICIT NONE
723   INTEGER, INTENT(IN)  :: DataHandle
724   INTEGER, INTENT(OUT) :: Status
725 RETURN
726 END SUBROUTINE ext_xxx_open_for_read_commit
729 !--- open_for_update
730 SUBROUTINE ext_xxx_open_for_update( FileName, Comm, IOComm, SysDepInfo, DataHandle, Status)
731   IMPLICIT NONE
732   CHARACTER*(*), INTENT(IN)  :: FileName
733   INTEGER      , INTENT(IN)  :: Comm
734   INTEGER      , INTENT(IN)  :: IOComm
735   CHARACTER*(*), INTENT(IN)  :: SysDepInfo
736   INTEGER      , INTENT(OUT) :: DataHandle
737   INTEGER      , INTENT(OUT) :: Status
738 RETURN
739 END SUBROUTINE ext_xxx_open_for_update
742 !--- open_for_write
743 SUBROUTINE ext_xxx_open_for_write (DatasetName, Comm1, Comm2, &
744                                    SysDepInfo, DataHandle, Status)
745   IMPLICIT NONE
746   CHARACTER *(*), INTENT(IN)  :: DatasetName
747   INTEGER       , INTENT(IN)  :: Comm1, Comm2
748   CHARACTER *(*), INTENT(IN)  :: SysDepInfo
749   INTEGER       , INTENT(OUT) :: DataHandle
750   INTEGER       , INTENT(OUT) :: Status
751 RETURN
752 END SUBROUTINE ext_xxx_open_for_write
755 !--- warning_str
756 SUBROUTINE ext_xxx_warning_str( Code, ReturnString, Status)
757   IMPLICIT NONE
758   INTEGER       , INTENT(IN)  :: Code
759   CHARACTER *(*), INTENT(OUT) :: ReturnString
760   INTEGER       , INTENT(OUT) :: Status
761 RETURN
762 END SUBROUTINE ext_xxx_warning_str