MODULE module_io_domain USE module_io USE module_io_wrf USE module_configure, ONLY : grid_config_rec_type USE module_domain, ONLY : domain CONTAINS SUBROUTINE open_r_dataset ( id , fname , grid , config_flags , sysdepinfo, ierr ) TYPE (domain) :: grid CHARACTER*(*) :: fname CHARACTER*(*) :: sysdepinfo INTEGER , INTENT(INOUT) :: id , ierr LOGICAL , EXTERNAL :: wrf_dm_on_monitor TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags CHARACTER*128 :: DataSet, tmp LOGICAL :: anyway CALL wrf_open_for_read ( fname , & grid , & sysdepinfo , & id , & ierr ) RETURN END SUBROUTINE open_r_dataset SUBROUTINE open_w_dataset ( id , fname , grid , config_flags , outsub , sysdepinfo, ierr ) TYPE (domain) :: grid CHARACTER*(*) :: fname CHARACTER*(*) :: sysdepinfo INTEGER , INTENT(INOUT) :: id , ierr TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags LOGICAL , EXTERNAL :: wrf_dm_on_monitor EXTERNAL outsub CHARACTER*128 :: DataSet, sysdepinfo_tmp LOGICAL :: anyway CALL wrf_debug ( 100 , 'calling wrf_open_for_write_begin in open_w_dataset' ) sysdepinfo_tmp = ' ' IF ( grid%id < 10 ) THEN write(sysdepinfo_tmp,'(a,i1)')TRIM(sysdepinfo)//',GRIDID=',grid%id ELSE write(sysdepinfo_tmp,'(a,i2)')TRIM(sysdepinfo)//',GRIDID=',grid%id ENDIF CALL wrf_open_for_write_begin ( fname , & grid , & sysdepinfo_tmp , & id , & ierr ) IF ( ierr .LE. 0 ) THEN CALL wrf_debug ( 100 , 'calling outsub in open_w_dataset' ) CALL outsub( id , grid , config_flags , ierr ) CALL wrf_debug ( 100 , 'back from outsub in open_w_dataset' ) ENDIF IF ( ierr .LE. 0 ) THEN CALL wrf_debug ( 100 , 'calling wrf_open_for_write_commit in open_w_dataset' ) CALL wrf_open_for_write_commit ( id , ierr ) CALL wrf_debug ( 100 , 'back from wrf_open_for_write_commit in open_w_dataset' ) ENDIF END SUBROUTINE open_w_dataset SUBROUTINE open_u_dataset ( id , fname , grid , config_flags , insub , sysdepinfo, ierr ) TYPE (domain) :: grid CHARACTER*(*) :: fname CHARACTER*(*) :: sysdepinfo INTEGER , INTENT(INOUT) :: id , ierr TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags LOGICAL , EXTERNAL :: wrf_dm_on_monitor EXTERNAL insub CHARACTER*128 :: DataSet LOGICAL :: anyway CALL wrf_debug ( 100 , 'calling wrf_open_for_read_begin in open_u_dataset' ) CALL wrf_open_for_read_begin ( fname , & grid , & sysdepinfo , & id , & ierr ) IF ( ierr .LE. 0 ) THEN CALL wrf_debug ( 100 , 'calling insub in open_u_dataset' ) CALL insub( id , grid , config_flags , ierr ) ENDIF IF ( ierr .LE. 0 ) THEN CALL wrf_debug ( 100 , 'calling wrf_open_for_read_commit in open_u_dataset' ) CALL wrf_open_for_read_commit ( id , ierr ) CALL wrf_debug ( 100 , 'back from wrf_open_for_read_commit in open_u_dataset' ) ENDIF END SUBROUTINE open_u_dataset SUBROUTINE close_dataset( id , config_flags, sysdepinfo ) IMPLICIT NONE INTEGER id , ierr LOGICAL , EXTERNAL :: wrf_dm_on_monitor TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags CHARACTER*(*) :: sysdepinfo CHARACTER*128 :: DataSet LOGICAL :: anyway CALL wrf_ioclose( id , ierr ) END SUBROUTINE close_dataset SUBROUTINE output_input ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_input .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, input_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_input SUBROUTINE output_auxinput1 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput1 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput1_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput1 SUBROUTINE output_auxinput2 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput2 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput2_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput2 SUBROUTINE output_auxinput3 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput3 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput3_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput3 SUBROUTINE output_auxinput4 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput4 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput4_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput4 SUBROUTINE output_auxinput5 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput5 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput5_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput5 SUBROUTINE output_auxinput6 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput6 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput6_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput6 SUBROUTINE output_auxinput7 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput7 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput7_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput7 SUBROUTINE output_auxinput8 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput8 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput8_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput8 SUBROUTINE output_auxinput9 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput9 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput9_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput9 SUBROUTINE output_auxinput10 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput10 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput10_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput10 SUBROUTINE output_auxinput11 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput11 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput11_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput11 SUBROUTINE output_auxinput12 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput12 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput12_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput12 SUBROUTINE output_auxinput13 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput13 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput13_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput13 SUBROUTINE output_auxinput14 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput14 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput14_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput14 SUBROUTINE output_auxinput15 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput15 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput15_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput15 SUBROUTINE output_auxinput16 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput16 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput16_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput16 SUBROUTINE output_auxinput17 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput17 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput17_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput17 SUBROUTINE output_auxinput18 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput18 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput18_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput18 SUBROUTINE output_auxinput19 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput19 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput19_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput19 SUBROUTINE output_auxinput20 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput20 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput20_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput20 SUBROUTINE output_auxinput21 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput21 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput21_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput21 SUBROUTINE output_auxinput22 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput22 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput22_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput22 SUBROUTINE output_auxinput23 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput23 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput23_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput23 SUBROUTINE output_auxinput24 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput24 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxinput24_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxinput24 SUBROUTINE output_history ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_history .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, history_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_history SUBROUTINE output_auxhist1 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist1 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist1_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist1 SUBROUTINE output_auxhist2 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist2 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist2_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist2 SUBROUTINE output_auxhist3 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist3 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist3_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist3 SUBROUTINE output_auxhist4 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist4 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist4_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist4 SUBROUTINE output_auxhist5 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist5 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist5_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist5 SUBROUTINE output_auxhist6 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist6 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist6_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist6 SUBROUTINE output_auxhist7 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist7 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist7_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist7 SUBROUTINE output_auxhist8 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist8 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist8_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist8 SUBROUTINE output_auxhist9 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist9 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist9_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist9 SUBROUTINE output_auxhist10 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist10 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist10_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist10 SUBROUTINE output_auxhist11 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist11 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist11_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist11 SUBROUTINE output_auxhist12 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist12 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist12_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist12 SUBROUTINE output_auxhist13 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist13 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist13_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist13 SUBROUTINE output_auxhist14 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist14 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist14_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist14 SUBROUTINE output_auxhist15 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist15 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist15_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist15 SUBROUTINE output_auxhist16 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist16 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist16_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist16 SUBROUTINE output_auxhist17 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist17 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist17_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist17 SUBROUTINE output_auxhist18 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist18 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist18_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist18 SUBROUTINE output_auxhist19 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist19 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist19_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist19 SUBROUTINE output_auxhist20 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist20 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist20_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist20 SUBROUTINE output_auxhist21 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist21 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist21_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist21 SUBROUTINE output_auxhist22 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist22 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist22_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist22 SUBROUTINE output_auxhist23 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist23 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist23_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist23 SUBROUTINE output_auxhist24 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist24 .GT. 0 ) THEN CALL output_wrf( fid, grid, config_flags, auxhist24_only, ierr ) ; ENDIF RETURN END SUBROUTINE output_auxhist24 SUBROUTINE input_input ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_input .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, input_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_input SUBROUTINE input_auxinput1 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput1 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput1_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput1 SUBROUTINE input_auxinput2 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput2 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput2_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput2 SUBROUTINE input_auxinput3 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput3 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput3_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput3 SUBROUTINE input_auxinput4 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput4 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput4_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput4 SUBROUTINE input_auxinput5 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput5 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput5_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput5 SUBROUTINE input_auxinput6 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput6 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput6_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput6 SUBROUTINE input_auxinput7 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput7 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput7_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput7 SUBROUTINE input_auxinput8 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput8 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput8_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput8 SUBROUTINE input_auxinput9 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput9 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput9_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput9 SUBROUTINE input_auxinput10 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput10 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput10_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput10 SUBROUTINE input_auxinput11 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput11 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput11_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput11 SUBROUTINE input_auxinput12 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput12 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput12_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput12 SUBROUTINE input_auxinput13 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput13 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput13_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput13 SUBROUTINE input_auxinput14 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput14 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput14_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput14 SUBROUTINE input_auxinput15 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput15 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput15_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput15 SUBROUTINE input_auxinput16 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput16 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput16_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput16 SUBROUTINE input_auxinput17 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput17 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput17_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput17 SUBROUTINE input_auxinput18 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput18 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput18_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput18 SUBROUTINE input_auxinput19 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput19 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput19_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput19 SUBROUTINE input_auxinput20 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput20 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput20_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput20 SUBROUTINE input_auxinput21 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput21 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput21_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput21 SUBROUTINE input_auxinput22 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput22 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput22_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput22 SUBROUTINE input_auxinput23 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput23 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput23_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput23 SUBROUTINE input_auxinput24 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxinput24 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxinput24_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxinput24 SUBROUTINE input_history ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_history .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, history_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_history SUBROUTINE input_auxhist1 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist1 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist1_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist1 SUBROUTINE input_auxhist2 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist2 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist2_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist2 SUBROUTINE input_auxhist3 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist3 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist3_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist3 SUBROUTINE input_auxhist4 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist4 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist4_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist4 SUBROUTINE input_auxhist5 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist5 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist5_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist5 SUBROUTINE input_auxhist6 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist6 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist6_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist6 SUBROUTINE input_auxhist7 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist7 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist7_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist7 SUBROUTINE input_auxhist8 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist8 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist8_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist8 SUBROUTINE input_auxhist9 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist9 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist9_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist9 SUBROUTINE input_auxhist10 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist10 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist10_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist10 SUBROUTINE input_auxhist11 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist11 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist11_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist11 SUBROUTINE input_auxhist12 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist12 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist12_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist12 SUBROUTINE input_auxhist13 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist13 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist13_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist13 SUBROUTINE input_auxhist14 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist14 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist14_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist14 SUBROUTINE input_auxhist15 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist15 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist15_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist15 SUBROUTINE input_auxhist16 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist16 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist16_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist16 SUBROUTINE input_auxhist17 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist17 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist17_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist17 SUBROUTINE input_auxhist18 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist18 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist18_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist18 SUBROUTINE input_auxhist19 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist19 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist19_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist19 SUBROUTINE input_auxhist20 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist20 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist20_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist20 SUBROUTINE input_auxhist21 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist21 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist21_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist21 SUBROUTINE input_auxhist22 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist22 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist22_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist22 SUBROUTINE input_auxhist23 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist23 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist23_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist23 SUBROUTINE input_auxhist24 ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_auxhist24 .GT. 0 ) THEN CALL input_wrf( fid, grid, config_flags, auxhist24_only, ierr ) ; ENDIF RETURN END SUBROUTINE input_auxhist24 SUBROUTINE input_restart ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_restart .GT. 0 ) THEN CALL input_wrf ( fid , grid , config_flags , restart_only , ierr ) ENDIF RETURN END SUBROUTINE input_restart SUBROUTINE input_boundary ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_boundary .GT. 0 ) THEN CALL input_wrf ( fid , grid , config_flags , boundary_only , ierr ) ENDIF RETURN END SUBROUTINE input_boundary SUBROUTINE output_restart ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_restart .GT. 0 ) THEN CALL output_wrf ( fid , grid , config_flags , restart_only , ierr ) ENDIF RETURN END SUBROUTINE output_restart SUBROUTINE output_boundary ( fid , grid , config_flags , ierr ) IMPLICIT NONE TYPE(domain) :: grid TYPE(grid_config_rec_type), INTENT(IN ) :: config_flags INTEGER, INTENT(IN) :: fid INTEGER, INTENT(INOUT) :: ierr IF ( config_flags%io_form_boundary .GT. 0 ) THEN CALL output_wrf ( fid , grid , config_flags , boundary_only , ierr ) ENDIF RETURN END SUBROUTINE output_boundary END MODULE module_io_domain SUBROUTINE construct_filename1( result , basename , fld1 , len1 ) IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename INTEGER , INTENT(IN) :: fld1 , len1 CHARACTER*64 :: t1, zeros CALL zero_pad ( t1 , fld1 , len1 ) result = TRIM(basename) // "_d" // TRIM(t1) CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename1 SUBROUTINE construct_filename2( result , basename , fld1 , len1 , date_char ) IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename CHARACTER*(*) :: date_char INTEGER , INTENT(IN) :: fld1 , len1 CHARACTER*64 :: t1, zeros CALL zero_pad ( t1 , fld1 , len1 ) result = TRIM(basename) // ".d" // TRIM(t1) // "." // TRIM(date_char) CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename2 SUBROUTINE construct_filename2a( result , basename , fld1 , len1 , date_char ) IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename CHARACTER*(*) :: date_char INTEGER , INTENT(IN) :: fld1 , len1 CHARACTER*64 :: t1, zeros INTEGER i, j, l result=basename CALL zero_pad ( t1 , fld1 , len1 ) i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result (1:i-1) // TRIM(t1) // result(i+8:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char) // result(i+6:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char( 1: 4)) // result(i+6:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char( 6: 7)) // result(i+7:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char( 9:10)) // result(i+5:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char(12:13)) // result(i+6:l) i = index( result , '' ) END DO CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename2a SUBROUTINE construct_filename ( result , basename , fld1 , len1 , fld2 , len2 ) IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename INTEGER , INTENT(IN) :: fld1 , len1 , fld2 , len2 CHARACTER*64 :: t1, t2, zeros CALL zero_pad ( t1 , fld1 , len1 ) CALL zero_pad ( t2 , fld2 , len2 ) result = TRIM(basename) // "_d" // TRIM(t1) // "_" // TRIM(t2) CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename SUBROUTINE construct_filename3 ( result , basename , fld1 , len1 , fld2 , len2, fld3, len3 ) IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename INTEGER , INTENT(IN) :: fld1 , len1 , fld2 , len2, fld3, len3 CHARACTER*64 :: t1, t2, t3, zeros CALL zero_pad ( t1 , fld1 , len1 ) CALL zero_pad ( t2 , fld2 , len2 ) CALL zero_pad ( t3 , fld3 , len3 ) result = TRIM(basename) // "_d" // TRIM(t1) // "_" // TRIM(t2) // "_" // TRIM(t3) CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename3 SUBROUTINE construct_filename4( result , basename , fld1 , len1 , date_char , io_form ) USE module_state_description IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename CHARACTER*(*) :: date_char INTEGER, EXTERNAL :: use_package INTEGER , INTENT(IN) :: fld1 , len1 , io_form CHARACTER*64 :: t1, zeros CHARACTER*4 :: ext CALL zero_pad ( t1 , fld1 , len1 ) IF ( use_package(io_form) .EQ. IO_INTIO ) THEN ext = '.int' ELSE IF ( use_package(io_form) .EQ. IO_NETCDF ) THEN ext = '.nc ' ELSE IF ( use_package(io_form) .EQ. IO_PNETCDF ) THEN ext = '.nc ' ELSE IF ( use_package(io_form) .EQ. IO_PIO ) THEN ext = '.nc ' ELSE IF ( use_package(io_form) .EQ. IO_GRIB1 ) THEN ext = '.gb ' ELSE CALL wrf_error_fatal3("",1413,& 'improper io_form') END IF result = TRIM(basename) // ".d" // TRIM(t1) // "." // TRIM(date_char) // TRIM(ext) CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename4 SUBROUTINE construct_filename4a( result , basename , fld1 , len1 , date_char , io_form ) USE module_state_description IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename CHARACTER*(*) :: date_char INTEGER, EXTERNAL :: use_package INTEGER , INTENT(IN) :: fld1 , len1 , io_form CHARACTER*64 :: t1, zeros CHARACTER*4 :: ext INTEGER i, j, l result=basename CALL zero_pad ( t1 , fld1 , len1 ) IF ( use_package(io_form) .EQ. IO_INTIO ) THEN ext = '.int' ELSE IF ( use_package(io_form) .EQ. IO_NETCDF ) THEN ext = '.nc ' ELSE IF ( use_package(io_form) .EQ. IO_PNETCDF ) THEN ext = '.nc ' ELSE IF ( use_package(io_form) .EQ. IO_PIO ) THEN ext = '.nc ' ELSE IF ( use_package(io_form) .EQ. IO_GRIB1 ) THEN ext = '.gb ' ELSE CALL wrf_error_fatal3("",1448,& 'improper io_form') END IF l = len(trim(basename)) result = basename(1:l) // TRIM(ext) i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result )) result = result (1:i-1) // TRIM(t1) // result (i+8:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char) // result(i+6:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char( 1: 4)) // result(i+6:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char( 6: 7)) // result(i+7:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char( 9:10)) // result(i+5:l) i = index( result , '' ) END DO i = index( result , '' ) DO WHILE ( i .GT. 0 ) l = len(trim(result)) result = result(1:i-1) // TRIM(date_char(12:13)) // result(i+6:l) i = index( result , '' ) END DO CALL maybe_remove_colons(result) RETURN END SUBROUTINE construct_filename4a SUBROUTINE append_to_filename ( result , basename , fld1 , len1 ) IMPLICIT NONE CHARACTER*(*) :: result CHARACTER*(*) :: basename INTEGER , INTENT(IN) :: fld1 , len1 CHARACTER*64 :: t1, zeros CALL zero_pad ( t1 , fld1 , len1 ) result = TRIM(basename) // "_" // TRIM(t1) CALL maybe_remove_colons(result) RETURN END SUBROUTINE append_to_filename SUBROUTINE zero_pad ( result , fld1 , len1 ) IMPLICIT NONE CHARACTER*(*) :: result INTEGER , INTENT (IN) :: fld1 , len1 INTEGER :: d , x CHARACTER*64 :: t2, zeros x = fld1 ; d = 0 DO WHILE ( x > 0 ) x = x / 10 d = d + 1 END DO write(t2,'(I9)')fld1 zeros = '0000000000000000000000000000000' result = zeros(1:len1-d) // t2(9-d+1:9) RETURN END SUBROUTINE zero_pad SUBROUTINE init_wrfio USE module_io, ONLY : wrf_ioinit IMPLICIT NONE INTEGER ierr CALL wrf_ioinit(ierr) END SUBROUTINE init_wrfio SUBROUTINE adjust_io_timestr ( TI, CT, ST, timestr ) USE module_utility IMPLICIT NONE TYPE(WRFU_Time), INTENT(IN) :: ST,CT TYPE(WRFU_TimeInterval), INTENT(IN) :: TI CHARACTER*(*), INTENT(INOUT) :: timestr TYPE(WRFU_Time) :: OT TYPE(WRFU_TimeInterval) :: IOI INTEGER :: n IOI = CT-ST n = WRFU_TimeIntervalDIVQuot( IOI , TI ) IOI = TI * n OT = ST + IOI CALL wrf_timetoa( OT, timestr ) RETURN END SUBROUTINE adjust_io_timestr SUBROUTINE maybe_remove_colons( FileName ) CHARACTER*(*) FileName CHARACTER c, d INTEGER i, l LOGICAL nocolons l = LEN(TRIM(FileName)) CALL nl_get_nocolons(1,nocolons) IF ( nocolons ) THEN DO i = 3, l IF ( FileName(i:i) .EQ. ':' ) THEN FileName(i:i) = '_' ENDIF ENDDO ENDIF RETURN END