Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / arch / md_calls.inc
blob88e0722fbbef06f2f94128c3fe517819e00599df
1 ! This is a non-autogenerated version of md_calls.inc for Windows and other
2 ! versions of OS's that either dont have M4 or whose M4s dont work right.
4 INTERFACE wrf_get_dom_ti_real
5   MODULE PROCEDURE wrf_get_dom_ti_real_arr, wrf_get_dom_ti_real_sca
6 END INTERFACE
9 INTERFACE wrf_put_dom_ti_real
10   MODULE PROCEDURE wrf_put_dom_ti_real_arr, wrf_put_dom_ti_real_sca
11 END INTERFACE
14 INTERFACE wrf_get_dom_ti_double
15   MODULE PROCEDURE wrf_get_dom_ti_double_arr, wrf_get_dom_ti_double_sca
16 END INTERFACE
19 INTERFACE wrf_put_dom_ti_double
20   MODULE PROCEDURE wrf_put_dom_ti_double_arr, wrf_put_dom_ti_double_sca
21 END INTERFACE
24 INTERFACE wrf_get_dom_ti_integer
25   MODULE PROCEDURE wrf_get_dom_ti_integer_arr, wrf_get_dom_ti_integer_sca
26 END INTERFACE
29 INTERFACE wrf_put_dom_ti_integer
30   MODULE PROCEDURE wrf_put_dom_ti_integer_arr, wrf_put_dom_ti_integer_sca
31 END INTERFACE
34 INTERFACE wrf_get_dom_ti_logical
35   MODULE PROCEDURE wrf_get_dom_ti_logical_arr, wrf_get_dom_ti_logical_sca
36 END INTERFACE
39 INTERFACE wrf_put_dom_ti_logical
40   MODULE PROCEDURE wrf_put_dom_ti_logical_arr, wrf_put_dom_ti_logical_sca
41 END INTERFACE
44 INTERFACE wrf_get_dom_ti_char
45   MODULE PROCEDURE wrf_get_dom_ti_char_arr
46 END INTERFACE
49 INTERFACE wrf_put_dom_ti_char
50   MODULE PROCEDURE wrf_put_dom_ti_char_arr
51 END INTERFACE
55 INTERFACE wrf_get_dom_td_real
56   MODULE PROCEDURE wrf_get_dom_td_real_arr, wrf_get_dom_td_real_sca
57 END INTERFACE
60 INTERFACE wrf_put_dom_td_real
61   MODULE PROCEDURE wrf_put_dom_td_real_arr, wrf_put_dom_td_real_sca
62 END INTERFACE
65 INTERFACE wrf_get_dom_td_double
66   MODULE PROCEDURE wrf_get_dom_td_double_arr, wrf_get_dom_td_double_sca
67 END INTERFACE
70 INTERFACE wrf_put_dom_td_double
71   MODULE PROCEDURE wrf_put_dom_td_double_arr, wrf_put_dom_td_double_sca
72 END INTERFACE
75 INTERFACE wrf_get_dom_td_integer
76   MODULE PROCEDURE wrf_get_dom_td_integer_arr, wrf_get_dom_td_integer_sca
77 END INTERFACE
80 INTERFACE wrf_put_dom_td_integer
81   MODULE PROCEDURE wrf_put_dom_td_integer_arr, wrf_put_dom_td_integer_sca
82 END INTERFACE
85 INTERFACE wrf_get_dom_td_logical
86   MODULE PROCEDURE wrf_get_dom_td_logical_arr, wrf_get_dom_td_logical_sca
87 END INTERFACE
90 INTERFACE wrf_put_dom_td_logical
91   MODULE PROCEDURE wrf_put_dom_td_logical_arr, wrf_put_dom_td_logical_sca
92 END INTERFACE
95 INTERFACE wrf_get_dom_td_char
96   MODULE PROCEDURE wrf_get_dom_td_char_arr
97 END INTERFACE
100 INTERFACE wrf_put_dom_td_char
101   MODULE PROCEDURE wrf_put_dom_td_char_arr
102 END INTERFACE
106 INTERFACE wrf_get_var_ti_real
107   MODULE PROCEDURE wrf_get_var_ti_real_arr, wrf_get_var_ti_real_sca
108 END INTERFACE
111 INTERFACE wrf_put_var_ti_real
112   MODULE PROCEDURE wrf_put_var_ti_real_arr, wrf_put_var_ti_real_sca
113 END INTERFACE
116 INTERFACE wrf_get_var_ti_double
117   MODULE PROCEDURE wrf_get_var_ti_double_arr, wrf_get_var_ti_double_sca
118 END INTERFACE
121 INTERFACE wrf_put_var_ti_double
122   MODULE PROCEDURE wrf_put_var_ti_double_arr, wrf_put_var_ti_double_sca
123 END INTERFACE
126 INTERFACE wrf_get_var_ti_integer
127   MODULE PROCEDURE wrf_get_var_ti_integer_arr, wrf_get_var_ti_integer_sca
128 END INTERFACE
131 INTERFACE wrf_put_var_ti_integer
132   MODULE PROCEDURE wrf_put_var_ti_integer_arr, wrf_put_var_ti_integer_sca
133 END INTERFACE
136 INTERFACE wrf_get_var_ti_logical
137   MODULE PROCEDURE wrf_get_var_ti_logical_arr, wrf_get_var_ti_logical_sca
138 END INTERFACE
141 INTERFACE wrf_put_var_ti_logical
142   MODULE PROCEDURE wrf_put_var_ti_logical_arr, wrf_put_var_ti_logical_sca
143 END INTERFACE
146 INTERFACE wrf_get_var_ti_char
147   MODULE PROCEDURE wrf_get_var_ti_char_arr
148 END INTERFACE
151 INTERFACE wrf_put_var_ti_char
152   MODULE PROCEDURE wrf_put_var_ti_char_arr
153 END INTERFACE
157 INTERFACE wrf_get_var_td_real
158   MODULE PROCEDURE wrf_get_var_td_real_arr, wrf_get_var_td_real_sca
159 END INTERFACE
162 INTERFACE wrf_put_var_td_real
163   MODULE PROCEDURE wrf_put_var_td_real_arr, wrf_put_var_td_real_sca
164 END INTERFACE
167 INTERFACE wrf_get_var_td_double
168   MODULE PROCEDURE wrf_get_var_td_double_arr, wrf_get_var_td_double_sca
169 END INTERFACE
172 INTERFACE wrf_put_var_td_double
173   MODULE PROCEDURE wrf_put_var_td_double_arr, wrf_put_var_td_double_sca
174 END INTERFACE
177 INTERFACE wrf_get_var_td_integer
178   MODULE PROCEDURE wrf_get_var_td_integer_arr, wrf_get_var_td_integer_sca
179 END INTERFACE
182 INTERFACE wrf_put_var_td_integer
183   MODULE PROCEDURE wrf_put_var_td_integer_arr, wrf_put_var_td_integer_sca
184 END INTERFACE
187 INTERFACE wrf_get_var_td_logical
188   MODULE PROCEDURE wrf_get_var_td_logical_arr, wrf_get_var_td_logical_sca
189 END INTERFACE
192 INTERFACE wrf_put_var_td_logical
193   MODULE PROCEDURE wrf_put_var_td_logical_arr, wrf_put_var_td_logical_sca
194 END INTERFACE
197 INTERFACE wrf_get_var_td_char
198   MODULE PROCEDURE wrf_get_var_td_char_arr
199 END INTERFACE
202 INTERFACE wrf_put_var_td_char
203   MODULE PROCEDURE wrf_put_var_td_char_arr
204 END INTERFACE
208 CONTAINS
210 !--- get_dom_ti_real
212 SUBROUTINE wrf_get_dom_ti_real_arr ( DataHandle,Element,   Data, Count, Outcount, Status )
213 !<DESCRIPTION>
214 !<PRE>
216 ! Attempt to read Count words of time independent
217 ! domain metadata named "Element"  
218 ! from the open dataset described by DataHandle.  
219 ! Metadata of type real are
220 ! stored in array Data.
221 ! Actual number of words read is returned in OutCount.
223 !</PRE>
224 !</DESCRIPTION>
225 USE module_state_description
226 IMPLICIT NONE
227 INTEGER ,       INTENT(IN)  :: DataHandle
228 CHARACTER*(*) , INTENT(IN)  :: Element
232  real  :: Data (*)
234 INTEGER ,       INTENT(IN)  :: Count
235 INTEGER ,       INTENT(OUT)  :: OutCount
236 INTEGER ,       INTENT(OUT) :: Status
238 #include "wrf_status_codes.h"
239 INTEGER                     :: len_of_str
240 LOGICAL                     :: for_out
241 INTEGER, EXTERNAL           :: use_package
242 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
243 INTEGER                     :: locCount
245 INTEGER io_form , Hndl
247 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_real_arr " )
250 locCount = Count
253 Status = 0
254 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
255 IF ( Hndl .GT. -1 ) THEN
256   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
257     SELECT CASE ( use_package( io_form ) )
258 #ifdef NETCDF
259       CASE ( IO_NETCDF   )
260         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
261 #  if ( RWORDSIZE == DWORDSIZE )
262            CALL ext_ncd_get_dom_ti_double ( Hndl, Element,   Data, &
263                                  locCount, Outcount, Status )
264 #  else
265            CALL ext_ncd_get_dom_ti_real ( Hndl, Element,   Data, &
266                                  locCount, Outcount, Status )
267 #  endif
268         ENDIF
269         IF ( .NOT. multi_files(io_form) ) THEN
270           
271           
272           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
273           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
274           
275           
276           
277           
278           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
279         ENDIF
280 #endif
281 #ifdef NETCDFPAR
282       CASE ( IO_NETCDFPAR   )
283 #  if ( RWORDSIZE == DWORDSIZE )
284         CALL ext_ncdpar_get_dom_ti_double ( Hndl, Element,   Data, &
285                               locCount, Outcount, Status )
286 #  else
287         CALL ext_ncdpar_get_dom_ti_real ( Hndl, Element,   Data, &
288                               locCount, Outcount, Status )
289 #  endif
290 #endif
292 #ifdef PNETCDF
293       CASE ( IO_PNETCDF   )
294 #  if ( RWORDSIZE == DWORDSIZE )
295         CALL ext_pnc_get_dom_ti_double ( Hndl, Element,   Data, &
296                               locCount, Outcount, Status )
297 #  else
298         CALL ext_pnc_get_dom_ti_real ( Hndl, Element,   Data, &
299                               locCount, Outcount, Status )
300 #  endif
301 #endif
302 #ifdef PHDF5
303       CASE ( IO_PHDF5   )
304 #  if ( RWORDSIZE == DWORDSIZE )
305         CALL ext_phdf5_get_dom_ti_double ( Hndl, Element,   Data, &
306                               locCount, Outcount, Status )
307 #  else
308         CALL ext_phdf5_get_dom_ti_real ( Hndl, Element,   Data, &
309                               locCount, Outcount, Status )
310 #  endif
311 #endif
312 #ifdef ESMFIO
313       CASE ( IO_ESMF )
314 #  if ( RWORDSIZE == DWORDSIZE )
315         CALL ext_esmf_get_dom_ti_double ( Hndl, Element,   Data, &
316                               locCount, Outcount, Status )
317 #  else
318         CALL ext_esmf_get_dom_ti_real ( Hndl, Element,   Data, &
319                               locCount, Outcount, Status )
320 #  endif
321 #endif
322 #ifdef XXX
323       CASE ( IO_XXX   )
324 #  if ( RWORDSIZE == DWORDSIZE )
325         CALL ext_xxx_get_dom_ti_double ( Hndl, Element,   Data, &
326                               locCount, Outcount, Status )
327 #  else
328         CALL ext_xxx_get_dom_ti_real ( Hndl, Element,   Data, &
329                               locCount, Outcount, Status )
330 #  endif
331 #endif
332 #ifdef YYY
333       CASE ( IO_YYY   )
334 #  if ( RWORDSIZE == DWORDSIZE )
335         CALL ext_yyy_get_dom_ti_double ( Hndl, Element,   Data, &
336                               locCount, Outcount, Status )
337 #  else
338         CALL ext_yyy_get_dom_ti_real ( Hndl, Element,   Data, &
339                               locCount, Outcount, Status )
340 #  endif
341 #endif
342 #ifdef GRIB1
343       CASE ( IO_GRIB1   )
344         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
345 #  if ( RWORDSIZE == DWORDSIZE )
346            CALL ext_gr1_get_dom_ti_double ( Hndl, Element,   Data, &
347                                  locCount, Outcount, Status )
348 #  else
349            CALL ext_gr1_get_dom_ti_real ( Hndl, Element,   Data, &
350                                  locCount, Outcount, Status )
351 #  endif
352         ENDIF
353         IF ( .NOT. multi_files(io_form) ) THEN
354           
355           
356           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
357           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
358           
359           
360           
361           
362           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
363         ENDIF
364 #endif
365 #ifdef GRIB2
366       CASE ( IO_GRIB2   )
367         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
368 #  if ( RWORDSIZE == DWORDSIZE )
369            CALL ext_gr2_get_dom_ti_double ( Hndl, Element,   Data, &
370                                  locCount, Outcount, Status )
371 #  else
372            CALL ext_gr2_get_dom_ti_real ( Hndl, Element,   Data, &
373                                  locCount, Outcount, Status )
374 #  endif
375         ENDIF
376         IF ( .NOT. multi_files(io_form) ) THEN
377           
378           
379           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
380           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
381           
382           
383           
384           
385           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
386         ENDIF
387 #endif
388 #ifdef INTIO
389       CASE ( IO_INTIO   )
390         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
391 #  if ( RWORDSIZE == DWORDSIZE )
392            CALL ext_int_get_dom_ti_double ( Hndl, Element,   Data, &
393                                  locCount, Outcount, Status )
394 #  else
395            CALL ext_int_get_dom_ti_real ( Hndl, Element,   Data, &
396                                  locCount, Outcount, Status )
397 #  endif
398         ENDIF
399         IF ( .NOT. multi_files(io_form) ) THEN
400            
401            
402            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
403            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
404            
405            
406            
407            
408            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
409         ENDIF
410 #endif
411       CASE DEFAULT
412     END SELECT
413   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
414     CALL wrf_quilt_get_dom_ti_real ( Hndl, Element,   Data, &
415                           locCount, Outcount, Status )
416   ELSE
417     Status = 0
418 ENDIF
419 ELSE
420   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
421 ENDIF
422 RETURN
423 END SUBROUTINE wrf_get_dom_ti_real_arr 
424 !--- get_dom_ti_real
426 SUBROUTINE wrf_get_dom_ti_real_sca ( DataHandle,Element,   Data, Count, Outcount, Status )
427 !<DESCRIPTION>
428 !<PRE>
430 ! Attempt to read time independent
431 ! domain metadata named "Element"  
432 ! from the open dataset described by DataHandle.  
433 ! Metadata of type real are
434 ! stored in scalar Data.
437 !</PRE>
438 !</DESCRIPTION>
439 USE module_state_description
440 IMPLICIT NONE
441 INTEGER ,       INTENT(IN)  :: DataHandle
442 CHARACTER*(*) , INTENT(IN)  :: Element
446  real  :: Data 
448 INTEGER ,       INTENT(IN)  :: Count
449 INTEGER ,       INTENT(OUT)  :: OutCount
450 INTEGER ,       INTENT(OUT) :: Status
452 #include "wrf_status_codes.h"
453 INTEGER                     :: len_of_str
454 LOGICAL                     :: for_out
455 INTEGER, EXTERNAL           :: use_package
456 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
457 INTEGER                     :: locCount
459 INTEGER io_form , Hndl
461 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_real_sca " )
464 locCount = Count
467 Status = 0
468 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
469 IF ( Hndl .GT. -1 ) THEN
470   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
471     SELECT CASE ( use_package( io_form ) )
472 #ifdef NETCDF
473       CASE ( IO_NETCDF   )
474         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
475 #  if ( RWORDSIZE == DWORDSIZE )
476            CALL ext_ncd_get_dom_ti_double ( Hndl, Element,   Data, &
477                                  locCount, Outcount, Status )
478 #  else
479            CALL ext_ncd_get_dom_ti_real ( Hndl, Element,   Data, &
480                                  locCount, Outcount, Status )
481 #  endif
482         ENDIF
483         IF ( .NOT. multi_files(io_form) ) THEN
484           
485           
486           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
487           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
488           
489           
490           
491           
492           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
493         ENDIF
494 #endif
495 #ifdef NETCDFPAR
496       CASE ( IO_NETCDFPAR   )
497 #  if ( RWORDSIZE == DWORDSIZE )
498         CALL ext_ncdpar_get_dom_ti_double ( Hndl, Element,   Data, &
499                               locCount, Outcount, Status )
500 #  else
501         CALL ext_ncdpar_get_dom_ti_real ( Hndl, Element,   Data, &
502                               locCount, Outcount, Status )
503 #  endif
504 #endif
506 #ifdef PNETCDF
507       CASE ( IO_PNETCDF   )
508 #  if ( RWORDSIZE == DWORDSIZE )
509         CALL ext_pnc_get_dom_ti_double ( Hndl, Element,   Data, &
510                               locCount, Outcount, Status )
511 #  else
512         CALL ext_pnc_get_dom_ti_real ( Hndl, Element,   Data, &
513                               locCount, Outcount, Status )
514 #  endif
515 #endif
516 #ifdef PHDF5
517       CASE ( IO_PHDF5   )
518 #  if ( RWORDSIZE == DWORDSIZE )
519         CALL ext_phdf5_get_dom_ti_double ( Hndl, Element,   Data, &
520                               locCount, Outcount, Status )
521 #  else
522         CALL ext_phdf5_get_dom_ti_real ( Hndl, Element,   Data, &
523                               locCount, Outcount, Status )
524 #  endif
525 #endif
526 #ifdef ESMFIO
527       CASE ( IO_ESMF )
528 #  if ( RWORDSIZE == DWORDSIZE )
529         CALL ext_esmf_get_dom_ti_double ( Hndl, Element,   Data, &
530                               locCount, Outcount, Status )
531 #  else
532         CALL ext_esmf_get_dom_ti_real ( Hndl, Element,   Data, &
533                               locCount, Outcount, Status )
534 #  endif
535 #endif
536 #ifdef XXX
537       CASE ( IO_XXX   )
538 #  if ( RWORDSIZE == DWORDSIZE )
539         CALL ext_xxx_get_dom_ti_double ( Hndl, Element,   Data, &
540                               locCount, Outcount, Status )
541 #  else
542         CALL ext_xxx_get_dom_ti_real ( Hndl, Element,   Data, &
543                               locCount, Outcount, Status )
544 #  endif
545 #endif
546 #ifdef YYY
547       CASE ( IO_YYY   )
548 #  if ( RWORDSIZE == DWORDSIZE )
549         CALL ext_yyy_get_dom_ti_double ( Hndl, Element,   Data, &
550                               locCount, Outcount, Status )
551 #  else
552         CALL ext_yyy_get_dom_ti_real ( Hndl, Element,   Data, &
553                               locCount, Outcount, Status )
554 #  endif
555 #endif
556 #ifdef GRIB1
557       CASE ( IO_GRIB1   )
558         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
559 #  if ( RWORDSIZE == DWORDSIZE )
560            CALL ext_gr1_get_dom_ti_double ( Hndl, Element,   Data, &
561                                  locCount, Outcount, Status )
562 #  else
563            CALL ext_gr1_get_dom_ti_real ( Hndl, Element,   Data, &
564                                  locCount, Outcount, Status )
565 #  endif
566         ENDIF
567         IF ( .NOT. multi_files(io_form) ) THEN
568           
569           
570           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
571           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
572           
573           
574           
575           
576           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
577         ENDIF
578 #endif
579 #ifdef GRIB2
580       CASE ( IO_GRIB2   )
581         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
582 #  if ( RWORDSIZE == DWORDSIZE )
583            CALL ext_gr2_get_dom_ti_double ( Hndl, Element,   Data, &
584                                  locCount, Outcount, Status )
585 #  else
586            CALL ext_gr2_get_dom_ti_real ( Hndl, Element,   Data, &
587                                  locCount, Outcount, Status )
588 #  endif
589         ENDIF
590         IF ( .NOT. multi_files(io_form) ) THEN
591           
592           
593           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
594           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
595           
596           
597           
598           
599           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
600         ENDIF
601 #endif
602 #ifdef INTIO
603       CASE ( IO_INTIO   )
604         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
605 #  if ( RWORDSIZE == DWORDSIZE )
606            CALL ext_int_get_dom_ti_double ( Hndl, Element,   Data, &
607                                  locCount, Outcount, Status )
608 #  else
609            CALL ext_int_get_dom_ti_real ( Hndl, Element,   Data, &
610                                  locCount, Outcount, Status )
611 #  endif
612         ENDIF
613         IF ( .NOT. multi_files(io_form) ) THEN
614            
615            
616            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
617            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
618            
619            
620            
621            
622            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
623         ENDIF
624 #endif
625       CASE DEFAULT
626     END SELECT
627   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
628     CALL wrf_quilt_get_dom_ti_real ( Hndl, Element,   Data, &
629                           locCount, Outcount, Status )
630   ELSE
631     Status = 0
632 ENDIF
633 ELSE
634   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
635 ENDIF
636 RETURN
637 END SUBROUTINE wrf_get_dom_ti_real_sca 
640 !--- put_dom_ti_real
642 SUBROUTINE wrf_put_dom_ti_real_arr ( DataHandle,Element,   Data, Count,  Status )
643 !<DESCRIPTION>
644 !<PRE>
646 ! Write Count words of time independent
647 ! domain metadata named "Element"  
648 ! to the open dataset described by DataHandle.  
649 ! Metadata of type real are
650 ! copied from array Data.
653 !</PRE>
654 !</DESCRIPTION>
655 USE module_state_description
656 IMPLICIT NONE
657 INTEGER ,       INTENT(IN)  :: DataHandle
658 CHARACTER*(*) , INTENT(IN)  :: Element
662  real  :: Data (*)
664 INTEGER ,       INTENT(IN)  :: Count
666 INTEGER ,       INTENT(OUT) :: Status
668 #include "wrf_status_codes.h"
669 INTEGER                     :: len_of_str
670 LOGICAL                     :: for_out
671 INTEGER, EXTERNAL           :: use_package
672 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
673 INTEGER                     :: locCount
675 INTEGER io_form , Hndl
677 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_real_arr " )
680 locCount = Count
683 Status = 0
684 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
685 IF ( Hndl .GT. -1 ) THEN
686   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
687     SELECT CASE ( use_package( io_form ) )
688 #ifdef NETCDF
689       CASE ( IO_NETCDF   )
690         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
691 #  if ( RWORDSIZE == DWORDSIZE )
692            CALL ext_ncd_put_dom_ti_double ( Hndl, Element,   Data, &
693                                  locCount,  Status )
694 #  else
695            CALL ext_ncd_put_dom_ti_real ( Hndl, Element,   Data, &
696                                  locCount,  Status )
697 #  endif
698         ENDIF
699         IF ( .NOT. multi_files(io_form) ) THEN
700           
701           
702           
703           
704           
705           
706           
707           
708           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
709         ENDIF
710 #endif
711 #ifdef NETCDFPAR
712       CASE ( IO_NETCDFPAR   )
713 #  if ( RWORDSIZE == DWORDSIZE )
714         CALL ext_ncdpar_put_dom_ti_double ( Hndl, Element,   Data, &
715                               locCount,  Status )
716 #  else
717         CALL ext_ncdpar_put_dom_ti_real ( Hndl, Element,   Data, &
718                               locCount,  Status )
719 #  endif
720 #endif
722 #ifdef PNETCDF
723       CASE ( IO_PNETCDF   )
724 #  if ( RWORDSIZE == DWORDSIZE )
725         CALL ext_pnc_put_dom_ti_double ( Hndl, Element,   Data, &
726                               locCount,  Status )
727 #  else
728         CALL ext_pnc_put_dom_ti_real ( Hndl, Element,   Data, &
729                               locCount,  Status )
730 #  endif
731 #endif
732 #ifdef PHDF5
733       CASE ( IO_PHDF5   )
734 #  if ( RWORDSIZE == DWORDSIZE )
735         CALL ext_phdf5_put_dom_ti_double ( Hndl, Element,   Data, &
736                               locCount,  Status )
737 #  else
738         CALL ext_phdf5_put_dom_ti_real ( Hndl, Element,   Data, &
739                               locCount,  Status )
740 #  endif
741 #endif
742 #ifdef ESMFIO
743       CASE ( IO_ESMF )
744 #  if ( RWORDSIZE == DWORDSIZE )
745         CALL ext_esmf_put_dom_ti_double ( Hndl, Element,   Data, &
746                               locCount,  Status )
747 #  else
748         CALL ext_esmf_put_dom_ti_real ( Hndl, Element,   Data, &
749                               locCount,  Status )
750 #  endif
751 #endif
752 #ifdef XXX
753       CASE ( IO_XXX   )
754 #  if ( RWORDSIZE == DWORDSIZE )
755         CALL ext_xxx_put_dom_ti_double ( Hndl, Element,   Data, &
756                               locCount,  Status )
757 #  else
758         CALL ext_xxx_put_dom_ti_real ( Hndl, Element,   Data, &
759                               locCount,  Status )
760 #  endif
761 #endif
762 #ifdef YYY
763       CASE ( IO_YYY   )
764 #  if ( RWORDSIZE == DWORDSIZE )
765         CALL ext_yyy_put_dom_ti_double ( Hndl, Element,   Data, &
766                               locCount,  Status )
767 #  else
768         CALL ext_yyy_put_dom_ti_real ( Hndl, Element,   Data, &
769                               locCount,  Status )
770 #  endif
771 #endif
772 #ifdef GRIB1
773       CASE ( IO_GRIB1   )
774         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
775 #  if ( RWORDSIZE == DWORDSIZE )
776            CALL ext_gr1_put_dom_ti_double ( Hndl, Element,   Data, &
777                                  locCount,  Status )
778 #  else
779            CALL ext_gr1_put_dom_ti_real ( Hndl, Element,   Data, &
780                                  locCount,  Status )
781 #  endif
782         ENDIF
783         IF ( .NOT. multi_files(io_form) ) THEN
784           
785           
786           
787           
788           
789           
790           
791           
792           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
793         ENDIF
794 #endif
795 #ifdef GRIB2
796       CASE ( IO_GRIB2   )
797         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
798 #  if ( RWORDSIZE == DWORDSIZE )
799            CALL ext_gr2_put_dom_ti_double ( Hndl, Element,   Data, &
800                                  locCount,  Status )
801 #  else
802            CALL ext_gr2_put_dom_ti_real ( Hndl, Element,   Data, &
803                                  locCount,  Status )
804 #  endif
805         ENDIF
806         IF ( .NOT. multi_files(io_form) ) THEN
807           
808           
809           
810           
811           
812           
813           
814           
815           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
816         ENDIF
817 #endif
818 #ifdef INTIO
819       CASE ( IO_INTIO   )
820         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
821 #  if ( RWORDSIZE == DWORDSIZE )
822            CALL ext_int_put_dom_ti_double ( Hndl, Element,   Data, &
823                                  locCount,  Status )
824 #  else
825            CALL ext_int_put_dom_ti_real ( Hndl, Element,   Data, &
826                                  locCount,  Status )
827 #  endif
828         ENDIF
829         IF ( .NOT. multi_files(io_form) ) THEN
830            
831            
832            
833            
834            
835            
836            
837            
838            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
839         ENDIF
840 #endif
841       CASE DEFAULT
842     END SELECT
843   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
844     CALL wrf_quilt_put_dom_ti_real ( Hndl, Element,   Data, &
845                           locCount,  Status )
846   ELSE
847     Status = 0
848 ENDIF
849 ELSE
850   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
851 ENDIF
852 RETURN
853 END SUBROUTINE wrf_put_dom_ti_real_arr 
854 !--- put_dom_ti_real
856 SUBROUTINE wrf_put_dom_ti_real_sca ( DataHandle,Element,   Data, Count,  Status )
857 !<DESCRIPTION>
858 !<PRE>
860 ! Write time independent
861 ! domain metadata named "Element"  
862 ! to the open dataset described by DataHandle.  
863 ! Metadata of type real are
864 ! copied from scalar Data.
867 !</PRE>
868 !</DESCRIPTION>
869 USE module_state_description
870 IMPLICIT NONE
871 INTEGER ,       INTENT(IN)  :: DataHandle
872 CHARACTER*(*) , INTENT(IN)  :: Element
876  real  :: Data 
878 INTEGER ,       INTENT(IN)  :: Count
880 INTEGER ,       INTENT(OUT) :: Status
882 #include "wrf_status_codes.h"
883 INTEGER                     :: len_of_str
884 LOGICAL                     :: for_out
885 INTEGER, EXTERNAL           :: use_package
886 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
887 INTEGER                     :: locCount
889 INTEGER io_form , Hndl
891 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_real_sca " )
894 locCount = Count
897 Status = 0
898 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
899 IF ( Hndl .GT. -1 ) THEN
900   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
901     SELECT CASE ( use_package( io_form ) )
902 #ifdef NETCDF
903       CASE ( IO_NETCDF   )
904         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
905 #  if ( RWORDSIZE == DWORDSIZE )
906            CALL ext_ncd_put_dom_ti_double ( Hndl, Element,   Data, &
907                                  locCount,  Status )
908 #  else
909            CALL ext_ncd_put_dom_ti_real ( Hndl, Element,   Data, &
910                                  locCount,  Status )
911 #  endif
912         ENDIF
913         IF ( .NOT. multi_files(io_form) ) THEN
914           
915           
916           
917           
918           
919           
920           
921           
922           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
923         ENDIF
924 #endif
925 #ifdef NETCDFPAR
926       CASE ( IO_NETCDFPAR   )
927 #  if ( RWORDSIZE == DWORDSIZE )
928         CALL ext_ncdpar_put_dom_ti_double ( Hndl, Element,   Data, &
929                               locCount,  Status )
930 #  else
931         CALL ext_ncdpar_put_dom_ti_real ( Hndl, Element,   Data, &
932                               locCount,  Status )
933 #  endif
934 #endif
936 #ifdef PNETCDF
937       CASE ( IO_PNETCDF   )
938 #  if ( RWORDSIZE == DWORDSIZE )
939         CALL ext_pnc_put_dom_ti_double ( Hndl, Element,   Data, &
940                               locCount,  Status )
941 #  else
942         CALL ext_pnc_put_dom_ti_real ( Hndl, Element,   Data, &
943                               locCount,  Status )
944 #  endif
945 #endif
946 #ifdef PHDF5
947       CASE ( IO_PHDF5   )
948 #  if ( RWORDSIZE == DWORDSIZE )
949         CALL ext_phdf5_put_dom_ti_double ( Hndl, Element,   Data, &
950                               locCount,  Status )
951 #  else
952         CALL ext_phdf5_put_dom_ti_real ( Hndl, Element,   Data, &
953                               locCount,  Status )
954 #  endif
955 #endif
956 #ifdef ESMFIO
957       CASE ( IO_ESMF )
958 #  if ( RWORDSIZE == DWORDSIZE )
959         CALL ext_esmf_put_dom_ti_double ( Hndl, Element,   Data, &
960                               locCount,  Status )
961 #  else
962         CALL ext_esmf_put_dom_ti_real ( Hndl, Element,   Data, &
963                               locCount,  Status )
964 #  endif
965 #endif
966 #ifdef XXX
967       CASE ( IO_XXX   )
968 #  if ( RWORDSIZE == DWORDSIZE )
969         CALL ext_xxx_put_dom_ti_double ( Hndl, Element,   Data, &
970                               locCount,  Status )
971 #  else
972         CALL ext_xxx_put_dom_ti_real ( Hndl, Element,   Data, &
973                               locCount,  Status )
974 #  endif
975 #endif
976 #ifdef YYY
977       CASE ( IO_YYY   )
978 #  if ( RWORDSIZE == DWORDSIZE )
979         CALL ext_yyy_put_dom_ti_double ( Hndl, Element,   Data, &
980                               locCount,  Status )
981 #  else
982         CALL ext_yyy_put_dom_ti_real ( Hndl, Element,   Data, &
983                               locCount,  Status )
984 #  endif
985 #endif
986 #ifdef GRIB1
987       CASE ( IO_GRIB1   )
988         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
989 #  if ( RWORDSIZE == DWORDSIZE )
990            CALL ext_gr1_put_dom_ti_double ( Hndl, Element,   Data, &
991                                  locCount,  Status )
992 #  else
993            CALL ext_gr1_put_dom_ti_real ( Hndl, Element,   Data, &
994                                  locCount,  Status )
995 #  endif
996         ENDIF
997         IF ( .NOT. multi_files(io_form) ) THEN
998           
999           
1000           
1001           
1002           
1003           
1004           
1005           
1006           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1007         ENDIF
1008 #endif
1009 #ifdef GRIB2
1010       CASE ( IO_GRIB2   )
1011         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1012 #  if ( RWORDSIZE == DWORDSIZE )
1013            CALL ext_gr2_put_dom_ti_double ( Hndl, Element,   Data, &
1014                                  locCount,  Status )
1015 #  else
1016            CALL ext_gr2_put_dom_ti_real ( Hndl, Element,   Data, &
1017                                  locCount,  Status )
1018 #  endif
1019         ENDIF
1020         IF ( .NOT. multi_files(io_form) ) THEN
1021           
1022           
1023           
1024           
1025           
1026           
1027           
1028           
1029           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1030         ENDIF
1031 #endif
1032 #ifdef INTIO
1033       CASE ( IO_INTIO   )
1034         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1035 #  if ( RWORDSIZE == DWORDSIZE )
1036            CALL ext_int_put_dom_ti_double ( Hndl, Element,   Data, &
1037                                  locCount,  Status )
1038 #  else
1039            CALL ext_int_put_dom_ti_real ( Hndl, Element,   Data, &
1040                                  locCount,  Status )
1041 #  endif
1042         ENDIF
1043         IF ( .NOT. multi_files(io_form) ) THEN
1044            
1045            
1046            
1047            
1048            
1049            
1050            
1051            
1052            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1053         ENDIF
1054 #endif
1055       CASE DEFAULT
1056     END SELECT
1057   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
1058     CALL wrf_quilt_put_dom_ti_real ( Hndl, Element,   Data, &
1059                           locCount,  Status )
1060   ELSE
1061     Status = 0
1062 ENDIF
1063 ELSE
1064   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
1065 ENDIF
1066 RETURN
1067 END SUBROUTINE wrf_put_dom_ti_real_sca 
1070 !--- get_dom_ti_double
1072 SUBROUTINE wrf_get_dom_ti_double_arr ( DataHandle,Element,   Data, Count, Outcount, Status )
1073 !<DESCRIPTION>
1074 !<PRE>
1076 ! Attempt to read Count words of time independent
1077 ! domain metadata named "Element"  
1078 ! from the open dataset described by DataHandle.  
1079 ! Metadata of type double are
1080 ! stored in array Data.
1081 ! Actual number of words read is returned in OutCount.
1083 !</PRE>
1084 !</DESCRIPTION>
1085 USE module_state_description
1086 IMPLICIT NONE
1087 INTEGER ,       INTENT(IN)  :: DataHandle
1088 CHARACTER*(*) , INTENT(IN)  :: Element
1092  real*8  :: Data (*)
1094 INTEGER ,       INTENT(IN)  :: Count
1095 INTEGER ,       INTENT(OUT)  :: OutCount
1096 INTEGER ,       INTENT(OUT) :: Status
1098 #include "wrf_status_codes.h"
1099 INTEGER                     :: len_of_str
1100 LOGICAL                     :: for_out
1101 INTEGER, EXTERNAL           :: use_package
1102 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
1103 INTEGER                     :: locCount
1105 INTEGER io_form , Hndl
1107 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_double_arr " )
1113 Status = 0
1114 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
1115 IF ( Hndl .GT. -1 ) THEN
1116   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
1117     SELECT CASE ( use_package( io_form ) )
1118 #ifdef NETCDF
1119       CASE ( IO_NETCDF   )
1120         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1121            CALL ext_ncd_get_dom_ti_double ( Hndl, Element,   Data, &
1122                                  locCount, Outcount, Status ) 
1123         ENDIF
1124         IF ( .NOT. multi_files(io_form) ) THEN
1125           
1126           
1127           
1128           
1129           
1130           
1131           
1132           
1133           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1134         ENDIF
1135 #endif
1136 #ifdef NETCDFPAR
1137       CASE ( IO_NETCDFPAR   )
1138         CALL ext_ncdpar_get_dom_ti_double ( Hndl, Element,   Data, &
1139                               locCount, Outcount, Status ) 
1140 #endif
1142 #ifdef PNETCDF
1143       CASE ( IO_PNETCDF   )
1144         CALL ext_pnc_get_dom_ti_double ( Hndl, Element,   Data, &
1145                               locCount, Outcount, Status ) 
1146 #endif
1147 #ifdef PHDF5
1148       CASE ( IO_PHDF5   )
1149         CALL ext_phdf5_get_dom_ti_double ( Hndl, Element,   Data, &
1150                               locCount, Outcount, Status ) 
1151 #endif
1152 #ifdef ESMFIO
1153       CASE ( IO_ESMF )
1154         CALL ext_esmf_get_dom_ti_double ( Hndl, Element,   Data, &
1155                               locCount, Outcount, Status ) 
1156 #endif
1157 #ifdef XXX
1158       CASE ( IO_XXX   )
1159         CALL ext_xxx_get_dom_ti_double ( Hndl, Element,   Data, &
1160                               locCount, Outcount, Status ) 
1161 #endif
1162 #ifdef YYY
1163       CASE ( IO_YYY   )
1164         CALL ext_yyy_get_dom_ti_double ( Hndl, Element,   Data, &
1165                               locCount, Outcount, Status ) 
1166 #endif
1167 #ifdef GRIB1
1168       CASE ( IO_GRIB1   )
1169         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1170            CALL ext_gr1_get_dom_ti_double ( Hndl, Element,   Data, &
1171                                  locCount, Outcount, Status ) 
1172         ENDIF
1173         IF ( .NOT. multi_files(io_form) ) THEN
1174           
1175           
1176           
1177           
1178           
1179           
1180           
1181           
1182           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1183         ENDIF
1184 #endif
1185 #ifdef GRIB2
1186       CASE ( IO_GRIB2   )
1187         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1188            CALL ext_gr2_get_dom_ti_double ( Hndl, Element,   Data, &
1189                                  locCount, Outcount, Status ) 
1190         ENDIF
1191         IF ( .NOT. multi_files(io_form) ) THEN
1192           
1193           
1194           
1195           
1196           
1197           
1198           
1199           
1200           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1201         ENDIF
1202 #endif
1203 #ifdef INTIO
1204       CASE ( IO_INTIO   )
1205         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1206            CALL ext_int_get_dom_ti_double ( Hndl, Element,   Data, &
1207                                  locCount, Outcount, Status ) 
1208         ENDIF
1209         IF ( .NOT. multi_files(io_form) ) THEN
1210            
1211            
1212            
1213            
1214            
1215            
1216            
1217            
1218            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1219         ENDIF
1220 #endif
1221       CASE DEFAULT
1222     END SELECT
1223   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
1224     CALL wrf_quilt_get_dom_ti_double ( Hndl, Element,   Data, &
1225                           locCount, Outcount, Status )
1226   ELSE
1227     Status = 0
1228 ENDIF
1229 ELSE
1230   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
1231 ENDIF
1232 RETURN
1233 END SUBROUTINE wrf_get_dom_ti_double_arr 
1234 !--- get_dom_ti_double
1236 SUBROUTINE wrf_get_dom_ti_double_sca ( DataHandle,Element,   Data, Count, Outcount, Status )
1237 !<DESCRIPTION>
1238 !<PRE>
1240 ! Attempt to read time independent
1241 ! domain metadata named "Element"  
1242 ! from the open dataset described by DataHandle.  
1243 ! Metadata of type double are
1244 ! stored in scalar Data.
1247 !</PRE>
1248 !</DESCRIPTION>
1249 USE module_state_description
1250 IMPLICIT NONE
1251 INTEGER ,       INTENT(IN)  :: DataHandle
1252 CHARACTER*(*) , INTENT(IN)  :: Element
1256  real*8  :: Data 
1258 INTEGER ,       INTENT(IN)  :: Count
1259 INTEGER ,       INTENT(OUT)  :: OutCount
1260 INTEGER ,       INTENT(OUT) :: Status
1262 #include "wrf_status_codes.h"
1263 INTEGER                     :: len_of_str
1264 LOGICAL                     :: for_out
1265 INTEGER, EXTERNAL           :: use_package
1266 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
1267 INTEGER                     :: locCount
1269 INTEGER io_form , Hndl
1271 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_double_sca " )
1277 Status = 0
1278 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
1279 IF ( Hndl .GT. -1 ) THEN
1280   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
1281     SELECT CASE ( use_package( io_form ) )
1282 #ifdef NETCDF
1283       CASE ( IO_NETCDF   )
1284         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1285            CALL ext_ncd_get_dom_ti_double ( Hndl, Element,   Data, &
1286                                  locCount, Outcount, Status ) 
1287         ENDIF
1288         IF ( .NOT. multi_files(io_form) ) THEN
1289           
1290           
1291           
1292           
1293           
1294           
1295           
1296           
1297           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1298         ENDIF
1299 #endif
1300 #ifdef NETCDFPAR
1301       CASE ( IO_NETCDFPAR   )
1302         CALL ext_ncdpar_get_dom_ti_double ( Hndl, Element,   Data, &
1303                               locCount, Outcount, Status ) 
1304 #endif
1306 #ifdef PNETCDF
1307       CASE ( IO_PNETCDF   )
1308         CALL ext_pnc_get_dom_ti_double ( Hndl, Element,   Data, &
1309                               locCount, Outcount, Status ) 
1310 #endif
1311 #ifdef PHDF5
1312       CASE ( IO_PHDF5   )
1313         CALL ext_phdf5_get_dom_ti_double ( Hndl, Element,   Data, &
1314                               locCount, Outcount, Status ) 
1315 #endif
1316 #ifdef ESMFIO
1317       CASE ( IO_ESMF )
1318         CALL ext_esmf_get_dom_ti_double ( Hndl, Element,   Data, &
1319                               locCount, Outcount, Status ) 
1320 #endif
1321 #ifdef XXX
1322       CASE ( IO_XXX   )
1323         CALL ext_xxx_get_dom_ti_double ( Hndl, Element,   Data, &
1324                               locCount, Outcount, Status ) 
1325 #endif
1326 #ifdef YYY
1327       CASE ( IO_YYY   )
1328         CALL ext_yyy_get_dom_ti_double ( Hndl, Element,   Data, &
1329                               locCount, Outcount, Status ) 
1330 #endif
1331 #ifdef GRIB1
1332       CASE ( IO_GRIB1   )
1333         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1334            CALL ext_gr1_get_dom_ti_double ( Hndl, Element,   Data, &
1335                                  locCount, Outcount, Status ) 
1336         ENDIF
1337         IF ( .NOT. multi_files(io_form) ) THEN
1338           
1339           
1340           
1341           
1342           
1343           
1344           
1345           
1346           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1347         ENDIF
1348 #endif
1349 #ifdef GRIB2
1350       CASE ( IO_GRIB2   )
1351         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1352            CALL ext_gr2_get_dom_ti_double ( Hndl, Element,   Data, &
1353                                  locCount, Outcount, Status ) 
1354         ENDIF
1355         IF ( .NOT. multi_files(io_form) ) THEN
1356           
1357           
1358           
1359           
1360           
1361           
1362           
1363           
1364           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1365         ENDIF
1366 #endif
1367 #ifdef INTIO
1368       CASE ( IO_INTIO   )
1369         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1370            CALL ext_int_get_dom_ti_double ( Hndl, Element,   Data, &
1371                                  locCount, Outcount, Status ) 
1372         ENDIF
1373         IF ( .NOT. multi_files(io_form) ) THEN
1374            
1375            
1376            
1377            
1378            
1379            
1380            
1381            
1382            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1383         ENDIF
1384 #endif
1385       CASE DEFAULT
1386     END SELECT
1387   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
1388     CALL wrf_quilt_get_dom_ti_double ( Hndl, Element,   Data, &
1389                           locCount, Outcount, Status )
1390   ELSE
1391     Status = 0
1392 ENDIF
1393 ELSE
1394   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
1395 ENDIF
1396 RETURN
1397 END SUBROUTINE wrf_get_dom_ti_double_sca 
1400 !--- put_dom_ti_double
1402 SUBROUTINE wrf_put_dom_ti_double_arr ( DataHandle,Element,   Data, Count,  Status )
1403 !<DESCRIPTION>
1404 !<PRE>
1406 ! Write Count words of time independent
1407 ! domain metadata named "Element"  
1408 ! to the open dataset described by DataHandle.  
1409 ! Metadata of type double are
1410 ! copied from array Data.
1413 !</PRE>
1414 !</DESCRIPTION>
1415 USE module_state_description
1416 IMPLICIT NONE
1417 INTEGER ,       INTENT(IN)  :: DataHandle
1418 CHARACTER*(*) , INTENT(IN)  :: Element
1422  real*8  :: Data (*)
1424 INTEGER ,       INTENT(IN)  :: Count
1426 INTEGER ,       INTENT(OUT) :: Status
1428 #include "wrf_status_codes.h"
1429 INTEGER                     :: len_of_str
1430 LOGICAL                     :: for_out
1431 INTEGER, EXTERNAL           :: use_package
1432 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
1433 INTEGER                     :: locCount
1435 INTEGER io_form , Hndl
1437 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_double_arr " )
1443 Status = 0
1444 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
1445 IF ( Hndl .GT. -1 ) THEN
1446   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
1447     SELECT CASE ( use_package( io_form ) )
1448 #ifdef NETCDF
1449       CASE ( IO_NETCDF   )
1450         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1451            CALL ext_ncd_put_dom_ti_double ( Hndl, Element,   Data, &
1452                                  locCount,  Status ) 
1453         ENDIF
1454         IF ( .NOT. multi_files(io_form) ) THEN
1455           
1456           
1457           
1458           
1459           
1460           
1461           
1462           
1463           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1464         ENDIF
1465 #endif
1466 #ifdef NETCDFPAR
1467       CASE ( IO_NETCDFPAR   )
1468         CALL ext_ncdpar_put_dom_ti_double ( Hndl, Element,   Data, &
1469                               locCount,  Status ) 
1470 #endif
1472 #ifdef PNETCDF
1473       CASE ( IO_PNETCDF   )
1474         CALL ext_pnc_put_dom_ti_double ( Hndl, Element,   Data, &
1475                               locCount,  Status ) 
1476 #endif
1477 #ifdef PHDF5
1478       CASE ( IO_PHDF5   )
1479         CALL ext_phdf5_put_dom_ti_double ( Hndl, Element,   Data, &
1480                               locCount,  Status ) 
1481 #endif
1482 #ifdef ESMFIO
1483       CASE ( IO_ESMF )
1484         CALL ext_esmf_put_dom_ti_double ( Hndl, Element,   Data, &
1485                               locCount,  Status ) 
1486 #endif
1487 #ifdef XXX
1488       CASE ( IO_XXX   )
1489         CALL ext_xxx_put_dom_ti_double ( Hndl, Element,   Data, &
1490                               locCount,  Status ) 
1491 #endif
1492 #ifdef YYY
1493       CASE ( IO_YYY   )
1494         CALL ext_yyy_put_dom_ti_double ( Hndl, Element,   Data, &
1495                               locCount,  Status ) 
1496 #endif
1497 #ifdef GRIB1
1498       CASE ( IO_GRIB1   )
1499         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1500            CALL ext_gr1_put_dom_ti_double ( Hndl, Element,   Data, &
1501                                  locCount,  Status ) 
1502         ENDIF
1503         IF ( .NOT. multi_files(io_form) ) THEN
1504           
1505           
1506           
1507           
1508           
1509           
1510           
1511           
1512           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1513         ENDIF
1514 #endif
1515 #ifdef GRIB2
1516       CASE ( IO_GRIB2   )
1517         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1518            CALL ext_gr2_put_dom_ti_double ( Hndl, Element,   Data, &
1519                                  locCount,  Status ) 
1520         ENDIF
1521         IF ( .NOT. multi_files(io_form) ) THEN
1522           
1523           
1524           
1525           
1526           
1527           
1528           
1529           
1530           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1531         ENDIF
1532 #endif
1533 #ifdef INTIO
1534       CASE ( IO_INTIO   )
1535         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1536            CALL ext_int_put_dom_ti_double ( Hndl, Element,   Data, &
1537                                  locCount,  Status ) 
1538         ENDIF
1539         IF ( .NOT. multi_files(io_form) ) THEN
1540            
1541            
1542            
1543            
1544            
1545            
1546            
1547            
1548            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1549         ENDIF
1550 #endif
1551       CASE DEFAULT
1552     END SELECT
1553   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
1554     CALL wrf_quilt_put_dom_ti_double ( Hndl, Element,   Data, &
1555                           locCount,  Status )
1556   ELSE
1557     Status = 0
1558 ENDIF
1559 ELSE
1560   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
1561 ENDIF
1562 RETURN
1563 END SUBROUTINE wrf_put_dom_ti_double_arr 
1564 !--- put_dom_ti_double
1566 SUBROUTINE wrf_put_dom_ti_double_sca ( DataHandle,Element,   Data, Count,  Status )
1567 !<DESCRIPTION>
1568 !<PRE>
1570 ! Write time independent
1571 ! domain metadata named "Element"  
1572 ! to the open dataset described by DataHandle.  
1573 ! Metadata of type double are
1574 ! copied from scalar Data.
1577 !</PRE>
1578 !</DESCRIPTION>
1579 USE module_state_description
1580 IMPLICIT NONE
1581 INTEGER ,       INTENT(IN)  :: DataHandle
1582 CHARACTER*(*) , INTENT(IN)  :: Element
1586  real*8  :: Data 
1588 INTEGER ,       INTENT(IN)  :: Count
1590 INTEGER ,       INTENT(OUT) :: Status
1592 #include "wrf_status_codes.h"
1593 INTEGER                     :: len_of_str
1594 LOGICAL                     :: for_out
1595 INTEGER, EXTERNAL           :: use_package
1596 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
1597 INTEGER                     :: locCount
1599 INTEGER io_form , Hndl
1601 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_double_sca " )
1607 Status = 0
1608 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
1609 IF ( Hndl .GT. -1 ) THEN
1610   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
1611     SELECT CASE ( use_package( io_form ) )
1612 #ifdef NETCDF
1613       CASE ( IO_NETCDF   )
1614         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1615            CALL ext_ncd_put_dom_ti_double ( Hndl, Element,   Data, &
1616                                  locCount,  Status ) 
1617         ENDIF
1618         IF ( .NOT. multi_files(io_form) ) THEN
1619           
1620           
1621           
1622           
1623           
1624           
1625           
1626           
1627           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1628         ENDIF
1629 #endif
1630 #ifdef NETCDFPAR
1631       CASE ( IO_NETCDFPAR   )
1632         CALL ext_ncdpar_put_dom_ti_double ( Hndl, Element,   Data, &
1633                               locCount,  Status ) 
1634 #endif
1636 #ifdef PNETCDF
1637       CASE ( IO_PNETCDF   )
1638         CALL ext_pnc_put_dom_ti_double ( Hndl, Element,   Data, &
1639                               locCount,  Status ) 
1640 #endif
1641 #ifdef PHDF5
1642       CASE ( IO_PHDF5   )
1643         CALL ext_phdf5_put_dom_ti_double ( Hndl, Element,   Data, &
1644                               locCount,  Status ) 
1645 #endif
1646 #ifdef ESMFIO
1647       CASE ( IO_ESMF )
1648         CALL ext_esmf_put_dom_ti_double ( Hndl, Element,   Data, &
1649                               locCount,  Status ) 
1650 #endif
1651 #ifdef XXX
1652       CASE ( IO_XXX   )
1653         CALL ext_xxx_put_dom_ti_double ( Hndl, Element,   Data, &
1654                               locCount,  Status ) 
1655 #endif
1656 #ifdef YYY
1657       CASE ( IO_YYY   )
1658         CALL ext_yyy_put_dom_ti_double ( Hndl, Element,   Data, &
1659                               locCount,  Status ) 
1660 #endif
1661 #ifdef GRIB1
1662       CASE ( IO_GRIB1   )
1663         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1664            CALL ext_gr1_put_dom_ti_double ( Hndl, Element,   Data, &
1665                                  locCount,  Status ) 
1666         ENDIF
1667         IF ( .NOT. multi_files(io_form) ) THEN
1668           
1669           
1670           
1671           
1672           
1673           
1674           
1675           
1676           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1677         ENDIF
1678 #endif
1679 #ifdef GRIB2
1680       CASE ( IO_GRIB2   )
1681         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1682            CALL ext_gr2_put_dom_ti_double ( Hndl, Element,   Data, &
1683                                  locCount,  Status ) 
1684         ENDIF
1685         IF ( .NOT. multi_files(io_form) ) THEN
1686           
1687           
1688           
1689           
1690           
1691           
1692           
1693           
1694           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1695         ENDIF
1696 #endif
1697 #ifdef INTIO
1698       CASE ( IO_INTIO   )
1699         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1700            CALL ext_int_put_dom_ti_double ( Hndl, Element,   Data, &
1701                                  locCount,  Status ) 
1702         ENDIF
1703         IF ( .NOT. multi_files(io_form) ) THEN
1704            
1705            
1706            
1707            
1708            
1709            
1710            
1711            
1712            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1713         ENDIF
1714 #endif
1715       CASE DEFAULT
1716     END SELECT
1717   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
1718     CALL wrf_quilt_put_dom_ti_double ( Hndl, Element,   Data, &
1719                           locCount,  Status )
1720   ELSE
1721     Status = 0
1722 ENDIF
1723 ELSE
1724   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
1725 ENDIF
1726 RETURN
1727 END SUBROUTINE wrf_put_dom_ti_double_sca 
1730 !--- get_dom_ti_integer
1732 SUBROUTINE wrf_get_dom_ti_integer_arr ( DataHandle,Element,   Data, Count, Outcount, Status )
1733 !<DESCRIPTION>
1734 !<PRE>
1736 ! Attempt to read Count words of time independent
1737 ! domain metadata named "Element"  
1738 ! from the open dataset described by DataHandle.  
1739 ! Metadata of type integer are
1740 ! stored in array Data.
1741 ! Actual number of words read is returned in OutCount.
1743 !</PRE>
1744 !</DESCRIPTION>
1745 USE module_state_description
1746 IMPLICIT NONE
1747 INTEGER ,       INTENT(IN)  :: DataHandle
1748 CHARACTER*(*) , INTENT(IN)  :: Element
1752  integer  :: Data (*)
1754 INTEGER ,       INTENT(IN)  :: Count
1755 INTEGER ,       INTENT(OUT)  :: OutCount
1756 INTEGER ,       INTENT(OUT) :: Status
1758 #include "wrf_status_codes.h"
1759 INTEGER                     :: len_of_str
1760 LOGICAL                     :: for_out
1761 INTEGER, EXTERNAL           :: use_package
1762 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
1763 INTEGER                     :: locCount
1765 INTEGER io_form , Hndl
1767 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_integer_arr " )
1769 locCount = Count
1773 Status = 0
1774 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
1775 IF ( Hndl .GT. -1 ) THEN
1776   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
1777     SELECT CASE ( use_package( io_form ) )
1778 #ifdef NETCDF
1779       CASE ( IO_NETCDF   )
1780         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1781            CALL ext_ncd_get_dom_ti_integer ( Hndl, Element,   Data, &
1782                                  locCount, Outcount, Status ) 
1783         ENDIF
1784         IF ( .NOT. multi_files(io_form) ) THEN
1785           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
1786           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
1787           
1788           
1789           
1790           
1791           
1792           
1793           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1794         ENDIF
1795 #endif
1796 #ifdef NETCDFPAR
1797       CASE ( IO_NETCDFPAR   )
1798         CALL ext_ncdpar_get_dom_ti_integer ( Hndl, Element,   Data, &
1799                               locCount, Outcount, Status ) 
1800 #endif
1802 #ifdef PNETCDF
1803       CASE ( IO_PNETCDF   )
1804         CALL ext_pnc_get_dom_ti_integer ( Hndl, Element,   Data, &
1805                               locCount, Outcount, Status ) 
1806 #endif
1807 #ifdef PHDF5
1808       CASE ( IO_PHDF5   )
1809         CALL ext_phdf5_get_dom_ti_integer ( Hndl, Element,   Data, &
1810                               locCount, Outcount, Status ) 
1811 #endif
1812 #ifdef ESMFIO
1813       CASE ( IO_ESMF )
1814         CALL ext_esmf_get_dom_ti_integer ( Hndl, Element,   Data, &
1815                               locCount, Outcount, Status ) 
1816 #endif
1817 #ifdef XXX
1818       CASE ( IO_XXX   )
1819         CALL ext_xxx_get_dom_ti_integer ( Hndl, Element,   Data, &
1820                               locCount, Outcount, Status ) 
1821 #endif
1822 #ifdef YYY
1823       CASE ( IO_YYY   )
1824         CALL ext_yyy_get_dom_ti_integer ( Hndl, Element,   Data, &
1825                               locCount, Outcount, Status ) 
1826 #endif
1827 #ifdef GRIB1
1828       CASE ( IO_GRIB1   )
1829         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1830            CALL ext_gr1_get_dom_ti_integer ( Hndl, Element,   Data, &
1831                                  locCount, Outcount, Status ) 
1832         ENDIF
1833         IF ( .NOT. multi_files(io_form) ) THEN
1834           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
1835           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
1836           
1837           
1838           
1839           
1840           
1841           
1842           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1843         ENDIF
1844 #endif
1845 #ifdef GRIB2
1846       CASE ( IO_GRIB2   )
1847         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1848            CALL ext_gr2_get_dom_ti_integer ( Hndl, Element,   Data, &
1849                                  locCount, Outcount, Status ) 
1850         ENDIF
1851         IF ( .NOT. multi_files(io_form) ) THEN
1852           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
1853           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
1854           
1855           
1856           
1857           
1858           
1859           
1860           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1861         ENDIF
1862 #endif
1863 #ifdef INTIO
1864       CASE ( IO_INTIO   )
1865         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1866            CALL ext_int_get_dom_ti_integer ( Hndl, Element,   Data, &
1867                                  locCount, Outcount, Status ) 
1868         ENDIF
1869         IF ( .NOT. multi_files(io_form) ) THEN
1870            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
1871            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
1872            
1873            
1874            
1875            
1876            
1877            
1878            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1879         ENDIF
1880 #endif
1881       CASE DEFAULT
1882     END SELECT
1883   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
1884     CALL wrf_quilt_get_dom_ti_integer ( Hndl, Element,   Data, &
1885                           locCount, Outcount, Status )
1886   ELSE
1887     Status = 0
1888 ENDIF
1889 ELSE
1890   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
1891 ENDIF
1892 RETURN
1893 END SUBROUTINE wrf_get_dom_ti_integer_arr 
1894 !--- get_dom_ti_integer
1896 SUBROUTINE wrf_get_dom_ti_integer_sca ( DataHandle,Element,   Data, Count, Outcount, Status )
1897 !<DESCRIPTION>
1898 !<PRE>
1900 ! Attempt to read time independent
1901 ! domain metadata named "Element"  
1902 ! from the open dataset described by DataHandle.  
1903 ! Metadata of type integer are
1904 ! stored in scalar Data.
1907 !</PRE>
1908 !</DESCRIPTION>
1909 USE module_state_description
1910 IMPLICIT NONE
1911 INTEGER ,       INTENT(IN)  :: DataHandle
1912 CHARACTER*(*) , INTENT(IN)  :: Element
1916  integer  :: Data 
1918 INTEGER ,       INTENT(IN)  :: Count
1919 INTEGER ,       INTENT(OUT)  :: OutCount
1920 INTEGER ,       INTENT(OUT) :: Status
1922 #include "wrf_status_codes.h"
1923 INTEGER                     :: len_of_str
1924 LOGICAL                     :: for_out
1925 INTEGER, EXTERNAL           :: use_package
1926 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
1927 INTEGER                     :: locCount
1929 INTEGER io_form , Hndl
1931 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_integer_sca " )
1933 locCount = Count
1937 Status = 0
1938 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
1939 IF ( Hndl .GT. -1 ) THEN
1940   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
1941     SELECT CASE ( use_package( io_form ) )
1942 #ifdef NETCDF
1943       CASE ( IO_NETCDF   )
1944         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1945            CALL ext_ncd_get_dom_ti_integer ( Hndl, Element,   Data, &
1946                                  locCount, Outcount, Status ) 
1947         ENDIF
1948         IF ( .NOT. multi_files(io_form) ) THEN
1949           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
1950           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
1951           
1952           
1953           
1954           
1955           
1956           
1957           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
1958         ENDIF
1959 #endif
1960 #ifdef NETCDFPAR
1961       CASE ( IO_NETCDFPAR   )
1962         CALL ext_ncdpar_get_dom_ti_integer ( Hndl, Element,   Data, &
1963                               locCount, Outcount, Status ) 
1964 #endif
1966 #ifdef PNETCDF
1967       CASE ( IO_PNETCDF   )
1968         CALL ext_pnc_get_dom_ti_integer ( Hndl, Element,   Data, &
1969                               locCount, Outcount, Status ) 
1970 #endif
1971 #ifdef PHDF5
1972       CASE ( IO_PHDF5   )
1973         CALL ext_phdf5_get_dom_ti_integer ( Hndl, Element,   Data, &
1974                               locCount, Outcount, Status ) 
1975 #endif
1976 #ifdef ESMFIO
1977       CASE ( IO_ESMF )
1978         CALL ext_esmf_get_dom_ti_integer ( Hndl, Element,   Data, &
1979                               locCount, Outcount, Status ) 
1980 #endif
1981 #ifdef XXX
1982       CASE ( IO_XXX   )
1983         CALL ext_xxx_get_dom_ti_integer ( Hndl, Element,   Data, &
1984                               locCount, Outcount, Status ) 
1985 #endif
1986 #ifdef YYY
1987       CASE ( IO_YYY   )
1988         CALL ext_yyy_get_dom_ti_integer ( Hndl, Element,   Data, &
1989                               locCount, Outcount, Status ) 
1990 #endif
1991 #ifdef GRIB1
1992       CASE ( IO_GRIB1   )
1993         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
1994            CALL ext_gr1_get_dom_ti_integer ( Hndl, Element,   Data, &
1995                                  locCount, Outcount, Status ) 
1996         ENDIF
1997         IF ( .NOT. multi_files(io_form) ) THEN
1998           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
1999           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
2000           
2001           
2002           
2003           
2004           
2005           
2006           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2007         ENDIF
2008 #endif
2009 #ifdef GRIB2
2010       CASE ( IO_GRIB2   )
2011         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2012            CALL ext_gr2_get_dom_ti_integer ( Hndl, Element,   Data, &
2013                                  locCount, Outcount, Status ) 
2014         ENDIF
2015         IF ( .NOT. multi_files(io_form) ) THEN
2016           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2017           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
2018           
2019           
2020           
2021           
2022           
2023           
2024           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2025         ENDIF
2026 #endif
2027 #ifdef INTIO
2028       CASE ( IO_INTIO   )
2029         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2030            CALL ext_int_get_dom_ti_integer ( Hndl, Element,   Data, &
2031                                  locCount, Outcount, Status ) 
2032         ENDIF
2033         IF ( .NOT. multi_files(io_form) ) THEN
2034            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2035            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
2036            
2037            
2038            
2039            
2040            
2041            
2042            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2043         ENDIF
2044 #endif
2045       CASE DEFAULT
2046     END SELECT
2047   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
2048     CALL wrf_quilt_get_dom_ti_integer ( Hndl, Element,   Data, &
2049                           locCount, Outcount, Status )
2050   ELSE
2051     Status = 0
2052 ENDIF
2053 ELSE
2054   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
2055 ENDIF
2056 RETURN
2057 END SUBROUTINE wrf_get_dom_ti_integer_sca 
2060 !--- put_dom_ti_integer
2062 SUBROUTINE wrf_put_dom_ti_integer_arr ( DataHandle,Element,   Data, Count,  Status )
2063 !<DESCRIPTION>
2064 !<PRE>
2066 ! Write Count words of time independent
2067 ! domain metadata named "Element"  
2068 ! to the open dataset described by DataHandle.  
2069 ! Metadata of type integer are
2070 ! copied from array Data.
2073 !</PRE>
2074 !</DESCRIPTION>
2075 USE module_state_description
2076 IMPLICIT NONE
2077 INTEGER ,       INTENT(IN)  :: DataHandle
2078 CHARACTER*(*) , INTENT(IN)  :: Element
2082  integer  :: Data (*)
2084 INTEGER ,       INTENT(IN)  :: Count
2086 INTEGER ,       INTENT(OUT) :: Status
2088 #include "wrf_status_codes.h"
2089 INTEGER                     :: len_of_str
2090 LOGICAL                     :: for_out
2091 INTEGER, EXTERNAL           :: use_package
2092 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
2093 INTEGER                     :: locCount
2095 INTEGER io_form , Hndl
2097 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_integer_arr " )
2099 locCount = Count
2103 Status = 0
2104 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
2105 IF ( Hndl .GT. -1 ) THEN
2106   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
2107     SELECT CASE ( use_package( io_form ) )
2108 #ifdef NETCDF
2109       CASE ( IO_NETCDF   )
2110         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2111            CALL ext_ncd_put_dom_ti_integer ( Hndl, Element,   Data, &
2112                                  locCount,  Status ) 
2113         ENDIF
2114         IF ( .NOT. multi_files(io_form) ) THEN
2115           
2116           
2117           
2118           
2119           
2120           
2121           
2122           
2123           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2124         ENDIF
2125 #endif
2126 #ifdef NETCDFPAR
2127       CASE ( IO_NETCDFPAR   )
2128         CALL ext_ncdpar_put_dom_ti_integer ( Hndl, Element,   Data, &
2129                               locCount,  Status ) 
2130 #endif
2132 #ifdef PNETCDF
2133       CASE ( IO_PNETCDF   )
2134         CALL ext_pnc_put_dom_ti_integer ( Hndl, Element,   Data, &
2135                               locCount,  Status ) 
2136 #endif
2137 #ifdef PHDF5
2138       CASE ( IO_PHDF5   )
2139         CALL ext_phdf5_put_dom_ti_integer ( Hndl, Element,   Data, &
2140                               locCount,  Status ) 
2141 #endif
2142 #ifdef ESMFIO
2143       CASE ( IO_ESMF )
2144         CALL ext_esmf_put_dom_ti_integer ( Hndl, Element,   Data, &
2145                               locCount,  Status ) 
2146 #endif
2147 #ifdef XXX
2148       CASE ( IO_XXX   )
2149         CALL ext_xxx_put_dom_ti_integer ( Hndl, Element,   Data, &
2150                               locCount,  Status ) 
2151 #endif
2152 #ifdef YYY
2153       CASE ( IO_YYY   )
2154         CALL ext_yyy_put_dom_ti_integer ( Hndl, Element,   Data, &
2155                               locCount,  Status ) 
2156 #endif
2157 #ifdef GRIB1
2158       CASE ( IO_GRIB1   )
2159         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2160            CALL ext_gr1_put_dom_ti_integer ( Hndl, Element,   Data, &
2161                                  locCount,  Status ) 
2162         ENDIF
2163         IF ( .NOT. multi_files(io_form) ) THEN
2164           
2165           
2166           
2167           
2168           
2169           
2170           
2171           
2172           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2173         ENDIF
2174 #endif
2175 #ifdef GRIB2
2176       CASE ( IO_GRIB2   )
2177         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2178            CALL ext_gr2_put_dom_ti_integer ( Hndl, Element,   Data, &
2179                                  locCount,  Status ) 
2180         ENDIF
2181         IF ( .NOT. multi_files(io_form) ) THEN
2182           
2183           
2184           
2185           
2186           
2187           
2188           
2189           
2190           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2191         ENDIF
2192 #endif
2193 #ifdef INTIO
2194       CASE ( IO_INTIO   )
2195         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2196            CALL ext_int_put_dom_ti_integer ( Hndl, Element,   Data, &
2197                                  locCount,  Status ) 
2198         ENDIF
2199         IF ( .NOT. multi_files(io_form) ) THEN
2200            
2201            
2202            
2203            
2204            
2205            
2206            
2207            
2208            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2209         ENDIF
2210 #endif
2211       CASE DEFAULT
2212     END SELECT
2213   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
2214     CALL wrf_quilt_put_dom_ti_integer ( Hndl, Element,   Data, &
2215                           locCount,  Status )
2216   ELSE
2217     Status = 0
2218 ENDIF
2219 ELSE
2220   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
2221 ENDIF
2222 RETURN
2223 END SUBROUTINE wrf_put_dom_ti_integer_arr 
2224 !--- put_dom_ti_integer
2226 SUBROUTINE wrf_put_dom_ti_integer_sca ( DataHandle,Element,   Data, Count,  Status )
2227 !<DESCRIPTION>
2228 !<PRE>
2230 ! Write time independent
2231 ! domain metadata named "Element"  
2232 ! to the open dataset described by DataHandle.  
2233 ! Metadata of type integer are
2234 ! copied from scalar Data.
2237 !</PRE>
2238 !</DESCRIPTION>
2239 USE module_state_description
2240 IMPLICIT NONE
2241 INTEGER ,       INTENT(IN)  :: DataHandle
2242 CHARACTER*(*) , INTENT(IN)  :: Element
2246  integer  :: Data 
2248 INTEGER ,       INTENT(IN)  :: Count
2250 INTEGER ,       INTENT(OUT) :: Status
2252 #include "wrf_status_codes.h"
2253 INTEGER                     :: len_of_str
2254 LOGICAL                     :: for_out
2255 INTEGER, EXTERNAL           :: use_package
2256 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
2257 INTEGER                     :: locCount
2259 INTEGER io_form , Hndl
2261 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_integer_sca " )
2263 locCount = Count
2267 Status = 0
2268 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
2269 IF ( Hndl .GT. -1 ) THEN
2270   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
2271     SELECT CASE ( use_package( io_form ) )
2272 #ifdef NETCDF
2273       CASE ( IO_NETCDF   )
2274         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2275            CALL ext_ncd_put_dom_ti_integer ( Hndl, Element,   Data, &
2276                                  locCount,  Status ) 
2277         ENDIF
2278         IF ( .NOT. multi_files(io_form) ) THEN
2279           
2280           
2281           
2282           
2283           
2284           
2285           
2286           
2287           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2288         ENDIF
2289 #endif
2290 #ifdef NETCDFPAR
2291       CASE ( IO_NETCDFPAR   )
2292         CALL ext_ncdpar_put_dom_ti_integer ( Hndl, Element,   Data, &
2293                               locCount,  Status ) 
2294 #endif
2296 #ifdef PNETCDF
2297       CASE ( IO_PNETCDF   )
2298         CALL ext_pnc_put_dom_ti_integer ( Hndl, Element,   Data, &
2299                               locCount,  Status ) 
2300 #endif
2301 #ifdef PHDF5
2302       CASE ( IO_PHDF5   )
2303         CALL ext_phdf5_put_dom_ti_integer ( Hndl, Element,   Data, &
2304                               locCount,  Status ) 
2305 #endif
2306 #ifdef ESMFIO
2307       CASE ( IO_ESMF )
2308         CALL ext_esmf_put_dom_ti_integer ( Hndl, Element,   Data, &
2309                               locCount,  Status ) 
2310 #endif
2311 #ifdef XXX
2312       CASE ( IO_XXX   )
2313         CALL ext_xxx_put_dom_ti_integer ( Hndl, Element,   Data, &
2314                               locCount,  Status ) 
2315 #endif
2316 #ifdef YYY
2317       CASE ( IO_YYY   )
2318         CALL ext_yyy_put_dom_ti_integer ( Hndl, Element,   Data, &
2319                               locCount,  Status ) 
2320 #endif
2321 #ifdef GRIB1
2322       CASE ( IO_GRIB1   )
2323         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2324            CALL ext_gr1_put_dom_ti_integer ( Hndl, Element,   Data, &
2325                                  locCount,  Status ) 
2326         ENDIF
2327         IF ( .NOT. multi_files(io_form) ) THEN
2328           
2329           
2330           
2331           
2332           
2333           
2334           
2335           
2336           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2337         ENDIF
2338 #endif
2339 #ifdef GRIB2
2340       CASE ( IO_GRIB2   )
2341         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2342            CALL ext_gr2_put_dom_ti_integer ( Hndl, Element,   Data, &
2343                                  locCount,  Status ) 
2344         ENDIF
2345         IF ( .NOT. multi_files(io_form) ) THEN
2346           
2347           
2348           
2349           
2350           
2351           
2352           
2353           
2354           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2355         ENDIF
2356 #endif
2357 #ifdef INTIO
2358       CASE ( IO_INTIO   )
2359         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2360            CALL ext_int_put_dom_ti_integer ( Hndl, Element,   Data, &
2361                                  locCount,  Status ) 
2362         ENDIF
2363         IF ( .NOT. multi_files(io_form) ) THEN
2364            
2365            
2366            
2367            
2368            
2369            
2370            
2371            
2372            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2373         ENDIF
2374 #endif
2375       CASE DEFAULT
2376     END SELECT
2377   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
2378     CALL wrf_quilt_put_dom_ti_integer ( Hndl, Element,   Data, &
2379                           locCount,  Status )
2380   ELSE
2381     Status = 0
2382 ENDIF
2383 ELSE
2384   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
2385 ENDIF
2386 RETURN
2387 END SUBROUTINE wrf_put_dom_ti_integer_sca 
2390 !--- get_dom_ti_logical
2392 SUBROUTINE wrf_get_dom_ti_logical_arr ( DataHandle,Element,   Data, Count, Outcount, Status )
2393 !<DESCRIPTION>
2394 !<PRE>
2396 ! Attempt to read Count words of time independent
2397 ! domain metadata named "Element"  
2398 ! from the open dataset described by DataHandle.  
2399 ! Metadata of type logical are
2400 ! stored in array Data.
2401 ! Actual number of words read is returned in OutCount.
2403 !</PRE>
2404 !</DESCRIPTION>
2405 USE module_state_description
2406 IMPLICIT NONE
2407 INTEGER ,       INTENT(IN)  :: DataHandle
2408 CHARACTER*(*) , INTENT(IN)  :: Element
2412  logical  :: Data (*)
2414 INTEGER ,       INTENT(IN)  :: Count
2415 INTEGER ,       INTENT(OUT)  :: OutCount
2416 INTEGER ,       INTENT(OUT) :: Status
2418 #include "wrf_status_codes.h"
2419 INTEGER                     :: len_of_str
2420 LOGICAL                     :: for_out
2421 INTEGER, EXTERNAL           :: use_package
2422 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
2423 INTEGER                     :: locCount
2425 INTEGER io_form , Hndl
2427 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_logical_arr " )
2431 locCount = Count
2433 Status = 0
2434 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
2435 IF ( Hndl .GT. -1 ) THEN
2436   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
2437     SELECT CASE ( use_package( io_form ) )
2438 #ifdef NETCDF
2439       CASE ( IO_NETCDF   )
2440         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2441            CALL ext_ncd_get_dom_ti_logical ( Hndl, Element,   Data, &
2442                                  locCount, Outcount, Status ) 
2443         ENDIF
2444         IF ( .NOT. multi_files(io_form) ) THEN
2445           
2446           
2447           
2448           
2449           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2450           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2451           
2452           
2453           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2454         ENDIF
2455 #endif
2456 #ifdef NETCDFPAR
2457       CASE ( IO_NETCDFPAR   )
2458         CALL ext_ncdpar_get_dom_ti_logical ( Hndl, Element,   Data, &
2459                               locCount, Outcount, Status ) 
2460 #endif
2462 #ifdef PNETCDF
2463       CASE ( IO_PNETCDF   )
2464         CALL ext_pnc_get_dom_ti_logical ( Hndl, Element,   Data, &
2465                               locCount, Outcount, Status ) 
2466 #endif
2467 #ifdef PHDF5
2468       CASE ( IO_PHDF5   )
2469         CALL ext_phdf5_get_dom_ti_logical ( Hndl, Element,   Data, &
2470                               locCount, Outcount, Status ) 
2471 #endif
2472 #ifdef ESMFIO
2473       CASE ( IO_ESMF )
2474         CALL ext_esmf_get_dom_ti_logical ( Hndl, Element,   Data, &
2475                               locCount, Outcount, Status ) 
2476 #endif
2477 #ifdef XXX
2478       CASE ( IO_XXX   )
2479         CALL ext_xxx_get_dom_ti_logical ( Hndl, Element,   Data, &
2480                               locCount, Outcount, Status ) 
2481 #endif
2482 #ifdef YYY
2483       CASE ( IO_YYY   )
2484         CALL ext_yyy_get_dom_ti_logical ( Hndl, Element,   Data, &
2485                               locCount, Outcount, Status ) 
2486 #endif
2487 #ifdef GRIB1
2488       CASE ( IO_GRIB1   )
2489         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2490            CALL ext_gr1_get_dom_ti_logical ( Hndl, Element,   Data, &
2491                                  locCount, Outcount, Status ) 
2492         ENDIF
2493         IF ( .NOT. multi_files(io_form) ) THEN
2494           
2495           
2496           
2497           
2498           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2499           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2500           
2501           
2502           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2503         ENDIF
2504 #endif
2505 #ifdef GRIB2
2506       CASE ( IO_GRIB2   )
2507         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2508            CALL ext_gr2_get_dom_ti_logical ( Hndl, Element,   Data, &
2509                                  locCount, Outcount, Status ) 
2510         ENDIF
2511         IF ( .NOT. multi_files(io_form) ) THEN
2512           
2513           
2514           
2515           
2516           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2517           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2518           
2519           
2520           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2521         ENDIF
2522 #endif
2523 #ifdef INTIO
2524       CASE ( IO_INTIO   )
2525         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2526            CALL ext_int_get_dom_ti_logical ( Hndl, Element,   Data, &
2527                                  locCount, Outcount, Status ) 
2528         ENDIF
2529         IF ( .NOT. multi_files(io_form) ) THEN
2530            
2531            
2532            
2533            
2534            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2535            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2536            
2537            
2538            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2539         ENDIF
2540 #endif
2541       CASE DEFAULT
2542     END SELECT
2543   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
2544     CALL wrf_quilt_get_dom_ti_logical ( Hndl, Element,   Data, &
2545                           locCount, Outcount, Status )
2546   ELSE
2547     Status = 0
2548 ENDIF
2549 ELSE
2550   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
2551 ENDIF
2552 RETURN
2553 END SUBROUTINE wrf_get_dom_ti_logical_arr 
2554 !--- get_dom_ti_logical
2556 SUBROUTINE wrf_get_dom_ti_logical_sca ( DataHandle,Element,   Data, Count, Outcount, Status )
2557 !<DESCRIPTION>
2558 !<PRE>
2560 ! Attempt to read time independent
2561 ! domain metadata named "Element"  
2562 ! from the open dataset described by DataHandle.  
2563 ! Metadata of type logical are
2564 ! stored in scalar Data.
2567 !</PRE>
2568 !</DESCRIPTION>
2569 USE module_state_description
2570 IMPLICIT NONE
2571 INTEGER ,       INTENT(IN)  :: DataHandle
2572 CHARACTER*(*) , INTENT(IN)  :: Element
2576  logical  :: Data 
2578 INTEGER ,       INTENT(IN)  :: Count
2579 INTEGER ,       INTENT(OUT)  :: OutCount
2580 INTEGER ,       INTENT(OUT) :: Status
2582 #include "wrf_status_codes.h"
2583 INTEGER                     :: len_of_str
2584 LOGICAL                     :: for_out
2585 INTEGER, EXTERNAL           :: use_package
2586 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
2587 INTEGER                     :: locCount
2589 INTEGER io_form , Hndl
2591 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_logical_sca " )
2595 locCount = Count
2597 Status = 0
2598 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
2599 IF ( Hndl .GT. -1 ) THEN
2600   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
2601     SELECT CASE ( use_package( io_form ) )
2602 #ifdef NETCDF
2603       CASE ( IO_NETCDF   )
2604         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2605            CALL ext_ncd_get_dom_ti_logical ( Hndl, Element,   Data, &
2606                                  locCount, Outcount, Status ) 
2607         ENDIF
2608         IF ( .NOT. multi_files(io_form) ) THEN
2609           
2610           
2611           
2612           
2613           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2614           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2615           
2616           
2617           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2618         ENDIF
2619 #endif
2620 #ifdef NETCDFPAR
2621       CASE ( IO_NETCDFPAR   )
2622         CALL ext_ncdpar_get_dom_ti_logical ( Hndl, Element,   Data, &
2623                               locCount, Outcount, Status ) 
2624 #endif
2626 #ifdef PNETCDF
2627       CASE ( IO_PNETCDF   )
2628         CALL ext_pnc_get_dom_ti_logical ( Hndl, Element,   Data, &
2629                               locCount, Outcount, Status ) 
2630 #endif
2631 #ifdef PHDF5
2632       CASE ( IO_PHDF5   )
2633         CALL ext_phdf5_get_dom_ti_logical ( Hndl, Element,   Data, &
2634                               locCount, Outcount, Status ) 
2635 #endif
2636 #ifdef ESMFIO
2637       CASE ( IO_ESMF )
2638         CALL ext_esmf_get_dom_ti_logical ( Hndl, Element,   Data, &
2639                               locCount, Outcount, Status ) 
2640 #endif
2641 #ifdef XXX
2642       CASE ( IO_XXX   )
2643         CALL ext_xxx_get_dom_ti_logical ( Hndl, Element,   Data, &
2644                               locCount, Outcount, Status ) 
2645 #endif
2646 #ifdef YYY
2647       CASE ( IO_YYY   )
2648         CALL ext_yyy_get_dom_ti_logical ( Hndl, Element,   Data, &
2649                               locCount, Outcount, Status ) 
2650 #endif
2651 #ifdef GRIB1
2652       CASE ( IO_GRIB1   )
2653         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2654            CALL ext_gr1_get_dom_ti_logical ( Hndl, Element,   Data, &
2655                                  locCount, Outcount, Status ) 
2656         ENDIF
2657         IF ( .NOT. multi_files(io_form) ) THEN
2658           
2659           
2660           
2661           
2662           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2663           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2664           
2665           
2666           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2667         ENDIF
2668 #endif
2669 #ifdef GRIB2
2670       CASE ( IO_GRIB2   )
2671         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2672            CALL ext_gr2_get_dom_ti_logical ( Hndl, Element,   Data, &
2673                                  locCount, Outcount, Status ) 
2674         ENDIF
2675         IF ( .NOT. multi_files(io_form) ) THEN
2676           
2677           
2678           
2679           
2680           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2681           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2682           
2683           
2684           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2685         ENDIF
2686 #endif
2687 #ifdef INTIO
2688       CASE ( IO_INTIO   )
2689         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2690            CALL ext_int_get_dom_ti_logical ( Hndl, Element,   Data, &
2691                                  locCount, Outcount, Status ) 
2692         ENDIF
2693         IF ( .NOT. multi_files(io_form) ) THEN
2694            
2695            
2696            
2697            
2698            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
2699            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
2700            
2701            
2702            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2703         ENDIF
2704 #endif
2705       CASE DEFAULT
2706     END SELECT
2707   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
2708     CALL wrf_quilt_get_dom_ti_logical ( Hndl, Element,   Data, &
2709                           locCount, Outcount, Status )
2710   ELSE
2711     Status = 0
2712 ENDIF
2713 ELSE
2714   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
2715 ENDIF
2716 RETURN
2717 END SUBROUTINE wrf_get_dom_ti_logical_sca 
2720 !--- put_dom_ti_logical
2722 SUBROUTINE wrf_put_dom_ti_logical_arr ( DataHandle,Element,   Data, Count,  Status )
2723 !<DESCRIPTION>
2724 !<PRE>
2726 ! Write Count words of time independent
2727 ! domain metadata named "Element"  
2728 ! to the open dataset described by DataHandle.  
2729 ! Metadata of type logical are
2730 ! copied from array Data.
2733 !</PRE>
2734 !</DESCRIPTION>
2735 USE module_state_description
2736 IMPLICIT NONE
2737 INTEGER ,       INTENT(IN)  :: DataHandle
2738 CHARACTER*(*) , INTENT(IN)  :: Element
2742  logical  :: Data (*)
2744 INTEGER ,       INTENT(IN)  :: Count
2746 INTEGER ,       INTENT(OUT) :: Status
2748 #include "wrf_status_codes.h"
2749 INTEGER                     :: len_of_str
2750 LOGICAL                     :: for_out
2751 INTEGER, EXTERNAL           :: use_package
2752 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
2753 INTEGER                     :: locCount
2755 INTEGER io_form , Hndl
2757 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_logical_arr " )
2761 locCount = Count
2763 Status = 0
2764 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
2765 IF ( Hndl .GT. -1 ) THEN
2766   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
2767     SELECT CASE ( use_package( io_form ) )
2768 #ifdef NETCDF
2769       CASE ( IO_NETCDF   )
2770         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2771            CALL ext_ncd_put_dom_ti_logical ( Hndl, Element,   Data, &
2772                                  locCount,  Status ) 
2773         ENDIF
2774         IF ( .NOT. multi_files(io_form) ) THEN
2775           
2776           
2777           
2778           
2779           
2780           
2781           
2782           
2783           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2784         ENDIF
2785 #endif
2786 #ifdef NETCDFPAR
2787       CASE ( IO_NETCDFPAR   )
2788         CALL ext_ncdpar_put_dom_ti_logical ( Hndl, Element,   Data, &
2789                               locCount,  Status ) 
2790 #endif
2792 #ifdef PNETCDF
2793       CASE ( IO_PNETCDF   )
2794         CALL ext_pnc_put_dom_ti_logical ( Hndl, Element,   Data, &
2795                               locCount,  Status ) 
2796 #endif
2797 #ifdef PHDF5
2798       CASE ( IO_PHDF5   )
2799         CALL ext_phdf5_put_dom_ti_logical ( Hndl, Element,   Data, &
2800                               locCount,  Status ) 
2801 #endif
2802 #ifdef ESMFIO
2803       CASE ( IO_ESMF )
2804         CALL ext_esmf_put_dom_ti_logical ( Hndl, Element,   Data, &
2805                               locCount,  Status ) 
2806 #endif
2807 #ifdef XXX
2808       CASE ( IO_XXX   )
2809         CALL ext_xxx_put_dom_ti_logical ( Hndl, Element,   Data, &
2810                               locCount,  Status ) 
2811 #endif
2812 #ifdef YYY
2813       CASE ( IO_YYY   )
2814         CALL ext_yyy_put_dom_ti_logical ( Hndl, Element,   Data, &
2815                               locCount,  Status ) 
2816 #endif
2817 #ifdef GRIB1
2818       CASE ( IO_GRIB1   )
2819         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2820            CALL ext_gr1_put_dom_ti_logical ( Hndl, Element,   Data, &
2821                                  locCount,  Status ) 
2822         ENDIF
2823         IF ( .NOT. multi_files(io_form) ) THEN
2824           
2825           
2826           
2827           
2828           
2829           
2830           
2831           
2832           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2833         ENDIF
2834 #endif
2835 #ifdef GRIB2
2836       CASE ( IO_GRIB2   )
2837         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2838            CALL ext_gr2_put_dom_ti_logical ( Hndl, Element,   Data, &
2839                                  locCount,  Status ) 
2840         ENDIF
2841         IF ( .NOT. multi_files(io_form) ) THEN
2842           
2843           
2844           
2845           
2846           
2847           
2848           
2849           
2850           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2851         ENDIF
2852 #endif
2853 #ifdef INTIO
2854       CASE ( IO_INTIO   )
2855         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2856            CALL ext_int_put_dom_ti_logical ( Hndl, Element,   Data, &
2857                                  locCount,  Status ) 
2858         ENDIF
2859         IF ( .NOT. multi_files(io_form) ) THEN
2860            
2861            
2862            
2863            
2864            
2865            
2866            
2867            
2868            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2869         ENDIF
2870 #endif
2871       CASE DEFAULT
2872     END SELECT
2873   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
2874     CALL wrf_quilt_put_dom_ti_logical ( Hndl, Element,   Data, &
2875                           locCount,  Status )
2876   ELSE
2877     Status = 0
2878 ENDIF
2879 ELSE
2880   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
2881 ENDIF
2882 RETURN
2883 END SUBROUTINE wrf_put_dom_ti_logical_arr 
2884 !--- put_dom_ti_logical
2886 SUBROUTINE wrf_put_dom_ti_logical_sca ( DataHandle,Element,   Data, Count,  Status )
2887 !<DESCRIPTION>
2888 !<PRE>
2890 ! Write time independent
2891 ! domain metadata named "Element"  
2892 ! to the open dataset described by DataHandle.  
2893 ! Metadata of type logical are
2894 ! copied from scalar Data.
2897 !</PRE>
2898 !</DESCRIPTION>
2899 USE module_state_description
2900 IMPLICIT NONE
2901 INTEGER ,       INTENT(IN)  :: DataHandle
2902 CHARACTER*(*) , INTENT(IN)  :: Element
2906  logical  :: Data 
2908 INTEGER ,       INTENT(IN)  :: Count
2910 INTEGER ,       INTENT(OUT) :: Status
2912 #include "wrf_status_codes.h"
2913 INTEGER                     :: len_of_str
2914 LOGICAL                     :: for_out
2915 INTEGER, EXTERNAL           :: use_package
2916 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
2917 INTEGER                     :: locCount
2919 INTEGER io_form , Hndl
2921 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_logical_sca " )
2925 locCount = Count
2927 Status = 0
2928 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
2929 IF ( Hndl .GT. -1 ) THEN
2930   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
2931     SELECT CASE ( use_package( io_form ) )
2932 #ifdef NETCDF
2933       CASE ( IO_NETCDF   )
2934         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2935            CALL ext_ncd_put_dom_ti_logical ( Hndl, Element,   Data, &
2936                                  locCount,  Status ) 
2937         ENDIF
2938         IF ( .NOT. multi_files(io_form) ) THEN
2939           
2940           
2941           
2942           
2943           
2944           
2945           
2946           
2947           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2948         ENDIF
2949 #endif
2950 #ifdef NETCDFPAR
2951       CASE ( IO_NETCDFPAR   )
2952         CALL ext_ncdpar_put_dom_ti_logical ( Hndl, Element,   Data, &
2953                               locCount,  Status ) 
2954 #endif
2956 #ifdef PNETCDF
2957       CASE ( IO_PNETCDF   )
2958         CALL ext_pnc_put_dom_ti_logical ( Hndl, Element,   Data, &
2959                               locCount,  Status ) 
2960 #endif
2961 #ifdef PHDF5
2962       CASE ( IO_PHDF5   )
2963         CALL ext_phdf5_put_dom_ti_logical ( Hndl, Element,   Data, &
2964                               locCount,  Status ) 
2965 #endif
2966 #ifdef ESMFIO
2967       CASE ( IO_ESMF )
2968         CALL ext_esmf_put_dom_ti_logical ( Hndl, Element,   Data, &
2969                               locCount,  Status ) 
2970 #endif
2971 #ifdef XXX
2972       CASE ( IO_XXX   )
2973         CALL ext_xxx_put_dom_ti_logical ( Hndl, Element,   Data, &
2974                               locCount,  Status ) 
2975 #endif
2976 #ifdef YYY
2977       CASE ( IO_YYY   )
2978         CALL ext_yyy_put_dom_ti_logical ( Hndl, Element,   Data, &
2979                               locCount,  Status ) 
2980 #endif
2981 #ifdef GRIB1
2982       CASE ( IO_GRIB1   )
2983         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
2984            CALL ext_gr1_put_dom_ti_logical ( Hndl, Element,   Data, &
2985                                  locCount,  Status ) 
2986         ENDIF
2987         IF ( .NOT. multi_files(io_form) ) THEN
2988           
2989           
2990           
2991           
2992           
2993           
2994           
2995           
2996           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
2997         ENDIF
2998 #endif
2999 #ifdef GRIB2
3000       CASE ( IO_GRIB2   )
3001         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3002            CALL ext_gr2_put_dom_ti_logical ( Hndl, Element,   Data, &
3003                                  locCount,  Status ) 
3004         ENDIF
3005         IF ( .NOT. multi_files(io_form) ) THEN
3006           
3007           
3008           
3009           
3010           
3011           
3012           
3013           
3014           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3015         ENDIF
3016 #endif
3017 #ifdef INTIO
3018       CASE ( IO_INTIO   )
3019         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3020            CALL ext_int_put_dom_ti_logical ( Hndl, Element,   Data, &
3021                                  locCount,  Status ) 
3022         ENDIF
3023         IF ( .NOT. multi_files(io_form) ) THEN
3024            
3025            
3026            
3027            
3028            
3029            
3030            
3031            
3032            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3033         ENDIF
3034 #endif
3035       CASE DEFAULT
3036     END SELECT
3037   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
3038     CALL wrf_quilt_put_dom_ti_logical ( Hndl, Element,   Data, &
3039                           locCount,  Status )
3040   ELSE
3041     Status = 0
3042 ENDIF
3043 ELSE
3044   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
3045 ENDIF
3046 RETURN
3047 END SUBROUTINE wrf_put_dom_ti_logical_sca 
3050 !--- get_dom_ti_char
3052 SUBROUTINE wrf_get_dom_ti_char_arr ( DataHandle,Element,   Data,  Status )
3053 !<DESCRIPTION>
3054 !<PRE>
3056 ! Attempt to read time independent
3057 ! domain metadata named "Element"  
3058 ! from the open dataset described by DataHandle.  
3059 ! Metadata of type char are
3060 ! stored in string Data.
3063 !</PRE>
3064 !</DESCRIPTION>
3065 USE module_state_description
3066 IMPLICIT NONE
3067 INTEGER ,       INTENT(IN)  :: DataHandle
3068 CHARACTER*(*) , INTENT(IN)  :: Element
3072  CHARACTER*(*)  :: Data
3076 INTEGER ,       INTENT(OUT) :: Status
3078 #include "wrf_status_codes.h"
3079 INTEGER                     :: len_of_str
3080 LOGICAL                     :: for_out
3081 INTEGER, EXTERNAL           :: use_package
3082 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
3083 INTEGER                     :: locCount
3085 INTEGER io_form , Hndl
3087 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_ti_char_arr " )
3093 Status = 0
3094 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
3095 IF ( Hndl .GT. -1 ) THEN
3096   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
3097     SELECT CASE ( use_package( io_form ) )
3098 #ifdef NETCDF
3099       CASE ( IO_NETCDF   )
3100         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3101            CALL ext_ncd_get_dom_ti_char ( Hndl, Element,   Data, &
3102                                   Status ) 
3103         ENDIF
3104         IF ( .NOT. multi_files(io_form) ) THEN
3105           
3106           
3107           
3108           
3109           
3110           
3111           len_of_str = LEN(Data)
3112           CALL wrf_dm_bcast_string( Data, len_of_str )
3113           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3114         ENDIF
3115 #endif
3116 #ifdef NETCDFPAR
3117       CASE ( IO_NETCDFPAR   )
3118         CALL ext_ncdpar_get_dom_ti_char ( Hndl, Element,   Data, &
3119                                Status ) 
3120 #endif
3122 #ifdef PNETCDF
3123       CASE ( IO_PNETCDF   )
3124         CALL ext_pnc_get_dom_ti_char ( Hndl, Element,   Data, &
3125                                Status ) 
3126 #endif
3127 #ifdef PHDF5
3128       CASE ( IO_PHDF5   )
3129         CALL ext_phdf5_get_dom_ti_char ( Hndl, Element,   Data, &
3130                                Status ) 
3131 #endif
3132 #ifdef ESMFIO
3133       CASE ( IO_ESMF )
3134         CALL ext_esmf_get_dom_ti_char ( Hndl, Element,   Data, &
3135                                Status ) 
3136 #endif
3137 #ifdef XXX
3138       CASE ( IO_XXX   )
3139         CALL ext_xxx_get_dom_ti_char ( Hndl, Element,   Data, &
3140                                Status ) 
3141 #endif
3142 #ifdef YYY
3143       CASE ( IO_YYY   )
3144         CALL ext_yyy_get_dom_ti_char ( Hndl, Element,   Data, &
3145                                Status ) 
3146 #endif
3147 #ifdef GRIB1
3148       CASE ( IO_GRIB1   )
3149         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3150            CALL ext_gr1_get_dom_ti_char ( Hndl, Element,   Data, &
3151                                   Status ) 
3152         ENDIF
3153         IF ( .NOT. multi_files(io_form) ) THEN
3154           
3155           
3156           
3157           
3158           
3159           
3160           len_of_str = LEN(Data)
3161           CALL wrf_dm_bcast_string( Data, len_of_str )
3162           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3163         ENDIF
3164 #endif
3165 #ifdef GRIB2
3166       CASE ( IO_GRIB2   )
3167         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3168            CALL ext_gr2_get_dom_ti_char ( Hndl, Element,   Data, &
3169                                   Status ) 
3170         ENDIF
3171         IF ( .NOT. multi_files(io_form) ) THEN
3172           
3173           
3174           
3175           
3176           
3177           
3178           len_of_str = LEN(Data)
3179           CALL wrf_dm_bcast_string( Data, len_of_str )
3180           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3181         ENDIF
3182 #endif
3183 #ifdef INTIO
3184       CASE ( IO_INTIO   )
3185         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3186            CALL ext_int_get_dom_ti_char ( Hndl, Element,   Data, &
3187                                   Status ) 
3188         ENDIF
3189         IF ( .NOT. multi_files(io_form) ) THEN
3190            
3191            
3192            
3193            
3194            
3195            
3196            len_of_str = LEN(Data)
3197            CALL wrf_dm_bcast_string( Data, len_of_str )
3198            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3199         ENDIF
3200 #endif
3201       CASE DEFAULT
3202     END SELECT
3203   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
3204     CALL wrf_quilt_get_dom_ti_char ( Hndl, Element,   Data, &
3205                            Status )
3206   ELSE
3207     Status = 0
3208 ENDIF
3209 ELSE
3210   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
3211 ENDIF
3212 RETURN
3213 END SUBROUTINE wrf_get_dom_ti_char_arr 
3216 !--- put_dom_ti_char
3218 SUBROUTINE wrf_put_dom_ti_char_arr ( DataHandle,Element,   Data,  Status )
3219 !<DESCRIPTION>
3220 !<PRE>
3222 ! Write time independent
3223 ! domain metadata named "Element"  
3224 ! to the open dataset described by DataHandle.  
3225 ! Metadata of type char are
3226 ! copied from string Data.
3229 !</PRE>
3230 !</DESCRIPTION>
3231 USE module_state_description
3232 IMPLICIT NONE
3233 INTEGER ,       INTENT(IN)  :: DataHandle
3234 CHARACTER*(*) , INTENT(IN)  :: Element
3238  CHARACTER*(*)  :: Data
3242 INTEGER ,       INTENT(OUT) :: Status
3244 #include "wrf_status_codes.h"
3245 INTEGER                     :: len_of_str
3246 LOGICAL                     :: for_out
3247 INTEGER, EXTERNAL           :: use_package
3248 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
3249 INTEGER                     :: locCount
3251 INTEGER io_form , Hndl
3253 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_ti_char_arr " )
3259 Status = 0
3260 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
3261 IF ( Hndl .GT. -1 ) THEN
3262   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
3263     SELECT CASE ( use_package( io_form ) )
3264 #ifdef NETCDF
3265       CASE ( IO_NETCDF   )
3266         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3267            CALL ext_ncd_put_dom_ti_char ( Hndl, Element,   Data, &
3268                                   Status ) 
3269         ENDIF
3270         IF ( .NOT. multi_files(io_form) ) THEN
3271           
3272           
3273           
3274           
3275           
3276           
3277           
3278           
3279           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3280         ENDIF
3281 #endif
3282 #ifdef NETCDFPAR
3283       CASE ( IO_NETCDFPAR   )
3284         CALL ext_ncdpar_put_dom_ti_char ( Hndl, Element,   Data, &
3285                                Status ) 
3286 #endif
3288 #ifdef PNETCDF
3289       CASE ( IO_PNETCDF   )
3290         CALL ext_pnc_put_dom_ti_char ( Hndl, Element,   Data, &
3291                                Status ) 
3292 #endif
3293 #ifdef PHDF5
3294       CASE ( IO_PHDF5   )
3295         CALL ext_phdf5_put_dom_ti_char ( Hndl, Element,   Data, &
3296                                Status ) 
3297 #endif
3298 #ifdef ESMFIO
3299       CASE ( IO_ESMF )
3300         CALL ext_esmf_put_dom_ti_char ( Hndl, Element,   Data, &
3301                                Status ) 
3302 #endif
3303 #ifdef XXX
3304       CASE ( IO_XXX   )
3305         CALL ext_xxx_put_dom_ti_char ( Hndl, Element,   Data, &
3306                                Status ) 
3307 #endif
3308 #ifdef YYY
3309       CASE ( IO_YYY   )
3310         CALL ext_yyy_put_dom_ti_char ( Hndl, Element,   Data, &
3311                                Status ) 
3312 #endif
3313 #ifdef GRIB1
3314       CASE ( IO_GRIB1   )
3315         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3316            CALL ext_gr1_put_dom_ti_char ( Hndl, Element,   Data, &
3317                                   Status ) 
3318         ENDIF
3319         IF ( .NOT. multi_files(io_form) ) THEN
3320           
3321           
3322           
3323           
3324           
3325           
3326           
3327           
3328           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3329         ENDIF
3330 #endif
3331 #ifdef GRIB2
3332       CASE ( IO_GRIB2   )
3333         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3334            CALL ext_gr2_put_dom_ti_char ( Hndl, Element,   Data, &
3335                                   Status ) 
3336         ENDIF
3337         IF ( .NOT. multi_files(io_form) ) THEN
3338           
3339           
3340           
3341           
3342           
3343           
3344           
3345           
3346           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3347         ENDIF
3348 #endif
3349 #ifdef INTIO
3350       CASE ( IO_INTIO   )
3351         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3352            CALL ext_int_put_dom_ti_char ( Hndl, Element,   Data, &
3353                                   Status ) 
3354         ENDIF
3355         IF ( .NOT. multi_files(io_form) ) THEN
3356            
3357            
3358            
3359            
3360            
3361            
3362            
3363            
3364            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3365         ENDIF
3366 #endif
3367       CASE DEFAULT
3368     END SELECT
3369   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
3370     CALL wrf_quilt_put_dom_ti_char ( Hndl, Element,   Data, &
3371                            Status )
3372   ELSE
3373     Status = 0
3374 ENDIF
3375 ELSE
3376   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
3377 ENDIF
3378 RETURN
3379 END SUBROUTINE wrf_put_dom_ti_char_arr 
3383 !--- get_dom_td_real
3385 SUBROUTINE wrf_get_dom_td_real_arr ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
3386 !<DESCRIPTION>
3387 !<PRE>
3389 ! Attempt to read Count words of time dependent
3390 ! domain metadata named "Element" valid at time DateStr 
3391 ! from the open dataset described by DataHandle.  
3392 ! Metadata of type real are
3393 ! stored in array Data.
3394 ! Actual number of words read is returned in OutCount.
3396 !</PRE>
3397 !</DESCRIPTION>
3398 USE module_state_description
3399 IMPLICIT NONE
3400 INTEGER ,       INTENT(IN)  :: DataHandle
3401 CHARACTER*(*) , INTENT(IN)  :: Element
3402 CHARACTER*(*) , INTENT(IN)  :: DateStr
3405  real  :: Data (*)
3407 INTEGER ,       INTENT(IN)  :: Count
3408 INTEGER ,       INTENT(OUT)  :: OutCount
3409 INTEGER ,       INTENT(OUT) :: Status
3411 #include "wrf_status_codes.h"
3412 INTEGER                     :: len_of_str
3413 LOGICAL                     :: for_out
3414 INTEGER, EXTERNAL           :: use_package
3415 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
3416 INTEGER                     :: locCount
3418 INTEGER io_form , Hndl
3420 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_real_arr " )
3423 locCount = Count
3426 Status = 0
3427 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
3428 IF ( Hndl .GT. -1 ) THEN
3429   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
3430     SELECT CASE ( use_package( io_form ) )
3431 #ifdef NETCDF
3432       CASE ( IO_NETCDF   )
3433         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3434 #  if ( RWORDSIZE == DWORDSIZE )
3435            CALL ext_ncd_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3436                                  locCount, Outcount, Status )
3437 #  else
3438            CALL ext_ncd_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3439                                  locCount, Outcount, Status )
3440 #  endif
3441         ENDIF
3442         IF ( .NOT. multi_files(io_form) ) THEN
3443           
3444           
3445           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3446           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3447           
3448           
3449           
3450           
3451           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3452         ENDIF
3453 #endif
3454 #ifdef NETCDFPAR
3455       CASE ( IO_NETCDFPAR   )
3456 #  if ( RWORDSIZE == DWORDSIZE )
3457         CALL ext_ncdpar_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3458                               locCount, Outcount, Status )
3459 #  else
3460         CALL ext_ncdpar_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3461                               locCount, Outcount, Status )
3462 #  endif
3463 #endif
3465 #ifdef PNETCDF
3466       CASE ( IO_PNETCDF   )
3467 #  if ( RWORDSIZE == DWORDSIZE )
3468         CALL ext_pnc_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3469                               locCount, Outcount, Status )
3470 #  else
3471         CALL ext_pnc_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3472                               locCount, Outcount, Status )
3473 #  endif
3474 #endif
3475 #ifdef PHDF5
3476       CASE ( IO_PHDF5   )
3477 #  if ( RWORDSIZE == DWORDSIZE )
3478         CALL ext_phdf5_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3479                               locCount, Outcount, Status )
3480 #  else
3481         CALL ext_phdf5_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3482                               locCount, Outcount, Status )
3483 #  endif
3484 #endif
3485 #ifdef ESMFIO
3486       CASE ( IO_ESMF )
3487 #  if ( RWORDSIZE == DWORDSIZE )
3488         CALL ext_esmf_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3489                               locCount, Outcount, Status )
3490 #  else
3491         CALL ext_esmf_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3492                               locCount, Outcount, Status )
3493 #  endif
3494 #endif
3495 #ifdef XXX
3496       CASE ( IO_XXX   )
3497 #  if ( RWORDSIZE == DWORDSIZE )
3498         CALL ext_xxx_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3499                               locCount, Outcount, Status )
3500 #  else
3501         CALL ext_xxx_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3502                               locCount, Outcount, Status )
3503 #  endif
3504 #endif
3505 #ifdef YYY
3506       CASE ( IO_YYY   )
3507 #  if ( RWORDSIZE == DWORDSIZE )
3508         CALL ext_yyy_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3509                               locCount, Outcount, Status )
3510 #  else
3511         CALL ext_yyy_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3512                               locCount, Outcount, Status )
3513 #  endif
3514 #endif
3515 #ifdef GRIB1
3516       CASE ( IO_GRIB1   )
3517         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3518 #  if ( RWORDSIZE == DWORDSIZE )
3519            CALL ext_gr1_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3520                                  locCount, Outcount, Status )
3521 #  else
3522            CALL ext_gr1_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3523                                  locCount, Outcount, Status )
3524 #  endif
3525         ENDIF
3526         IF ( .NOT. multi_files(io_form) ) THEN
3527           
3528           
3529           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3530           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3531           
3532           
3533           
3534           
3535           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3536         ENDIF
3537 #endif
3538 #ifdef GRIB2
3539       CASE ( IO_GRIB2   )
3540         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3541 #  if ( RWORDSIZE == DWORDSIZE )
3542            CALL ext_gr2_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3543                                  locCount, Outcount, Status )
3544 #  else
3545            CALL ext_gr2_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3546                                  locCount, Outcount, Status )
3547 #  endif
3548         ENDIF
3549         IF ( .NOT. multi_files(io_form) ) THEN
3550           
3551           
3552           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3553           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3554           
3555           
3556           
3557           
3558           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3559         ENDIF
3560 #endif
3561 #ifdef INTIO
3562       CASE ( IO_INTIO   )
3563         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3564 #  if ( RWORDSIZE == DWORDSIZE )
3565            CALL ext_int_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3566                                  locCount, Outcount, Status )
3567 #  else
3568            CALL ext_int_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3569                                  locCount, Outcount, Status )
3570 #  endif
3571         ENDIF
3572         IF ( .NOT. multi_files(io_form) ) THEN
3573            
3574            
3575            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3576            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3577            
3578            
3579            
3580            
3581            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3582         ENDIF
3583 #endif
3584       CASE DEFAULT
3585     END SELECT
3586   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
3587     CALL wrf_quilt_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3588                           locCount, Outcount, Status )
3589   ELSE
3590     Status = 0
3591 ENDIF
3592 ELSE
3593   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
3594 ENDIF
3595 RETURN
3596 END SUBROUTINE wrf_get_dom_td_real_arr 
3597 !--- get_dom_td_real
3599 SUBROUTINE wrf_get_dom_td_real_sca ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
3600 !<DESCRIPTION>
3601 !<PRE>
3603 ! Attempt to read time dependent
3604 ! domain metadata named "Element" valid at time DateStr 
3605 ! from the open dataset described by DataHandle.  
3606 ! Metadata of type real are
3607 ! stored in scalar Data.
3610 !</PRE>
3611 !</DESCRIPTION>
3612 USE module_state_description
3613 IMPLICIT NONE
3614 INTEGER ,       INTENT(IN)  :: DataHandle
3615 CHARACTER*(*) , INTENT(IN)  :: Element
3616 CHARACTER*(*) , INTENT(IN)  :: DateStr
3619  real  :: Data 
3621 INTEGER ,       INTENT(IN)  :: Count
3622 INTEGER ,       INTENT(OUT)  :: OutCount
3623 INTEGER ,       INTENT(OUT) :: Status
3625 #include "wrf_status_codes.h"
3626 INTEGER                     :: len_of_str
3627 LOGICAL                     :: for_out
3628 INTEGER, EXTERNAL           :: use_package
3629 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
3630 INTEGER                     :: locCount
3632 INTEGER io_form , Hndl
3634 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_real_sca " )
3637 locCount = Count
3640 Status = 0
3641 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
3642 IF ( Hndl .GT. -1 ) THEN
3643   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
3644     SELECT CASE ( use_package( io_form ) )
3645 #ifdef NETCDF
3646       CASE ( IO_NETCDF   )
3647         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3648 #  if ( RWORDSIZE == DWORDSIZE )
3649            CALL ext_ncd_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3650                                  locCount, Outcount, Status )
3651 #  else
3652            CALL ext_ncd_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3653                                  locCount, Outcount, Status )
3654 #  endif
3655         ENDIF
3656         IF ( .NOT. multi_files(io_form) ) THEN
3657           
3658           
3659           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3660           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3661           
3662           
3663           
3664           
3665           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3666         ENDIF
3667 #endif
3668 #ifdef NETCDFPAR
3669       CASE ( IO_NETCDFPAR   )
3670 #  if ( RWORDSIZE == DWORDSIZE )
3671         CALL ext_ncdpar_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3672                               locCount, Outcount, Status )
3673 #  else
3674         CALL ext_ncdpar_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3675                               locCount, Outcount, Status )
3676 #  endif
3677 #endif
3679 #ifdef PNETCDF
3680       CASE ( IO_PNETCDF   )
3681 #  if ( RWORDSIZE == DWORDSIZE )
3682         CALL ext_pnc_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3683                               locCount, Outcount, Status )
3684 #  else
3685         CALL ext_pnc_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3686                               locCount, Outcount, Status )
3687 #  endif
3688 #endif
3689 #ifdef PHDF5
3690       CASE ( IO_PHDF5   )
3691 #  if ( RWORDSIZE == DWORDSIZE )
3692         CALL ext_phdf5_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3693                               locCount, Outcount, Status )
3694 #  else
3695         CALL ext_phdf5_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3696                               locCount, Outcount, Status )
3697 #  endif
3698 #endif
3699 #ifdef ESMFIO
3700       CASE ( IO_ESMF )
3701 #  if ( RWORDSIZE == DWORDSIZE )
3702         CALL ext_esmf_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3703                               locCount, Outcount, Status )
3704 #  else
3705         CALL ext_esmf_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3706                               locCount, Outcount, Status )
3707 #  endif
3708 #endif
3709 #ifdef XXX
3710       CASE ( IO_XXX   )
3711 #  if ( RWORDSIZE == DWORDSIZE )
3712         CALL ext_xxx_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3713                               locCount, Outcount, Status )
3714 #  else
3715         CALL ext_xxx_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3716                               locCount, Outcount, Status )
3717 #  endif
3718 #endif
3719 #ifdef YYY
3720       CASE ( IO_YYY   )
3721 #  if ( RWORDSIZE == DWORDSIZE )
3722         CALL ext_yyy_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3723                               locCount, Outcount, Status )
3724 #  else
3725         CALL ext_yyy_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3726                               locCount, Outcount, Status )
3727 #  endif
3728 #endif
3729 #ifdef GRIB1
3730       CASE ( IO_GRIB1   )
3731         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3732 #  if ( RWORDSIZE == DWORDSIZE )
3733            CALL ext_gr1_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3734                                  locCount, Outcount, Status )
3735 #  else
3736            CALL ext_gr1_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3737                                  locCount, Outcount, Status )
3738 #  endif
3739         ENDIF
3740         IF ( .NOT. multi_files(io_form) ) THEN
3741           
3742           
3743           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3744           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3745           
3746           
3747           
3748           
3749           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3750         ENDIF
3751 #endif
3752 #ifdef GRIB2
3753       CASE ( IO_GRIB2   )
3754         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3755 #  if ( RWORDSIZE == DWORDSIZE )
3756            CALL ext_gr2_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3757                                  locCount, Outcount, Status )
3758 #  else
3759            CALL ext_gr2_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3760                                  locCount, Outcount, Status )
3761 #  endif
3762         ENDIF
3763         IF ( .NOT. multi_files(io_form) ) THEN
3764           
3765           
3766           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3767           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3768           
3769           
3770           
3771           
3772           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3773         ENDIF
3774 #endif
3775 #ifdef INTIO
3776       CASE ( IO_INTIO   )
3777         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3778 #  if ( RWORDSIZE == DWORDSIZE )
3779            CALL ext_int_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
3780                                  locCount, Outcount, Status )
3781 #  else
3782            CALL ext_int_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3783                                  locCount, Outcount, Status )
3784 #  endif
3785         ENDIF
3786         IF ( .NOT. multi_files(io_form) ) THEN
3787            
3788            
3789            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
3790            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
3791            
3792            
3793            
3794            
3795            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3796         ENDIF
3797 #endif
3798       CASE DEFAULT
3799     END SELECT
3800   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
3801     CALL wrf_quilt_get_dom_td_real ( Hndl, Element, DateStr,  Data, &
3802                           locCount, Outcount, Status )
3803   ELSE
3804     Status = 0
3805 ENDIF
3806 ELSE
3807   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
3808 ENDIF
3809 RETURN
3810 END SUBROUTINE wrf_get_dom_td_real_sca 
3813 !--- put_dom_td_real
3815 SUBROUTINE wrf_put_dom_td_real_arr ( DataHandle,Element, DateStr,  Data, Count,  Status )
3816 !<DESCRIPTION>
3817 !<PRE>
3819 ! Write Count words of time dependent
3820 ! domain metadata named "Element" valid at time DateStr 
3821 ! to the open dataset described by DataHandle.  
3822 ! Metadata of type real are
3823 ! copied from array Data.
3826 !</PRE>
3827 !</DESCRIPTION>
3828 USE module_state_description
3829 IMPLICIT NONE
3830 INTEGER ,       INTENT(IN)  :: DataHandle
3831 CHARACTER*(*) , INTENT(IN)  :: Element
3832 CHARACTER*(*) , INTENT(IN)  :: DateStr
3835  real  :: Data (*)
3837 INTEGER ,       INTENT(IN)  :: Count
3839 INTEGER ,       INTENT(OUT) :: Status
3841 #include "wrf_status_codes.h"
3842 INTEGER                     :: len_of_str
3843 LOGICAL                     :: for_out
3844 INTEGER, EXTERNAL           :: use_package
3845 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
3846 INTEGER                     :: locCount
3848 INTEGER io_form , Hndl
3850 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_real_arr " )
3853 locCount = Count
3856 Status = 0
3857 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
3858 IF ( Hndl .GT. -1 ) THEN
3859   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
3860     SELECT CASE ( use_package( io_form ) )
3861 #ifdef NETCDF
3862       CASE ( IO_NETCDF   )
3863         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3864 #  if ( RWORDSIZE == DWORDSIZE )
3865            CALL ext_ncd_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3866                                  locCount,  Status )
3867 #  else
3868            CALL ext_ncd_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3869                                  locCount,  Status )
3870 #  endif
3871         ENDIF
3872         IF ( .NOT. multi_files(io_form) ) THEN
3873           
3874           
3875           
3876           
3877           
3878           
3879           
3880           
3881           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3882         ENDIF
3883 #endif
3884 #ifdef NETCDFPAR
3885       CASE ( IO_NETCDFPAR   )
3886 #  if ( RWORDSIZE == DWORDSIZE )
3887         CALL ext_ncdpar_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3888                               locCount,  Status )
3889 #  else
3890         CALL ext_ncdpar_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3891                               locCount,  Status )
3892 #  endif
3893 #endif
3895 #ifdef PNETCDF
3896       CASE ( IO_PNETCDF   )
3897 #  if ( RWORDSIZE == DWORDSIZE )
3898         CALL ext_pnc_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3899                               locCount,  Status )
3900 #  else
3901         CALL ext_pnc_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3902                               locCount,  Status )
3903 #  endif
3904 #endif
3905 #ifdef PHDF5
3906       CASE ( IO_PHDF5   )
3907 #  if ( RWORDSIZE == DWORDSIZE )
3908         CALL ext_phdf5_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3909                               locCount,  Status )
3910 #  else
3911         CALL ext_phdf5_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3912                               locCount,  Status )
3913 #  endif
3914 #endif
3915 #ifdef ESMFIO
3916       CASE ( IO_ESMF )
3917 #  if ( RWORDSIZE == DWORDSIZE )
3918         CALL ext_esmf_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3919                               locCount,  Status )
3920 #  else
3921         CALL ext_esmf_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3922                               locCount,  Status )
3923 #  endif
3924 #endif
3925 #ifdef XXX
3926       CASE ( IO_XXX   )
3927 #  if ( RWORDSIZE == DWORDSIZE )
3928         CALL ext_xxx_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3929                               locCount,  Status )
3930 #  else
3931         CALL ext_xxx_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3932                               locCount,  Status )
3933 #  endif
3934 #endif
3935 #ifdef YYY
3936       CASE ( IO_YYY   )
3937 #  if ( RWORDSIZE == DWORDSIZE )
3938         CALL ext_yyy_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3939                               locCount,  Status )
3940 #  else
3941         CALL ext_yyy_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3942                               locCount,  Status )
3943 #  endif
3944 #endif
3945 #ifdef GRIB1
3946       CASE ( IO_GRIB1   )
3947         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3948 #  if ( RWORDSIZE == DWORDSIZE )
3949            CALL ext_gr1_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3950                                  locCount,  Status )
3951 #  else
3952            CALL ext_gr1_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3953                                  locCount,  Status )
3954 #  endif
3955         ENDIF
3956         IF ( .NOT. multi_files(io_form) ) THEN
3957           
3958           
3959           
3960           
3961           
3962           
3963           
3964           
3965           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3966         ENDIF
3967 #endif
3968 #ifdef GRIB2
3969       CASE ( IO_GRIB2   )
3970         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3971 #  if ( RWORDSIZE == DWORDSIZE )
3972            CALL ext_gr2_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3973                                  locCount,  Status )
3974 #  else
3975            CALL ext_gr2_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3976                                  locCount,  Status )
3977 #  endif
3978         ENDIF
3979         IF ( .NOT. multi_files(io_form) ) THEN
3980           
3981           
3982           
3983           
3984           
3985           
3986           
3987           
3988           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
3989         ENDIF
3990 #endif
3991 #ifdef INTIO
3992       CASE ( IO_INTIO   )
3993         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
3994 #  if ( RWORDSIZE == DWORDSIZE )
3995            CALL ext_int_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
3996                                  locCount,  Status )
3997 #  else
3998            CALL ext_int_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
3999                                  locCount,  Status )
4000 #  endif
4001         ENDIF
4002         IF ( .NOT. multi_files(io_form) ) THEN
4003            
4004            
4005            
4006            
4007            
4008            
4009            
4010            
4011            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4012         ENDIF
4013 #endif
4014       CASE DEFAULT
4015     END SELECT
4016   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
4017     CALL wrf_quilt_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4018                           locCount,  Status )
4019   ELSE
4020     Status = 0
4021 ENDIF
4022 ELSE
4023   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
4024 ENDIF
4025 RETURN
4026 END SUBROUTINE wrf_put_dom_td_real_arr 
4027 !--- put_dom_td_real
4029 SUBROUTINE wrf_put_dom_td_real_sca ( DataHandle,Element, DateStr,  Data, Count,  Status )
4030 !<DESCRIPTION>
4031 !<PRE>
4033 ! Write time dependent
4034 ! domain metadata named "Element" valid at time DateStr 
4035 ! to the open dataset described by DataHandle.  
4036 ! Metadata of type real are
4037 ! copied from scalar Data.
4040 !</PRE>
4041 !</DESCRIPTION>
4042 USE module_state_description
4043 IMPLICIT NONE
4044 INTEGER ,       INTENT(IN)  :: DataHandle
4045 CHARACTER*(*) , INTENT(IN)  :: Element
4046 CHARACTER*(*) , INTENT(IN)  :: DateStr
4049  real  :: Data 
4051 INTEGER ,       INTENT(IN)  :: Count
4053 INTEGER ,       INTENT(OUT) :: Status
4055 #include "wrf_status_codes.h"
4056 INTEGER                     :: len_of_str
4057 LOGICAL                     :: for_out
4058 INTEGER, EXTERNAL           :: use_package
4059 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
4060 INTEGER                     :: locCount
4062 INTEGER io_form , Hndl
4064 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_real_sca " )
4067 locCount = Count
4070 Status = 0
4071 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
4072 IF ( Hndl .GT. -1 ) THEN
4073   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
4074     SELECT CASE ( use_package( io_form ) )
4075 #ifdef NETCDF
4076       CASE ( IO_NETCDF   )
4077         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4078 #  if ( RWORDSIZE == DWORDSIZE )
4079            CALL ext_ncd_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4080                                  locCount,  Status )
4081 #  else
4082            CALL ext_ncd_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4083                                  locCount,  Status )
4084 #  endif
4085         ENDIF
4086         IF ( .NOT. multi_files(io_form) ) THEN
4087           
4088           
4089           
4090           
4091           
4092           
4093           
4094           
4095           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4096         ENDIF
4097 #endif
4098 #ifdef NETCDFPAR
4099       CASE ( IO_NETCDFPAR   )
4100 #  if ( RWORDSIZE == DWORDSIZE )
4101         CALL ext_ncdpar_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4102                               locCount,  Status )
4103 #  else
4104         CALL ext_ncdpar_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4105                               locCount,  Status )
4106 #  endif
4107 #endif
4109 #ifdef PNETCDF
4110       CASE ( IO_PNETCDF   )
4111 #  if ( RWORDSIZE == DWORDSIZE )
4112         CALL ext_pnc_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4113                               locCount,  Status )
4114 #  else
4115         CALL ext_pnc_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4116                               locCount,  Status )
4117 #  endif
4118 #endif
4119 #ifdef PHDF5
4120       CASE ( IO_PHDF5   )
4121 #  if ( RWORDSIZE == DWORDSIZE )
4122         CALL ext_phdf5_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4123                               locCount,  Status )
4124 #  else
4125         CALL ext_phdf5_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4126                               locCount,  Status )
4127 #  endif
4128 #endif
4129 #ifdef ESMFIO
4130       CASE ( IO_ESMF )
4131 #  if ( RWORDSIZE == DWORDSIZE )
4132         CALL ext_esmf_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4133                               locCount,  Status )
4134 #  else
4135         CALL ext_esmf_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4136                               locCount,  Status )
4137 #  endif
4138 #endif
4139 #ifdef XXX
4140       CASE ( IO_XXX   )
4141 #  if ( RWORDSIZE == DWORDSIZE )
4142         CALL ext_xxx_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4143                               locCount,  Status )
4144 #  else
4145         CALL ext_xxx_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4146                               locCount,  Status )
4147 #  endif
4148 #endif
4149 #ifdef YYY
4150       CASE ( IO_YYY   )
4151 #  if ( RWORDSIZE == DWORDSIZE )
4152         CALL ext_yyy_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4153                               locCount,  Status )
4154 #  else
4155         CALL ext_yyy_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4156                               locCount,  Status )
4157 #  endif
4158 #endif
4159 #ifdef GRIB1
4160       CASE ( IO_GRIB1   )
4161         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4162 #  if ( RWORDSIZE == DWORDSIZE )
4163            CALL ext_gr1_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4164                                  locCount,  Status )
4165 #  else
4166            CALL ext_gr1_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4167                                  locCount,  Status )
4168 #  endif
4169         ENDIF
4170         IF ( .NOT. multi_files(io_form) ) THEN
4171           
4172           
4173           
4174           
4175           
4176           
4177           
4178           
4179           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4180         ENDIF
4181 #endif
4182 #ifdef GRIB2
4183       CASE ( IO_GRIB2   )
4184         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4185 #  if ( RWORDSIZE == DWORDSIZE )
4186            CALL ext_gr2_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4187                                  locCount,  Status )
4188 #  else
4189            CALL ext_gr2_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4190                                  locCount,  Status )
4191 #  endif
4192         ENDIF
4193         IF ( .NOT. multi_files(io_form) ) THEN
4194           
4195           
4196           
4197           
4198           
4199           
4200           
4201           
4202           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4203         ENDIF
4204 #endif
4205 #ifdef INTIO
4206       CASE ( IO_INTIO   )
4207         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4208 #  if ( RWORDSIZE == DWORDSIZE )
4209            CALL ext_int_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4210                                  locCount,  Status )
4211 #  else
4212            CALL ext_int_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4213                                  locCount,  Status )
4214 #  endif
4215         ENDIF
4216         IF ( .NOT. multi_files(io_form) ) THEN
4217            
4218            
4219            
4220            
4221            
4222            
4223            
4224            
4225            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4226         ENDIF
4227 #endif
4228       CASE DEFAULT
4229     END SELECT
4230   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
4231     CALL wrf_quilt_put_dom_td_real ( Hndl, Element, DateStr,  Data, &
4232                           locCount,  Status )
4233   ELSE
4234     Status = 0
4235 ENDIF
4236 ELSE
4237   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
4238 ENDIF
4239 RETURN
4240 END SUBROUTINE wrf_put_dom_td_real_sca 
4243 !--- get_dom_td_double
4245 SUBROUTINE wrf_get_dom_td_double_arr ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
4246 !<DESCRIPTION>
4247 !<PRE>
4249 ! Attempt to read Count words of time dependent
4250 ! domain metadata named "Element" valid at time DateStr 
4251 ! from the open dataset described by DataHandle.  
4252 ! Metadata of type double are
4253 ! stored in array Data.
4254 ! Actual number of words read is returned in OutCount.
4256 !</PRE>
4257 !</DESCRIPTION>
4258 USE module_state_description
4259 IMPLICIT NONE
4260 INTEGER ,       INTENT(IN)  :: DataHandle
4261 CHARACTER*(*) , INTENT(IN)  :: Element
4262 CHARACTER*(*) , INTENT(IN)  :: DateStr
4265  real*8  :: Data (*)
4267 INTEGER ,       INTENT(IN)  :: Count
4268 INTEGER ,       INTENT(OUT)  :: OutCount
4269 INTEGER ,       INTENT(OUT) :: Status
4271 #include "wrf_status_codes.h"
4272 INTEGER                     :: len_of_str
4273 LOGICAL                     :: for_out
4274 INTEGER, EXTERNAL           :: use_package
4275 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
4276 INTEGER                     :: locCount
4278 INTEGER io_form , Hndl
4280 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_double_arr " )
4286 Status = 0
4287 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
4288 IF ( Hndl .GT. -1 ) THEN
4289   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
4290     SELECT CASE ( use_package( io_form ) )
4291 #ifdef NETCDF
4292       CASE ( IO_NETCDF   )
4293         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4294            CALL ext_ncd_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4295                                  locCount, Outcount, Status ) 
4296         ENDIF
4297         IF ( .NOT. multi_files(io_form) ) THEN
4298           
4299           
4300           
4301           
4302           
4303           
4304           
4305           
4306           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4307         ENDIF
4308 #endif
4309 #ifdef NETCDFPAR
4310       CASE ( IO_NETCDFPAR   )
4311         CALL ext_ncdpar_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4312                               locCount, Outcount, Status ) 
4313 #endif
4315 #ifdef PNETCDF
4316       CASE ( IO_PNETCDF   )
4317         CALL ext_pnc_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4318                               locCount, Outcount, Status ) 
4319 #endif
4320 #ifdef PHDF5
4321       CASE ( IO_PHDF5   )
4322         CALL ext_phdf5_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4323                               locCount, Outcount, Status ) 
4324 #endif
4325 #ifdef ESMFIO
4326       CASE ( IO_ESMF )
4327         CALL ext_esmf_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4328                               locCount, Outcount, Status ) 
4329 #endif
4330 #ifdef XXX
4331       CASE ( IO_XXX   )
4332         CALL ext_xxx_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4333                               locCount, Outcount, Status ) 
4334 #endif
4335 #ifdef YYY
4336       CASE ( IO_YYY   )
4337         CALL ext_yyy_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4338                               locCount, Outcount, Status ) 
4339 #endif
4340 #ifdef GRIB1
4341       CASE ( IO_GRIB1   )
4342         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4343            CALL ext_gr1_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4344                                  locCount, Outcount, Status ) 
4345         ENDIF
4346         IF ( .NOT. multi_files(io_form) ) THEN
4347           
4348           
4349           
4350           
4351           
4352           
4353           
4354           
4355           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4356         ENDIF
4357 #endif
4358 #ifdef GRIB2
4359       CASE ( IO_GRIB2   )
4360         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4361            CALL ext_gr2_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4362                                  locCount, Outcount, Status ) 
4363         ENDIF
4364         IF ( .NOT. multi_files(io_form) ) THEN
4365           
4366           
4367           
4368           
4369           
4370           
4371           
4372           
4373           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4374         ENDIF
4375 #endif
4376 #ifdef INTIO
4377       CASE ( IO_INTIO   )
4378         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4379            CALL ext_int_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4380                                  locCount, Outcount, Status ) 
4381         ENDIF
4382         IF ( .NOT. multi_files(io_form) ) THEN
4383            
4384            
4385            
4386            
4387            
4388            
4389            
4390            
4391            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4392         ENDIF
4393 #endif
4394       CASE DEFAULT
4395     END SELECT
4396   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
4397     CALL wrf_quilt_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4398                           locCount, Outcount, Status )
4399   ELSE
4400     Status = 0
4401 ENDIF
4402 ELSE
4403   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
4404 ENDIF
4405 RETURN
4406 END SUBROUTINE wrf_get_dom_td_double_arr 
4407 !--- get_dom_td_double
4409 SUBROUTINE wrf_get_dom_td_double_sca ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
4410 !<DESCRIPTION>
4411 !<PRE>
4413 ! Attempt to read time dependent
4414 ! domain metadata named "Element" valid at time DateStr 
4415 ! from the open dataset described by DataHandle.  
4416 ! Metadata of type double are
4417 ! stored in scalar Data.
4420 !</PRE>
4421 !</DESCRIPTION>
4422 USE module_state_description
4423 IMPLICIT NONE
4424 INTEGER ,       INTENT(IN)  :: DataHandle
4425 CHARACTER*(*) , INTENT(IN)  :: Element
4426 CHARACTER*(*) , INTENT(IN)  :: DateStr
4429  real*8  :: Data 
4431 INTEGER ,       INTENT(IN)  :: Count
4432 INTEGER ,       INTENT(OUT)  :: OutCount
4433 INTEGER ,       INTENT(OUT) :: Status
4435 #include "wrf_status_codes.h"
4436 INTEGER                     :: len_of_str
4437 LOGICAL                     :: for_out
4438 INTEGER, EXTERNAL           :: use_package
4439 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
4440 INTEGER                     :: locCount
4442 INTEGER io_form , Hndl
4444 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_double_sca " )
4450 Status = 0
4451 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
4452 IF ( Hndl .GT. -1 ) THEN
4453   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
4454     SELECT CASE ( use_package( io_form ) )
4455 #ifdef NETCDF
4456       CASE ( IO_NETCDF   )
4457         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4458            CALL ext_ncd_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4459                                  locCount, Outcount, Status ) 
4460         ENDIF
4461         IF ( .NOT. multi_files(io_form) ) THEN
4462           
4463           
4464           
4465           
4466           
4467           
4468           
4469           
4470           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4471         ENDIF
4472 #endif
4473 #ifdef NETCDFPAR
4474       CASE ( IO_NETCDFPAR   )
4475         CALL ext_ncdpar_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4476                               locCount, Outcount, Status ) 
4477 #endif
4479 #ifdef PNETCDF
4480       CASE ( IO_PNETCDF   )
4481         CALL ext_pnc_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4482                               locCount, Outcount, Status ) 
4483 #endif
4484 #ifdef PHDF5
4485       CASE ( IO_PHDF5   )
4486         CALL ext_phdf5_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4487                               locCount, Outcount, Status ) 
4488 #endif
4489 #ifdef ESMFIO
4490       CASE ( IO_ESMF )
4491         CALL ext_esmf_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4492                               locCount, Outcount, Status ) 
4493 #endif
4494 #ifdef XXX
4495       CASE ( IO_XXX   )
4496         CALL ext_xxx_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4497                               locCount, Outcount, Status ) 
4498 #endif
4499 #ifdef YYY
4500       CASE ( IO_YYY   )
4501         CALL ext_yyy_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4502                               locCount, Outcount, Status ) 
4503 #endif
4504 #ifdef GRIB1
4505       CASE ( IO_GRIB1   )
4506         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4507            CALL ext_gr1_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4508                                  locCount, Outcount, Status ) 
4509         ENDIF
4510         IF ( .NOT. multi_files(io_form) ) THEN
4511           
4512           
4513           
4514           
4515           
4516           
4517           
4518           
4519           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4520         ENDIF
4521 #endif
4522 #ifdef GRIB2
4523       CASE ( IO_GRIB2   )
4524         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4525            CALL ext_gr2_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4526                                  locCount, Outcount, Status ) 
4527         ENDIF
4528         IF ( .NOT. multi_files(io_form) ) THEN
4529           
4530           
4531           
4532           
4533           
4534           
4535           
4536           
4537           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4538         ENDIF
4539 #endif
4540 #ifdef INTIO
4541       CASE ( IO_INTIO   )
4542         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4543            CALL ext_int_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4544                                  locCount, Outcount, Status ) 
4545         ENDIF
4546         IF ( .NOT. multi_files(io_form) ) THEN
4547            
4548            
4549            
4550            
4551            
4552            
4553            
4554            
4555            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4556         ENDIF
4557 #endif
4558       CASE DEFAULT
4559     END SELECT
4560   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
4561     CALL wrf_quilt_get_dom_td_double ( Hndl, Element, DateStr,  Data, &
4562                           locCount, Outcount, Status )
4563   ELSE
4564     Status = 0
4565 ENDIF
4566 ELSE
4567   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
4568 ENDIF
4569 RETURN
4570 END SUBROUTINE wrf_get_dom_td_double_sca 
4573 !--- put_dom_td_double
4575 SUBROUTINE wrf_put_dom_td_double_arr ( DataHandle,Element, DateStr,  Data, Count,  Status )
4576 !<DESCRIPTION>
4577 !<PRE>
4579 ! Write Count words of time dependent
4580 ! domain metadata named "Element" valid at time DateStr 
4581 ! to the open dataset described by DataHandle.  
4582 ! Metadata of type double are
4583 ! copied from array Data.
4586 !</PRE>
4587 !</DESCRIPTION>
4588 USE module_state_description
4589 IMPLICIT NONE
4590 INTEGER ,       INTENT(IN)  :: DataHandle
4591 CHARACTER*(*) , INTENT(IN)  :: Element
4592 CHARACTER*(*) , INTENT(IN)  :: DateStr
4595  real*8  :: Data (*)
4597 INTEGER ,       INTENT(IN)  :: Count
4599 INTEGER ,       INTENT(OUT) :: Status
4601 #include "wrf_status_codes.h"
4602 INTEGER                     :: len_of_str
4603 LOGICAL                     :: for_out
4604 INTEGER, EXTERNAL           :: use_package
4605 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
4606 INTEGER                     :: locCount
4608 INTEGER io_form , Hndl
4610 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_double_arr " )
4616 Status = 0
4617 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
4618 IF ( Hndl .GT. -1 ) THEN
4619   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
4620     SELECT CASE ( use_package( io_form ) )
4621 #ifdef NETCDF
4622       CASE ( IO_NETCDF   )
4623         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4624            CALL ext_ncd_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4625                                  locCount,  Status ) 
4626         ENDIF
4627         IF ( .NOT. multi_files(io_form) ) THEN
4628           
4629           
4630           
4631           
4632           
4633           
4634           
4635           
4636           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4637         ENDIF
4638 #endif
4639 #ifdef NETCDFPAR
4640       CASE ( IO_NETCDFPAR   )
4641         CALL ext_ncdpar_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4642                               locCount,  Status ) 
4643 #endif
4645 #ifdef PNETCDF
4646       CASE ( IO_PNETCDF   )
4647         CALL ext_pnc_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4648                               locCount,  Status ) 
4649 #endif
4650 #ifdef PHDF5
4651       CASE ( IO_PHDF5   )
4652         CALL ext_phdf5_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4653                               locCount,  Status ) 
4654 #endif
4655 #ifdef ESMFIO
4656       CASE ( IO_ESMF )
4657         CALL ext_esmf_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4658                               locCount,  Status ) 
4659 #endif
4660 #ifdef XXX
4661       CASE ( IO_XXX   )
4662         CALL ext_xxx_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4663                               locCount,  Status ) 
4664 #endif
4665 #ifdef YYY
4666       CASE ( IO_YYY   )
4667         CALL ext_yyy_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4668                               locCount,  Status ) 
4669 #endif
4670 #ifdef GRIB1
4671       CASE ( IO_GRIB1   )
4672         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4673            CALL ext_gr1_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4674                                  locCount,  Status ) 
4675         ENDIF
4676         IF ( .NOT. multi_files(io_form) ) THEN
4677           
4678           
4679           
4680           
4681           
4682           
4683           
4684           
4685           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4686         ENDIF
4687 #endif
4688 #ifdef GRIB2
4689       CASE ( IO_GRIB2   )
4690         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4691            CALL ext_gr2_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4692                                  locCount,  Status ) 
4693         ENDIF
4694         IF ( .NOT. multi_files(io_form) ) THEN
4695           
4696           
4697           
4698           
4699           
4700           
4701           
4702           
4703           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4704         ENDIF
4705 #endif
4706 #ifdef INTIO
4707       CASE ( IO_INTIO   )
4708         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4709            CALL ext_int_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4710                                  locCount,  Status ) 
4711         ENDIF
4712         IF ( .NOT. multi_files(io_form) ) THEN
4713            
4714            
4715            
4716            
4717            
4718            
4719            
4720            
4721            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4722         ENDIF
4723 #endif
4724       CASE DEFAULT
4725     END SELECT
4726   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
4727     CALL wrf_quilt_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4728                           locCount,  Status )
4729   ELSE
4730     Status = 0
4731 ENDIF
4732 ELSE
4733   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
4734 ENDIF
4735 RETURN
4736 END SUBROUTINE wrf_put_dom_td_double_arr 
4737 !--- put_dom_td_double
4739 SUBROUTINE wrf_put_dom_td_double_sca ( DataHandle,Element, DateStr,  Data, Count,  Status )
4740 !<DESCRIPTION>
4741 !<PRE>
4743 ! Write time dependent
4744 ! domain metadata named "Element" valid at time DateStr 
4745 ! to the open dataset described by DataHandle.  
4746 ! Metadata of type double are
4747 ! copied from scalar Data.
4750 !</PRE>
4751 !</DESCRIPTION>
4752 USE module_state_description
4753 IMPLICIT NONE
4754 INTEGER ,       INTENT(IN)  :: DataHandle
4755 CHARACTER*(*) , INTENT(IN)  :: Element
4756 CHARACTER*(*) , INTENT(IN)  :: DateStr
4759  real*8  :: Data 
4761 INTEGER ,       INTENT(IN)  :: Count
4763 INTEGER ,       INTENT(OUT) :: Status
4765 #include "wrf_status_codes.h"
4766 INTEGER                     :: len_of_str
4767 LOGICAL                     :: for_out
4768 INTEGER, EXTERNAL           :: use_package
4769 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
4770 INTEGER                     :: locCount
4772 INTEGER io_form , Hndl
4774 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_double_sca " )
4780 Status = 0
4781 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
4782 IF ( Hndl .GT. -1 ) THEN
4783   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
4784     SELECT CASE ( use_package( io_form ) )
4785 #ifdef NETCDF
4786       CASE ( IO_NETCDF   )
4787         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4788            CALL ext_ncd_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4789                                  locCount,  Status ) 
4790         ENDIF
4791         IF ( .NOT. multi_files(io_form) ) THEN
4792           
4793           
4794           
4795           
4796           
4797           
4798           
4799           
4800           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4801         ENDIF
4802 #endif
4803 #ifdef NETCDFPAR
4804       CASE ( IO_NETCDFPAR   )
4805         CALL ext_ncdpar_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4806                               locCount,  Status ) 
4807 #endif
4809 #ifdef PNETCDF
4810       CASE ( IO_PNETCDF   )
4811         CALL ext_pnc_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4812                               locCount,  Status ) 
4813 #endif
4814 #ifdef PHDF5
4815       CASE ( IO_PHDF5   )
4816         CALL ext_phdf5_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4817                               locCount,  Status ) 
4818 #endif
4819 #ifdef ESMFIO
4820       CASE ( IO_ESMF )
4821         CALL ext_esmf_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4822                               locCount,  Status ) 
4823 #endif
4824 #ifdef XXX
4825       CASE ( IO_XXX   )
4826         CALL ext_xxx_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4827                               locCount,  Status ) 
4828 #endif
4829 #ifdef YYY
4830       CASE ( IO_YYY   )
4831         CALL ext_yyy_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4832                               locCount,  Status ) 
4833 #endif
4834 #ifdef GRIB1
4835       CASE ( IO_GRIB1   )
4836         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4837            CALL ext_gr1_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4838                                  locCount,  Status ) 
4839         ENDIF
4840         IF ( .NOT. multi_files(io_form) ) THEN
4841           
4842           
4843           
4844           
4845           
4846           
4847           
4848           
4849           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4850         ENDIF
4851 #endif
4852 #ifdef GRIB2
4853       CASE ( IO_GRIB2   )
4854         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4855            CALL ext_gr2_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4856                                  locCount,  Status ) 
4857         ENDIF
4858         IF ( .NOT. multi_files(io_form) ) THEN
4859           
4860           
4861           
4862           
4863           
4864           
4865           
4866           
4867           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4868         ENDIF
4869 #endif
4870 #ifdef INTIO
4871       CASE ( IO_INTIO   )
4872         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4873            CALL ext_int_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4874                                  locCount,  Status ) 
4875         ENDIF
4876         IF ( .NOT. multi_files(io_form) ) THEN
4877            
4878            
4879            
4880            
4881            
4882            
4883            
4884            
4885            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4886         ENDIF
4887 #endif
4888       CASE DEFAULT
4889     END SELECT
4890   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
4891     CALL wrf_quilt_put_dom_td_double ( Hndl, Element, DateStr,  Data, &
4892                           locCount,  Status )
4893   ELSE
4894     Status = 0
4895 ENDIF
4896 ELSE
4897   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
4898 ENDIF
4899 RETURN
4900 END SUBROUTINE wrf_put_dom_td_double_sca 
4903 !--- get_dom_td_integer
4905 SUBROUTINE wrf_get_dom_td_integer_arr ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
4906 !<DESCRIPTION>
4907 !<PRE>
4909 ! Attempt to read Count words of time dependent
4910 ! domain metadata named "Element" valid at time DateStr 
4911 ! from the open dataset described by DataHandle.  
4912 ! Metadata of type integer are
4913 ! stored in array Data.
4914 ! Actual number of words read is returned in OutCount.
4916 !</PRE>
4917 !</DESCRIPTION>
4918 USE module_state_description
4919 IMPLICIT NONE
4920 INTEGER ,       INTENT(IN)  :: DataHandle
4921 CHARACTER*(*) , INTENT(IN)  :: Element
4922 CHARACTER*(*) , INTENT(IN)  :: DateStr
4925  integer  :: Data (*)
4927 INTEGER ,       INTENT(IN)  :: Count
4928 INTEGER ,       INTENT(OUT)  :: OutCount
4929 INTEGER ,       INTENT(OUT) :: Status
4931 #include "wrf_status_codes.h"
4932 INTEGER                     :: len_of_str
4933 LOGICAL                     :: for_out
4934 INTEGER, EXTERNAL           :: use_package
4935 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
4936 INTEGER                     :: locCount
4938 INTEGER io_form , Hndl
4940 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_integer_arr " )
4942 locCount = Count
4946 Status = 0
4947 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
4948 IF ( Hndl .GT. -1 ) THEN
4949   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
4950     SELECT CASE ( use_package( io_form ) )
4951 #ifdef NETCDF
4952       CASE ( IO_NETCDF   )
4953         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
4954            CALL ext_ncd_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4955                                  locCount, Outcount, Status ) 
4956         ENDIF
4957         IF ( .NOT. multi_files(io_form) ) THEN
4958           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
4959           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
4960           
4961           
4962           
4963           
4964           
4965           
4966           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
4967         ENDIF
4968 #endif
4969 #ifdef NETCDFPAR
4970       CASE ( IO_NETCDFPAR   )
4971         CALL ext_ncdpar_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4972                               locCount, Outcount, Status ) 
4973 #endif
4975 #ifdef PNETCDF
4976       CASE ( IO_PNETCDF   )
4977         CALL ext_pnc_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4978                               locCount, Outcount, Status ) 
4979 #endif
4980 #ifdef PHDF5
4981       CASE ( IO_PHDF5   )
4982         CALL ext_phdf5_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4983                               locCount, Outcount, Status ) 
4984 #endif
4985 #ifdef ESMFIO
4986       CASE ( IO_ESMF )
4987         CALL ext_esmf_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4988                               locCount, Outcount, Status ) 
4989 #endif
4990 #ifdef XXX
4991       CASE ( IO_XXX   )
4992         CALL ext_xxx_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4993                               locCount, Outcount, Status ) 
4994 #endif
4995 #ifdef YYY
4996       CASE ( IO_YYY   )
4997         CALL ext_yyy_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
4998                               locCount, Outcount, Status ) 
4999 #endif
5000 #ifdef GRIB1
5001       CASE ( IO_GRIB1   )
5002         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5003            CALL ext_gr1_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5004                                  locCount, Outcount, Status ) 
5005         ENDIF
5006         IF ( .NOT. multi_files(io_form) ) THEN
5007           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5008           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5009           
5010           
5011           
5012           
5013           
5014           
5015           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5016         ENDIF
5017 #endif
5018 #ifdef GRIB2
5019       CASE ( IO_GRIB2   )
5020         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5021            CALL ext_gr2_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5022                                  locCount, Outcount, Status ) 
5023         ENDIF
5024         IF ( .NOT. multi_files(io_form) ) THEN
5025           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5026           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5027           
5028           
5029           
5030           
5031           
5032           
5033           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5034         ENDIF
5035 #endif
5036 #ifdef INTIO
5037       CASE ( IO_INTIO   )
5038         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5039            CALL ext_int_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5040                                  locCount, Outcount, Status ) 
5041         ENDIF
5042         IF ( .NOT. multi_files(io_form) ) THEN
5043            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5044            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5045            
5046            
5047            
5048            
5049            
5050            
5051            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5052         ENDIF
5053 #endif
5054       CASE DEFAULT
5055     END SELECT
5056   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
5057     CALL wrf_quilt_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5058                           locCount, Outcount, Status )
5059   ELSE
5060     Status = 0
5061 ENDIF
5062 ELSE
5063   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
5064 ENDIF
5065 RETURN
5066 END SUBROUTINE wrf_get_dom_td_integer_arr 
5067 !--- get_dom_td_integer
5069 SUBROUTINE wrf_get_dom_td_integer_sca ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
5070 !<DESCRIPTION>
5071 !<PRE>
5073 ! Attempt to read time dependent
5074 ! domain metadata named "Element" valid at time DateStr 
5075 ! from the open dataset described by DataHandle.  
5076 ! Metadata of type integer are
5077 ! stored in scalar Data.
5080 !</PRE>
5081 !</DESCRIPTION>
5082 USE module_state_description
5083 IMPLICIT NONE
5084 INTEGER ,       INTENT(IN)  :: DataHandle
5085 CHARACTER*(*) , INTENT(IN)  :: Element
5086 CHARACTER*(*) , INTENT(IN)  :: DateStr
5089  integer  :: Data 
5091 INTEGER ,       INTENT(IN)  :: Count
5092 INTEGER ,       INTENT(OUT)  :: OutCount
5093 INTEGER ,       INTENT(OUT) :: Status
5095 #include "wrf_status_codes.h"
5096 INTEGER                     :: len_of_str
5097 LOGICAL                     :: for_out
5098 INTEGER, EXTERNAL           :: use_package
5099 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
5100 INTEGER                     :: locCount
5102 INTEGER io_form , Hndl
5104 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_integer_sca " )
5106 locCount = Count
5110 Status = 0
5111 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
5112 IF ( Hndl .GT. -1 ) THEN
5113   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
5114     SELECT CASE ( use_package( io_form ) )
5115 #ifdef NETCDF
5116       CASE ( IO_NETCDF   )
5117         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5118            CALL ext_ncd_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5119                                  locCount, Outcount, Status ) 
5120         ENDIF
5121         IF ( .NOT. multi_files(io_form) ) THEN
5122           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5123           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5124           
5125           
5126           
5127           
5128           
5129           
5130           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5131         ENDIF
5132 #endif
5133 #ifdef NETCDFPAR
5134       CASE ( IO_NETCDFPAR   )
5135         CALL ext_ncdpar_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5136                               locCount, Outcount, Status ) 
5137 #endif
5139 #ifdef PNETCDF
5140       CASE ( IO_PNETCDF   )
5141         CALL ext_pnc_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5142                               locCount, Outcount, Status ) 
5143 #endif
5144 #ifdef PHDF5
5145       CASE ( IO_PHDF5   )
5146         CALL ext_phdf5_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5147                               locCount, Outcount, Status ) 
5148 #endif
5149 #ifdef ESMFIO
5150       CASE ( IO_ESMF )
5151         CALL ext_esmf_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5152                               locCount, Outcount, Status ) 
5153 #endif
5154 #ifdef XXX
5155       CASE ( IO_XXX   )
5156         CALL ext_xxx_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5157                               locCount, Outcount, Status ) 
5158 #endif
5159 #ifdef YYY
5160       CASE ( IO_YYY   )
5161         CALL ext_yyy_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5162                               locCount, Outcount, Status ) 
5163 #endif
5164 #ifdef GRIB1
5165       CASE ( IO_GRIB1   )
5166         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5167            CALL ext_gr1_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5168                                  locCount, Outcount, Status ) 
5169         ENDIF
5170         IF ( .NOT. multi_files(io_form) ) THEN
5171           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5172           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5173           
5174           
5175           
5176           
5177           
5178           
5179           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5180         ENDIF
5181 #endif
5182 #ifdef GRIB2
5183       CASE ( IO_GRIB2   )
5184         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5185            CALL ext_gr2_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5186                                  locCount, Outcount, Status ) 
5187         ENDIF
5188         IF ( .NOT. multi_files(io_form) ) THEN
5189           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5190           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5191           
5192           
5193           
5194           
5195           
5196           
5197           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5198         ENDIF
5199 #endif
5200 #ifdef INTIO
5201       CASE ( IO_INTIO   )
5202         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5203            CALL ext_int_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5204                                  locCount, Outcount, Status ) 
5205         ENDIF
5206         IF ( .NOT. multi_files(io_form) ) THEN
5207            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5208            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
5209            
5210            
5211            
5212            
5213            
5214            
5215            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5216         ENDIF
5217 #endif
5218       CASE DEFAULT
5219     END SELECT
5220   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
5221     CALL wrf_quilt_get_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5222                           locCount, Outcount, Status )
5223   ELSE
5224     Status = 0
5225 ENDIF
5226 ELSE
5227   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
5228 ENDIF
5229 RETURN
5230 END SUBROUTINE wrf_get_dom_td_integer_sca 
5233 !--- put_dom_td_integer
5235 SUBROUTINE wrf_put_dom_td_integer_arr ( DataHandle,Element, DateStr,  Data, Count,  Status )
5236 !<DESCRIPTION>
5237 !<PRE>
5239 ! Write Count words of time dependent
5240 ! domain metadata named "Element" valid at time DateStr 
5241 ! to the open dataset described by DataHandle.  
5242 ! Metadata of type integer are
5243 ! copied from array Data.
5246 !</PRE>
5247 !</DESCRIPTION>
5248 USE module_state_description
5249 IMPLICIT NONE
5250 INTEGER ,       INTENT(IN)  :: DataHandle
5251 CHARACTER*(*) , INTENT(IN)  :: Element
5252 CHARACTER*(*) , INTENT(IN)  :: DateStr
5255  integer  :: Data (*)
5257 INTEGER ,       INTENT(IN)  :: Count
5259 INTEGER ,       INTENT(OUT) :: Status
5261 #include "wrf_status_codes.h"
5262 INTEGER                     :: len_of_str
5263 LOGICAL                     :: for_out
5264 INTEGER, EXTERNAL           :: use_package
5265 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
5266 INTEGER                     :: locCount
5268 INTEGER io_form , Hndl
5270 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_integer_arr " )
5272 locCount = Count
5276 Status = 0
5277 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
5278 IF ( Hndl .GT. -1 ) THEN
5279   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
5280     SELECT CASE ( use_package( io_form ) )
5281 #ifdef NETCDF
5282       CASE ( IO_NETCDF   )
5283         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5284            CALL ext_ncd_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5285                                  locCount,  Status ) 
5286         ENDIF
5287         IF ( .NOT. multi_files(io_form) ) THEN
5288           
5289           
5290           
5291           
5292           
5293           
5294           
5295           
5296           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5297         ENDIF
5298 #endif
5299 #ifdef NETCDFPAR
5300       CASE ( IO_NETCDFPAR   )
5301         CALL ext_ncdpar_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5302                               locCount,  Status ) 
5303 #endif
5305 #ifdef PNETCDF
5306       CASE ( IO_PNETCDF   )
5307         CALL ext_pnc_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5308                               locCount,  Status ) 
5309 #endif
5310 #ifdef PHDF5
5311       CASE ( IO_PHDF5   )
5312         CALL ext_phdf5_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5313                               locCount,  Status ) 
5314 #endif
5315 #ifdef ESMFIO
5316       CASE ( IO_ESMF )
5317         CALL ext_esmf_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5318                               locCount,  Status ) 
5319 #endif
5320 #ifdef XXX
5321       CASE ( IO_XXX   )
5322         CALL ext_xxx_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5323                               locCount,  Status ) 
5324 #endif
5325 #ifdef YYY
5326       CASE ( IO_YYY   )
5327         CALL ext_yyy_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5328                               locCount,  Status ) 
5329 #endif
5330 #ifdef GRIB1
5331       CASE ( IO_GRIB1   )
5332         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5333            CALL ext_gr1_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5334                                  locCount,  Status ) 
5335         ENDIF
5336         IF ( .NOT. multi_files(io_form) ) THEN
5337           
5338           
5339           
5340           
5341           
5342           
5343           
5344           
5345           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5346         ENDIF
5347 #endif
5348 #ifdef GRIB2
5349       CASE ( IO_GRIB2   )
5350         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5351            CALL ext_gr2_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5352                                  locCount,  Status ) 
5353         ENDIF
5354         IF ( .NOT. multi_files(io_form) ) THEN
5355           
5356           
5357           
5358           
5359           
5360           
5361           
5362           
5363           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5364         ENDIF
5365 #endif
5366 #ifdef INTIO
5367       CASE ( IO_INTIO   )
5368         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5369            CALL ext_int_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5370                                  locCount,  Status ) 
5371         ENDIF
5372         IF ( .NOT. multi_files(io_form) ) THEN
5373            
5374            
5375            
5376            
5377            
5378            
5379            
5380            
5381            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5382         ENDIF
5383 #endif
5384       CASE DEFAULT
5385     END SELECT
5386   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
5387     CALL wrf_quilt_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5388                           locCount,  Status )
5389   ELSE
5390     Status = 0
5391 ENDIF
5392 ELSE
5393   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
5394 ENDIF
5395 RETURN
5396 END SUBROUTINE wrf_put_dom_td_integer_arr 
5397 !--- put_dom_td_integer
5399 SUBROUTINE wrf_put_dom_td_integer_sca ( DataHandle,Element, DateStr,  Data, Count,  Status )
5400 !<DESCRIPTION>
5401 !<PRE>
5403 ! Write time dependent
5404 ! domain metadata named "Element" valid at time DateStr 
5405 ! to the open dataset described by DataHandle.  
5406 ! Metadata of type integer are
5407 ! copied from scalar Data.
5410 !</PRE>
5411 !</DESCRIPTION>
5412 USE module_state_description
5413 IMPLICIT NONE
5414 INTEGER ,       INTENT(IN)  :: DataHandle
5415 CHARACTER*(*) , INTENT(IN)  :: Element
5416 CHARACTER*(*) , INTENT(IN)  :: DateStr
5419  integer  :: Data 
5421 INTEGER ,       INTENT(IN)  :: Count
5423 INTEGER ,       INTENT(OUT) :: Status
5425 #include "wrf_status_codes.h"
5426 INTEGER                     :: len_of_str
5427 LOGICAL                     :: for_out
5428 INTEGER, EXTERNAL           :: use_package
5429 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
5430 INTEGER                     :: locCount
5432 INTEGER io_form , Hndl
5434 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_integer_sca " )
5436 locCount = Count
5440 Status = 0
5441 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
5442 IF ( Hndl .GT. -1 ) THEN
5443   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
5444     SELECT CASE ( use_package( io_form ) )
5445 #ifdef NETCDF
5446       CASE ( IO_NETCDF   )
5447         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5448            CALL ext_ncd_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5449                                  locCount,  Status ) 
5450         ENDIF
5451         IF ( .NOT. multi_files(io_form) ) THEN
5452           
5453           
5454           
5455           
5456           
5457           
5458           
5459           
5460           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5461         ENDIF
5462 #endif
5463 #ifdef NETCDFPAR
5464       CASE ( IO_NETCDFPAR   )
5465         CALL ext_ncdpar_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5466                               locCount,  Status ) 
5467 #endif
5469 #ifdef PNETCDF
5470       CASE ( IO_PNETCDF   )
5471         CALL ext_pnc_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5472                               locCount,  Status ) 
5473 #endif
5474 #ifdef PHDF5
5475       CASE ( IO_PHDF5   )
5476         CALL ext_phdf5_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5477                               locCount,  Status ) 
5478 #endif
5479 #ifdef ESMFIO
5480       CASE ( IO_ESMF )
5481         CALL ext_esmf_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5482                               locCount,  Status ) 
5483 #endif
5484 #ifdef XXX
5485       CASE ( IO_XXX   )
5486         CALL ext_xxx_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5487                               locCount,  Status ) 
5488 #endif
5489 #ifdef YYY
5490       CASE ( IO_YYY   )
5491         CALL ext_yyy_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5492                               locCount,  Status ) 
5493 #endif
5494 #ifdef GRIB1
5495       CASE ( IO_GRIB1   )
5496         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5497            CALL ext_gr1_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5498                                  locCount,  Status ) 
5499         ENDIF
5500         IF ( .NOT. multi_files(io_form) ) THEN
5501           
5502           
5503           
5504           
5505           
5506           
5507           
5508           
5509           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5510         ENDIF
5511 #endif
5512 #ifdef GRIB2
5513       CASE ( IO_GRIB2   )
5514         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5515            CALL ext_gr2_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5516                                  locCount,  Status ) 
5517         ENDIF
5518         IF ( .NOT. multi_files(io_form) ) THEN
5519           
5520           
5521           
5522           
5523           
5524           
5525           
5526           
5527           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5528         ENDIF
5529 #endif
5530 #ifdef INTIO
5531       CASE ( IO_INTIO   )
5532         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5533            CALL ext_int_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5534                                  locCount,  Status ) 
5535         ENDIF
5536         IF ( .NOT. multi_files(io_form) ) THEN
5537            
5538            
5539            
5540            
5541            
5542            
5543            
5544            
5545            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5546         ENDIF
5547 #endif
5548       CASE DEFAULT
5549     END SELECT
5550   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
5551     CALL wrf_quilt_put_dom_td_integer ( Hndl, Element, DateStr,  Data, &
5552                           locCount,  Status )
5553   ELSE
5554     Status = 0
5555 ENDIF
5556 ELSE
5557   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
5558 ENDIF
5559 RETURN
5560 END SUBROUTINE wrf_put_dom_td_integer_sca 
5563 !--- get_dom_td_logical
5565 SUBROUTINE wrf_get_dom_td_logical_arr ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
5566 !<DESCRIPTION>
5567 !<PRE>
5569 ! Attempt to read Count words of time dependent
5570 ! domain metadata named "Element" valid at time DateStr 
5571 ! from the open dataset described by DataHandle.  
5572 ! Metadata of type logical are
5573 ! stored in array Data.
5574 ! Actual number of words read is returned in OutCount.
5576 !</PRE>
5577 !</DESCRIPTION>
5578 USE module_state_description
5579 IMPLICIT NONE
5580 INTEGER ,       INTENT(IN)  :: DataHandle
5581 CHARACTER*(*) , INTENT(IN)  :: Element
5582 CHARACTER*(*) , INTENT(IN)  :: DateStr
5585  logical  :: Data (*)
5587 INTEGER ,       INTENT(IN)  :: Count
5588 INTEGER ,       INTENT(OUT)  :: OutCount
5589 INTEGER ,       INTENT(OUT) :: Status
5591 #include "wrf_status_codes.h"
5592 INTEGER                     :: len_of_str
5593 LOGICAL                     :: for_out
5594 INTEGER, EXTERNAL           :: use_package
5595 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
5596 INTEGER                     :: locCount
5598 INTEGER io_form , Hndl
5600 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_logical_arr " )
5604 locCount = Count
5606 Status = 0
5607 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
5608 IF ( Hndl .GT. -1 ) THEN
5609   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
5610     SELECT CASE ( use_package( io_form ) )
5611 #ifdef NETCDF
5612       CASE ( IO_NETCDF   )
5613         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5614            CALL ext_ncd_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5615                                  locCount, Outcount, Status ) 
5616         ENDIF
5617         IF ( .NOT. multi_files(io_form) ) THEN
5618           
5619           
5620           
5621           
5622           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5623           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5624           
5625           
5626           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5627         ENDIF
5628 #endif
5629 #ifdef NETCDFPAR
5630       CASE ( IO_NETCDFPAR   )
5631         CALL ext_ncdpar_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5632                               locCount, Outcount, Status ) 
5633 #endif
5635 #ifdef PNETCDF
5636       CASE ( IO_PNETCDF   )
5637         CALL ext_pnc_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5638                               locCount, Outcount, Status ) 
5639 #endif
5640 #ifdef PHDF5
5641       CASE ( IO_PHDF5   )
5642         CALL ext_phdf5_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5643                               locCount, Outcount, Status ) 
5644 #endif
5645 #ifdef ESMFIO
5646       CASE ( IO_ESMF )
5647         CALL ext_esmf_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5648                               locCount, Outcount, Status ) 
5649 #endif
5650 #ifdef XXX
5651       CASE ( IO_XXX   )
5652         CALL ext_xxx_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5653                               locCount, Outcount, Status ) 
5654 #endif
5655 #ifdef YYY
5656       CASE ( IO_YYY   )
5657         CALL ext_yyy_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5658                               locCount, Outcount, Status ) 
5659 #endif
5660 #ifdef GRIB1
5661       CASE ( IO_GRIB1   )
5662         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5663            CALL ext_gr1_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5664                                  locCount, Outcount, Status ) 
5665         ENDIF
5666         IF ( .NOT. multi_files(io_form) ) THEN
5667           
5668           
5669           
5670           
5671           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5672           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5673           
5674           
5675           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5676         ENDIF
5677 #endif
5678 #ifdef GRIB2
5679       CASE ( IO_GRIB2   )
5680         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5681            CALL ext_gr2_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5682                                  locCount, Outcount, Status ) 
5683         ENDIF
5684         IF ( .NOT. multi_files(io_form) ) THEN
5685           
5686           
5687           
5688           
5689           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5690           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5691           
5692           
5693           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5694         ENDIF
5695 #endif
5696 #ifdef INTIO
5697       CASE ( IO_INTIO   )
5698         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5699            CALL ext_int_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5700                                  locCount, Outcount, Status ) 
5701         ENDIF
5702         IF ( .NOT. multi_files(io_form) ) THEN
5703            
5704            
5705            
5706            
5707            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5708            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5709            
5710            
5711            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5712         ENDIF
5713 #endif
5714       CASE DEFAULT
5715     END SELECT
5716   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
5717     CALL wrf_quilt_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5718                           locCount, Outcount, Status )
5719   ELSE
5720     Status = 0
5721 ENDIF
5722 ELSE
5723   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
5724 ENDIF
5725 RETURN
5726 END SUBROUTINE wrf_get_dom_td_logical_arr 
5727 !--- get_dom_td_logical
5729 SUBROUTINE wrf_get_dom_td_logical_sca ( DataHandle,Element, DateStr,  Data, Count, Outcount, Status )
5730 !<DESCRIPTION>
5731 !<PRE>
5733 ! Attempt to read time dependent
5734 ! domain metadata named "Element" valid at time DateStr 
5735 ! from the open dataset described by DataHandle.  
5736 ! Metadata of type logical are
5737 ! stored in scalar Data.
5740 !</PRE>
5741 !</DESCRIPTION>
5742 USE module_state_description
5743 IMPLICIT NONE
5744 INTEGER ,       INTENT(IN)  :: DataHandle
5745 CHARACTER*(*) , INTENT(IN)  :: Element
5746 CHARACTER*(*) , INTENT(IN)  :: DateStr
5749  logical  :: Data 
5751 INTEGER ,       INTENT(IN)  :: Count
5752 INTEGER ,       INTENT(OUT)  :: OutCount
5753 INTEGER ,       INTENT(OUT) :: Status
5755 #include "wrf_status_codes.h"
5756 INTEGER                     :: len_of_str
5757 LOGICAL                     :: for_out
5758 INTEGER, EXTERNAL           :: use_package
5759 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
5760 INTEGER                     :: locCount
5762 INTEGER io_form , Hndl
5764 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_logical_sca " )
5768 locCount = Count
5770 Status = 0
5771 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
5772 IF ( Hndl .GT. -1 ) THEN
5773   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
5774     SELECT CASE ( use_package( io_form ) )
5775 #ifdef NETCDF
5776       CASE ( IO_NETCDF   )
5777         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5778            CALL ext_ncd_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5779                                  locCount, Outcount, Status ) 
5780         ENDIF
5781         IF ( .NOT. multi_files(io_form) ) THEN
5782           
5783           
5784           
5785           
5786           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5787           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5788           
5789           
5790           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5791         ENDIF
5792 #endif
5793 #ifdef NETCDFPAR
5794       CASE ( IO_NETCDFPAR   )
5795         CALL ext_ncdpar_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5796                               locCount, Outcount, Status ) 
5797 #endif
5799 #ifdef PNETCDF
5800       CASE ( IO_PNETCDF   )
5801         CALL ext_pnc_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5802                               locCount, Outcount, Status ) 
5803 #endif
5804 #ifdef PHDF5
5805       CASE ( IO_PHDF5   )
5806         CALL ext_phdf5_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5807                               locCount, Outcount, Status ) 
5808 #endif
5809 #ifdef ESMFIO
5810       CASE ( IO_ESMF )
5811         CALL ext_esmf_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5812                               locCount, Outcount, Status ) 
5813 #endif
5814 #ifdef XXX
5815       CASE ( IO_XXX   )
5816         CALL ext_xxx_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5817                               locCount, Outcount, Status ) 
5818 #endif
5819 #ifdef YYY
5820       CASE ( IO_YYY   )
5821         CALL ext_yyy_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5822                               locCount, Outcount, Status ) 
5823 #endif
5824 #ifdef GRIB1
5825       CASE ( IO_GRIB1   )
5826         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5827            CALL ext_gr1_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5828                                  locCount, Outcount, Status ) 
5829         ENDIF
5830         IF ( .NOT. multi_files(io_form) ) THEN
5831           
5832           
5833           
5834           
5835           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5836           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5837           
5838           
5839           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5840         ENDIF
5841 #endif
5842 #ifdef GRIB2
5843       CASE ( IO_GRIB2   )
5844         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5845            CALL ext_gr2_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5846                                  locCount, Outcount, Status ) 
5847         ENDIF
5848         IF ( .NOT. multi_files(io_form) ) THEN
5849           
5850           
5851           
5852           
5853           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5854           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5855           
5856           
5857           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5858         ENDIF
5859 #endif
5860 #ifdef INTIO
5861       CASE ( IO_INTIO   )
5862         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5863            CALL ext_int_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5864                                  locCount, Outcount, Status ) 
5865         ENDIF
5866         IF ( .NOT. multi_files(io_form) ) THEN
5867            
5868            
5869            
5870            
5871            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
5872            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
5873            
5874            
5875            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5876         ENDIF
5877 #endif
5878       CASE DEFAULT
5879     END SELECT
5880   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
5881     CALL wrf_quilt_get_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5882                           locCount, Outcount, Status )
5883   ELSE
5884     Status = 0
5885 ENDIF
5886 ELSE
5887   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
5888 ENDIF
5889 RETURN
5890 END SUBROUTINE wrf_get_dom_td_logical_sca 
5893 !--- put_dom_td_logical
5895 SUBROUTINE wrf_put_dom_td_logical_arr ( DataHandle,Element, DateStr,  Data, Count,  Status )
5896 !<DESCRIPTION>
5897 !<PRE>
5899 ! Write Count words of time dependent
5900 ! domain metadata named "Element" valid at time DateStr 
5901 ! to the open dataset described by DataHandle.  
5902 ! Metadata of type logical are
5903 ! copied from array Data.
5906 !</PRE>
5907 !</DESCRIPTION>
5908 USE module_state_description
5909 IMPLICIT NONE
5910 INTEGER ,       INTENT(IN)  :: DataHandle
5911 CHARACTER*(*) , INTENT(IN)  :: Element
5912 CHARACTER*(*) , INTENT(IN)  :: DateStr
5915  logical  :: Data (*)
5917 INTEGER ,       INTENT(IN)  :: Count
5919 INTEGER ,       INTENT(OUT) :: Status
5921 #include "wrf_status_codes.h"
5922 INTEGER                     :: len_of_str
5923 LOGICAL                     :: for_out
5924 INTEGER, EXTERNAL           :: use_package
5925 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
5926 INTEGER                     :: locCount
5928 INTEGER io_form , Hndl
5930 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_logical_arr " )
5934 locCount = Count
5936 Status = 0
5937 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
5938 IF ( Hndl .GT. -1 ) THEN
5939   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
5940     SELECT CASE ( use_package( io_form ) )
5941 #ifdef NETCDF
5942       CASE ( IO_NETCDF   )
5943         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5944            CALL ext_ncd_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5945                                  locCount,  Status ) 
5946         ENDIF
5947         IF ( .NOT. multi_files(io_form) ) THEN
5948           
5949           
5950           
5951           
5952           
5953           
5954           
5955           
5956           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
5957         ENDIF
5958 #endif
5959 #ifdef NETCDFPAR
5960       CASE ( IO_NETCDFPAR   )
5961         CALL ext_ncdpar_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5962                               locCount,  Status ) 
5963 #endif
5965 #ifdef PNETCDF
5966       CASE ( IO_PNETCDF   )
5967         CALL ext_pnc_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5968                               locCount,  Status ) 
5969 #endif
5970 #ifdef PHDF5
5971       CASE ( IO_PHDF5   )
5972         CALL ext_phdf5_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5973                               locCount,  Status ) 
5974 #endif
5975 #ifdef ESMFIO
5976       CASE ( IO_ESMF )
5977         CALL ext_esmf_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5978                               locCount,  Status ) 
5979 #endif
5980 #ifdef XXX
5981       CASE ( IO_XXX   )
5982         CALL ext_xxx_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5983                               locCount,  Status ) 
5984 #endif
5985 #ifdef YYY
5986       CASE ( IO_YYY   )
5987         CALL ext_yyy_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5988                               locCount,  Status ) 
5989 #endif
5990 #ifdef GRIB1
5991       CASE ( IO_GRIB1   )
5992         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
5993            CALL ext_gr1_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
5994                                  locCount,  Status ) 
5995         ENDIF
5996         IF ( .NOT. multi_files(io_form) ) THEN
5997           
5998           
5999           
6000           
6001           
6002           
6003           
6004           
6005           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6006         ENDIF
6007 #endif
6008 #ifdef GRIB2
6009       CASE ( IO_GRIB2   )
6010         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6011            CALL ext_gr2_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6012                                  locCount,  Status ) 
6013         ENDIF
6014         IF ( .NOT. multi_files(io_form) ) THEN
6015           
6016           
6017           
6018           
6019           
6020           
6021           
6022           
6023           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6024         ENDIF
6025 #endif
6026 #ifdef INTIO
6027       CASE ( IO_INTIO   )
6028         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6029            CALL ext_int_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6030                                  locCount,  Status ) 
6031         ENDIF
6032         IF ( .NOT. multi_files(io_form) ) THEN
6033            
6034            
6035            
6036            
6037            
6038            
6039            
6040            
6041            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6042         ENDIF
6043 #endif
6044       CASE DEFAULT
6045     END SELECT
6046   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
6047     CALL wrf_quilt_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6048                           locCount,  Status )
6049   ELSE
6050     Status = 0
6051 ENDIF
6052 ELSE
6053   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
6054 ENDIF
6055 RETURN
6056 END SUBROUTINE wrf_put_dom_td_logical_arr 
6057 !--- put_dom_td_logical
6059 SUBROUTINE wrf_put_dom_td_logical_sca ( DataHandle,Element, DateStr,  Data, Count,  Status )
6060 !<DESCRIPTION>
6061 !<PRE>
6063 ! Write time dependent
6064 ! domain metadata named "Element" valid at time DateStr 
6065 ! to the open dataset described by DataHandle.  
6066 ! Metadata of type logical are
6067 ! copied from scalar Data.
6070 !</PRE>
6071 !</DESCRIPTION>
6072 USE module_state_description
6073 IMPLICIT NONE
6074 INTEGER ,       INTENT(IN)  :: DataHandle
6075 CHARACTER*(*) , INTENT(IN)  :: Element
6076 CHARACTER*(*) , INTENT(IN)  :: DateStr
6079  logical  :: Data 
6081 INTEGER ,       INTENT(IN)  :: Count
6083 INTEGER ,       INTENT(OUT) :: Status
6085 #include "wrf_status_codes.h"
6086 INTEGER                     :: len_of_str
6087 LOGICAL                     :: for_out
6088 INTEGER, EXTERNAL           :: use_package
6089 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
6090 INTEGER                     :: locCount
6092 INTEGER io_form , Hndl
6094 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_logical_sca " )
6098 locCount = Count
6100 Status = 0
6101 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
6102 IF ( Hndl .GT. -1 ) THEN
6103   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
6104     SELECT CASE ( use_package( io_form ) )
6105 #ifdef NETCDF
6106       CASE ( IO_NETCDF   )
6107         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6108            CALL ext_ncd_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6109                                  locCount,  Status ) 
6110         ENDIF
6111         IF ( .NOT. multi_files(io_form) ) THEN
6112           
6113           
6114           
6115           
6116           
6117           
6118           
6119           
6120           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6121         ENDIF
6122 #endif
6123 #ifdef NETCDFPAR
6124       CASE ( IO_NETCDFPAR   )
6125         CALL ext_ncdpar_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6126                               locCount,  Status ) 
6127 #endif
6129 #ifdef PNETCDF
6130       CASE ( IO_PNETCDF   )
6131         CALL ext_pnc_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6132                               locCount,  Status ) 
6133 #endif
6134 #ifdef PHDF5
6135       CASE ( IO_PHDF5   )
6136         CALL ext_phdf5_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6137                               locCount,  Status ) 
6138 #endif
6139 #ifdef ESMFIO
6140       CASE ( IO_ESMF )
6141         CALL ext_esmf_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6142                               locCount,  Status ) 
6143 #endif
6144 #ifdef XXX
6145       CASE ( IO_XXX   )
6146         CALL ext_xxx_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6147                               locCount,  Status ) 
6148 #endif
6149 #ifdef YYY
6150       CASE ( IO_YYY   )
6151         CALL ext_yyy_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6152                               locCount,  Status ) 
6153 #endif
6154 #ifdef GRIB1
6155       CASE ( IO_GRIB1   )
6156         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6157            CALL ext_gr1_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6158                                  locCount,  Status ) 
6159         ENDIF
6160         IF ( .NOT. multi_files(io_form) ) THEN
6161           
6162           
6163           
6164           
6165           
6166           
6167           
6168           
6169           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6170         ENDIF
6171 #endif
6172 #ifdef GRIB2
6173       CASE ( IO_GRIB2   )
6174         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6175            CALL ext_gr2_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6176                                  locCount,  Status ) 
6177         ENDIF
6178         IF ( .NOT. multi_files(io_form) ) THEN
6179           
6180           
6181           
6182           
6183           
6184           
6185           
6186           
6187           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6188         ENDIF
6189 #endif
6190 #ifdef INTIO
6191       CASE ( IO_INTIO   )
6192         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6193            CALL ext_int_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6194                                  locCount,  Status ) 
6195         ENDIF
6196         IF ( .NOT. multi_files(io_form) ) THEN
6197            
6198            
6199            
6200            
6201            
6202            
6203            
6204            
6205            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6206         ENDIF
6207 #endif
6208       CASE DEFAULT
6209     END SELECT
6210   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
6211     CALL wrf_quilt_put_dom_td_logical ( Hndl, Element, DateStr,  Data, &
6212                           locCount,  Status )
6213   ELSE
6214     Status = 0
6215 ENDIF
6216 ELSE
6217   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
6218 ENDIF
6219 RETURN
6220 END SUBROUTINE wrf_put_dom_td_logical_sca 
6223 !--- get_dom_td_char
6225 SUBROUTINE wrf_get_dom_td_char_arr ( DataHandle,Element, DateStr,  Data,  Status )
6226 !<DESCRIPTION>
6227 !<PRE>
6229 ! Attempt to read time dependent
6230 ! domain metadata named "Element" valid at time DateStr 
6231 ! from the open dataset described by DataHandle.  
6232 ! Metadata of type char are
6233 ! stored in string Data.
6236 !</PRE>
6237 !</DESCRIPTION>
6238 USE module_state_description
6239 IMPLICIT NONE
6240 INTEGER ,       INTENT(IN)  :: DataHandle
6241 CHARACTER*(*) , INTENT(IN)  :: Element
6242 CHARACTER*(*) , INTENT(IN)  :: DateStr
6245  CHARACTER*(*)  :: Data
6249 INTEGER ,       INTENT(OUT) :: Status
6251 #include "wrf_status_codes.h"
6252 INTEGER                     :: len_of_str
6253 LOGICAL                     :: for_out
6254 INTEGER, EXTERNAL           :: use_package
6255 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
6256 INTEGER                     :: locCount
6258 INTEGER io_form , Hndl
6260 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_dom_td_char_arr " )
6266 Status = 0
6267 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
6268 IF ( Hndl .GT. -1 ) THEN
6269   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
6270     SELECT CASE ( use_package( io_form ) )
6271 #ifdef NETCDF
6272       CASE ( IO_NETCDF   )
6273         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6274            CALL ext_ncd_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6275                                   Status ) 
6276         ENDIF
6277         IF ( .NOT. multi_files(io_form) ) THEN
6278           
6279           
6280           
6281           
6282           
6283           
6284           len_of_str = LEN(Data)
6285           CALL wrf_dm_bcast_string( Data, len_of_str )
6286           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6287         ENDIF
6288 #endif
6289 #ifdef NETCDFPAR
6290       CASE ( IO_NETCDFPAR   )
6291         CALL ext_ncdpar_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6292                                Status ) 
6293 #endif
6295 #ifdef PNETCDF
6296       CASE ( IO_PNETCDF   )
6297         CALL ext_pnc_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6298                                Status ) 
6299 #endif
6300 #ifdef PHDF5
6301       CASE ( IO_PHDF5   )
6302         CALL ext_phdf5_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6303                                Status ) 
6304 #endif
6305 #ifdef ESMFIO
6306       CASE ( IO_ESMF )
6307         CALL ext_esmf_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6308                                Status ) 
6309 #endif
6310 #ifdef XXX
6311       CASE ( IO_XXX   )
6312         CALL ext_xxx_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6313                                Status ) 
6314 #endif
6315 #ifdef YYY
6316       CASE ( IO_YYY   )
6317         CALL ext_yyy_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6318                                Status ) 
6319 #endif
6320 #ifdef GRIB1
6321       CASE ( IO_GRIB1   )
6322         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6323            CALL ext_gr1_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6324                                   Status ) 
6325         ENDIF
6326         IF ( .NOT. multi_files(io_form) ) THEN
6327           
6328           
6329           
6330           
6331           
6332           
6333           len_of_str = LEN(Data)
6334           CALL wrf_dm_bcast_string( Data, len_of_str )
6335           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6336         ENDIF
6337 #endif
6338 #ifdef GRIB2
6339       CASE ( IO_GRIB2   )
6340         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6341            CALL ext_gr2_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6342                                   Status ) 
6343         ENDIF
6344         IF ( .NOT. multi_files(io_form) ) THEN
6345           
6346           
6347           
6348           
6349           
6350           
6351           len_of_str = LEN(Data)
6352           CALL wrf_dm_bcast_string( Data, len_of_str )
6353           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6354         ENDIF
6355 #endif
6356 #ifdef INTIO
6357       CASE ( IO_INTIO   )
6358         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6359            CALL ext_int_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6360                                   Status ) 
6361         ENDIF
6362         IF ( .NOT. multi_files(io_form) ) THEN
6363            
6364            
6365            
6366            
6367            
6368            
6369            len_of_str = LEN(Data)
6370            CALL wrf_dm_bcast_string( Data, len_of_str )
6371            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6372         ENDIF
6373 #endif
6374       CASE DEFAULT
6375     END SELECT
6376   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
6377     CALL wrf_quilt_get_dom_td_char ( Hndl, Element, DateStr,  Data, &
6378                            Status )
6379   ELSE
6380     Status = 0
6381 ENDIF
6382 ELSE
6383   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
6384 ENDIF
6385 RETURN
6386 END SUBROUTINE wrf_get_dom_td_char_arr 
6389 !--- put_dom_td_char
6391 SUBROUTINE wrf_put_dom_td_char_arr ( DataHandle,Element, DateStr,  Data,  Status )
6392 !<DESCRIPTION>
6393 !<PRE>
6395 ! Write time dependent
6396 ! domain metadata named "Element" valid at time DateStr 
6397 ! to the open dataset described by DataHandle.  
6398 ! Metadata of type char are
6399 ! copied from string Data.
6402 !</PRE>
6403 !</DESCRIPTION>
6404 USE module_state_description
6405 IMPLICIT NONE
6406 INTEGER ,       INTENT(IN)  :: DataHandle
6407 CHARACTER*(*) , INTENT(IN)  :: Element
6408 CHARACTER*(*) , INTENT(IN)  :: DateStr
6411  CHARACTER*(*)  :: Data
6415 INTEGER ,       INTENT(OUT) :: Status
6417 #include "wrf_status_codes.h"
6418 INTEGER                     :: len_of_str
6419 LOGICAL                     :: for_out
6420 INTEGER, EXTERNAL           :: use_package
6421 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
6422 INTEGER                     :: locCount
6424 INTEGER io_form , Hndl
6426 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_dom_td_char_arr " )
6432 Status = 0
6433 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
6434 IF ( Hndl .GT. -1 ) THEN
6435   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
6436     SELECT CASE ( use_package( io_form ) )
6437 #ifdef NETCDF
6438       CASE ( IO_NETCDF   )
6439         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6440            CALL ext_ncd_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6441                                   Status ) 
6442         ENDIF
6443         IF ( .NOT. multi_files(io_form) ) THEN
6444           
6445           
6446           
6447           
6448           
6449           
6450           
6451           
6452           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6453         ENDIF
6454 #endif
6455 #ifdef NETCDFPAR
6456       CASE ( IO_NETCDFPAR   )
6457         CALL ext_ncdpar_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6458                                Status ) 
6459 #endif
6461 #ifdef PNETCDF
6462       CASE ( IO_PNETCDF   )
6463         CALL ext_pnc_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6464                                Status ) 
6465 #endif
6466 #ifdef PHDF5
6467       CASE ( IO_PHDF5   )
6468         CALL ext_phdf5_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6469                                Status ) 
6470 #endif
6471 #ifdef ESMFIO
6472       CASE ( IO_ESMF )
6473         CALL ext_esmf_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6474                                Status ) 
6475 #endif
6476 #ifdef XXX
6477       CASE ( IO_XXX   )
6478         CALL ext_xxx_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6479                                Status ) 
6480 #endif
6481 #ifdef YYY
6482       CASE ( IO_YYY   )
6483         CALL ext_yyy_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6484                                Status ) 
6485 #endif
6486 #ifdef GRIB1
6487       CASE ( IO_GRIB1   )
6488         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6489            CALL ext_gr1_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6490                                   Status ) 
6491         ENDIF
6492         IF ( .NOT. multi_files(io_form) ) THEN
6493           
6494           
6495           
6496           
6497           
6498           
6499           
6500           
6501           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6502         ENDIF
6503 #endif
6504 #ifdef GRIB2
6505       CASE ( IO_GRIB2   )
6506         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6507            CALL ext_gr2_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6508                                   Status ) 
6509         ENDIF
6510         IF ( .NOT. multi_files(io_form) ) THEN
6511           
6512           
6513           
6514           
6515           
6516           
6517           
6518           
6519           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6520         ENDIF
6521 #endif
6522 #ifdef INTIO
6523       CASE ( IO_INTIO   )
6524         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6525            CALL ext_int_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6526                                   Status ) 
6527         ENDIF
6528         IF ( .NOT. multi_files(io_form) ) THEN
6529            
6530            
6531            
6532            
6533            
6534            
6535            
6536            
6537            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6538         ENDIF
6539 #endif
6540       CASE DEFAULT
6541     END SELECT
6542   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
6543     CALL wrf_quilt_put_dom_td_char ( Hndl, Element, DateStr,  Data, &
6544                            Status )
6545   ELSE
6546     Status = 0
6547 ENDIF
6548 ELSE
6549   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
6550 ENDIF
6551 RETURN
6552 END SUBROUTINE wrf_put_dom_td_char_arr 
6556 !--- get_var_ti_real
6558 SUBROUTINE wrf_get_var_ti_real_arr ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
6559 !<DESCRIPTION>
6560 !<PRE>
6562 ! Attempt to read Count words of time independent
6563 ! attribute "Element" of variable "Varname"  
6564 ! from the open dataset described by DataHandle.  
6565 ! Attribute of type real is
6566 ! stored in array Data.
6567 ! Actual number of words read is returned in OutCount.
6569 !</PRE>
6570 !</DESCRIPTION>
6571 USE module_state_description
6572 IMPLICIT NONE
6573 INTEGER ,       INTENT(IN)  :: DataHandle
6574 CHARACTER*(*) , INTENT(IN)  :: Element
6576 CHARACTER*(*) , INTENT(IN)  :: VarName 
6578  real  :: Data (*)
6580 INTEGER ,       INTENT(IN)  :: Count
6581 INTEGER ,       INTENT(OUT)  :: OutCount
6582 INTEGER ,       INTENT(OUT) :: Status
6584 #include "wrf_status_codes.h"
6585 INTEGER                     :: len_of_str
6586 LOGICAL                     :: for_out
6587 INTEGER, EXTERNAL           :: use_package
6588 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
6589 INTEGER                     :: locCount
6591 INTEGER io_form , Hndl
6593 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_real_arr " )
6596 locCount = Count
6599 Status = 0
6600 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
6601 IF ( Hndl .GT. -1 ) THEN
6602   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
6603     SELECT CASE ( use_package( io_form ) )
6604 #ifdef NETCDF
6605       CASE ( IO_NETCDF   )
6606         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6607 #  if ( RWORDSIZE == DWORDSIZE )
6608            CALL ext_ncd_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6609                                  locCount, Outcount, Status )
6610 #  else
6611            CALL ext_ncd_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6612                                  locCount, Outcount, Status )
6613 #  endif
6614         ENDIF
6615         IF ( .NOT. multi_files(io_form) ) THEN
6616           
6617           
6618           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6619           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6620           
6621           
6622           
6623           
6624           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6625         ENDIF
6626 #endif
6627 #ifdef NETCDFPAR
6628       CASE ( IO_NETCDFPAR   )
6629 #  if ( RWORDSIZE == DWORDSIZE )
6630         CALL ext_ncdpar_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6631                               locCount, Outcount, Status )
6632 #  else
6633         CALL ext_ncdpar_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6634                               locCount, Outcount, Status )
6635 #  endif
6636 #endif
6638 #ifdef PNETCDF
6639       CASE ( IO_PNETCDF   )
6640 #  if ( RWORDSIZE == DWORDSIZE )
6641         CALL ext_pnc_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6642                               locCount, Outcount, Status )
6643 #  else
6644         CALL ext_pnc_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6645                               locCount, Outcount, Status )
6646 #  endif
6647 #endif
6648 #ifdef PHDF5
6649       CASE ( IO_PHDF5   )
6650 #  if ( RWORDSIZE == DWORDSIZE )
6651         CALL ext_phdf5_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6652                               locCount, Outcount, Status )
6653 #  else
6654         CALL ext_phdf5_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6655                               locCount, Outcount, Status )
6656 #  endif
6657 #endif
6658 #ifdef ESMFIO
6659       CASE ( IO_ESMF )
6660 #  if ( RWORDSIZE == DWORDSIZE )
6661         CALL ext_esmf_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6662                               locCount, Outcount, Status )
6663 #  else
6664         CALL ext_esmf_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6665                               locCount, Outcount, Status )
6666 #  endif
6667 #endif
6668 #ifdef XXX
6669       CASE ( IO_XXX   )
6670 #  if ( RWORDSIZE == DWORDSIZE )
6671         CALL ext_xxx_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6672                               locCount, Outcount, Status )
6673 #  else
6674         CALL ext_xxx_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6675                               locCount, Outcount, Status )
6676 #  endif
6677 #endif
6678 #ifdef YYY
6679       CASE ( IO_YYY   )
6680 #  if ( RWORDSIZE == DWORDSIZE )
6681         CALL ext_yyy_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6682                               locCount, Outcount, Status )
6683 #  else
6684         CALL ext_yyy_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6685                               locCount, Outcount, Status )
6686 #  endif
6687 #endif
6688 #ifdef GRIB1
6689       CASE ( IO_GRIB1   )
6690         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6691 #  if ( RWORDSIZE == DWORDSIZE )
6692            CALL ext_gr1_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6693                                  locCount, Outcount, Status )
6694 #  else
6695            CALL ext_gr1_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6696                                  locCount, Outcount, Status )
6697 #  endif
6698         ENDIF
6699         IF ( .NOT. multi_files(io_form) ) THEN
6700           
6701           
6702           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6703           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6704           
6705           
6706           
6707           
6708           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6709         ENDIF
6710 #endif
6711 #ifdef GRIB2
6712       CASE ( IO_GRIB2   )
6713         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6714 #  if ( RWORDSIZE == DWORDSIZE )
6715            CALL ext_gr2_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6716                                  locCount, Outcount, Status )
6717 #  else
6718            CALL ext_gr2_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6719                                  locCount, Outcount, Status )
6720 #  endif
6721         ENDIF
6722         IF ( .NOT. multi_files(io_form) ) THEN
6723           
6724           
6725           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6726           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6727           
6728           
6729           
6730           
6731           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6732         ENDIF
6733 #endif
6734 #ifdef INTIO
6735       CASE ( IO_INTIO   )
6736         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6737 #  if ( RWORDSIZE == DWORDSIZE )
6738            CALL ext_int_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6739                                  locCount, Outcount, Status )
6740 #  else
6741            CALL ext_int_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6742                                  locCount, Outcount, Status )
6743 #  endif
6744         ENDIF
6745         IF ( .NOT. multi_files(io_form) ) THEN
6746            
6747            
6748            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6749            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6750            
6751            
6752            
6753            
6754            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6755         ENDIF
6756 #endif
6757       CASE DEFAULT
6758     END SELECT
6759   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
6760     CALL wrf_quilt_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6761                           locCount, Outcount, Status )
6762   ELSE
6763     Status = 0
6764 ENDIF
6765 ELSE
6766   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
6767 ENDIF
6768 RETURN
6769 END SUBROUTINE wrf_get_var_ti_real_arr 
6770 !--- get_var_ti_real
6772 SUBROUTINE wrf_get_var_ti_real_sca ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
6773 !<DESCRIPTION>
6774 !<PRE>
6776 ! Attempt to read time independent
6777 ! attribute "Element" of variable "Varname"  
6778 ! from the open dataset described by DataHandle.  
6779 ! Attribute of type real is
6780 ! stored in scalar Data.
6783 !</PRE>
6784 !</DESCRIPTION>
6785 USE module_state_description
6786 IMPLICIT NONE
6787 INTEGER ,       INTENT(IN)  :: DataHandle
6788 CHARACTER*(*) , INTENT(IN)  :: Element
6790 CHARACTER*(*) , INTENT(IN)  :: VarName 
6792  real  :: Data 
6794 INTEGER ,       INTENT(IN)  :: Count
6795 INTEGER ,       INTENT(OUT)  :: OutCount
6796 INTEGER ,       INTENT(OUT) :: Status
6798 #include "wrf_status_codes.h"
6799 INTEGER                     :: len_of_str
6800 LOGICAL                     :: for_out
6801 INTEGER, EXTERNAL           :: use_package
6802 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
6803 INTEGER                     :: locCount
6805 INTEGER io_form , Hndl
6807 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_real_sca " )
6810 locCount = Count
6813 Status = 0
6814 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
6815 IF ( Hndl .GT. -1 ) THEN
6816   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
6817     SELECT CASE ( use_package( io_form ) )
6818 #ifdef NETCDF
6819       CASE ( IO_NETCDF   )
6820         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6821 #  if ( RWORDSIZE == DWORDSIZE )
6822            CALL ext_ncd_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6823                                  locCount, Outcount, Status )
6824 #  else
6825            CALL ext_ncd_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6826                                  locCount, Outcount, Status )
6827 #  endif
6828         ENDIF
6829         IF ( .NOT. multi_files(io_form) ) THEN
6830           
6831           
6832           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6833           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6834           
6835           
6836           
6837           
6838           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6839         ENDIF
6840 #endif
6841 #ifdef NETCDFPAR
6842       CASE ( IO_NETCDFPAR   )
6843 #  if ( RWORDSIZE == DWORDSIZE )
6844         CALL ext_ncdpar_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6845                               locCount, Outcount, Status )
6846 #  else
6847         CALL ext_ncdpar_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6848                               locCount, Outcount, Status )
6849 #  endif
6850 #endif
6852 #ifdef PNETCDF
6853       CASE ( IO_PNETCDF   )
6854 #  if ( RWORDSIZE == DWORDSIZE )
6855         CALL ext_pnc_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6856                               locCount, Outcount, Status )
6857 #  else
6858         CALL ext_pnc_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6859                               locCount, Outcount, Status )
6860 #  endif
6861 #endif
6862 #ifdef PIO
6863       CASE ( IO_PIO )
6864 #  if ( RWORDSIZE == DWORDSIZE )
6865         CALL ext_pnc_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6866                               locCount, Outcount, Status )
6867 #  else
6868         CALL ext_pnc_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6869                               locCount, Outcount, Status )
6870 #  endif
6871 #endif
6872 #ifdef PHDF5
6873       CASE ( IO_PHDF5   )
6874 #  if ( RWORDSIZE == DWORDSIZE )
6875         CALL ext_phdf5_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6876                               locCount, Outcount, Status )
6877 #  else
6878         CALL ext_phdf5_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6879                               locCount, Outcount, Status )
6880 #  endif
6881 #endif
6882 #ifdef ESMFIO
6883       CASE ( IO_ESMF )
6884 #  if ( RWORDSIZE == DWORDSIZE )
6885         CALL ext_esmf_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6886                               locCount, Outcount, Status )
6887 #  else
6888         CALL ext_esmf_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6889                               locCount, Outcount, Status )
6890 #  endif
6891 #endif
6892 #ifdef XXX
6893       CASE ( IO_XXX   )
6894 #  if ( RWORDSIZE == DWORDSIZE )
6895         CALL ext_xxx_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6896                               locCount, Outcount, Status )
6897 #  else
6898         CALL ext_xxx_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6899                               locCount, Outcount, Status )
6900 #  endif
6901 #endif
6902 #ifdef YYY
6903       CASE ( IO_YYY   )
6904 #  if ( RWORDSIZE == DWORDSIZE )
6905         CALL ext_yyy_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6906                               locCount, Outcount, Status )
6907 #  else
6908         CALL ext_yyy_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6909                               locCount, Outcount, Status )
6910 #  endif
6911 #endif
6912 #ifdef GRIB1
6913       CASE ( IO_GRIB1   )
6914         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6915 #  if ( RWORDSIZE == DWORDSIZE )
6916            CALL ext_gr1_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6917                                  locCount, Outcount, Status )
6918 #  else
6919            CALL ext_gr1_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6920                                  locCount, Outcount, Status )
6921 #  endif
6922         ENDIF
6923         IF ( .NOT. multi_files(io_form) ) THEN
6924           
6925           
6926           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6927           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6928           
6929           
6930           
6931           
6932           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6933         ENDIF
6934 #endif
6935 #ifdef GRIB2
6936       CASE ( IO_GRIB2   )
6937         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6938 #  if ( RWORDSIZE == DWORDSIZE )
6939            CALL ext_gr2_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6940                                  locCount, Outcount, Status )
6941 #  else
6942            CALL ext_gr2_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6943                                  locCount, Outcount, Status )
6944 #  endif
6945         ENDIF
6946         IF ( .NOT. multi_files(io_form) ) THEN
6947           
6948           
6949           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6950           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6951           
6952           
6953           
6954           
6955           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6956         ENDIF
6957 #endif
6958 #ifdef INTIO
6959       CASE ( IO_INTIO   )
6960         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
6961 #  if ( RWORDSIZE == DWORDSIZE )
6962            CALL ext_int_get_var_ti_double ( Hndl, Element,  Varname, Data, &
6963                                  locCount, Outcount, Status )
6964 #  else
6965            CALL ext_int_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6966                                  locCount, Outcount, Status )
6967 #  endif
6968         ENDIF
6969         IF ( .NOT. multi_files(io_form) ) THEN
6970            
6971            
6972            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
6973            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
6974            
6975            
6976            
6977            
6978            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
6979         ENDIF
6980 #endif
6981       CASE DEFAULT
6982     END SELECT
6983   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
6984     CALL wrf_quilt_get_var_ti_real ( Hndl, Element,  Varname, Data, &
6985                           locCount, Outcount, Status )
6986   ELSE
6987     Status = 0
6988 ENDIF
6989 ELSE
6990   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
6991 ENDIF
6992 RETURN
6993 END SUBROUTINE wrf_get_var_ti_real_sca 
6996 !--- put_var_ti_real
6998 SUBROUTINE wrf_put_var_ti_real_arr ( DataHandle,Element,  Varname, Data, Count,  Status )
6999 !<DESCRIPTION>
7000 !<PRE>
7002 ! Write Count words of time independent
7003 ! attribute "Element" of variable "Varname"  
7004 ! to the open dataset described by DataHandle.  
7005 ! Attribute of type real is
7006 ! copied from array Data.
7009 !</PRE>
7010 !</DESCRIPTION>
7011 USE module_state_description
7012 IMPLICIT NONE
7013 INTEGER ,       INTENT(IN)  :: DataHandle
7014 CHARACTER*(*) , INTENT(IN)  :: Element
7016 CHARACTER*(*) , INTENT(IN)  :: VarName 
7018  real  :: Data (*)
7020 INTEGER ,       INTENT(IN)  :: Count
7022 INTEGER ,       INTENT(OUT) :: Status
7024 #include "wrf_status_codes.h"
7025 INTEGER                     :: len_of_str
7026 LOGICAL                     :: for_out
7027 INTEGER, EXTERNAL           :: use_package
7028 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
7029 INTEGER                     :: locCount
7031 INTEGER io_form , Hndl
7033 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_real_arr " )
7036 locCount = Count
7039 Status = 0
7040 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
7041 IF ( Hndl .GT. -1 ) THEN
7042   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
7043     SELECT CASE ( use_package( io_form ) )
7044 #ifdef NETCDF
7045       CASE ( IO_NETCDF   )
7046         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7047 #  if ( RWORDSIZE == DWORDSIZE )
7048            CALL ext_ncd_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7049                                  locCount,  Status )
7050 #  else
7051            CALL ext_ncd_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7052                                  locCount,  Status )
7053 #  endif
7054         ENDIF
7055         IF ( .NOT. multi_files(io_form) ) THEN
7056           
7057           
7058           
7059           
7060           
7061           
7062           
7063           
7064           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7065         ENDIF
7066 #endif
7067 #ifdef NETCDFPAR
7068       CASE ( IO_NETCDFPAR   )
7069 #  if ( RWORDSIZE == DWORDSIZE )
7070         CALL ext_ncdpar_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7071                               locCount,  Status )
7072 #  else
7073         CALL ext_ncdpar_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7074                               locCount,  Status )
7075 #  endif
7076 #endif
7078 #ifdef PNETCDF
7079       CASE ( IO_PNETCDF   )
7080 #  if ( RWORDSIZE == DWORDSIZE )
7081         CALL ext_pnc_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7082                               locCount,  Status )
7083 #  else
7084         CALL ext_pnc_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7085                               locCount,  Status )
7086 #  endif
7087 #endif
7088 #ifdef PHDF5
7089       CASE ( IO_PHDF5   )
7090 #  if ( RWORDSIZE == DWORDSIZE )
7091         CALL ext_phdf5_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7092                               locCount,  Status )
7093 #  else
7094         CALL ext_phdf5_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7095                               locCount,  Status )
7096 #  endif
7097 #endif
7098 #ifdef ESMFIO
7099       CASE ( IO_ESMF )
7100 #  if ( RWORDSIZE == DWORDSIZE )
7101         CALL ext_esmf_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7102                               locCount,  Status )
7103 #  else
7104         CALL ext_esmf_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7105                               locCount,  Status )
7106 #  endif
7107 #endif
7108 #ifdef XXX
7109       CASE ( IO_XXX   )
7110 #  if ( RWORDSIZE == DWORDSIZE )
7111         CALL ext_xxx_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7112                               locCount,  Status )
7113 #  else
7114         CALL ext_xxx_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7115                               locCount,  Status )
7116 #  endif
7117 #endif
7118 #ifdef YYY
7119       CASE ( IO_YYY   )
7120 #  if ( RWORDSIZE == DWORDSIZE )
7121         CALL ext_yyy_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7122                               locCount,  Status )
7123 #  else
7124         CALL ext_yyy_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7125                               locCount,  Status )
7126 #  endif
7127 #endif
7128 #ifdef GRIB1
7129       CASE ( IO_GRIB1   )
7130         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7131 #  if ( RWORDSIZE == DWORDSIZE )
7132            CALL ext_gr1_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7133                                  locCount,  Status )
7134 #  else
7135            CALL ext_gr1_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7136                                  locCount,  Status )
7137 #  endif
7138         ENDIF
7139         IF ( .NOT. multi_files(io_form) ) THEN
7140           
7141           
7142           
7143           
7144           
7145           
7146           
7147           
7148           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7149         ENDIF
7150 #endif
7151 #ifdef GRIB2
7152       CASE ( IO_GRIB2   )
7153         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7154 #  if ( RWORDSIZE == DWORDSIZE )
7155            CALL ext_gr2_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7156                                  locCount,  Status )
7157 #  else
7158            CALL ext_gr2_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7159                                  locCount,  Status )
7160 #  endif
7161         ENDIF
7162         IF ( .NOT. multi_files(io_form) ) THEN
7163           
7164           
7165           
7166           
7167           
7168           
7169           
7170           
7171           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7172         ENDIF
7173 #endif
7174 #ifdef INTIO
7175       CASE ( IO_INTIO   )
7176         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7177 #  if ( RWORDSIZE == DWORDSIZE )
7178            CALL ext_int_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7179                                  locCount,  Status )
7180 #  else
7181            CALL ext_int_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7182                                  locCount,  Status )
7183 #  endif
7184         ENDIF
7185         IF ( .NOT. multi_files(io_form) ) THEN
7186            
7187            
7188            
7189            
7190            
7191            
7192            
7193            
7194            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7195         ENDIF
7196 #endif
7197       CASE DEFAULT
7198     END SELECT
7199   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
7200     CALL wrf_quilt_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7201                           locCount,  Status )
7202   ELSE
7203     Status = 0
7204 ENDIF
7205 ELSE
7206   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
7207 ENDIF
7208 RETURN
7209 END SUBROUTINE wrf_put_var_ti_real_arr 
7210 !--- put_var_ti_real
7212 SUBROUTINE wrf_put_var_ti_real_sca ( DataHandle,Element,  Varname, Data, Count,  Status )
7213 !<DESCRIPTION>
7214 !<PRE>
7216 ! Write time independent
7217 ! attribute "Element" of variable "Varname"  
7218 ! to the open dataset described by DataHandle.  
7219 ! Attribute of type real is
7220 ! copied from scalar Data.
7223 !</PRE>
7224 !</DESCRIPTION>
7225 USE module_state_description
7226 IMPLICIT NONE
7227 INTEGER ,       INTENT(IN)  :: DataHandle
7228 CHARACTER*(*) , INTENT(IN)  :: Element
7230 CHARACTER*(*) , INTENT(IN)  :: VarName 
7232  real  :: Data 
7234 INTEGER ,       INTENT(IN)  :: Count
7236 INTEGER ,       INTENT(OUT) :: Status
7238 #include "wrf_status_codes.h"
7239 INTEGER                     :: len_of_str
7240 LOGICAL                     :: for_out
7241 INTEGER, EXTERNAL           :: use_package
7242 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
7243 INTEGER                     :: locCount
7245 INTEGER io_form , Hndl
7247 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_real_sca " )
7250 locCount = Count
7253 Status = 0
7254 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
7255 IF ( Hndl .GT. -1 ) THEN
7256   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
7257     SELECT CASE ( use_package( io_form ) )
7258 #ifdef NETCDF
7259       CASE ( IO_NETCDF   )
7260         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7261 #  if ( RWORDSIZE == DWORDSIZE )
7262            CALL ext_ncd_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7263                                  locCount,  Status )
7264 #  else
7265            CALL ext_ncd_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7266                                  locCount,  Status )
7267 #  endif
7268         ENDIF
7269         IF ( .NOT. multi_files(io_form) ) THEN
7270           
7271           
7272           
7273           
7274           
7275           
7276           
7277           
7278           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7279         ENDIF
7280 #endif
7281 #ifdef NETCDFPAR
7282       CASE ( IO_NETCDFPAR   )
7283 #  if ( RWORDSIZE == DWORDSIZE )
7284         CALL ext_ncdpar_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7285                               locCount,  Status )
7286 #  else
7287         CALL ext_ncdpar_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7288                               locCount,  Status )
7289 #  endif
7290 #endif
7292 #ifdef PNETCDF
7293       CASE ( IO_PNETCDF   )
7294 #  if ( RWORDSIZE == DWORDSIZE )
7295         CALL ext_pnc_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7296                               locCount,  Status )
7297 #  else
7298         CALL ext_pnc_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7299                               locCount,  Status )
7300 #  endif
7301 #endif
7302 #ifdef PHDF5
7303       CASE ( IO_PHDF5   )
7304 #  if ( RWORDSIZE == DWORDSIZE )
7305         CALL ext_phdf5_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7306                               locCount,  Status )
7307 #  else
7308         CALL ext_phdf5_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7309                               locCount,  Status )
7310 #  endif
7311 #endif
7312 #ifdef ESMFIO
7313       CASE ( IO_ESMF )
7314 #  if ( RWORDSIZE == DWORDSIZE )
7315         CALL ext_esmf_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7316                               locCount,  Status )
7317 #  else
7318         CALL ext_esmf_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7319                               locCount,  Status )
7320 #  endif
7321 #endif
7322 #ifdef XXX
7323       CASE ( IO_XXX   )
7324 #  if ( RWORDSIZE == DWORDSIZE )
7325         CALL ext_xxx_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7326                               locCount,  Status )
7327 #  else
7328         CALL ext_xxx_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7329                               locCount,  Status )
7330 #  endif
7331 #endif
7332 #ifdef YYY
7333       CASE ( IO_YYY   )
7334 #  if ( RWORDSIZE == DWORDSIZE )
7335         CALL ext_yyy_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7336                               locCount,  Status )
7337 #  else
7338         CALL ext_yyy_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7339                               locCount,  Status )
7340 #  endif
7341 #endif
7342 #ifdef GRIB1
7343       CASE ( IO_GRIB1   )
7344         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7345 #  if ( RWORDSIZE == DWORDSIZE )
7346            CALL ext_gr1_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7347                                  locCount,  Status )
7348 #  else
7349            CALL ext_gr1_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7350                                  locCount,  Status )
7351 #  endif
7352         ENDIF
7353         IF ( .NOT. multi_files(io_form) ) THEN
7354           
7355           
7356           
7357           
7358           
7359           
7360           
7361           
7362           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7363         ENDIF
7364 #endif
7365 #ifdef GRIB2
7366       CASE ( IO_GRIB2   )
7367         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7368 #  if ( RWORDSIZE == DWORDSIZE )
7369            CALL ext_gr2_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7370                                  locCount,  Status )
7371 #  else
7372            CALL ext_gr2_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7373                                  locCount,  Status )
7374 #  endif
7375         ENDIF
7376         IF ( .NOT. multi_files(io_form) ) THEN
7377           
7378           
7379           
7380           
7381           
7382           
7383           
7384           
7385           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7386         ENDIF
7387 #endif
7388 #ifdef INTIO
7389       CASE ( IO_INTIO   )
7390         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7391 #  if ( RWORDSIZE == DWORDSIZE )
7392            CALL ext_int_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7393                                  locCount,  Status )
7394 #  else
7395            CALL ext_int_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7396                                  locCount,  Status )
7397 #  endif
7398         ENDIF
7399         IF ( .NOT. multi_files(io_form) ) THEN
7400            
7401            
7402            
7403            
7404            
7405            
7406            
7407            
7408            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7409         ENDIF
7410 #endif
7411       CASE DEFAULT
7412     END SELECT
7413   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
7414     CALL wrf_quilt_put_var_ti_real ( Hndl, Element,  Varname, Data, &
7415                           locCount,  Status )
7416   ELSE
7417     Status = 0
7418 ENDIF
7419 ELSE
7420   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
7421 ENDIF
7422 RETURN
7423 END SUBROUTINE wrf_put_var_ti_real_sca 
7426 !--- get_var_ti_double
7428 SUBROUTINE wrf_get_var_ti_double_arr ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
7429 !<DESCRIPTION>
7430 !<PRE>
7432 ! Attempt to read Count words of time independent
7433 ! attribute "Element" of variable "Varname"  
7434 ! from the open dataset described by DataHandle.  
7435 ! Attribute of type double is
7436 ! stored in array Data.
7437 ! Actual number of words read is returned in OutCount.
7439 !</PRE>
7440 !</DESCRIPTION>
7441 USE module_state_description
7442 IMPLICIT NONE
7443 INTEGER ,       INTENT(IN)  :: DataHandle
7444 CHARACTER*(*) , INTENT(IN)  :: Element
7446 CHARACTER*(*) , INTENT(IN)  :: VarName 
7448  real*8  :: Data (*)
7450 INTEGER ,       INTENT(IN)  :: Count
7451 INTEGER ,       INTENT(OUT)  :: OutCount
7452 INTEGER ,       INTENT(OUT) :: Status
7454 #include "wrf_status_codes.h"
7455 INTEGER                     :: len_of_str
7456 LOGICAL                     :: for_out
7457 INTEGER, EXTERNAL           :: use_package
7458 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
7459 INTEGER                     :: locCount
7461 INTEGER io_form , Hndl
7463 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_double_arr " )
7469 Status = 0
7470 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
7471 IF ( Hndl .GT. -1 ) THEN
7472   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
7473     SELECT CASE ( use_package( io_form ) )
7474 #ifdef NETCDF
7475       CASE ( IO_NETCDF   )
7476         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7477            CALL ext_ncd_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7478                                  locCount, Outcount, Status ) 
7479         ENDIF
7480         IF ( .NOT. multi_files(io_form) ) THEN
7481           
7482           
7483           
7484           
7485           
7486           
7487           
7488           
7489           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7490         ENDIF
7491 #endif
7492 #ifdef NETCDFPAR
7493       CASE ( IO_NETCDFPAR   )
7494         CALL ext_ncdpar_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7495                               locCount, Outcount, Status ) 
7496 #endif
7498 #ifdef PNETCDF
7499       CASE ( IO_PNETCDF   )
7500         CALL ext_pnc_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7501                               locCount, Outcount, Status ) 
7502 #endif
7503 #ifdef PHDF5
7504       CASE ( IO_PHDF5   )
7505         CALL ext_phdf5_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7506                               locCount, Outcount, Status ) 
7507 #endif
7508 #ifdef ESMFIO
7509       CASE ( IO_ESMF )
7510         CALL ext_esmf_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7511                               locCount, Outcount, Status ) 
7512 #endif
7513 #ifdef XXX
7514       CASE ( IO_XXX   )
7515         CALL ext_xxx_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7516                               locCount, Outcount, Status ) 
7517 #endif
7518 #ifdef YYY
7519       CASE ( IO_YYY   )
7520         CALL ext_yyy_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7521                               locCount, Outcount, Status ) 
7522 #endif
7523 #ifdef GRIB1
7524       CASE ( IO_GRIB1   )
7525         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7526            CALL ext_gr1_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7527                                  locCount, Outcount, Status ) 
7528         ENDIF
7529         IF ( .NOT. multi_files(io_form) ) THEN
7530           
7531           
7532           
7533           
7534           
7535           
7536           
7537           
7538           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7539         ENDIF
7540 #endif
7541 #ifdef GRIB2
7542       CASE ( IO_GRIB2   )
7543         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7544            CALL ext_gr2_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7545                                  locCount, Outcount, Status ) 
7546         ENDIF
7547         IF ( .NOT. multi_files(io_form) ) THEN
7548           
7549           
7550           
7551           
7552           
7553           
7554           
7555           
7556           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7557         ENDIF
7558 #endif
7559 #ifdef INTIO
7560       CASE ( IO_INTIO   )
7561         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7562            CALL ext_int_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7563                                  locCount, Outcount, Status ) 
7564         ENDIF
7565         IF ( .NOT. multi_files(io_form) ) THEN
7566            
7567            
7568            
7569            
7570            
7571            
7572            
7573            
7574            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7575         ENDIF
7576 #endif
7577       CASE DEFAULT
7578     END SELECT
7579   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
7580     CALL wrf_quilt_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7581                           locCount, Outcount, Status )
7582   ELSE
7583     Status = 0
7584 ENDIF
7585 ELSE
7586   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
7587 ENDIF
7588 RETURN
7589 END SUBROUTINE wrf_get_var_ti_double_arr 
7590 !--- get_var_ti_double
7592 SUBROUTINE wrf_get_var_ti_double_sca ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
7593 !<DESCRIPTION>
7594 !<PRE>
7596 ! Attempt to read time independent
7597 ! attribute "Element" of variable "Varname"  
7598 ! from the open dataset described by DataHandle.  
7599 ! Attribute of type double is
7600 ! stored in scalar Data.
7603 !</PRE>
7604 !</DESCRIPTION>
7605 USE module_state_description
7606 IMPLICIT NONE
7607 INTEGER ,       INTENT(IN)  :: DataHandle
7608 CHARACTER*(*) , INTENT(IN)  :: Element
7610 CHARACTER*(*) , INTENT(IN)  :: VarName 
7612  real*8  :: Data 
7614 INTEGER ,       INTENT(IN)  :: Count
7615 INTEGER ,       INTENT(OUT)  :: OutCount
7616 INTEGER ,       INTENT(OUT) :: Status
7618 #include "wrf_status_codes.h"
7619 INTEGER                     :: len_of_str
7620 LOGICAL                     :: for_out
7621 INTEGER, EXTERNAL           :: use_package
7622 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
7623 INTEGER                     :: locCount
7625 INTEGER io_form , Hndl
7627 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_double_sca " )
7633 Status = 0
7634 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
7635 IF ( Hndl .GT. -1 ) THEN
7636   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
7637     SELECT CASE ( use_package( io_form ) )
7638 #ifdef NETCDF
7639       CASE ( IO_NETCDF   )
7640         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7641            CALL ext_ncd_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7642                                  locCount, Outcount, Status ) 
7643         ENDIF
7644         IF ( .NOT. multi_files(io_form) ) THEN
7645           
7646           
7647           
7648           
7649           
7650           
7651           
7652           
7653           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7654         ENDIF
7655 #endif
7656 #ifdef NETCDFPAR
7657       CASE ( IO_NETCDFPAR   )
7658         CALL ext_ncdpar_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7659                               locCount, Outcount, Status ) 
7660 #endif
7662 #ifdef PNETCDF
7663       CASE ( IO_PNETCDF   )
7664         CALL ext_pnc_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7665                               locCount, Outcount, Status ) 
7666 #endif
7667 #ifdef PHDF5
7668       CASE ( IO_PHDF5   )
7669         CALL ext_phdf5_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7670                               locCount, Outcount, Status ) 
7671 #endif
7672 #ifdef ESMFIO
7673       CASE ( IO_ESMF )
7674         CALL ext_esmf_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7675                               locCount, Outcount, Status ) 
7676 #endif
7677 #ifdef XXX
7678       CASE ( IO_XXX   )
7679         CALL ext_xxx_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7680                               locCount, Outcount, Status ) 
7681 #endif
7682 #ifdef YYY
7683       CASE ( IO_YYY   )
7684         CALL ext_yyy_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7685                               locCount, Outcount, Status ) 
7686 #endif
7687 #ifdef GRIB1
7688       CASE ( IO_GRIB1   )
7689         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7690            CALL ext_gr1_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7691                                  locCount, Outcount, Status ) 
7692         ENDIF
7693         IF ( .NOT. multi_files(io_form) ) THEN
7694           
7695           
7696           
7697           
7698           
7699           
7700           
7701           
7702           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7703         ENDIF
7704 #endif
7705 #ifdef GRIB2
7706       CASE ( IO_GRIB2   )
7707         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7708            CALL ext_gr2_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7709                                  locCount, Outcount, Status ) 
7710         ENDIF
7711         IF ( .NOT. multi_files(io_form) ) THEN
7712           
7713           
7714           
7715           
7716           
7717           
7718           
7719           
7720           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7721         ENDIF
7722 #endif
7723 #ifdef INTIO
7724       CASE ( IO_INTIO   )
7725         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7726            CALL ext_int_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7727                                  locCount, Outcount, Status ) 
7728         ENDIF
7729         IF ( .NOT. multi_files(io_form) ) THEN
7730            
7731            
7732            
7733            
7734            
7735            
7736            
7737            
7738            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7739         ENDIF
7740 #endif
7741       CASE DEFAULT
7742     END SELECT
7743   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
7744     CALL wrf_quilt_get_var_ti_double ( Hndl, Element,  Varname, Data, &
7745                           locCount, Outcount, Status )
7746   ELSE
7747     Status = 0
7748 ENDIF
7749 ELSE
7750   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
7751 ENDIF
7752 RETURN
7753 END SUBROUTINE wrf_get_var_ti_double_sca 
7756 !--- put_var_ti_double
7758 SUBROUTINE wrf_put_var_ti_double_arr ( DataHandle,Element,  Varname, Data, Count,  Status )
7759 !<DESCRIPTION>
7760 !<PRE>
7762 ! Write Count words of time independent
7763 ! attribute "Element" of variable "Varname"  
7764 ! to the open dataset described by DataHandle.  
7765 ! Attribute of type double is
7766 ! copied from array Data.
7769 !</PRE>
7770 !</DESCRIPTION>
7771 USE module_state_description
7772 IMPLICIT NONE
7773 INTEGER ,       INTENT(IN)  :: DataHandle
7774 CHARACTER*(*) , INTENT(IN)  :: Element
7776 CHARACTER*(*) , INTENT(IN)  :: VarName 
7778  real*8  :: Data (*)
7780 INTEGER ,       INTENT(IN)  :: Count
7782 INTEGER ,       INTENT(OUT) :: Status
7784 #include "wrf_status_codes.h"
7785 INTEGER                     :: len_of_str
7786 LOGICAL                     :: for_out
7787 INTEGER, EXTERNAL           :: use_package
7788 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
7789 INTEGER                     :: locCount
7791 INTEGER io_form , Hndl
7793 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_double_arr " )
7799 Status = 0
7800 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
7801 IF ( Hndl .GT. -1 ) THEN
7802   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
7803     SELECT CASE ( use_package( io_form ) )
7804 #ifdef NETCDF
7805       CASE ( IO_NETCDF   )
7806         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7807            CALL ext_ncd_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7808                                  locCount,  Status ) 
7809         ENDIF
7810         IF ( .NOT. multi_files(io_form) ) THEN
7811           
7812           
7813           
7814           
7815           
7816           
7817           
7818           
7819           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7820         ENDIF
7821 #endif
7822 #ifdef NETCDFPAR
7823       CASE ( IO_NETCDFPAR   )
7824         CALL ext_ncdpar_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7825                               locCount,  Status ) 
7826 #endif
7828 #ifdef PNETCDF
7829       CASE ( IO_PNETCDF   )
7830         CALL ext_pnc_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7831                               locCount,  Status ) 
7832 #endif
7833 #ifdef PHDF5
7834       CASE ( IO_PHDF5   )
7835         CALL ext_phdf5_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7836                               locCount,  Status ) 
7837 #endif
7838 #ifdef ESMFIO
7839       CASE ( IO_ESMF )
7840         CALL ext_esmf_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7841                               locCount,  Status ) 
7842 #endif
7843 #ifdef XXX
7844       CASE ( IO_XXX   )
7845         CALL ext_xxx_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7846                               locCount,  Status ) 
7847 #endif
7848 #ifdef YYY
7849       CASE ( IO_YYY   )
7850         CALL ext_yyy_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7851                               locCount,  Status ) 
7852 #endif
7853 #ifdef GRIB1
7854       CASE ( IO_GRIB1   )
7855         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7856            CALL ext_gr1_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7857                                  locCount,  Status ) 
7858         ENDIF
7859         IF ( .NOT. multi_files(io_form) ) THEN
7860           
7861           
7862           
7863           
7864           
7865           
7866           
7867           
7868           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7869         ENDIF
7870 #endif
7871 #ifdef GRIB2
7872       CASE ( IO_GRIB2   )
7873         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7874            CALL ext_gr2_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7875                                  locCount,  Status ) 
7876         ENDIF
7877         IF ( .NOT. multi_files(io_form) ) THEN
7878           
7879           
7880           
7881           
7882           
7883           
7884           
7885           
7886           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7887         ENDIF
7888 #endif
7889 #ifdef INTIO
7890       CASE ( IO_INTIO   )
7891         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7892            CALL ext_int_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7893                                  locCount,  Status ) 
7894         ENDIF
7895         IF ( .NOT. multi_files(io_form) ) THEN
7896            
7897            
7898            
7899            
7900            
7901            
7902            
7903            
7904            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7905         ENDIF
7906 #endif
7907       CASE DEFAULT
7908     END SELECT
7909   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
7910     CALL wrf_quilt_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7911                           locCount,  Status )
7912   ELSE
7913     Status = 0
7914 ENDIF
7915 ELSE
7916   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
7917 ENDIF
7918 RETURN
7919 END SUBROUTINE wrf_put_var_ti_double_arr 
7920 !--- put_var_ti_double
7922 SUBROUTINE wrf_put_var_ti_double_sca ( DataHandle,Element,  Varname, Data, Count,  Status )
7923 !<DESCRIPTION>
7924 !<PRE>
7926 ! Write time independent
7927 ! attribute "Element" of variable "Varname"  
7928 ! to the open dataset described by DataHandle.  
7929 ! Attribute of type double is
7930 ! copied from scalar Data.
7933 !</PRE>
7934 !</DESCRIPTION>
7935 USE module_state_description
7936 IMPLICIT NONE
7937 INTEGER ,       INTENT(IN)  :: DataHandle
7938 CHARACTER*(*) , INTENT(IN)  :: Element
7940 CHARACTER*(*) , INTENT(IN)  :: VarName 
7942  real*8  :: Data 
7944 INTEGER ,       INTENT(IN)  :: Count
7946 INTEGER ,       INTENT(OUT) :: Status
7948 #include "wrf_status_codes.h"
7949 INTEGER                     :: len_of_str
7950 LOGICAL                     :: for_out
7951 INTEGER, EXTERNAL           :: use_package
7952 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
7953 INTEGER                     :: locCount
7955 INTEGER io_form , Hndl
7957 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_double_sca " )
7963 Status = 0
7964 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
7965 IF ( Hndl .GT. -1 ) THEN
7966   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
7967     SELECT CASE ( use_package( io_form ) )
7968 #ifdef NETCDF
7969       CASE ( IO_NETCDF   )
7970         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
7971            CALL ext_ncd_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7972                                  locCount,  Status ) 
7973         ENDIF
7974         IF ( .NOT. multi_files(io_form) ) THEN
7975           
7976           
7977           
7978           
7979           
7980           
7981           
7982           
7983           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
7984         ENDIF
7985 #endif
7986 #ifdef NETCDFPAR
7987       CASE ( IO_NETCDFPAR   )
7988         CALL ext_ncdpar_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7989                               locCount,  Status ) 
7990 #endif
7992 #ifdef PNETCDF
7993       CASE ( IO_PNETCDF   )
7994         CALL ext_pnc_put_var_ti_double ( Hndl, Element,  Varname, Data, &
7995                               locCount,  Status ) 
7996 #endif
7997 #ifdef PHDF5
7998       CASE ( IO_PHDF5   )
7999         CALL ext_phdf5_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8000                               locCount,  Status ) 
8001 #endif
8002 #ifdef ESMFIO
8003       CASE ( IO_ESMF )
8004         CALL ext_esmf_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8005                               locCount,  Status ) 
8006 #endif
8007 #ifdef XXX
8008       CASE ( IO_XXX   )
8009         CALL ext_xxx_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8010                               locCount,  Status ) 
8011 #endif
8012 #ifdef YYY
8013       CASE ( IO_YYY   )
8014         CALL ext_yyy_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8015                               locCount,  Status ) 
8016 #endif
8017 #ifdef GRIB1
8018       CASE ( IO_GRIB1   )
8019         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8020            CALL ext_gr1_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8021                                  locCount,  Status ) 
8022         ENDIF
8023         IF ( .NOT. multi_files(io_form) ) THEN
8024           
8025           
8026           
8027           
8028           
8029           
8030           
8031           
8032           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8033         ENDIF
8034 #endif
8035 #ifdef GRIB2
8036       CASE ( IO_GRIB2   )
8037         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8038            CALL ext_gr2_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8039                                  locCount,  Status ) 
8040         ENDIF
8041         IF ( .NOT. multi_files(io_form) ) THEN
8042           
8043           
8044           
8045           
8046           
8047           
8048           
8049           
8050           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8051         ENDIF
8052 #endif
8053 #ifdef INTIO
8054       CASE ( IO_INTIO   )
8055         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8056            CALL ext_int_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8057                                  locCount,  Status ) 
8058         ENDIF
8059         IF ( .NOT. multi_files(io_form) ) THEN
8060            
8061            
8062            
8063            
8064            
8065            
8066            
8067            
8068            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8069         ENDIF
8070 #endif
8071       CASE DEFAULT
8072     END SELECT
8073   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
8074     CALL wrf_quilt_put_var_ti_double ( Hndl, Element,  Varname, Data, &
8075                           locCount,  Status )
8076   ELSE
8077     Status = 0
8078 ENDIF
8079 ELSE
8080   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
8081 ENDIF
8082 RETURN
8083 END SUBROUTINE wrf_put_var_ti_double_sca 
8086 !--- get_var_ti_integer
8088 SUBROUTINE wrf_get_var_ti_integer_arr ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
8089 !<DESCRIPTION>
8090 !<PRE>
8092 ! Attempt to read Count words of time independent
8093 ! attribute "Element" of variable "Varname"  
8094 ! from the open dataset described by DataHandle.  
8095 ! Attribute of type integer is
8096 ! stored in array Data.
8097 ! Actual number of words read is returned in OutCount.
8099 !</PRE>
8100 !</DESCRIPTION>
8101 USE module_state_description
8102 IMPLICIT NONE
8103 INTEGER ,       INTENT(IN)  :: DataHandle
8104 CHARACTER*(*) , INTENT(IN)  :: Element
8106 CHARACTER*(*) , INTENT(IN)  :: VarName 
8108  integer  :: Data (*)
8110 INTEGER ,       INTENT(IN)  :: Count
8111 INTEGER ,       INTENT(OUT)  :: OutCount
8112 INTEGER ,       INTENT(OUT) :: Status
8114 #include "wrf_status_codes.h"
8115 INTEGER                     :: len_of_str
8116 LOGICAL                     :: for_out
8117 INTEGER, EXTERNAL           :: use_package
8118 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
8119 INTEGER                     :: locCount
8121 INTEGER io_form , Hndl
8123 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_integer_arr " )
8125 locCount = Count
8129 Status = 0
8130 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
8131 IF ( Hndl .GT. -1 ) THEN
8132   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
8133     SELECT CASE ( use_package( io_form ) )
8134 #ifdef NETCDF
8135       CASE ( IO_NETCDF   )
8136         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8137            CALL ext_ncd_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8138                                  locCount, Outcount, Status ) 
8139         ENDIF
8140         IF ( .NOT. multi_files(io_form) ) THEN
8141           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8142           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8143           
8144           
8145           
8146           
8147           
8148           
8149           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8150         ENDIF
8151 #endif
8152 #ifdef NETCDFPAR
8153       CASE ( IO_NETCDFPAR   )
8154         CALL ext_ncdpar_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8155                               locCount, Outcount, Status ) 
8156 #endif
8158 #ifdef PNETCDF
8159       CASE ( IO_PNETCDF   )
8160         CALL ext_pnc_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8161                               locCount, Outcount, Status ) 
8162 #endif
8163 #ifdef PHDF5
8164       CASE ( IO_PHDF5   )
8165         CALL ext_phdf5_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8166                               locCount, Outcount, Status ) 
8167 #endif
8168 #ifdef ESMFIO
8169       CASE ( IO_ESMF )
8170         CALL ext_esmf_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8171                               locCount, Outcount, Status ) 
8172 #endif
8173 #ifdef XXX
8174       CASE ( IO_XXX   )
8175         CALL ext_xxx_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8176                               locCount, Outcount, Status ) 
8177 #endif
8178 #ifdef YYY
8179       CASE ( IO_YYY   )
8180         CALL ext_yyy_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8181                               locCount, Outcount, Status ) 
8182 #endif
8183 #ifdef GRIB1
8184       CASE ( IO_GRIB1   )
8185         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8186            CALL ext_gr1_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8187                                  locCount, Outcount, Status ) 
8188         ENDIF
8189         IF ( .NOT. multi_files(io_form) ) THEN
8190           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8191           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8192           
8193           
8194           
8195           
8196           
8197           
8198           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8199         ENDIF
8200 #endif
8201 #ifdef GRIB2
8202       CASE ( IO_GRIB2   )
8203         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8204            CALL ext_gr2_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8205                                  locCount, Outcount, Status ) 
8206         ENDIF
8207         IF ( .NOT. multi_files(io_form) ) THEN
8208           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8209           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8210           
8211           
8212           
8213           
8214           
8215           
8216           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8217         ENDIF
8218 #endif
8219 #ifdef INTIO
8220       CASE ( IO_INTIO   )
8221         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8222            CALL ext_int_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8223                                  locCount, Outcount, Status ) 
8224         ENDIF
8225         IF ( .NOT. multi_files(io_form) ) THEN
8226            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8227            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8228            
8229            
8230            
8231            
8232            
8233            
8234            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8235         ENDIF
8236 #endif
8237       CASE DEFAULT
8238     END SELECT
8239   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
8240     CALL wrf_quilt_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8241                           locCount, Outcount, Status )
8242   ELSE
8243     Status = 0
8244 ENDIF
8245 ELSE
8246   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
8247 ENDIF
8248 RETURN
8249 END SUBROUTINE wrf_get_var_ti_integer_arr 
8250 !--- get_var_ti_integer
8252 SUBROUTINE wrf_get_var_ti_integer_sca ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
8253 !<DESCRIPTION>
8254 !<PRE>
8256 ! Attempt to read time independent
8257 ! attribute "Element" of variable "Varname"  
8258 ! from the open dataset described by DataHandle.  
8259 ! Attribute of type integer is
8260 ! stored in scalar Data.
8263 !</PRE>
8264 !</DESCRIPTION>
8265 USE module_state_description
8266 IMPLICIT NONE
8267 INTEGER ,       INTENT(IN)  :: DataHandle
8268 CHARACTER*(*) , INTENT(IN)  :: Element
8270 CHARACTER*(*) , INTENT(IN)  :: VarName 
8272  integer  :: Data 
8274 INTEGER ,       INTENT(IN)  :: Count
8275 INTEGER ,       INTENT(OUT)  :: OutCount
8276 INTEGER ,       INTENT(OUT) :: Status
8278 #include "wrf_status_codes.h"
8279 INTEGER                     :: len_of_str
8280 LOGICAL                     :: for_out
8281 INTEGER, EXTERNAL           :: use_package
8282 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
8283 INTEGER                     :: locCount
8285 INTEGER io_form , Hndl
8287 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_integer_sca " )
8289 locCount = Count
8293 Status = 0
8294 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
8295 IF ( Hndl .GT. -1 ) THEN
8296   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
8297     SELECT CASE ( use_package( io_form ) )
8298 #ifdef NETCDF
8299       CASE ( IO_NETCDF   )
8300         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8301            CALL ext_ncd_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8302                                  locCount, Outcount, Status ) 
8303         ENDIF
8304         IF ( .NOT. multi_files(io_form) ) THEN
8305           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8306           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8307           
8308           
8309           
8310           
8311           
8312           
8313           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8314         ENDIF
8315 #endif
8316 #ifdef NETCDFPAR
8317       CASE ( IO_NETCDFPAR   )
8318         CALL ext_ncdpar_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8319                               locCount, Outcount, Status ) 
8320 #endif
8322 #ifdef PNETCDF
8323       CASE ( IO_PNETCDF   )
8324         CALL ext_pnc_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8325                               locCount, Outcount, Status ) 
8326 #endif
8327 #ifdef PHDF5
8328       CASE ( IO_PHDF5   )
8329         CALL ext_phdf5_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8330                               locCount, Outcount, Status ) 
8331 #endif
8332 #ifdef ESMFIO
8333       CASE ( IO_ESMF )
8334         CALL ext_esmf_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8335                               locCount, Outcount, Status ) 
8336 #endif
8337 #ifdef XXX
8338       CASE ( IO_XXX   )
8339         CALL ext_xxx_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8340                               locCount, Outcount, Status ) 
8341 #endif
8342 #ifdef YYY
8343       CASE ( IO_YYY   )
8344         CALL ext_yyy_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8345                               locCount, Outcount, Status ) 
8346 #endif
8347 #ifdef GRIB1
8348       CASE ( IO_GRIB1   )
8349         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8350            CALL ext_gr1_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8351                                  locCount, Outcount, Status ) 
8352         ENDIF
8353         IF ( .NOT. multi_files(io_form) ) THEN
8354           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8355           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8356           
8357           
8358           
8359           
8360           
8361           
8362           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8363         ENDIF
8364 #endif
8365 #ifdef GRIB2
8366       CASE ( IO_GRIB2   )
8367         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8368            CALL ext_gr2_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8369                                  locCount, Outcount, Status ) 
8370         ENDIF
8371         IF ( .NOT. multi_files(io_form) ) THEN
8372           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8373           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8374           
8375           
8376           
8377           
8378           
8379           
8380           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8381         ENDIF
8382 #endif
8383 #ifdef INTIO
8384       CASE ( IO_INTIO   )
8385         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8386            CALL ext_int_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8387                                  locCount, Outcount, Status ) 
8388         ENDIF
8389         IF ( .NOT. multi_files(io_form) ) THEN
8390            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8391            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
8392            
8393            
8394            
8395            
8396            
8397            
8398            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8399         ENDIF
8400 #endif
8401       CASE DEFAULT
8402     END SELECT
8403   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
8404     CALL wrf_quilt_get_var_ti_integer ( Hndl, Element,  Varname, Data, &
8405                           locCount, Outcount, Status )
8406   ELSE
8407     Status = 0
8408 ENDIF
8409 ELSE
8410   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
8411 ENDIF
8412 RETURN
8413 END SUBROUTINE wrf_get_var_ti_integer_sca 
8416 !--- put_var_ti_integer
8418 SUBROUTINE wrf_put_var_ti_integer_arr ( DataHandle,Element,  Varname, Data, Count,  Status )
8419 !<DESCRIPTION>
8420 !<PRE>
8422 ! Write Count words of time independent
8423 ! attribute "Element" of variable "Varname"  
8424 ! to the open dataset described by DataHandle.  
8425 ! Attribute of type integer is
8426 ! copied from array Data.
8429 !</PRE>
8430 !</DESCRIPTION>
8431 USE module_state_description
8432 IMPLICIT NONE
8433 INTEGER ,       INTENT(IN)  :: DataHandle
8434 CHARACTER*(*) , INTENT(IN)  :: Element
8436 CHARACTER*(*) , INTENT(IN)  :: VarName 
8438  integer  :: Data (*)
8440 INTEGER ,       INTENT(IN)  :: Count
8442 INTEGER ,       INTENT(OUT) :: Status
8444 #include "wrf_status_codes.h"
8445 INTEGER                     :: len_of_str
8446 LOGICAL                     :: for_out
8447 INTEGER, EXTERNAL           :: use_package
8448 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
8449 INTEGER                     :: locCount
8451 INTEGER io_form , Hndl
8453 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_integer_arr " )
8455 locCount = Count
8459 Status = 0
8460 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
8461 IF ( Hndl .GT. -1 ) THEN
8462   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
8463     SELECT CASE ( use_package( io_form ) )
8464 #ifdef NETCDF
8465       CASE ( IO_NETCDF   )
8466         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8467            CALL ext_ncd_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8468                                  locCount,  Status ) 
8469         ENDIF
8470         IF ( .NOT. multi_files(io_form) ) THEN
8471           
8472           
8473           
8474           
8475           
8476           
8477           
8478           
8479           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8480         ENDIF
8481 #endif
8482 #ifdef NETCDFPAR
8483       CASE ( IO_NETCDFPAR   )
8484         CALL ext_ncdpar_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8485                               locCount,  Status ) 
8486 #endif
8488 #ifdef PNETCDF
8489       CASE ( IO_PNETCDF   )
8490         CALL ext_pnc_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8491                               locCount,  Status ) 
8492 #endif
8493 #ifdef PHDF5
8494       CASE ( IO_PHDF5   )
8495         CALL ext_phdf5_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8496                               locCount,  Status ) 
8497 #endif
8498 #ifdef ESMFIO
8499       CASE ( IO_ESMF )
8500         CALL ext_esmf_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8501                               locCount,  Status ) 
8502 #endif
8503 #ifdef XXX
8504       CASE ( IO_XXX   )
8505         CALL ext_xxx_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8506                               locCount,  Status ) 
8507 #endif
8508 #ifdef YYY
8509       CASE ( IO_YYY   )
8510         CALL ext_yyy_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8511                               locCount,  Status ) 
8512 #endif
8513 #ifdef GRIB1
8514       CASE ( IO_GRIB1   )
8515         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8516            CALL ext_gr1_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8517                                  locCount,  Status ) 
8518         ENDIF
8519         IF ( .NOT. multi_files(io_form) ) THEN
8520           
8521           
8522           
8523           
8524           
8525           
8526           
8527           
8528           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8529         ENDIF
8530 #endif
8531 #ifdef GRIB2
8532       CASE ( IO_GRIB2   )
8533         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8534            CALL ext_gr2_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8535                                  locCount,  Status ) 
8536         ENDIF
8537         IF ( .NOT. multi_files(io_form) ) THEN
8538           
8539           
8540           
8541           
8542           
8543           
8544           
8545           
8546           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8547         ENDIF
8548 #endif
8549 #ifdef INTIO
8550       CASE ( IO_INTIO   )
8551         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8552            CALL ext_int_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8553                                  locCount,  Status ) 
8554         ENDIF
8555         IF ( .NOT. multi_files(io_form) ) THEN
8556            
8557            
8558            
8559            
8560            
8561            
8562            
8563            
8564            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8565         ENDIF
8566 #endif
8567       CASE DEFAULT
8568     END SELECT
8569   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
8570     CALL wrf_quilt_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8571                           locCount,  Status )
8572   ELSE
8573     Status = 0
8574 ENDIF
8575 ELSE
8576   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
8577 ENDIF
8578 RETURN
8579 END SUBROUTINE wrf_put_var_ti_integer_arr 
8580 !--- put_var_ti_integer
8582 SUBROUTINE wrf_put_var_ti_integer_sca ( DataHandle,Element,  Varname, Data, Count,  Status )
8583 !<DESCRIPTION>
8584 !<PRE>
8586 ! Write time independent
8587 ! attribute "Element" of variable "Varname"  
8588 ! to the open dataset described by DataHandle.  
8589 ! Attribute of type integer is
8590 ! copied from scalar Data.
8593 !</PRE>
8594 !</DESCRIPTION>
8595 USE module_state_description
8596 IMPLICIT NONE
8597 INTEGER ,       INTENT(IN)  :: DataHandle
8598 CHARACTER*(*) , INTENT(IN)  :: Element
8600 CHARACTER*(*) , INTENT(IN)  :: VarName 
8602  integer  :: Data 
8604 INTEGER ,       INTENT(IN)  :: Count
8606 INTEGER ,       INTENT(OUT) :: Status
8608 #include "wrf_status_codes.h"
8609 INTEGER                     :: len_of_str
8610 LOGICAL                     :: for_out
8611 INTEGER, EXTERNAL           :: use_package
8612 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
8613 INTEGER                     :: locCount
8615 INTEGER io_form , Hndl
8617 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_integer_sca " )
8619 locCount = Count
8623 Status = 0
8624 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
8625 IF ( Hndl .GT. -1 ) THEN
8626   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
8627     SELECT CASE ( use_package( io_form ) )
8628 #ifdef NETCDF
8629       CASE ( IO_NETCDF   )
8630         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8631            CALL ext_ncd_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8632                                  locCount,  Status ) 
8633         ENDIF
8634         IF ( .NOT. multi_files(io_form) ) THEN
8635           
8636           
8637           
8638           
8639           
8640           
8641           
8642           
8643           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8644         ENDIF
8645 #endif
8646 #ifdef NETCDFPAR
8647       CASE ( IO_NETCDFPAR   )
8648         CALL ext_ncdpar_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8649                               locCount,  Status ) 
8650 #endif
8652 #ifdef PNETCDF
8653       CASE ( IO_PNETCDF   )
8654         CALL ext_pnc_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8655                               locCount,  Status ) 
8656 #endif
8657 #ifdef PHDF5
8658       CASE ( IO_PHDF5   )
8659         CALL ext_phdf5_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8660                               locCount,  Status ) 
8661 #endif
8662 #ifdef ESMFIO
8663       CASE ( IO_ESMF )
8664         CALL ext_esmf_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8665                               locCount,  Status ) 
8666 #endif
8667 #ifdef XXX
8668       CASE ( IO_XXX   )
8669         CALL ext_xxx_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8670                               locCount,  Status ) 
8671 #endif
8672 #ifdef YYY
8673       CASE ( IO_YYY   )
8674         CALL ext_yyy_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8675                               locCount,  Status ) 
8676 #endif
8677 #ifdef GRIB1
8678       CASE ( IO_GRIB1   )
8679         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8680            CALL ext_gr1_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8681                                  locCount,  Status ) 
8682         ENDIF
8683         IF ( .NOT. multi_files(io_form) ) THEN
8684           
8685           
8686           
8687           
8688           
8689           
8690           
8691           
8692           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8693         ENDIF
8694 #endif
8695 #ifdef GRIB2
8696       CASE ( IO_GRIB2   )
8697         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8698            CALL ext_gr2_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8699                                  locCount,  Status ) 
8700         ENDIF
8701         IF ( .NOT. multi_files(io_form) ) THEN
8702           
8703           
8704           
8705           
8706           
8707           
8708           
8709           
8710           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8711         ENDIF
8712 #endif
8713 #ifdef INTIO
8714       CASE ( IO_INTIO   )
8715         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8716            CALL ext_int_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8717                                  locCount,  Status ) 
8718         ENDIF
8719         IF ( .NOT. multi_files(io_form) ) THEN
8720            
8721            
8722            
8723            
8724            
8725            
8726            
8727            
8728            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8729         ENDIF
8730 #endif
8731       CASE DEFAULT
8732     END SELECT
8733   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
8734     CALL wrf_quilt_put_var_ti_integer ( Hndl, Element,  Varname, Data, &
8735                           locCount,  Status )
8736   ELSE
8737     Status = 0
8738 ENDIF
8739 ELSE
8740   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
8741 ENDIF
8742 RETURN
8743 END SUBROUTINE wrf_put_var_ti_integer_sca 
8746 !--- get_var_ti_logical
8748 SUBROUTINE wrf_get_var_ti_logical_arr ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
8749 !<DESCRIPTION>
8750 !<PRE>
8752 ! Attempt to read Count words of time independent
8753 ! attribute "Element" of variable "Varname"  
8754 ! from the open dataset described by DataHandle.  
8755 ! Attribute of type logical is
8756 ! stored in array Data.
8757 ! Actual number of words read is returned in OutCount.
8759 !</PRE>
8760 !</DESCRIPTION>
8761 USE module_state_description
8762 IMPLICIT NONE
8763 INTEGER ,       INTENT(IN)  :: DataHandle
8764 CHARACTER*(*) , INTENT(IN)  :: Element
8766 CHARACTER*(*) , INTENT(IN)  :: VarName 
8768  logical  :: Data (*)
8770 INTEGER ,       INTENT(IN)  :: Count
8771 INTEGER ,       INTENT(OUT)  :: OutCount
8772 INTEGER ,       INTENT(OUT) :: Status
8774 #include "wrf_status_codes.h"
8775 INTEGER                     :: len_of_str
8776 LOGICAL                     :: for_out
8777 INTEGER, EXTERNAL           :: use_package
8778 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
8779 INTEGER                     :: locCount
8781 INTEGER io_form , Hndl
8783 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_logical_arr " )
8787 locCount = Count
8789 Status = 0
8790 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
8791 IF ( Hndl .GT. -1 ) THEN
8792   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
8793     SELECT CASE ( use_package( io_form ) )
8794 #ifdef NETCDF
8795       CASE ( IO_NETCDF   )
8796         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8797            CALL ext_ncd_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8798                                  locCount, Outcount, Status ) 
8799         ENDIF
8800         IF ( .NOT. multi_files(io_form) ) THEN
8801           
8802           
8803           
8804           
8805           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8806           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
8807           
8808           
8809           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8810         ENDIF
8811 #endif
8812 #ifdef NETCDFPAR
8813       CASE ( IO_NETCDFPAR   )
8814         CALL ext_ncdpar_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8815                               locCount, Outcount, Status ) 
8816 #endif
8818 #ifdef PNETCDF
8819       CASE ( IO_PNETCDF   )
8820         CALL ext_pnc_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8821                               locCount, Outcount, Status ) 
8822 #endif
8823 #ifdef PHDF5
8824       CASE ( IO_PHDF5   )
8825         CALL ext_phdf5_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8826                               locCount, Outcount, Status ) 
8827 #endif
8828 #ifdef ESMFIO
8829       CASE ( IO_ESMF )
8830         CALL ext_esmf_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8831                               locCount, Outcount, Status ) 
8832 #endif
8833 #ifdef XXX
8834       CASE ( IO_XXX   )
8835         CALL ext_xxx_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8836                               locCount, Outcount, Status ) 
8837 #endif
8838 #ifdef YYY
8839       CASE ( IO_YYY   )
8840         CALL ext_yyy_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8841                               locCount, Outcount, Status ) 
8842 #endif
8843 #ifdef GRIB1
8844       CASE ( IO_GRIB1   )
8845         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8846            CALL ext_gr1_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8847                                  locCount, Outcount, Status ) 
8848         ENDIF
8849         IF ( .NOT. multi_files(io_form) ) THEN
8850           
8851           
8852           
8853           
8854           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8855           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
8856           
8857           
8858           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8859         ENDIF
8860 #endif
8861 #ifdef GRIB2
8862       CASE ( IO_GRIB2   )
8863         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8864            CALL ext_gr2_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8865                                  locCount, Outcount, Status ) 
8866         ENDIF
8867         IF ( .NOT. multi_files(io_form) ) THEN
8868           
8869           
8870           
8871           
8872           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8873           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
8874           
8875           
8876           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8877         ENDIF
8878 #endif
8879 #ifdef INTIO
8880       CASE ( IO_INTIO   )
8881         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8882            CALL ext_int_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8883                                  locCount, Outcount, Status ) 
8884         ENDIF
8885         IF ( .NOT. multi_files(io_form) ) THEN
8886            
8887            
8888            
8889            
8890            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8891            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
8892            
8893            
8894            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8895         ENDIF
8896 #endif
8897       CASE DEFAULT
8898     END SELECT
8899   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
8900     CALL wrf_quilt_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8901                           locCount, Outcount, Status )
8902   ELSE
8903     Status = 0
8904 ENDIF
8905 ELSE
8906   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
8907 ENDIF
8908 RETURN
8909 END SUBROUTINE wrf_get_var_ti_logical_arr 
8910 !--- get_var_ti_logical
8912 SUBROUTINE wrf_get_var_ti_logical_sca ( DataHandle,Element,  Varname, Data, Count, Outcount, Status )
8913 !<DESCRIPTION>
8914 !<PRE>
8916 ! Attempt to read time independent
8917 ! attribute "Element" of variable "Varname"  
8918 ! from the open dataset described by DataHandle.  
8919 ! Attribute of type logical is
8920 ! stored in scalar Data.
8923 !</PRE>
8924 !</DESCRIPTION>
8925 USE module_state_description
8926 IMPLICIT NONE
8927 INTEGER ,       INTENT(IN)  :: DataHandle
8928 CHARACTER*(*) , INTENT(IN)  :: Element
8930 CHARACTER*(*) , INTENT(IN)  :: VarName 
8932  logical  :: Data 
8934 INTEGER ,       INTENT(IN)  :: Count
8935 INTEGER ,       INTENT(OUT)  :: OutCount
8936 INTEGER ,       INTENT(OUT) :: Status
8938 #include "wrf_status_codes.h"
8939 INTEGER                     :: len_of_str
8940 LOGICAL                     :: for_out
8941 INTEGER, EXTERNAL           :: use_package
8942 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
8943 INTEGER                     :: locCount
8945 INTEGER io_form , Hndl
8947 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_logical_sca " )
8951 locCount = Count
8953 Status = 0
8954 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
8955 IF ( Hndl .GT. -1 ) THEN
8956   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
8957     SELECT CASE ( use_package( io_form ) )
8958 #ifdef NETCDF
8959       CASE ( IO_NETCDF   )
8960         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
8961            CALL ext_ncd_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8962                                  locCount, Outcount, Status ) 
8963         ENDIF
8964         IF ( .NOT. multi_files(io_form) ) THEN
8965           
8966           
8967           
8968           
8969           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
8970           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
8971           
8972           
8973           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
8974         ENDIF
8975 #endif
8976 #ifdef NETCDFPAR
8977       CASE ( IO_NETCDFPAR   )
8978         CALL ext_ncdpar_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8979                               locCount, Outcount, Status ) 
8980 #endif
8982 #ifdef PNETCDF
8983       CASE ( IO_PNETCDF   )
8984         CALL ext_pnc_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8985                               locCount, Outcount, Status ) 
8986 #endif
8987 #ifdef PHDF5
8988       CASE ( IO_PHDF5   )
8989         CALL ext_phdf5_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8990                               locCount, Outcount, Status ) 
8991 #endif
8992 #ifdef ESMFIO
8993       CASE ( IO_ESMF )
8994         CALL ext_esmf_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
8995                               locCount, Outcount, Status ) 
8996 #endif
8997 #ifdef XXX
8998       CASE ( IO_XXX   )
8999         CALL ext_xxx_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
9000                               locCount, Outcount, Status ) 
9001 #endif
9002 #ifdef YYY
9003       CASE ( IO_YYY   )
9004         CALL ext_yyy_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
9005                               locCount, Outcount, Status ) 
9006 #endif
9007 #ifdef GRIB1
9008       CASE ( IO_GRIB1   )
9009         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9010            CALL ext_gr1_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
9011                                  locCount, Outcount, Status ) 
9012         ENDIF
9013         IF ( .NOT. multi_files(io_form) ) THEN
9014           
9015           
9016           
9017           
9018           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9019           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
9020           
9021           
9022           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9023         ENDIF
9024 #endif
9025 #ifdef GRIB2
9026       CASE ( IO_GRIB2   )
9027         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9028            CALL ext_gr2_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
9029                                  locCount, Outcount, Status ) 
9030         ENDIF
9031         IF ( .NOT. multi_files(io_form) ) THEN
9032           
9033           
9034           
9035           
9036           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9037           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
9038           
9039           
9040           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9041         ENDIF
9042 #endif
9043 #ifdef INTIO
9044       CASE ( IO_INTIO   )
9045         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9046            CALL ext_int_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
9047                                  locCount, Outcount, Status ) 
9048         ENDIF
9049         IF ( .NOT. multi_files(io_form) ) THEN
9050            
9051            
9052            
9053            
9054            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9055            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
9056            
9057            
9058            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9059         ENDIF
9060 #endif
9061       CASE DEFAULT
9062     END SELECT
9063   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
9064     CALL wrf_quilt_get_var_ti_logical ( Hndl, Element,  Varname, Data, &
9065                           locCount, Outcount, Status )
9066   ELSE
9067     Status = 0
9068 ENDIF
9069 ELSE
9070   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
9071 ENDIF
9072 RETURN
9073 END SUBROUTINE wrf_get_var_ti_logical_sca 
9076 !--- put_var_ti_logical
9078 SUBROUTINE wrf_put_var_ti_logical_arr ( DataHandle,Element,  Varname, Data, Count,  Status )
9079 !<DESCRIPTION>
9080 !<PRE>
9082 ! Write Count words of time independent
9083 ! attribute "Element" of variable "Varname"  
9084 ! to the open dataset described by DataHandle.  
9085 ! Attribute of type logical is
9086 ! copied from array Data.
9089 !</PRE>
9090 !</DESCRIPTION>
9091 USE module_state_description
9092 IMPLICIT NONE
9093 INTEGER ,       INTENT(IN)  :: DataHandle
9094 CHARACTER*(*) , INTENT(IN)  :: Element
9096 CHARACTER*(*) , INTENT(IN)  :: VarName 
9098  logical  :: Data (*)
9100 INTEGER ,       INTENT(IN)  :: Count
9102 INTEGER ,       INTENT(OUT) :: Status
9104 #include "wrf_status_codes.h"
9105 INTEGER                     :: len_of_str
9106 LOGICAL                     :: for_out
9107 INTEGER, EXTERNAL           :: use_package
9108 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
9109 INTEGER                     :: locCount
9111 INTEGER io_form , Hndl
9113 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_logical_arr " )
9117 locCount = Count
9119 Status = 0
9120 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
9121 IF ( Hndl .GT. -1 ) THEN
9122   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
9123     SELECT CASE ( use_package( io_form ) )
9124 #ifdef NETCDF
9125       CASE ( IO_NETCDF   )
9126         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9127            CALL ext_ncd_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9128                                  locCount,  Status ) 
9129         ENDIF
9130         IF ( .NOT. multi_files(io_form) ) THEN
9131           
9132           
9133           
9134           
9135           
9136           
9137           
9138           
9139           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9140         ENDIF
9141 #endif
9142 #ifdef NETCDFPAR
9143       CASE ( IO_NETCDFPAR   )
9144         CALL ext_ncdpar_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9145                               locCount,  Status ) 
9146 #endif
9148 #ifdef PNETCDF
9149       CASE ( IO_PNETCDF   )
9150         CALL ext_pnc_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9151                               locCount,  Status ) 
9152 #endif
9153 #ifdef PHDF5
9154       CASE ( IO_PHDF5   )
9155         CALL ext_phdf5_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9156                               locCount,  Status ) 
9157 #endif
9158 #ifdef ESMFIO
9159       CASE ( IO_ESMF )
9160         CALL ext_esmf_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9161                               locCount,  Status ) 
9162 #endif
9163 #ifdef XXX
9164       CASE ( IO_XXX   )
9165         CALL ext_xxx_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9166                               locCount,  Status ) 
9167 #endif
9168 #ifdef YYY
9169       CASE ( IO_YYY   )
9170         CALL ext_yyy_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9171                               locCount,  Status ) 
9172 #endif
9173 #ifdef GRIB1
9174       CASE ( IO_GRIB1   )
9175         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9176            CALL ext_gr1_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9177                                  locCount,  Status ) 
9178         ENDIF
9179         IF ( .NOT. multi_files(io_form) ) THEN
9180           
9181           
9182           
9183           
9184           
9185           
9186           
9187           
9188           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9189         ENDIF
9190 #endif
9191 #ifdef GRIB2
9192       CASE ( IO_GRIB2   )
9193         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9194            CALL ext_gr2_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9195                                  locCount,  Status ) 
9196         ENDIF
9197         IF ( .NOT. multi_files(io_form) ) THEN
9198           
9199           
9200           
9201           
9202           
9203           
9204           
9205           
9206           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9207         ENDIF
9208 #endif
9209 #ifdef INTIO
9210       CASE ( IO_INTIO   )
9211         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9212            CALL ext_int_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9213                                  locCount,  Status ) 
9214         ENDIF
9215         IF ( .NOT. multi_files(io_form) ) THEN
9216            
9217            
9218            
9219            
9220            
9221            
9222            
9223            
9224            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9225         ENDIF
9226 #endif
9227       CASE DEFAULT
9228     END SELECT
9229   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
9230     CALL wrf_quilt_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9231                           locCount,  Status )
9232   ELSE
9233     Status = 0
9234 ENDIF
9235 ELSE
9236   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
9237 ENDIF
9238 RETURN
9239 END SUBROUTINE wrf_put_var_ti_logical_arr 
9240 !--- put_var_ti_logical
9242 SUBROUTINE wrf_put_var_ti_logical_sca ( DataHandle,Element,  Varname, Data, Count,  Status )
9243 !<DESCRIPTION>
9244 !<PRE>
9246 ! Write time independent
9247 ! attribute "Element" of variable "Varname"  
9248 ! to the open dataset described by DataHandle.  
9249 ! Attribute of type logical is
9250 ! copied from scalar Data.
9253 !</PRE>
9254 !</DESCRIPTION>
9255 USE module_state_description
9256 IMPLICIT NONE
9257 INTEGER ,       INTENT(IN)  :: DataHandle
9258 CHARACTER*(*) , INTENT(IN)  :: Element
9260 CHARACTER*(*) , INTENT(IN)  :: VarName 
9262  logical  :: Data 
9264 INTEGER ,       INTENT(IN)  :: Count
9266 INTEGER ,       INTENT(OUT) :: Status
9268 #include "wrf_status_codes.h"
9269 INTEGER                     :: len_of_str
9270 LOGICAL                     :: for_out
9271 INTEGER, EXTERNAL           :: use_package
9272 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
9273 INTEGER                     :: locCount
9275 INTEGER io_form , Hndl
9277 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_logical_sca " )
9281 locCount = Count
9283 Status = 0
9284 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
9285 IF ( Hndl .GT. -1 ) THEN
9286   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
9287     SELECT CASE ( use_package( io_form ) )
9288 #ifdef NETCDF
9289       CASE ( IO_NETCDF   )
9290         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9291            CALL ext_ncd_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9292                                  locCount,  Status ) 
9293         ENDIF
9294         IF ( .NOT. multi_files(io_form) ) THEN
9295           
9296           
9297           
9298           
9299           
9300           
9301           
9302           
9303           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9304         ENDIF
9305 #endif
9306 #ifdef NETCDFPAR
9307       CASE ( IO_NETCDFPAR   )
9308         CALL ext_ncdpar_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9309                               locCount,  Status ) 
9310 #endif
9312 #ifdef PNETCDF
9313       CASE ( IO_PNETCDF   )
9314         CALL ext_pnc_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9315                               locCount,  Status ) 
9316 #endif
9317 #ifdef PHDF5
9318       CASE ( IO_PHDF5   )
9319         CALL ext_phdf5_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9320                               locCount,  Status ) 
9321 #endif
9322 #ifdef ESMFIO
9323       CASE ( IO_ESMF )
9324         CALL ext_esmf_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9325                               locCount,  Status ) 
9326 #endif
9327 #ifdef XXX
9328       CASE ( IO_XXX   )
9329         CALL ext_xxx_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9330                               locCount,  Status ) 
9331 #endif
9332 #ifdef YYY
9333       CASE ( IO_YYY   )
9334         CALL ext_yyy_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9335                               locCount,  Status ) 
9336 #endif
9337 #ifdef GRIB1
9338       CASE ( IO_GRIB1   )
9339         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9340            CALL ext_gr1_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9341                                  locCount,  Status ) 
9342         ENDIF
9343         IF ( .NOT. multi_files(io_form) ) THEN
9344           
9345           
9346           
9347           
9348           
9349           
9350           
9351           
9352           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9353         ENDIF
9354 #endif
9355 #ifdef GRIB2
9356       CASE ( IO_GRIB2   )
9357         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9358            CALL ext_gr2_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9359                                  locCount,  Status ) 
9360         ENDIF
9361         IF ( .NOT. multi_files(io_form) ) THEN
9362           
9363           
9364           
9365           
9366           
9367           
9368           
9369           
9370           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9371         ENDIF
9372 #endif
9373 #ifdef INTIO
9374       CASE ( IO_INTIO   )
9375         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9376            CALL ext_int_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9377                                  locCount,  Status ) 
9378         ENDIF
9379         IF ( .NOT. multi_files(io_form) ) THEN
9380            
9381            
9382            
9383            
9384            
9385            
9386            
9387            
9388            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9389         ENDIF
9390 #endif
9391       CASE DEFAULT
9392     END SELECT
9393   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
9394     CALL wrf_quilt_put_var_ti_logical ( Hndl, Element,  Varname, Data, &
9395                           locCount,  Status )
9396   ELSE
9397     Status = 0
9398 ENDIF
9399 ELSE
9400   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
9401 ENDIF
9402 RETURN
9403 END SUBROUTINE wrf_put_var_ti_logical_sca 
9406 !--- get_var_ti_char
9408 SUBROUTINE wrf_get_var_ti_char_arr ( DataHandle,Element,  Varname, Data,  Status )
9409 !<DESCRIPTION>
9410 !<PRE>
9412 ! Attempt to read time independent
9413 ! attribute "Element" of variable "Varname"  
9414 ! from the open dataset described by DataHandle.  
9415 ! Attribute of type char is
9416 ! stored in string Data.
9419 !</PRE>
9420 !</DESCRIPTION>
9421 USE module_state_description
9422 IMPLICIT NONE
9423 INTEGER ,       INTENT(IN)  :: DataHandle
9424 CHARACTER*(*) , INTENT(IN)  :: Element
9426 CHARACTER*(*) , INTENT(IN)  :: VarName 
9428  CHARACTER*(*)  :: Data
9432 INTEGER ,       INTENT(OUT) :: Status
9434 #include "wrf_status_codes.h"
9435 INTEGER                     :: len_of_str
9436 LOGICAL                     :: for_out
9437 INTEGER, EXTERNAL           :: use_package
9438 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
9439 INTEGER                     :: locCount
9441 INTEGER io_form , Hndl
9443 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_ti_char_arr " )
9449 Status = 0
9450 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
9451 IF ( Hndl .GT. -1 ) THEN
9452   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
9453     SELECT CASE ( use_package( io_form ) )
9454 #ifdef NETCDF
9455       CASE ( IO_NETCDF   )
9456         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9457            CALL ext_ncd_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9458                                   Status ) 
9459         ENDIF
9460         IF ( .NOT. multi_files(io_form) ) THEN
9461           
9462           
9463           
9464           
9465           
9466           
9467           len_of_str = LEN(Data)
9468           CALL wrf_dm_bcast_string( Data, len_of_str )
9469           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9470         ENDIF
9471 #endif
9472 #ifdef NETCDFPAR
9473       CASE ( IO_NETCDFPAR   )
9474         CALL ext_ncdpar_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9475                                Status ) 
9476 #endif
9478 #ifdef PNETCDF
9479       CASE ( IO_PNETCDF   )
9480         CALL ext_pnc_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9481                                Status ) 
9482 #endif
9483 #ifdef PHDF5
9484       CASE ( IO_PHDF5   )
9485         CALL ext_phdf5_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9486                                Status ) 
9487 #endif
9488 #ifdef ESMFIO
9489       CASE ( IO_ESMF )
9490         CALL ext_esmf_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9491                                Status ) 
9492 #endif
9493 #ifdef XXX
9494       CASE ( IO_XXX   )
9495         CALL ext_xxx_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9496                                Status ) 
9497 #endif
9498 #ifdef YYY
9499       CASE ( IO_YYY   )
9500         CALL ext_yyy_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9501                                Status ) 
9502 #endif
9503 #ifdef GRIB1
9504       CASE ( IO_GRIB1   )
9505         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9506            CALL ext_gr1_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9507                                   Status ) 
9508         ENDIF
9509         IF ( .NOT. multi_files(io_form) ) THEN
9510           
9511           
9512           
9513           
9514           
9515           
9516           len_of_str = LEN(Data)
9517           CALL wrf_dm_bcast_string( Data, len_of_str )
9518           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9519         ENDIF
9520 #endif
9521 #ifdef GRIB2
9522       CASE ( IO_GRIB2   )
9523         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9524            CALL ext_gr2_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9525                                   Status ) 
9526         ENDIF
9527         IF ( .NOT. multi_files(io_form) ) THEN
9528           
9529           
9530           
9531           
9532           
9533           
9534           len_of_str = LEN(Data)
9535           CALL wrf_dm_bcast_string( Data, len_of_str )
9536           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9537         ENDIF
9538 #endif
9539 #ifdef INTIO
9540       CASE ( IO_INTIO   )
9541         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9542            CALL ext_int_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9543                                   Status ) 
9544         ENDIF
9545         IF ( .NOT. multi_files(io_form) ) THEN
9546            
9547            
9548            
9549            
9550            
9551            
9552            len_of_str = LEN(Data)
9553            CALL wrf_dm_bcast_string( Data, len_of_str )
9554            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9555         ENDIF
9556 #endif
9557       CASE DEFAULT
9558     END SELECT
9559   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
9560     CALL wrf_quilt_get_var_ti_char ( Hndl, Element,  Varname, Data, &
9561                            Status )
9562   ELSE
9563     Status = 0
9564 ENDIF
9565 ELSE
9566   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
9567 ENDIF
9568 RETURN
9569 END SUBROUTINE wrf_get_var_ti_char_arr 
9572 !--- put_var_ti_char
9574 SUBROUTINE wrf_put_var_ti_char_arr ( DataHandle,Element,  Varname, Data,  Status )
9575 !<DESCRIPTION>
9576 !<PRE>
9578 ! Write time independent
9579 ! attribute "Element" of variable "Varname"  
9580 ! to the open dataset described by DataHandle.  
9581 ! Attribute of type char is
9582 ! copied from string Data.
9585 !</PRE>
9586 !</DESCRIPTION>
9587 USE module_state_description
9588 IMPLICIT NONE
9589 INTEGER ,       INTENT(IN)  :: DataHandle
9590 CHARACTER*(*) , INTENT(IN)  :: Element
9592 CHARACTER*(*) , INTENT(IN)  :: VarName 
9594  CHARACTER*(*)  :: Data
9598 INTEGER ,       INTENT(OUT) :: Status
9600 #include "wrf_status_codes.h"
9601 INTEGER                     :: len_of_str
9602 LOGICAL                     :: for_out
9603 INTEGER, EXTERNAL           :: use_package
9604 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
9605 INTEGER                     :: locCount
9607 INTEGER io_form , Hndl
9609 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_ti_char_arr " )
9615 Status = 0
9616 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
9617 IF ( Hndl .GT. -1 ) THEN
9618   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
9619     SELECT CASE ( use_package( io_form ) )
9620 #ifdef NETCDF
9621       CASE ( IO_NETCDF   )
9622         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9623            CALL ext_ncd_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9624                                   Status ) 
9625         ENDIF
9626         IF ( .NOT. multi_files(io_form) ) THEN
9627           
9628           
9629           
9630           
9631           
9632           
9633           
9634           
9635           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9636         ENDIF
9637 #endif
9638 #ifdef NETCDFPAR
9639       CASE ( IO_NETCDFPAR   )
9640         CALL ext_ncdpar_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9641                                Status ) 
9642 #endif
9644 #ifdef PNETCDF
9645       CASE ( IO_PNETCDF   )
9646         CALL ext_pnc_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9647                                Status ) 
9648 #endif
9649 #ifdef PHDF5
9650       CASE ( IO_PHDF5   )
9651         CALL ext_phdf5_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9652                                Status ) 
9653 #endif
9654 #ifdef ESMFIO
9655       CASE ( IO_ESMF )
9656         CALL ext_esmf_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9657                                Status ) 
9658 #endif
9659 #ifdef XXX
9660       CASE ( IO_XXX   )
9661         CALL ext_xxx_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9662                                Status ) 
9663 #endif
9664 #ifdef YYY
9665       CASE ( IO_YYY   )
9666         CALL ext_yyy_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9667                                Status ) 
9668 #endif
9669 #ifdef GRIB1
9670       CASE ( IO_GRIB1   )
9671         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9672            CALL ext_gr1_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9673                                   Status ) 
9674         ENDIF
9675         IF ( .NOT. multi_files(io_form) ) THEN
9676           
9677           
9678           
9679           
9680           
9681           
9682           
9683           
9684           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9685         ENDIF
9686 #endif
9687 #ifdef GRIB2
9688       CASE ( IO_GRIB2   )
9689         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9690            CALL ext_gr2_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9691                                   Status ) 
9692         ENDIF
9693         IF ( .NOT. multi_files(io_form) ) THEN
9694           
9695           
9696           
9697           
9698           
9699           
9700           
9701           
9702           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9703         ENDIF
9704 #endif
9705 #ifdef INTIO
9706       CASE ( IO_INTIO   )
9707         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9708            CALL ext_int_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9709                                   Status ) 
9710         ENDIF
9711         IF ( .NOT. multi_files(io_form) ) THEN
9712            
9713            
9714            
9715            
9716            
9717            
9718            
9719            
9720            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9721         ENDIF
9722 #endif
9723       CASE DEFAULT
9724     END SELECT
9725   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
9726     CALL wrf_quilt_put_var_ti_char ( Hndl, Element,  Varname, Data, &
9727                            Status )
9728   ELSE
9729     Status = 0
9730 ENDIF
9731 ELSE
9732   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
9733 ENDIF
9734 RETURN
9735 END SUBROUTINE wrf_put_var_ti_char_arr 
9739 !--- get_var_td_real
9741 SUBROUTINE wrf_get_var_td_real_arr ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
9742 !<DESCRIPTION>
9743 !<PRE>
9745 ! Attempt to read Count words of time dependent
9746 ! attribute "Element" of variable "Varname" valid at time DateStr 
9747 ! from the open dataset described by DataHandle.  
9748 ! Attribute of type real is
9749 ! stored in array Data.
9750 ! Actual number of words read is returned in OutCount.
9752 !</PRE>
9753 !</DESCRIPTION>
9754 USE module_state_description
9755 IMPLICIT NONE
9756 INTEGER ,       INTENT(IN)  :: DataHandle
9757 CHARACTER*(*) , INTENT(IN)  :: Element
9758 CHARACTER*(*) , INTENT(IN)  :: DateStr
9759 CHARACTER*(*) , INTENT(IN)  :: VarName 
9761  real  :: Data (*)
9763 INTEGER ,       INTENT(IN)  :: Count
9764 INTEGER ,       INTENT(OUT)  :: OutCount
9765 INTEGER ,       INTENT(OUT) :: Status
9767 #include "wrf_status_codes.h"
9768 INTEGER                     :: len_of_str
9769 LOGICAL                     :: for_out
9770 INTEGER, EXTERNAL           :: use_package
9771 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
9772 INTEGER                     :: locCount
9774 INTEGER io_form , Hndl
9776 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_real_arr " )
9779 locCount = Count
9782 Status = 0
9783 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
9784 IF ( Hndl .GT. -1 ) THEN
9785   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
9786     SELECT CASE ( use_package( io_form ) )
9787 #ifdef NETCDF
9788       CASE ( IO_NETCDF   )
9789         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9790 #  if ( RWORDSIZE == DWORDSIZE )
9791            CALL ext_ncd_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9792                                  locCount, Outcount, Status )
9793 #  else
9794            CALL ext_ncd_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9795                                  locCount, Outcount, Status )
9796 #  endif
9797         ENDIF
9798         IF ( .NOT. multi_files(io_form) ) THEN
9799           
9800           
9801           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9802           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
9803           
9804           
9805           
9806           
9807           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9808         ENDIF
9809 #endif
9810 #ifdef NETCDFPAR
9811       CASE ( IO_NETCDFPAR   )
9812 #  if ( RWORDSIZE == DWORDSIZE )
9813         CALL ext_ncdpar_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9814                               locCount, Outcount, Status )
9815 #  else
9816         CALL ext_ncdpar_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9817                               locCount, Outcount, Status )
9818 #  endif
9819 #endif
9821 #ifdef PNETCDF
9822       CASE ( IO_PNETCDF   )
9823 #  if ( RWORDSIZE == DWORDSIZE )
9824         CALL ext_pnc_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9825                               locCount, Outcount, Status )
9826 #  else
9827         CALL ext_pnc_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9828                               locCount, Outcount, Status )
9829 #  endif
9830 #endif
9831 #ifdef PHDF5
9832       CASE ( IO_PHDF5   )
9833 #  if ( RWORDSIZE == DWORDSIZE )
9834         CALL ext_phdf5_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9835                               locCount, Outcount, Status )
9836 #  else
9837         CALL ext_phdf5_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9838                               locCount, Outcount, Status )
9839 #  endif
9840 #endif
9841 #ifdef ESMFIO
9842       CASE ( IO_ESMF )
9843 #  if ( RWORDSIZE == DWORDSIZE )
9844         CALL ext_esmf_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9845                               locCount, Outcount, Status )
9846 #  else
9847         CALL ext_esmf_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9848                               locCount, Outcount, Status )
9849 #  endif
9850 #endif
9851 #ifdef XXX
9852       CASE ( IO_XXX   )
9853 #  if ( RWORDSIZE == DWORDSIZE )
9854         CALL ext_xxx_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9855                               locCount, Outcount, Status )
9856 #  else
9857         CALL ext_xxx_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9858                               locCount, Outcount, Status )
9859 #  endif
9860 #endif
9861 #ifdef YYY
9862       CASE ( IO_YYY   )
9863 #  if ( RWORDSIZE == DWORDSIZE )
9864         CALL ext_yyy_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9865                               locCount, Outcount, Status )
9866 #  else
9867         CALL ext_yyy_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9868                               locCount, Outcount, Status )
9869 #  endif
9870 #endif
9871 #ifdef GRIB1
9872       CASE ( IO_GRIB1   )
9873         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9874 #  if ( RWORDSIZE == DWORDSIZE )
9875            CALL ext_gr1_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9876                                  locCount, Outcount, Status )
9877 #  else
9878            CALL ext_gr1_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9879                                  locCount, Outcount, Status )
9880 #  endif
9881         ENDIF
9882         IF ( .NOT. multi_files(io_form) ) THEN
9883           
9884           
9885           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9886           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
9887           
9888           
9889           
9890           
9891           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9892         ENDIF
9893 #endif
9894 #ifdef GRIB2
9895       CASE ( IO_GRIB2   )
9896         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9897 #  if ( RWORDSIZE == DWORDSIZE )
9898            CALL ext_gr2_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9899                                  locCount, Outcount, Status )
9900 #  else
9901            CALL ext_gr2_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9902                                  locCount, Outcount, Status )
9903 #  endif
9904         ENDIF
9905         IF ( .NOT. multi_files(io_form) ) THEN
9906           
9907           
9908           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9909           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
9910           
9911           
9912           
9913           
9914           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9915         ENDIF
9916 #endif
9917 #ifdef INTIO
9918       CASE ( IO_INTIO   )
9919         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
9920 #  if ( RWORDSIZE == DWORDSIZE )
9921            CALL ext_int_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
9922                                  locCount, Outcount, Status )
9923 #  else
9924            CALL ext_int_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9925                                  locCount, Outcount, Status )
9926 #  endif
9927         ENDIF
9928         IF ( .NOT. multi_files(io_form) ) THEN
9929            
9930            
9931            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
9932            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
9933            
9934            
9935            
9936            
9937            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
9938         ENDIF
9939 #endif
9940       CASE DEFAULT
9941     END SELECT
9942   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
9943     CALL wrf_quilt_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
9944                           locCount, Outcount, Status )
9945   ELSE
9946     Status = 0
9947 ENDIF
9948 ELSE
9949   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
9950 ENDIF
9951 RETURN
9952 END SUBROUTINE wrf_get_var_td_real_arr 
9953 !--- get_var_td_real
9955 SUBROUTINE wrf_get_var_td_real_sca ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
9956 !<DESCRIPTION>
9957 !<PRE>
9959 ! Attempt to read time dependent
9960 ! attribute "Element" of variable "Varname" valid at time DateStr 
9961 ! from the open dataset described by DataHandle.  
9962 ! Attribute of type real is
9963 ! stored in scalar Data.
9966 !</PRE>
9967 !</DESCRIPTION>
9968 USE module_state_description
9969 IMPLICIT NONE
9970 INTEGER ,       INTENT(IN)  :: DataHandle
9971 CHARACTER*(*) , INTENT(IN)  :: Element
9972 CHARACTER*(*) , INTENT(IN)  :: DateStr
9973 CHARACTER*(*) , INTENT(IN)  :: VarName 
9975  real  :: Data 
9977 INTEGER ,       INTENT(IN)  :: Count
9978 INTEGER ,       INTENT(OUT)  :: OutCount
9979 INTEGER ,       INTENT(OUT) :: Status
9981 #include "wrf_status_codes.h"
9982 INTEGER                     :: len_of_str
9983 LOGICAL                     :: for_out
9984 INTEGER, EXTERNAL           :: use_package
9985 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
9986 INTEGER                     :: locCount
9988 INTEGER io_form , Hndl
9990 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_real_sca " )
9993 locCount = Count
9996 Status = 0
9997 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
9998 IF ( Hndl .GT. -1 ) THEN
9999   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
10000     SELECT CASE ( use_package( io_form ) )
10001 #ifdef NETCDF
10002       CASE ( IO_NETCDF   )
10003         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10004 #  if ( RWORDSIZE == DWORDSIZE )
10005            CALL ext_ncd_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10006                                  locCount, Outcount, Status )
10007 #  else
10008            CALL ext_ncd_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10009                                  locCount, Outcount, Status )
10010 #  endif
10011         ENDIF
10012         IF ( .NOT. multi_files(io_form) ) THEN
10013           
10014           
10015           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
10016           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
10017           
10018           
10019           
10020           
10021           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10022         ENDIF
10023 #endif
10024 #ifdef NETCDFPAR
10025       CASE ( IO_NETCDFPAR   )
10026 #  if ( RWORDSIZE == DWORDSIZE )
10027         CALL ext_ncdpar_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10028                               locCount, Outcount, Status )
10029 #  else
10030         CALL ext_ncdpar_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10031                               locCount, Outcount, Status )
10032 #  endif
10033 #endif
10035 #ifdef PNETCDF
10036       CASE ( IO_PNETCDF   )
10037 #  if ( RWORDSIZE == DWORDSIZE )
10038         CALL ext_pnc_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10039                               locCount, Outcount, Status )
10040 #  else
10041         CALL ext_pnc_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10042                               locCount, Outcount, Status )
10043 #  endif
10044 #endif
10045 #ifdef PHDF5
10046       CASE ( IO_PHDF5   )
10047 #  if ( RWORDSIZE == DWORDSIZE )
10048         CALL ext_phdf5_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10049                               locCount, Outcount, Status )
10050 #  else
10051         CALL ext_phdf5_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10052                               locCount, Outcount, Status )
10053 #  endif
10054 #endif
10055 #ifdef ESMFIO
10056       CASE ( IO_ESMF )
10057 #  if ( RWORDSIZE == DWORDSIZE )
10058         CALL ext_esmf_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10059                               locCount, Outcount, Status )
10060 #  else
10061         CALL ext_esmf_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10062                               locCount, Outcount, Status )
10063 #  endif
10064 #endif
10065 #ifdef XXX
10066       CASE ( IO_XXX   )
10067 #  if ( RWORDSIZE == DWORDSIZE )
10068         CALL ext_xxx_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10069                               locCount, Outcount, Status )
10070 #  else
10071         CALL ext_xxx_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10072                               locCount, Outcount, Status )
10073 #  endif
10074 #endif
10075 #ifdef YYY
10076       CASE ( IO_YYY   )
10077 #  if ( RWORDSIZE == DWORDSIZE )
10078         CALL ext_yyy_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10079                               locCount, Outcount, Status )
10080 #  else
10081         CALL ext_yyy_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10082                               locCount, Outcount, Status )
10083 #  endif
10084 #endif
10085 #ifdef GRIB1
10086       CASE ( IO_GRIB1   )
10087         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10088 #  if ( RWORDSIZE == DWORDSIZE )
10089            CALL ext_gr1_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10090                                  locCount, Outcount, Status )
10091 #  else
10092            CALL ext_gr1_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10093                                  locCount, Outcount, Status )
10094 #  endif
10095         ENDIF
10096         IF ( .NOT. multi_files(io_form) ) THEN
10097           
10098           
10099           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
10100           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
10101           
10102           
10103           
10104           
10105           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10106         ENDIF
10107 #endif
10108 #ifdef GRIB2
10109       CASE ( IO_GRIB2   )
10110         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10111 #  if ( RWORDSIZE == DWORDSIZE )
10112            CALL ext_gr2_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10113                                  locCount, Outcount, Status )
10114 #  else
10115            CALL ext_gr2_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10116                                  locCount, Outcount, Status )
10117 #  endif
10118         ENDIF
10119         IF ( .NOT. multi_files(io_form) ) THEN
10120           
10121           
10122           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
10123           CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
10124           
10125           
10126           
10127           
10128           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10129         ENDIF
10130 #endif
10131 #ifdef INTIO
10132       CASE ( IO_INTIO   )
10133         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10134 #  if ( RWORDSIZE == DWORDSIZE )
10135            CALL ext_int_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10136                                  locCount, Outcount, Status )
10137 #  else
10138            CALL ext_int_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10139                                  locCount, Outcount, Status )
10140 #  endif
10141         ENDIF
10142         IF ( .NOT. multi_files(io_form) ) THEN
10143            
10144            
10145            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
10146            CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )
10147            
10148            
10149            
10150            
10151            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10152         ENDIF
10153 #endif
10154       CASE DEFAULT
10155     END SELECT
10156   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
10157     CALL wrf_quilt_get_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10158                           locCount, Outcount, Status )
10159   ELSE
10160     Status = 0
10161 ENDIF
10162 ELSE
10163   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
10164 ENDIF
10165 RETURN
10166 END SUBROUTINE wrf_get_var_td_real_sca 
10169 !--- put_var_td_real
10171 SUBROUTINE wrf_put_var_td_real_arr ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
10172 !<DESCRIPTION>
10173 !<PRE>
10175 ! Write Count words of time dependent
10176 ! attribute "Element" of variable "Varname" valid at time DateStr 
10177 ! to the open dataset described by DataHandle.  
10178 ! Attribute of type real is
10179 ! copied from array Data.
10182 !</PRE>
10183 !</DESCRIPTION>
10184 USE module_state_description
10185 IMPLICIT NONE
10186 INTEGER ,       INTENT(IN)  :: DataHandle
10187 CHARACTER*(*) , INTENT(IN)  :: Element
10188 CHARACTER*(*) , INTENT(IN)  :: DateStr
10189 CHARACTER*(*) , INTENT(IN)  :: VarName 
10191  real  :: Data (*)
10193 INTEGER ,       INTENT(IN)  :: Count
10195 INTEGER ,       INTENT(OUT) :: Status
10197 #include "wrf_status_codes.h"
10198 INTEGER                     :: len_of_str
10199 LOGICAL                     :: for_out
10200 INTEGER, EXTERNAL           :: use_package
10201 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
10202 INTEGER                     :: locCount
10204 INTEGER io_form , Hndl
10206 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_real_arr " )
10209 locCount = Count
10212 Status = 0
10213 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
10214 IF ( Hndl .GT. -1 ) THEN
10215   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
10216     SELECT CASE ( use_package( io_form ) )
10217 #ifdef NETCDF
10218       CASE ( IO_NETCDF   )
10219         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10220 #  if ( RWORDSIZE == DWORDSIZE )
10221            CALL ext_ncd_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10222                                  locCount,  Status )
10223 #  else
10224            CALL ext_ncd_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10225                                  locCount,  Status )
10226 #  endif
10227         ENDIF
10228         IF ( .NOT. multi_files(io_form) ) THEN
10229           
10230           
10231           
10232           
10233           
10234           
10235           
10236           
10237           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10238         ENDIF
10239 #endif
10240 #ifdef NETCDFPAR
10241       CASE ( IO_NETCDFPAR   )
10242 #  if ( RWORDSIZE == DWORDSIZE )
10243         CALL ext_ncdpar_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10244                               locCount,  Status )
10245 #  else
10246         CALL ext_ncdpar_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10247                               locCount,  Status )
10248 #  endif
10249 #endif
10251 #ifdef PNETCDF
10252       CASE ( IO_PNETCDF   )
10253 #  if ( RWORDSIZE == DWORDSIZE )
10254         CALL ext_pnc_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10255                               locCount,  Status )
10256 #  else
10257         CALL ext_pnc_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10258                               locCount,  Status )
10259 #  endif
10260 #endif
10261 #ifdef PHDF5
10262       CASE ( IO_PHDF5   )
10263 #  if ( RWORDSIZE == DWORDSIZE )
10264         CALL ext_phdf5_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10265                               locCount,  Status )
10266 #  else
10267         CALL ext_phdf5_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10268                               locCount,  Status )
10269 #  endif
10270 #endif
10271 #ifdef ESMFIO
10272       CASE ( IO_ESMF )
10273 #  if ( RWORDSIZE == DWORDSIZE )
10274         CALL ext_esmf_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10275                               locCount,  Status )
10276 #  else
10277         CALL ext_esmf_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10278                               locCount,  Status )
10279 #  endif
10280 #endif
10281 #ifdef XXX
10282       CASE ( IO_XXX   )
10283 #  if ( RWORDSIZE == DWORDSIZE )
10284         CALL ext_xxx_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10285                               locCount,  Status )
10286 #  else
10287         CALL ext_xxx_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10288                               locCount,  Status )
10289 #  endif
10290 #endif
10291 #ifdef YYY
10292       CASE ( IO_YYY   )
10293 #  if ( RWORDSIZE == DWORDSIZE )
10294         CALL ext_yyy_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10295                               locCount,  Status )
10296 #  else
10297         CALL ext_yyy_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10298                               locCount,  Status )
10299 #  endif
10300 #endif
10301 #ifdef GRIB1
10302       CASE ( IO_GRIB1   )
10303         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10304 #  if ( RWORDSIZE == DWORDSIZE )
10305            CALL ext_gr1_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10306                                  locCount,  Status )
10307 #  else
10308            CALL ext_gr1_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10309                                  locCount,  Status )
10310 #  endif
10311         ENDIF
10312         IF ( .NOT. multi_files(io_form) ) THEN
10313           
10314           
10315           
10316           
10317           
10318           
10319           
10320           
10321           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10322         ENDIF
10323 #endif
10324 #ifdef GRIB2
10325       CASE ( IO_GRIB2   )
10326         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10327 #  if ( RWORDSIZE == DWORDSIZE )
10328            CALL ext_gr2_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10329                                  locCount,  Status )
10330 #  else
10331            CALL ext_gr2_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10332                                  locCount,  Status )
10333 #  endif
10334         ENDIF
10335         IF ( .NOT. multi_files(io_form) ) THEN
10336           
10337           
10338           
10339           
10340           
10341           
10342           
10343           
10344           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10345         ENDIF
10346 #endif
10347 #ifdef INTIO
10348       CASE ( IO_INTIO   )
10349         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10350 #  if ( RWORDSIZE == DWORDSIZE )
10351            CALL ext_int_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10352                                  locCount,  Status )
10353 #  else
10354            CALL ext_int_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10355                                  locCount,  Status )
10356 #  endif
10357         ENDIF
10358         IF ( .NOT. multi_files(io_form) ) THEN
10359            
10360            
10361            
10362            
10363            
10364            
10365            
10366            
10367            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10368         ENDIF
10369 #endif
10370       CASE DEFAULT
10371     END SELECT
10372   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
10373     CALL wrf_quilt_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10374                           locCount,  Status )
10375   ELSE
10376     Status = 0
10377 ENDIF
10378 ELSE
10379   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
10380 ENDIF
10381 RETURN
10382 END SUBROUTINE wrf_put_var_td_real_arr 
10383 !--- put_var_td_real
10385 SUBROUTINE wrf_put_var_td_real_sca ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
10386 !<DESCRIPTION>
10387 !<PRE>
10389 ! Write time dependent
10390 ! attribute "Element" of variable "Varname" valid at time DateStr 
10391 ! to the open dataset described by DataHandle.  
10392 ! Attribute of type real is
10393 ! copied from scalar Data.
10396 !</PRE>
10397 !</DESCRIPTION>
10398 USE module_state_description
10399 IMPLICIT NONE
10400 INTEGER ,       INTENT(IN)  :: DataHandle
10401 CHARACTER*(*) , INTENT(IN)  :: Element
10402 CHARACTER*(*) , INTENT(IN)  :: DateStr
10403 CHARACTER*(*) , INTENT(IN)  :: VarName 
10405  real  :: Data 
10407 INTEGER ,       INTENT(IN)  :: Count
10409 INTEGER ,       INTENT(OUT) :: Status
10411 #include "wrf_status_codes.h"
10412 INTEGER                     :: len_of_str
10413 LOGICAL                     :: for_out
10414 INTEGER, EXTERNAL           :: use_package
10415 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
10416 INTEGER                     :: locCount
10418 INTEGER io_form , Hndl
10420 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_real_sca " )
10423 locCount = Count
10426 Status = 0
10427 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
10428 IF ( Hndl .GT. -1 ) THEN
10429   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
10430     SELECT CASE ( use_package( io_form ) )
10431 #ifdef NETCDF
10432       CASE ( IO_NETCDF   )
10433         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10434 #  if ( RWORDSIZE == DWORDSIZE )
10435            CALL ext_ncd_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10436                                  locCount,  Status )
10437 #  else
10438            CALL ext_ncd_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10439                                  locCount,  Status )
10440 #  endif
10441         ENDIF
10442         IF ( .NOT. multi_files(io_form) ) THEN
10443           
10444           
10445           
10446           
10447           
10448           
10449           
10450           
10451           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10452         ENDIF
10453 #endif
10454 #ifdef NETCDFPAR
10455       CASE ( IO_NETCDFPAR   )
10456 #  if ( RWORDSIZE == DWORDSIZE )
10457         CALL ext_ncdpar_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10458                               locCount,  Status )
10459 #  else
10460         CALL ext_ncdpar_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10461                               locCount,  Status )
10462 #  endif
10463 #endif
10465 #ifdef PNETCDF
10466       CASE ( IO_PNETCDF   )
10467 #  if ( RWORDSIZE == DWORDSIZE )
10468         CALL ext_pnc_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10469                               locCount,  Status )
10470 #  else
10471         CALL ext_pnc_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10472                               locCount,  Status )
10473 #  endif
10474 #endif
10475 #ifdef PHDF5
10476       CASE ( IO_PHDF5   )
10477 #  if ( RWORDSIZE == DWORDSIZE )
10478         CALL ext_phdf5_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10479                               locCount,  Status )
10480 #  else
10481         CALL ext_phdf5_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10482                               locCount,  Status )
10483 #  endif
10484 #endif
10485 #ifdef ESMFIO
10486       CASE ( IO_ESMF )
10487 #  if ( RWORDSIZE == DWORDSIZE )
10488         CALL ext_esmf_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10489                               locCount,  Status )
10490 #  else
10491         CALL ext_esmf_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10492                               locCount,  Status )
10493 #  endif
10494 #endif
10495 #ifdef XXX
10496       CASE ( IO_XXX   )
10497 #  if ( RWORDSIZE == DWORDSIZE )
10498         CALL ext_xxx_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10499                               locCount,  Status )
10500 #  else
10501         CALL ext_xxx_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10502                               locCount,  Status )
10503 #  endif
10504 #endif
10505 #ifdef YYY
10506       CASE ( IO_YYY   )
10507 #  if ( RWORDSIZE == DWORDSIZE )
10508         CALL ext_yyy_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10509                               locCount,  Status )
10510 #  else
10511         CALL ext_yyy_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10512                               locCount,  Status )
10513 #  endif
10514 #endif
10515 #ifdef GRIB1
10516       CASE ( IO_GRIB1   )
10517         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10518 #  if ( RWORDSIZE == DWORDSIZE )
10519            CALL ext_gr1_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10520                                  locCount,  Status )
10521 #  else
10522            CALL ext_gr1_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10523                                  locCount,  Status )
10524 #  endif
10525         ENDIF
10526         IF ( .NOT. multi_files(io_form) ) THEN
10527           
10528           
10529           
10530           
10531           
10532           
10533           
10534           
10535           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10536         ENDIF
10537 #endif
10538 #ifdef GRIB2
10539       CASE ( IO_GRIB2   )
10540         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10541 #  if ( RWORDSIZE == DWORDSIZE )
10542            CALL ext_gr2_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10543                                  locCount,  Status )
10544 #  else
10545            CALL ext_gr2_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10546                                  locCount,  Status )
10547 #  endif
10548         ENDIF
10549         IF ( .NOT. multi_files(io_form) ) THEN
10550           
10551           
10552           
10553           
10554           
10555           
10556           
10557           
10558           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10559         ENDIF
10560 #endif
10561 #ifdef INTIO
10562       CASE ( IO_INTIO   )
10563         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10564 #  if ( RWORDSIZE == DWORDSIZE )
10565            CALL ext_int_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10566                                  locCount,  Status )
10567 #  else
10568            CALL ext_int_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10569                                  locCount,  Status )
10570 #  endif
10571         ENDIF
10572         IF ( .NOT. multi_files(io_form) ) THEN
10573            
10574            
10575            
10576            
10577            
10578            
10579            
10580            
10581            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10582         ENDIF
10583 #endif
10584       CASE DEFAULT
10585     END SELECT
10586   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
10587     CALL wrf_quilt_put_var_td_real ( Hndl, Element, DateStr, Varname, Data, &
10588                           locCount,  Status )
10589   ELSE
10590     Status = 0
10591 ENDIF
10592 ELSE
10593   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
10594 ENDIF
10595 RETURN
10596 END SUBROUTINE wrf_put_var_td_real_sca 
10599 !--- get_var_td_double
10601 SUBROUTINE wrf_get_var_td_double_arr ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
10602 !<DESCRIPTION>
10603 !<PRE>
10605 ! Attempt to read Count words of time dependent
10606 ! attribute "Element" of variable "Varname" valid at time DateStr 
10607 ! from the open dataset described by DataHandle.  
10608 ! Attribute of type double is
10609 ! stored in array Data.
10610 ! Actual number of words read is returned in OutCount.
10612 !</PRE>
10613 !</DESCRIPTION>
10614 USE module_state_description
10615 IMPLICIT NONE
10616 INTEGER ,       INTENT(IN)  :: DataHandle
10617 CHARACTER*(*) , INTENT(IN)  :: Element
10618 CHARACTER*(*) , INTENT(IN)  :: DateStr
10619 CHARACTER*(*) , INTENT(IN)  :: VarName 
10621  real*8  :: Data (*)
10623 INTEGER ,       INTENT(IN)  :: Count
10624 INTEGER ,       INTENT(OUT)  :: OutCount
10625 INTEGER ,       INTENT(OUT) :: Status
10627 #include "wrf_status_codes.h"
10628 INTEGER                     :: len_of_str
10629 LOGICAL                     :: for_out
10630 INTEGER, EXTERNAL           :: use_package
10631 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
10632 INTEGER                     :: locCount
10634 INTEGER io_form , Hndl
10636 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_double_arr " )
10642 Status = 0
10643 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
10644 IF ( Hndl .GT. -1 ) THEN
10645   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
10646     SELECT CASE ( use_package( io_form ) )
10647 #ifdef NETCDF
10648       CASE ( IO_NETCDF   )
10649         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10650            CALL ext_ncd_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10651                                  locCount, Outcount, Status ) 
10652         ENDIF
10653         IF ( .NOT. multi_files(io_form) ) THEN
10654           
10655           
10656           
10657           
10658           
10659           
10660           
10661           
10662           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10663         ENDIF
10664 #endif
10665 #ifdef NETCDFPAR
10666       CASE ( IO_NETCDFPAR   )
10667         CALL ext_ncdpar_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10668                               locCount, Outcount, Status ) 
10669 #endif
10671 #ifdef PNETCDF
10672       CASE ( IO_PNETCDF   )
10673         CALL ext_pnc_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10674                               locCount, Outcount, Status ) 
10675 #endif
10676 #ifdef PHDF5
10677       CASE ( IO_PHDF5   )
10678         CALL ext_phdf5_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10679                               locCount, Outcount, Status ) 
10680 #endif
10681 #ifdef ESMFIO
10682       CASE ( IO_ESMF )
10683         CALL ext_esmf_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10684                               locCount, Outcount, Status ) 
10685 #endif
10686 #ifdef XXX
10687       CASE ( IO_XXX   )
10688         CALL ext_xxx_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10689                               locCount, Outcount, Status ) 
10690 #endif
10691 #ifdef YYY
10692       CASE ( IO_YYY   )
10693         CALL ext_yyy_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10694                               locCount, Outcount, Status ) 
10695 #endif
10696 #ifdef GRIB1
10697       CASE ( IO_GRIB1   )
10698         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10699            CALL ext_gr1_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10700                                  locCount, Outcount, Status ) 
10701         ENDIF
10702         IF ( .NOT. multi_files(io_form) ) THEN
10703           
10704           
10705           
10706           
10707           
10708           
10709           
10710           
10711           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10712         ENDIF
10713 #endif
10714 #ifdef GRIB2
10715       CASE ( IO_GRIB2   )
10716         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10717            CALL ext_gr2_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10718                                  locCount, Outcount, Status ) 
10719         ENDIF
10720         IF ( .NOT. multi_files(io_form) ) THEN
10721           
10722           
10723           
10724           
10725           
10726           
10727           
10728           
10729           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10730         ENDIF
10731 #endif
10732 #ifdef INTIO
10733       CASE ( IO_INTIO   )
10734         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10735            CALL ext_int_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10736                                  locCount, Outcount, Status ) 
10737         ENDIF
10738         IF ( .NOT. multi_files(io_form) ) THEN
10739            
10740            
10741            
10742            
10743            
10744            
10745            
10746            
10747            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10748         ENDIF
10749 #endif
10750       CASE DEFAULT
10751     END SELECT
10752   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
10753     CALL wrf_quilt_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10754                           locCount, Outcount, Status )
10755   ELSE
10756     Status = 0
10757 ENDIF
10758 ELSE
10759   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
10760 ENDIF
10761 RETURN
10762 END SUBROUTINE wrf_get_var_td_double_arr 
10763 !--- get_var_td_double
10765 SUBROUTINE wrf_get_var_td_double_sca ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
10766 !<DESCRIPTION>
10767 !<PRE>
10769 ! Attempt to read time dependent
10770 ! attribute "Element" of variable "Varname" valid at time DateStr 
10771 ! from the open dataset described by DataHandle.  
10772 ! Attribute of type double is
10773 ! stored in scalar Data.
10776 !</PRE>
10777 !</DESCRIPTION>
10778 USE module_state_description
10779 IMPLICIT NONE
10780 INTEGER ,       INTENT(IN)  :: DataHandle
10781 CHARACTER*(*) , INTENT(IN)  :: Element
10782 CHARACTER*(*) , INTENT(IN)  :: DateStr
10783 CHARACTER*(*) , INTENT(IN)  :: VarName 
10785  real*8  :: Data 
10787 INTEGER ,       INTENT(IN)  :: Count
10788 INTEGER ,       INTENT(OUT)  :: OutCount
10789 INTEGER ,       INTENT(OUT) :: Status
10791 #include "wrf_status_codes.h"
10792 INTEGER                     :: len_of_str
10793 LOGICAL                     :: for_out
10794 INTEGER, EXTERNAL           :: use_package
10795 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
10796 INTEGER                     :: locCount
10798 INTEGER io_form , Hndl
10800 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_double_sca " )
10806 Status = 0
10807 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
10808 IF ( Hndl .GT. -1 ) THEN
10809   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
10810     SELECT CASE ( use_package( io_form ) )
10811 #ifdef NETCDF
10812       CASE ( IO_NETCDF   )
10813         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10814            CALL ext_ncd_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10815                                  locCount, Outcount, Status ) 
10816         ENDIF
10817         IF ( .NOT. multi_files(io_form) ) THEN
10818           
10819           
10820           
10821           
10822           
10823           
10824           
10825           
10826           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10827         ENDIF
10828 #endif
10829 #ifdef NETCDFPAR
10830       CASE ( IO_NETCDFPAR   )
10831         CALL ext_ncdpar_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10832                               locCount, Outcount, Status ) 
10833 #endif
10835 #ifdef PNETCDF
10836       CASE ( IO_PNETCDF   )
10837         CALL ext_pnc_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10838                               locCount, Outcount, Status ) 
10839 #endif
10840 #ifdef PHDF5
10841       CASE ( IO_PHDF5   )
10842         CALL ext_phdf5_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10843                               locCount, Outcount, Status ) 
10844 #endif
10845 #ifdef ESMFIO
10846       CASE ( IO_ESMF )
10847         CALL ext_esmf_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10848                               locCount, Outcount, Status ) 
10849 #endif
10850 #ifdef XXX
10851       CASE ( IO_XXX   )
10852         CALL ext_xxx_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10853                               locCount, Outcount, Status ) 
10854 #endif
10855 #ifdef YYY
10856       CASE ( IO_YYY   )
10857         CALL ext_yyy_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10858                               locCount, Outcount, Status ) 
10859 #endif
10860 #ifdef GRIB1
10861       CASE ( IO_GRIB1   )
10862         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10863            CALL ext_gr1_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10864                                  locCount, Outcount, Status ) 
10865         ENDIF
10866         IF ( .NOT. multi_files(io_form) ) THEN
10867           
10868           
10869           
10870           
10871           
10872           
10873           
10874           
10875           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10876         ENDIF
10877 #endif
10878 #ifdef GRIB2
10879       CASE ( IO_GRIB2   )
10880         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10881            CALL ext_gr2_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10882                                  locCount, Outcount, Status ) 
10883         ENDIF
10884         IF ( .NOT. multi_files(io_form) ) THEN
10885           
10886           
10887           
10888           
10889           
10890           
10891           
10892           
10893           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10894         ENDIF
10895 #endif
10896 #ifdef INTIO
10897       CASE ( IO_INTIO   )
10898         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10899            CALL ext_int_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10900                                  locCount, Outcount, Status ) 
10901         ENDIF
10902         IF ( .NOT. multi_files(io_form) ) THEN
10903            
10904            
10905            
10906            
10907            
10908            
10909            
10910            
10911            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10912         ENDIF
10913 #endif
10914       CASE DEFAULT
10915     END SELECT
10916   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
10917     CALL wrf_quilt_get_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10918                           locCount, Outcount, Status )
10919   ELSE
10920     Status = 0
10921 ENDIF
10922 ELSE
10923   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
10924 ENDIF
10925 RETURN
10926 END SUBROUTINE wrf_get_var_td_double_sca 
10929 !--- put_var_td_double
10931 SUBROUTINE wrf_put_var_td_double_arr ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
10932 !<DESCRIPTION>
10933 !<PRE>
10935 ! Write Count words of time dependent
10936 ! attribute "Element" of variable "Varname" valid at time DateStr 
10937 ! to the open dataset described by DataHandle.  
10938 ! Attribute of type double is
10939 ! copied from array Data.
10942 !</PRE>
10943 !</DESCRIPTION>
10944 USE module_state_description
10945 IMPLICIT NONE
10946 INTEGER ,       INTENT(IN)  :: DataHandle
10947 CHARACTER*(*) , INTENT(IN)  :: Element
10948 CHARACTER*(*) , INTENT(IN)  :: DateStr
10949 CHARACTER*(*) , INTENT(IN)  :: VarName 
10951  real*8  :: Data (*)
10953 INTEGER ,       INTENT(IN)  :: Count
10955 INTEGER ,       INTENT(OUT) :: Status
10957 #include "wrf_status_codes.h"
10958 INTEGER                     :: len_of_str
10959 LOGICAL                     :: for_out
10960 INTEGER, EXTERNAL           :: use_package
10961 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
10962 INTEGER                     :: locCount
10964 INTEGER io_form , Hndl
10966 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_double_arr " )
10972 Status = 0
10973 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
10974 IF ( Hndl .GT. -1 ) THEN
10975   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
10976     SELECT CASE ( use_package( io_form ) )
10977 #ifdef NETCDF
10978       CASE ( IO_NETCDF   )
10979         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
10980            CALL ext_ncd_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10981                                  locCount,  Status ) 
10982         ENDIF
10983         IF ( .NOT. multi_files(io_form) ) THEN
10984           
10985           
10986           
10987           
10988           
10989           
10990           
10991           
10992           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
10993         ENDIF
10994 #endif
10995 #ifdef NETCDFPAR
10996       CASE ( IO_NETCDFPAR   )
10997         CALL ext_ncdpar_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
10998                               locCount,  Status ) 
10999 #endif
11001 #ifdef PNETCDF
11002       CASE ( IO_PNETCDF   )
11003         CALL ext_pnc_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11004                               locCount,  Status ) 
11005 #endif
11006 #ifdef PHDF5
11007       CASE ( IO_PHDF5   )
11008         CALL ext_phdf5_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11009                               locCount,  Status ) 
11010 #endif
11011 #ifdef ESMFIO
11012       CASE ( IO_ESMF )
11013         CALL ext_esmf_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11014                               locCount,  Status ) 
11015 #endif
11016 #ifdef XXX
11017       CASE ( IO_XXX   )
11018         CALL ext_xxx_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11019                               locCount,  Status ) 
11020 #endif
11021 #ifdef YYY
11022       CASE ( IO_YYY   )
11023         CALL ext_yyy_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11024                               locCount,  Status ) 
11025 #endif
11026 #ifdef GRIB1
11027       CASE ( IO_GRIB1   )
11028         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11029            CALL ext_gr1_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11030                                  locCount,  Status ) 
11031         ENDIF
11032         IF ( .NOT. multi_files(io_form) ) THEN
11033           
11034           
11035           
11036           
11037           
11038           
11039           
11040           
11041           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11042         ENDIF
11043 #endif
11044 #ifdef GRIB2
11045       CASE ( IO_GRIB2   )
11046         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11047            CALL ext_gr2_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11048                                  locCount,  Status ) 
11049         ENDIF
11050         IF ( .NOT. multi_files(io_form) ) THEN
11051           
11052           
11053           
11054           
11055           
11056           
11057           
11058           
11059           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11060         ENDIF
11061 #endif
11062 #ifdef INTIO
11063       CASE ( IO_INTIO   )
11064         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11065            CALL ext_int_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11066                                  locCount,  Status ) 
11067         ENDIF
11068         IF ( .NOT. multi_files(io_form) ) THEN
11069            
11070            
11071            
11072            
11073            
11074            
11075            
11076            
11077            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11078         ENDIF
11079 #endif
11080       CASE DEFAULT
11081     END SELECT
11082   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
11083     CALL wrf_quilt_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11084                           locCount,  Status )
11085   ELSE
11086     Status = 0
11087 ENDIF
11088 ELSE
11089   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
11090 ENDIF
11091 RETURN
11092 END SUBROUTINE wrf_put_var_td_double_arr 
11093 !--- put_var_td_double
11095 SUBROUTINE wrf_put_var_td_double_sca ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
11096 !<DESCRIPTION>
11097 !<PRE>
11099 ! Write time dependent
11100 ! attribute "Element" of variable "Varname" valid at time DateStr 
11101 ! to the open dataset described by DataHandle.  
11102 ! Attribute of type double is
11103 ! copied from scalar Data.
11106 !</PRE>
11107 !</DESCRIPTION>
11108 USE module_state_description
11109 IMPLICIT NONE
11110 INTEGER ,       INTENT(IN)  :: DataHandle
11111 CHARACTER*(*) , INTENT(IN)  :: Element
11112 CHARACTER*(*) , INTENT(IN)  :: DateStr
11113 CHARACTER*(*) , INTENT(IN)  :: VarName 
11115  real*8  :: Data 
11117 INTEGER ,       INTENT(IN)  :: Count
11119 INTEGER ,       INTENT(OUT) :: Status
11121 #include "wrf_status_codes.h"
11122 INTEGER                     :: len_of_str
11123 LOGICAL                     :: for_out
11124 INTEGER, EXTERNAL           :: use_package
11125 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
11126 INTEGER                     :: locCount
11128 INTEGER io_form , Hndl
11130 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_double_sca " )
11136 Status = 0
11137 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
11138 IF ( Hndl .GT. -1 ) THEN
11139   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
11140     SELECT CASE ( use_package( io_form ) )
11141 #ifdef NETCDF
11142       CASE ( IO_NETCDF   )
11143         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11144            CALL ext_ncd_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11145                                  locCount,  Status ) 
11146         ENDIF
11147         IF ( .NOT. multi_files(io_form) ) THEN
11148           
11149           
11150           
11151           
11152           
11153           
11154           
11155           
11156           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11157         ENDIF
11158 #endif
11159 #ifdef NETCDFPAR
11160       CASE ( IO_NETCDFPAR   )
11161         CALL ext_ncdpar_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11162                               locCount,  Status ) 
11163 #endif
11165 #ifdef PNETCDF
11166       CASE ( IO_PNETCDF   )
11167         CALL ext_pnc_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11168                               locCount,  Status ) 
11169 #endif
11170 #ifdef PHDF5
11171       CASE ( IO_PHDF5   )
11172         CALL ext_phdf5_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11173                               locCount,  Status ) 
11174 #endif
11175 #ifdef ESMFIO
11176       CASE ( IO_ESMF )
11177         CALL ext_esmf_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11178                               locCount,  Status ) 
11179 #endif
11180 #ifdef XXX
11181       CASE ( IO_XXX   )
11182         CALL ext_xxx_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11183                               locCount,  Status ) 
11184 #endif
11185 #ifdef YYY
11186       CASE ( IO_YYY   )
11187         CALL ext_yyy_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11188                               locCount,  Status ) 
11189 #endif
11190 #ifdef GRIB1
11191       CASE ( IO_GRIB1   )
11192         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11193            CALL ext_gr1_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11194                                  locCount,  Status ) 
11195         ENDIF
11196         IF ( .NOT. multi_files(io_form) ) THEN
11197           
11198           
11199           
11200           
11201           
11202           
11203           
11204           
11205           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11206         ENDIF
11207 #endif
11208 #ifdef GRIB2
11209       CASE ( IO_GRIB2   )
11210         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11211            CALL ext_gr2_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11212                                  locCount,  Status ) 
11213         ENDIF
11214         IF ( .NOT. multi_files(io_form) ) THEN
11215           
11216           
11217           
11218           
11219           
11220           
11221           
11222           
11223           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11224         ENDIF
11225 #endif
11226 #ifdef INTIO
11227       CASE ( IO_INTIO   )
11228         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11229            CALL ext_int_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11230                                  locCount,  Status ) 
11231         ENDIF
11232         IF ( .NOT. multi_files(io_form) ) THEN
11233            
11234            
11235            
11236            
11237            
11238            
11239            
11240            
11241            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11242         ENDIF
11243 #endif
11244       CASE DEFAULT
11245     END SELECT
11246   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
11247     CALL wrf_quilt_put_var_td_double ( Hndl, Element, DateStr, Varname, Data, &
11248                           locCount,  Status )
11249   ELSE
11250     Status = 0
11251 ENDIF
11252 ELSE
11253   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
11254 ENDIF
11255 RETURN
11256 END SUBROUTINE wrf_put_var_td_double_sca 
11259 !--- get_var_td_integer
11261 SUBROUTINE wrf_get_var_td_integer_arr ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
11262 !<DESCRIPTION>
11263 !<PRE>
11265 ! Attempt to read Count words of time dependent
11266 ! attribute "Element" of variable "Varname" valid at time DateStr 
11267 ! from the open dataset described by DataHandle.  
11268 ! Attribute of type integer is
11269 ! stored in array Data.
11270 ! Actual number of words read is returned in OutCount.
11272 !</PRE>
11273 !</DESCRIPTION>
11274 USE module_state_description
11275 IMPLICIT NONE
11276 INTEGER ,       INTENT(IN)  :: DataHandle
11277 CHARACTER*(*) , INTENT(IN)  :: Element
11278 CHARACTER*(*) , INTENT(IN)  :: DateStr
11279 CHARACTER*(*) , INTENT(IN)  :: VarName 
11281  integer  :: Data (*)
11283 INTEGER ,       INTENT(IN)  :: Count
11284 INTEGER ,       INTENT(OUT)  :: OutCount
11285 INTEGER ,       INTENT(OUT) :: Status
11287 #include "wrf_status_codes.h"
11288 INTEGER                     :: len_of_str
11289 LOGICAL                     :: for_out
11290 INTEGER, EXTERNAL           :: use_package
11291 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
11292 INTEGER                     :: locCount
11294 INTEGER io_form , Hndl
11296 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_integer_arr " )
11298 locCount = Count
11302 Status = 0
11303 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
11304 IF ( Hndl .GT. -1 ) THEN
11305   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
11306     SELECT CASE ( use_package( io_form ) )
11307 #ifdef NETCDF
11308       CASE ( IO_NETCDF   )
11309         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11310            CALL ext_ncd_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11311                                  locCount, Outcount, Status ) 
11312         ENDIF
11313         IF ( .NOT. multi_files(io_form) ) THEN
11314           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11315           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11316           
11317           
11318           
11319           
11320           
11321           
11322           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11323         ENDIF
11324 #endif
11325 #ifdef NETCDFPAR
11326       CASE ( IO_NETCDFPAR   )
11327         CALL ext_ncdpar_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11328                               locCount, Outcount, Status ) 
11329 #endif
11331 #ifdef PNETCDF
11332       CASE ( IO_PNETCDF   )
11333         CALL ext_pnc_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11334                               locCount, Outcount, Status ) 
11335 #endif
11336 #ifdef PHDF5
11337       CASE ( IO_PHDF5   )
11338         CALL ext_phdf5_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11339                               locCount, Outcount, Status ) 
11340 #endif
11341 #ifdef ESMFIO
11342       CASE ( IO_ESMF )
11343         CALL ext_esmf_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11344                               locCount, Outcount, Status ) 
11345 #endif
11346 #ifdef XXX
11347       CASE ( IO_XXX   )
11348         CALL ext_xxx_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11349                               locCount, Outcount, Status ) 
11350 #endif
11351 #ifdef YYY
11352       CASE ( IO_YYY   )
11353         CALL ext_yyy_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11354                               locCount, Outcount, Status ) 
11355 #endif
11356 #ifdef GRIB1
11357       CASE ( IO_GRIB1   )
11358         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11359            CALL ext_gr1_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11360                                  locCount, Outcount, Status ) 
11361         ENDIF
11362         IF ( .NOT. multi_files(io_form) ) THEN
11363           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11364           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11365           
11366           
11367           
11368           
11369           
11370           
11371           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11372         ENDIF
11373 #endif
11374 #ifdef GRIB2
11375       CASE ( IO_GRIB2   )
11376         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11377            CALL ext_gr2_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11378                                  locCount, Outcount, Status ) 
11379         ENDIF
11380         IF ( .NOT. multi_files(io_form) ) THEN
11381           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11382           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11383           
11384           
11385           
11386           
11387           
11388           
11389           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11390         ENDIF
11391 #endif
11392 #ifdef INTIO
11393       CASE ( IO_INTIO   )
11394         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11395            CALL ext_int_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11396                                  locCount, Outcount, Status ) 
11397         ENDIF
11398         IF ( .NOT. multi_files(io_form) ) THEN
11399            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11400            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11401            
11402            
11403            
11404            
11405            
11406            
11407            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11408         ENDIF
11409 #endif
11410       CASE DEFAULT
11411     END SELECT
11412   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
11413     CALL wrf_quilt_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11414                           locCount, Outcount, Status )
11415   ELSE
11416     Status = 0
11417 ENDIF
11418 ELSE
11419   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
11420 ENDIF
11421 RETURN
11422 END SUBROUTINE wrf_get_var_td_integer_arr 
11423 !--- get_var_td_integer
11425 SUBROUTINE wrf_get_var_td_integer_sca ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
11426 !<DESCRIPTION>
11427 !<PRE>
11429 ! Attempt to read time dependent
11430 ! attribute "Element" of variable "Varname" valid at time DateStr 
11431 ! from the open dataset described by DataHandle.  
11432 ! Attribute of type integer is
11433 ! stored in scalar Data.
11436 !</PRE>
11437 !</DESCRIPTION>
11438 USE module_state_description
11439 IMPLICIT NONE
11440 INTEGER ,       INTENT(IN)  :: DataHandle
11441 CHARACTER*(*) , INTENT(IN)  :: Element
11442 CHARACTER*(*) , INTENT(IN)  :: DateStr
11443 CHARACTER*(*) , INTENT(IN)  :: VarName 
11445  integer  :: Data 
11447 INTEGER ,       INTENT(IN)  :: Count
11448 INTEGER ,       INTENT(OUT)  :: OutCount
11449 INTEGER ,       INTENT(OUT) :: Status
11451 #include "wrf_status_codes.h"
11452 INTEGER                     :: len_of_str
11453 LOGICAL                     :: for_out
11454 INTEGER, EXTERNAL           :: use_package
11455 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
11456 INTEGER                     :: locCount
11458 INTEGER io_form , Hndl
11460 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_integer_sca " )
11462 locCount = Count
11466 Status = 0
11467 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
11468 IF ( Hndl .GT. -1 ) THEN
11469   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
11470     SELECT CASE ( use_package( io_form ) )
11471 #ifdef NETCDF
11472       CASE ( IO_NETCDF   )
11473         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11474            CALL ext_ncd_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11475                                  locCount, Outcount, Status ) 
11476         ENDIF
11477         IF ( .NOT. multi_files(io_form) ) THEN
11478           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11479           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11480           
11481           
11482           
11483           
11484           
11485           
11486           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11487         ENDIF
11488 #endif
11489 #ifdef NETCDFPAR
11490       CASE ( IO_NETCDFPAR   )
11491         CALL ext_ncdpar_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11492                               locCount, Outcount, Status ) 
11493 #endif
11495 #ifdef PNETCDF
11496       CASE ( IO_PNETCDF   )
11497         CALL ext_pnc_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11498                               locCount, Outcount, Status ) 
11499 #endif
11500 #ifdef PHDF5
11501       CASE ( IO_PHDF5   )
11502         CALL ext_phdf5_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11503                               locCount, Outcount, Status ) 
11504 #endif
11505 #ifdef ESMFIO
11506       CASE ( IO_ESMF )
11507         CALL ext_esmf_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11508                               locCount, Outcount, Status ) 
11509 #endif
11510 #ifdef XXX
11511       CASE ( IO_XXX   )
11512         CALL ext_xxx_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11513                               locCount, Outcount, Status ) 
11514 #endif
11515 #ifdef YYY
11516       CASE ( IO_YYY   )
11517         CALL ext_yyy_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11518                               locCount, Outcount, Status ) 
11519 #endif
11520 #ifdef GRIB1
11521       CASE ( IO_GRIB1   )
11522         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11523            CALL ext_gr1_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11524                                  locCount, Outcount, Status ) 
11525         ENDIF
11526         IF ( .NOT. multi_files(io_form) ) THEN
11527           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11528           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11529           
11530           
11531           
11532           
11533           
11534           
11535           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11536         ENDIF
11537 #endif
11538 #ifdef GRIB2
11539       CASE ( IO_GRIB2   )
11540         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11541            CALL ext_gr2_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11542                                  locCount, Outcount, Status ) 
11543         ENDIF
11544         IF ( .NOT. multi_files(io_form) ) THEN
11545           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11546           CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11547           
11548           
11549           
11550           
11551           
11552           
11553           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11554         ENDIF
11555 #endif
11556 #ifdef INTIO
11557       CASE ( IO_INTIO   )
11558         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11559            CALL ext_int_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11560                                  locCount, Outcount, Status ) 
11561         ENDIF
11562         IF ( .NOT. multi_files(io_form) ) THEN
11563            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11564            CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )
11565            
11566            
11567            
11568            
11569            
11570            
11571            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11572         ENDIF
11573 #endif
11574       CASE DEFAULT
11575     END SELECT
11576   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
11577     CALL wrf_quilt_get_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11578                           locCount, Outcount, Status )
11579   ELSE
11580     Status = 0
11581 ENDIF
11582 ELSE
11583   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
11584 ENDIF
11585 RETURN
11586 END SUBROUTINE wrf_get_var_td_integer_sca 
11589 !--- put_var_td_integer
11591 SUBROUTINE wrf_put_var_td_integer_arr ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
11592 !<DESCRIPTION>
11593 !<PRE>
11595 ! Write Count words of time dependent
11596 ! attribute "Element" of variable "Varname" valid at time DateStr 
11597 ! to the open dataset described by DataHandle.  
11598 ! Attribute of type integer is
11599 ! copied from array Data.
11602 !</PRE>
11603 !</DESCRIPTION>
11604 USE module_state_description
11605 IMPLICIT NONE
11606 INTEGER ,       INTENT(IN)  :: DataHandle
11607 CHARACTER*(*) , INTENT(IN)  :: Element
11608 CHARACTER*(*) , INTENT(IN)  :: DateStr
11609 CHARACTER*(*) , INTENT(IN)  :: VarName 
11611  integer  :: Data (*)
11613 INTEGER ,       INTENT(IN)  :: Count
11615 INTEGER ,       INTENT(OUT) :: Status
11617 #include "wrf_status_codes.h"
11618 INTEGER                     :: len_of_str
11619 LOGICAL                     :: for_out
11620 INTEGER, EXTERNAL           :: use_package
11621 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
11622 INTEGER                     :: locCount
11624 INTEGER io_form , Hndl
11626 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_integer_arr " )
11628 locCount = Count
11632 Status = 0
11633 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
11634 IF ( Hndl .GT. -1 ) THEN
11635   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
11636     SELECT CASE ( use_package( io_form ) )
11637 #ifdef NETCDF
11638       CASE ( IO_NETCDF   )
11639         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11640            CALL ext_ncd_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11641                                  locCount,  Status ) 
11642         ENDIF
11643         IF ( .NOT. multi_files(io_form) ) THEN
11644           
11645           
11646           
11647           
11648           
11649           
11650           
11651           
11652           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11653         ENDIF
11654 #endif
11655 #ifdef NETCDFPAR
11656       CASE ( IO_NETCDFPAR   )
11657         CALL ext_ncdpar_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11658                               locCount,  Status ) 
11659 #endif
11661 #ifdef PNETCDF
11662       CASE ( IO_PNETCDF   )
11663         CALL ext_pnc_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11664                               locCount,  Status ) 
11665 #endif
11666 #ifdef PHDF5
11667       CASE ( IO_PHDF5   )
11668         CALL ext_phdf5_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11669                               locCount,  Status ) 
11670 #endif
11671 #ifdef ESMFIO
11672       CASE ( IO_ESMF )
11673         CALL ext_esmf_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11674                               locCount,  Status ) 
11675 #endif
11676 #ifdef XXX
11677       CASE ( IO_XXX   )
11678         CALL ext_xxx_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11679                               locCount,  Status ) 
11680 #endif
11681 #ifdef YYY
11682       CASE ( IO_YYY   )
11683         CALL ext_yyy_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11684                               locCount,  Status ) 
11685 #endif
11686 #ifdef GRIB1
11687       CASE ( IO_GRIB1   )
11688         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11689            CALL ext_gr1_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11690                                  locCount,  Status ) 
11691         ENDIF
11692         IF ( .NOT. multi_files(io_form) ) THEN
11693           
11694           
11695           
11696           
11697           
11698           
11699           
11700           
11701           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11702         ENDIF
11703 #endif
11704 #ifdef GRIB2
11705       CASE ( IO_GRIB2   )
11706         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11707            CALL ext_gr2_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11708                                  locCount,  Status ) 
11709         ENDIF
11710         IF ( .NOT. multi_files(io_form) ) THEN
11711           
11712           
11713           
11714           
11715           
11716           
11717           
11718           
11719           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11720         ENDIF
11721 #endif
11722 #ifdef INTIO
11723       CASE ( IO_INTIO   )
11724         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11725            CALL ext_int_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11726                                  locCount,  Status ) 
11727         ENDIF
11728         IF ( .NOT. multi_files(io_form) ) THEN
11729            
11730            
11731            
11732            
11733            
11734            
11735            
11736            
11737            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11738         ENDIF
11739 #endif
11740       CASE DEFAULT
11741     END SELECT
11742   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
11743     CALL wrf_quilt_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11744                           locCount,  Status )
11745   ELSE
11746     Status = 0
11747 ENDIF
11748 ELSE
11749   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
11750 ENDIF
11751 RETURN
11752 END SUBROUTINE wrf_put_var_td_integer_arr 
11753 !--- put_var_td_integer
11755 SUBROUTINE wrf_put_var_td_integer_sca ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
11756 !<DESCRIPTION>
11757 !<PRE>
11759 ! Write time dependent
11760 ! attribute "Element" of variable "Varname" valid at time DateStr 
11761 ! to the open dataset described by DataHandle.  
11762 ! Attribute of type integer is
11763 ! copied from scalar Data.
11766 !</PRE>
11767 !</DESCRIPTION>
11768 USE module_state_description
11769 IMPLICIT NONE
11770 INTEGER ,       INTENT(IN)  :: DataHandle
11771 CHARACTER*(*) , INTENT(IN)  :: Element
11772 CHARACTER*(*) , INTENT(IN)  :: DateStr
11773 CHARACTER*(*) , INTENT(IN)  :: VarName 
11775  integer  :: Data 
11777 INTEGER ,       INTENT(IN)  :: Count
11779 INTEGER ,       INTENT(OUT) :: Status
11781 #include "wrf_status_codes.h"
11782 INTEGER                     :: len_of_str
11783 LOGICAL                     :: for_out
11784 INTEGER, EXTERNAL           :: use_package
11785 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
11786 INTEGER                     :: locCount
11788 INTEGER io_form , Hndl
11790 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_integer_sca " )
11792 locCount = Count
11796 Status = 0
11797 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
11798 IF ( Hndl .GT. -1 ) THEN
11799   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
11800     SELECT CASE ( use_package( io_form ) )
11801 #ifdef NETCDF
11802       CASE ( IO_NETCDF   )
11803         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11804            CALL ext_ncd_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11805                                  locCount,  Status ) 
11806         ENDIF
11807         IF ( .NOT. multi_files(io_form) ) THEN
11808           
11809           
11810           
11811           
11812           
11813           
11814           
11815           
11816           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11817         ENDIF
11818 #endif
11819 #ifdef NETCDFPAR
11820       CASE ( IO_NETCDFPAR   )
11821         CALL ext_ncdpar_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11822                               locCount,  Status ) 
11823 #endif
11825 #ifdef PNETCDF
11826       CASE ( IO_PNETCDF   )
11827         CALL ext_pnc_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11828                               locCount,  Status ) 
11829 #endif
11830 #ifdef PHDF5
11831       CASE ( IO_PHDF5   )
11832         CALL ext_phdf5_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11833                               locCount,  Status ) 
11834 #endif
11835 #ifdef ESMFIO
11836       CASE ( IO_ESMF )
11837         CALL ext_esmf_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11838                               locCount,  Status ) 
11839 #endif
11840 #ifdef XXX
11841       CASE ( IO_XXX   )
11842         CALL ext_xxx_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11843                               locCount,  Status ) 
11844 #endif
11845 #ifdef YYY
11846       CASE ( IO_YYY   )
11847         CALL ext_yyy_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11848                               locCount,  Status ) 
11849 #endif
11850 #ifdef GRIB1
11851       CASE ( IO_GRIB1   )
11852         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11853            CALL ext_gr1_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11854                                  locCount,  Status ) 
11855         ENDIF
11856         IF ( .NOT. multi_files(io_form) ) THEN
11857           
11858           
11859           
11860           
11861           
11862           
11863           
11864           
11865           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11866         ENDIF
11867 #endif
11868 #ifdef GRIB2
11869       CASE ( IO_GRIB2   )
11870         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11871            CALL ext_gr2_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11872                                  locCount,  Status ) 
11873         ENDIF
11874         IF ( .NOT. multi_files(io_form) ) THEN
11875           
11876           
11877           
11878           
11879           
11880           
11881           
11882           
11883           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11884         ENDIF
11885 #endif
11886 #ifdef INTIO
11887       CASE ( IO_INTIO   )
11888         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11889            CALL ext_int_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11890                                  locCount,  Status ) 
11891         ENDIF
11892         IF ( .NOT. multi_files(io_form) ) THEN
11893            
11894            
11895            
11896            
11897            
11898            
11899            
11900            
11901            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11902         ENDIF
11903 #endif
11904       CASE DEFAULT
11905     END SELECT
11906   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
11907     CALL wrf_quilt_put_var_td_integer ( Hndl, Element, DateStr, Varname, Data, &
11908                           locCount,  Status )
11909   ELSE
11910     Status = 0
11911 ENDIF
11912 ELSE
11913   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
11914 ENDIF
11915 RETURN
11916 END SUBROUTINE wrf_put_var_td_integer_sca 
11919 !--- get_var_td_logical
11921 SUBROUTINE wrf_get_var_td_logical_arr ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
11922 !<DESCRIPTION>
11923 !<PRE>
11925 ! Attempt to read Count words of time dependent
11926 ! attribute "Element" of variable "Varname" valid at time DateStr 
11927 ! from the open dataset described by DataHandle.  
11928 ! Attribute of type logical is
11929 ! stored in array Data.
11930 ! Actual number of words read is returned in OutCount.
11932 !</PRE>
11933 !</DESCRIPTION>
11934 USE module_state_description
11935 IMPLICIT NONE
11936 INTEGER ,       INTENT(IN)  :: DataHandle
11937 CHARACTER*(*) , INTENT(IN)  :: Element
11938 CHARACTER*(*) , INTENT(IN)  :: DateStr
11939 CHARACTER*(*) , INTENT(IN)  :: VarName 
11941  logical  :: Data (*)
11943 INTEGER ,       INTENT(IN)  :: Count
11944 INTEGER ,       INTENT(OUT)  :: OutCount
11945 INTEGER ,       INTENT(OUT) :: Status
11947 #include "wrf_status_codes.h"
11948 INTEGER                     :: len_of_str
11949 LOGICAL                     :: for_out
11950 INTEGER, EXTERNAL           :: use_package
11951 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
11952 INTEGER                     :: locCount
11954 INTEGER io_form , Hndl
11956 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_logical_arr " )
11960 locCount = Count
11962 Status = 0
11963 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
11964 IF ( Hndl .GT. -1 ) THEN
11965   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
11966     SELECT CASE ( use_package( io_form ) )
11967 #ifdef NETCDF
11968       CASE ( IO_NETCDF   )
11969         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
11970            CALL ext_ncd_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
11971                                  locCount, Outcount, Status ) 
11972         ENDIF
11973         IF ( .NOT. multi_files(io_form) ) THEN
11974           
11975           
11976           
11977           
11978           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
11979           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
11980           
11981           
11982           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
11983         ENDIF
11984 #endif
11985 #ifdef NETCDFPAR
11986       CASE ( IO_NETCDFPAR   )
11987         CALL ext_ncdpar_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
11988                               locCount, Outcount, Status ) 
11989 #endif
11991 #ifdef PNETCDF
11992       CASE ( IO_PNETCDF   )
11993         CALL ext_pnc_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
11994                               locCount, Outcount, Status ) 
11995 #endif
11996 #ifdef PHDF5
11997       CASE ( IO_PHDF5   )
11998         CALL ext_phdf5_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
11999                               locCount, Outcount, Status ) 
12000 #endif
12001 #ifdef ESMFIO
12002       CASE ( IO_ESMF )
12003         CALL ext_esmf_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12004                               locCount, Outcount, Status ) 
12005 #endif
12006 #ifdef XXX
12007       CASE ( IO_XXX   )
12008         CALL ext_xxx_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12009                               locCount, Outcount, Status ) 
12010 #endif
12011 #ifdef YYY
12012       CASE ( IO_YYY   )
12013         CALL ext_yyy_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12014                               locCount, Outcount, Status ) 
12015 #endif
12016 #ifdef GRIB1
12017       CASE ( IO_GRIB1   )
12018         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12019            CALL ext_gr1_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12020                                  locCount, Outcount, Status ) 
12021         ENDIF
12022         IF ( .NOT. multi_files(io_form) ) THEN
12023           
12024           
12025           
12026           
12027           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12028           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12029           
12030           
12031           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12032         ENDIF
12033 #endif
12034 #ifdef GRIB2
12035       CASE ( IO_GRIB2   )
12036         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12037            CALL ext_gr2_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12038                                  locCount, Outcount, Status ) 
12039         ENDIF
12040         IF ( .NOT. multi_files(io_form) ) THEN
12041           
12042           
12043           
12044           
12045           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12046           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12047           
12048           
12049           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12050         ENDIF
12051 #endif
12052 #ifdef INTIO
12053       CASE ( IO_INTIO   )
12054         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12055            CALL ext_int_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12056                                  locCount, Outcount, Status ) 
12057         ENDIF
12058         IF ( .NOT. multi_files(io_form) ) THEN
12059            
12060            
12061            
12062            
12063            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12064            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12065            
12066            
12067            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12068         ENDIF
12069 #endif
12070       CASE DEFAULT
12071     END SELECT
12072   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
12073     CALL wrf_quilt_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12074                           locCount, Outcount, Status )
12075   ELSE
12076     Status = 0
12077 ENDIF
12078 ELSE
12079   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
12080 ENDIF
12081 RETURN
12082 END SUBROUTINE wrf_get_var_td_logical_arr 
12083 !--- get_var_td_logical
12085 SUBROUTINE wrf_get_var_td_logical_sca ( DataHandle,Element, DateStr, Varname, Data, Count, Outcount, Status )
12086 !<DESCRIPTION>
12087 !<PRE>
12089 ! Attempt to read time dependent
12090 ! attribute "Element" of variable "Varname" valid at time DateStr 
12091 ! from the open dataset described by DataHandle.  
12092 ! Attribute of type logical is
12093 ! stored in scalar Data.
12096 !</PRE>
12097 !</DESCRIPTION>
12098 USE module_state_description
12099 IMPLICIT NONE
12100 INTEGER ,       INTENT(IN)  :: DataHandle
12101 CHARACTER*(*) , INTENT(IN)  :: Element
12102 CHARACTER*(*) , INTENT(IN)  :: DateStr
12103 CHARACTER*(*) , INTENT(IN)  :: VarName 
12105  logical  :: Data 
12107 INTEGER ,       INTENT(IN)  :: Count
12108 INTEGER ,       INTENT(OUT)  :: OutCount
12109 INTEGER ,       INTENT(OUT) :: Status
12111 #include "wrf_status_codes.h"
12112 INTEGER                     :: len_of_str
12113 LOGICAL                     :: for_out
12114 INTEGER, EXTERNAL           :: use_package
12115 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
12116 INTEGER                     :: locCount
12118 INTEGER io_form , Hndl
12120 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_logical_sca " )
12124 locCount = Count
12126 Status = 0
12127 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
12128 IF ( Hndl .GT. -1 ) THEN
12129   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
12130     SELECT CASE ( use_package( io_form ) )
12131 #ifdef NETCDF
12132       CASE ( IO_NETCDF   )
12133         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12134            CALL ext_ncd_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12135                                  locCount, Outcount, Status ) 
12136         ENDIF
12137         IF ( .NOT. multi_files(io_form) ) THEN
12138           
12139           
12140           
12141           
12142           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12143           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12144           
12145           
12146           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12147         ENDIF
12148 #endif
12149 #ifdef NETCDFPAR
12150       CASE ( IO_NETCDFPAR   )
12151         CALL ext_ncdpar_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12152                               locCount, Outcount, Status ) 
12153 #endif
12155 #ifdef PNETCDF
12156       CASE ( IO_PNETCDF   )
12157         CALL ext_pnc_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12158                               locCount, Outcount, Status ) 
12159 #endif
12160 #ifdef PHDF5
12161       CASE ( IO_PHDF5   )
12162         CALL ext_phdf5_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12163                               locCount, Outcount, Status ) 
12164 #endif
12165 #ifdef ESMFIO
12166       CASE ( IO_ESMF )
12167         CALL ext_esmf_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12168                               locCount, Outcount, Status ) 
12169 #endif
12170 #ifdef XXX
12171       CASE ( IO_XXX   )
12172         CALL ext_xxx_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12173                               locCount, Outcount, Status ) 
12174 #endif
12175 #ifdef YYY
12176       CASE ( IO_YYY   )
12177         CALL ext_yyy_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12178                               locCount, Outcount, Status ) 
12179 #endif
12180 #ifdef GRIB1
12181       CASE ( IO_GRIB1   )
12182         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12183            CALL ext_gr1_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12184                                  locCount, Outcount, Status ) 
12185         ENDIF
12186         IF ( .NOT. multi_files(io_form) ) THEN
12187           
12188           
12189           
12190           
12191           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12192           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12193           
12194           
12195           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12196         ENDIF
12197 #endif
12198 #ifdef GRIB2
12199       CASE ( IO_GRIB2   )
12200         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12201            CALL ext_gr2_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12202                                  locCount, Outcount, Status ) 
12203         ENDIF
12204         IF ( .NOT. multi_files(io_form) ) THEN
12205           
12206           
12207           
12208           
12209           CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12210           CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12211           
12212           
12213           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12214         ENDIF
12215 #endif
12216 #ifdef INTIO
12217       CASE ( IO_INTIO   )
12218         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12219            CALL ext_int_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12220                                  locCount, Outcount, Status ) 
12221         ENDIF
12222         IF ( .NOT. multi_files(io_form) ) THEN
12223            
12224            
12225            
12226            
12227            CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )
12228            CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )
12229            
12230            
12231            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12232         ENDIF
12233 #endif
12234       CASE DEFAULT
12235     END SELECT
12236   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
12237     CALL wrf_quilt_get_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12238                           locCount, Outcount, Status )
12239   ELSE
12240     Status = 0
12241 ENDIF
12242 ELSE
12243   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
12244 ENDIF
12245 RETURN
12246 END SUBROUTINE wrf_get_var_td_logical_sca 
12249 !--- put_var_td_logical
12251 SUBROUTINE wrf_put_var_td_logical_arr ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
12252 !<DESCRIPTION>
12253 !<PRE>
12255 ! Write Count words of time dependent
12256 ! attribute "Element" of variable "Varname" valid at time DateStr 
12257 ! to the open dataset described by DataHandle.  
12258 ! Attribute of type logical is
12259 ! copied from array Data.
12262 !</PRE>
12263 !</DESCRIPTION>
12264 USE module_state_description
12265 IMPLICIT NONE
12266 INTEGER ,       INTENT(IN)  :: DataHandle
12267 CHARACTER*(*) , INTENT(IN)  :: Element
12268 CHARACTER*(*) , INTENT(IN)  :: DateStr
12269 CHARACTER*(*) , INTENT(IN)  :: VarName 
12271  logical  :: Data (*)
12273 INTEGER ,       INTENT(IN)  :: Count
12275 INTEGER ,       INTENT(OUT) :: Status
12277 #include "wrf_status_codes.h"
12278 INTEGER                     :: len_of_str
12279 LOGICAL                     :: for_out
12280 INTEGER, EXTERNAL           :: use_package
12281 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
12282 INTEGER                     :: locCount
12284 INTEGER io_form , Hndl
12286 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_logical_arr " )
12290 locCount = Count
12292 Status = 0
12293 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
12294 IF ( Hndl .GT. -1 ) THEN
12295   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
12296     SELECT CASE ( use_package( io_form ) )
12297 #ifdef NETCDF
12298       CASE ( IO_NETCDF   )
12299         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12300            CALL ext_ncd_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12301                                  locCount,  Status ) 
12302         ENDIF
12303         IF ( .NOT. multi_files(io_form) ) THEN
12304           
12305           
12306           
12307           
12308           
12309           
12310           
12311           
12312           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12313         ENDIF
12314 #endif
12315 #ifdef NETCDFPAR
12316       CASE ( IO_NETCDFPAR   )
12317         CALL ext_ncdpar_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12318                               locCount,  Status ) 
12319 #endif
12321 #ifdef PNETCDF
12322       CASE ( IO_PNETCDF   )
12323         CALL ext_pnc_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12324                               locCount,  Status ) 
12325 #endif
12326 #ifdef PHDF5
12327       CASE ( IO_PHDF5   )
12328         CALL ext_phdf5_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12329                               locCount,  Status ) 
12330 #endif
12331 #ifdef ESMFIO
12332       CASE ( IO_ESMF )
12333         CALL ext_esmf_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12334                               locCount,  Status ) 
12335 #endif
12336 #ifdef XXX
12337       CASE ( IO_XXX   )
12338         CALL ext_xxx_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12339                               locCount,  Status ) 
12340 #endif
12341 #ifdef YYY
12342       CASE ( IO_YYY   )
12343         CALL ext_yyy_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12344                               locCount,  Status ) 
12345 #endif
12346 #ifdef GRIB1
12347       CASE ( IO_GRIB1   )
12348         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12349            CALL ext_gr1_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12350                                  locCount,  Status ) 
12351         ENDIF
12352         IF ( .NOT. multi_files(io_form) ) THEN
12353           
12354           
12355           
12356           
12357           
12358           
12359           
12360           
12361           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12362         ENDIF
12363 #endif
12364 #ifdef GRIB2
12365       CASE ( IO_GRIB2   )
12366         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12367            CALL ext_gr2_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12368                                  locCount,  Status ) 
12369         ENDIF
12370         IF ( .NOT. multi_files(io_form) ) THEN
12371           
12372           
12373           
12374           
12375           
12376           
12377           
12378           
12379           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12380         ENDIF
12381 #endif
12382 #ifdef INTIO
12383       CASE ( IO_INTIO   )
12384         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12385            CALL ext_int_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12386                                  locCount,  Status ) 
12387         ENDIF
12388         IF ( .NOT. multi_files(io_form) ) THEN
12389            
12390            
12391            
12392            
12393            
12394            
12395            
12396            
12397            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12398         ENDIF
12399 #endif
12400       CASE DEFAULT
12401     END SELECT
12402   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
12403     CALL wrf_quilt_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12404                           locCount,  Status )
12405   ELSE
12406     Status = 0
12407 ENDIF
12408 ELSE
12409   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
12410 ENDIF
12411 RETURN
12412 END SUBROUTINE wrf_put_var_td_logical_arr 
12413 !--- put_var_td_logical
12415 SUBROUTINE wrf_put_var_td_logical_sca ( DataHandle,Element, DateStr, Varname, Data, Count,  Status )
12416 !<DESCRIPTION>
12417 !<PRE>
12419 ! Write time dependent
12420 ! attribute "Element" of variable "Varname" valid at time DateStr 
12421 ! to the open dataset described by DataHandle.  
12422 ! Attribute of type logical is
12423 ! copied from scalar Data.
12426 !</PRE>
12427 !</DESCRIPTION>
12428 USE module_state_description
12429 IMPLICIT NONE
12430 INTEGER ,       INTENT(IN)  :: DataHandle
12431 CHARACTER*(*) , INTENT(IN)  :: Element
12432 CHARACTER*(*) , INTENT(IN)  :: DateStr
12433 CHARACTER*(*) , INTENT(IN)  :: VarName 
12435  logical  :: Data 
12437 INTEGER ,       INTENT(IN)  :: Count
12439 INTEGER ,       INTENT(OUT) :: Status
12441 #include "wrf_status_codes.h"
12442 INTEGER                     :: len_of_str
12443 LOGICAL                     :: for_out
12444 INTEGER, EXTERNAL           :: use_package
12445 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
12446 INTEGER                     :: locCount
12448 INTEGER io_form , Hndl
12450 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_logical_sca " )
12454 locCount = Count
12456 Status = 0
12457 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
12458 IF ( Hndl .GT. -1 ) THEN
12459   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
12460     SELECT CASE ( use_package( io_form ) )
12461 #ifdef NETCDF
12462       CASE ( IO_NETCDF   )
12463         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12464            CALL ext_ncd_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12465                                  locCount,  Status ) 
12466         ENDIF
12467         IF ( .NOT. multi_files(io_form) ) THEN
12468           
12469           
12470           
12471           
12472           
12473           
12474           
12475           
12476           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12477         ENDIF
12478 #endif
12479 #ifdef NETCDFPAR
12480       CASE ( IO_NETCDFPAR   )
12481         CALL ext_ncdpar_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12482                               locCount,  Status ) 
12483 #endif
12485 #ifdef PNETCDF
12486       CASE ( IO_PNETCDF   )
12487         CALL ext_pnc_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12488                               locCount,  Status ) 
12489 #endif
12490 #ifdef PHDF5
12491       CASE ( IO_PHDF5   )
12492         CALL ext_phdf5_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12493                               locCount,  Status ) 
12494 #endif
12495 #ifdef ESMFIO
12496       CASE ( IO_ESMF )
12497         CALL ext_esmf_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12498                               locCount,  Status ) 
12499 #endif
12500 #ifdef XXX
12501       CASE ( IO_XXX   )
12502         CALL ext_xxx_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12503                               locCount,  Status ) 
12504 #endif
12505 #ifdef YYY
12506       CASE ( IO_YYY   )
12507         CALL ext_yyy_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12508                               locCount,  Status ) 
12509 #endif
12510 #ifdef GRIB1
12511       CASE ( IO_GRIB1   )
12512         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12513            CALL ext_gr1_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12514                                  locCount,  Status ) 
12515         ENDIF
12516         IF ( .NOT. multi_files(io_form) ) THEN
12517           
12518           
12519           
12520           
12521           
12522           
12523           
12524           
12525           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12526         ENDIF
12527 #endif
12528 #ifdef GRIB2
12529       CASE ( IO_GRIB2   )
12530         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12531            CALL ext_gr2_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12532                                  locCount,  Status ) 
12533         ENDIF
12534         IF ( .NOT. multi_files(io_form) ) THEN
12535           
12536           
12537           
12538           
12539           
12540           
12541           
12542           
12543           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12544         ENDIF
12545 #endif
12546 #ifdef INTIO
12547       CASE ( IO_INTIO   )
12548         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12549            CALL ext_int_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12550                                  locCount,  Status ) 
12551         ENDIF
12552         IF ( .NOT. multi_files(io_form) ) THEN
12553            
12554            
12555            
12556            
12557            
12558            
12559            
12560            
12561            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12562         ENDIF
12563 #endif
12564       CASE DEFAULT
12565     END SELECT
12566   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
12567     CALL wrf_quilt_put_var_td_logical ( Hndl, Element, DateStr, Varname, Data, &
12568                           locCount,  Status )
12569   ELSE
12570     Status = 0
12571 ENDIF
12572 ELSE
12573   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
12574 ENDIF
12575 RETURN
12576 END SUBROUTINE wrf_put_var_td_logical_sca 
12579 !--- get_var_td_char
12581 SUBROUTINE wrf_get_var_td_char_arr ( DataHandle,Element, DateStr, Varname, Data,  Status )
12582 !<DESCRIPTION>
12583 !<PRE>
12585 ! Attempt to read time dependent
12586 ! attribute "Element" of variable "Varname" valid at time DateStr 
12587 ! from the open dataset described by DataHandle.  
12588 ! Attribute of type char is
12589 ! stored in string Data.
12592 !</PRE>
12593 !</DESCRIPTION>
12594 USE module_state_description
12595 IMPLICIT NONE
12596 INTEGER ,       INTENT(IN)  :: DataHandle
12597 CHARACTER*(*) , INTENT(IN)  :: Element
12598 CHARACTER*(*) , INTENT(IN)  :: DateStr
12599 CHARACTER*(*) , INTENT(IN)  :: VarName 
12601  CHARACTER*(*)  :: Data
12605 INTEGER ,       INTENT(OUT) :: Status
12607 #include "wrf_status_codes.h"
12608 INTEGER                     :: len_of_str
12609 LOGICAL                     :: for_out
12610 INTEGER, EXTERNAL           :: use_package
12611 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
12612 INTEGER                     :: locCount
12614 INTEGER io_form , Hndl
12616 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_get_var_td_char_arr " )
12622 Status = 0
12623 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
12624 IF ( Hndl .GT. -1 ) THEN
12625   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
12626     SELECT CASE ( use_package( io_form ) )
12627 #ifdef NETCDF
12628       CASE ( IO_NETCDF   )
12629         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12630            CALL ext_ncd_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12631                                   Status ) 
12632         ENDIF
12633         IF ( .NOT. multi_files(io_form) ) THEN
12634           
12635           
12636           
12637           
12638           
12639           
12640           len_of_str = LEN(Data)
12641           CALL wrf_dm_bcast_string( Data, len_of_str )
12642           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12643         ENDIF
12644 #endif
12645 #ifdef NETCDFPAR
12646       CASE ( IO_NETCDFPAR   )
12647         CALL ext_ncdpar_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12648                                Status ) 
12649 #endif
12651 #ifdef PNETCDF
12652       CASE ( IO_PNETCDF   )
12653         CALL ext_pnc_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12654                                Status ) 
12655 #endif
12656 #ifdef PHDF5
12657       CASE ( IO_PHDF5   )
12658         CALL ext_phdf5_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12659                                Status ) 
12660 #endif
12661 #ifdef ESMFIO
12662       CASE ( IO_ESMF )
12663         CALL ext_esmf_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12664                                Status ) 
12665 #endif
12666 #ifdef XXX
12667       CASE ( IO_XXX   )
12668         CALL ext_xxx_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12669                                Status ) 
12670 #endif
12671 #ifdef YYY
12672       CASE ( IO_YYY   )
12673         CALL ext_yyy_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12674                                Status ) 
12675 #endif
12676 #ifdef GRIB1
12677       CASE ( IO_GRIB1   )
12678         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12679            CALL ext_gr1_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12680                                   Status ) 
12681         ENDIF
12682         IF ( .NOT. multi_files(io_form) ) THEN
12683           
12684           
12685           
12686           
12687           
12688           
12689           len_of_str = LEN(Data)
12690           CALL wrf_dm_bcast_string( Data, len_of_str )
12691           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12692         ENDIF
12693 #endif
12694 #ifdef GRIB2
12695       CASE ( IO_GRIB2   )
12696         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12697            CALL ext_gr2_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12698                                   Status ) 
12699         ENDIF
12700         IF ( .NOT. multi_files(io_form) ) THEN
12701           
12702           
12703           
12704           
12705           
12706           
12707           len_of_str = LEN(Data)
12708           CALL wrf_dm_bcast_string( Data, len_of_str )
12709           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12710         ENDIF
12711 #endif
12712 #ifdef INTIO
12713       CASE ( IO_INTIO   )
12714         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12715            CALL ext_int_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12716                                   Status ) 
12717         ENDIF
12718         IF ( .NOT. multi_files(io_form) ) THEN
12719            
12720            
12721            
12722            
12723            
12724            
12725            len_of_str = LEN(Data)
12726            CALL wrf_dm_bcast_string( Data, len_of_str )
12727            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12728         ENDIF
12729 #endif
12730       CASE DEFAULT
12731     END SELECT
12732   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
12733     CALL wrf_quilt_get_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12734                            Status )
12735   ELSE
12736     Status = 0
12737 ENDIF
12738 ELSE
12739   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
12740 ENDIF
12741 RETURN
12742 END SUBROUTINE wrf_get_var_td_char_arr 
12745 !--- put_var_td_char
12747 SUBROUTINE wrf_put_var_td_char_arr ( DataHandle,Element, DateStr, Varname, Data,  Status )
12748 !<DESCRIPTION>
12749 !<PRE>
12751 ! Write time dependent
12752 ! attribute "Element" of variable "Varname" valid at time DateStr 
12753 ! to the open dataset described by DataHandle.  
12754 ! Attribute of type char is
12755 ! copied from string Data.
12758 !</PRE>
12759 !</DESCRIPTION>
12760 USE module_state_description
12761 IMPLICIT NONE
12762 INTEGER ,       INTENT(IN)  :: DataHandle
12763 CHARACTER*(*) , INTENT(IN)  :: Element
12764 CHARACTER*(*) , INTENT(IN)  :: DateStr
12765 CHARACTER*(*) , INTENT(IN)  :: VarName 
12767  CHARACTER*(*)  :: Data
12771 INTEGER ,       INTENT(OUT) :: Status
12773 #include "wrf_status_codes.h"
12774 INTEGER                     :: len_of_str
12775 LOGICAL                     :: for_out
12776 INTEGER, EXTERNAL           :: use_package
12777 LOGICAL, EXTERNAL           :: wrf_dm_on_monitor, multi_files, use_output_servers_for
12778 INTEGER                     :: locCount
12780 INTEGER io_form , Hndl
12782 CALL wrf_debug( DEBUG_LVL, "module_io.F (md_calls.m4) : in wrf_put_var_td_char_arr " )
12788 Status = 0
12789 CALL get_handle ( Hndl, io_form , for_out, DataHandle )
12790 IF ( Hndl .GT. -1 ) THEN
12791   IF ( multi_files( io_form ) .OR. .NOT. (for_out .AND. use_output_servers_for(io_form)) ) THEN
12792     SELECT CASE ( use_package( io_form ) )
12793 #ifdef NETCDF
12794       CASE ( IO_NETCDF   )
12795         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12796            CALL ext_ncd_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12797                                   Status ) 
12798         ENDIF
12799         IF ( .NOT. multi_files(io_form) ) THEN
12800           
12801           
12802           
12803           
12804           
12805           
12806           
12807           
12808           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12809         ENDIF
12810 #endif
12811 #ifdef NETCDFPAR
12812       CASE ( IO_NETCDFPAR   )
12813         CALL ext_ncdpar_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12814                                Status ) 
12815 #endif
12817 #ifdef PNETCDF
12818       CASE ( IO_PNETCDF   )
12819         CALL ext_pnc_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12820                                Status ) 
12821 #endif
12822 #ifdef PHDF5
12823       CASE ( IO_PHDF5   )
12824         CALL ext_phdf5_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12825                                Status ) 
12826 #endif
12827 #ifdef ESMFIO
12828       CASE ( IO_ESMF )
12829         CALL ext_esmf_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12830                                Status ) 
12831 #endif
12832 #ifdef XXX
12833       CASE ( IO_XXX   )
12834         CALL ext_xxx_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12835                                Status ) 
12836 #endif
12837 #ifdef YYY
12838       CASE ( IO_YYY   )
12839         CALL ext_yyy_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12840                                Status ) 
12841 #endif
12842 #ifdef GRIB1
12843       CASE ( IO_GRIB1   )
12844         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12845            CALL ext_gr1_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12846                                   Status ) 
12847         ENDIF
12848         IF ( .NOT. multi_files(io_form) ) THEN
12849           
12850           
12851           
12852           
12853           
12854           
12855           
12856           
12857           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12858         ENDIF
12859 #endif
12860 #ifdef GRIB2
12861       CASE ( IO_GRIB2   )
12862         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12863            CALL ext_gr2_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12864                                   Status ) 
12865         ENDIF
12866         IF ( .NOT. multi_files(io_form) ) THEN
12867           
12868           
12869           
12870           
12871           
12872           
12873           
12874           
12875           CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12876         ENDIF
12877 #endif
12878 #ifdef INTIO
12879       CASE ( IO_INTIO   )
12880         IF ( multi_files(io_form) .OR.  wrf_dm_on_monitor() ) THEN
12881            CALL ext_int_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12882                                   Status ) 
12883         ENDIF
12884         IF ( .NOT. multi_files(io_form) ) THEN
12885            
12886            
12887            
12888            
12889            
12890            
12891            
12892            
12893            CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )
12894         ENDIF
12895 #endif
12896       CASE DEFAULT
12897     END SELECT
12898   ELSE IF ( for_out .AND. use_output_servers_for(io_form) ) THEN
12899     CALL wrf_quilt_put_var_td_char ( Hndl, Element, DateStr, Varname, Data, &
12900                            Status )
12901   ELSE
12902     Status = 0
12903 ENDIF
12904 ELSE
12905   Status = WRF_ERR_FATAL_BAD_FILE_STATUS
12906 ENDIF
12907 RETURN
12908 END SUBROUTINE wrf_put_var_td_char_arr