25 #undef MPP_READ_DISTRIBUTED_ASCII_1D_
26 #define MPP_READ_DISTRIBUTED_ASCII_1D_ mpp_read_distributed_ascii_r1D
28 #define MPP_TYPE_ real
29 #include <mpp_read_distributed_ascii.fh>
31 #undef MPP_READ_DISTRIBUTED_ASCII_1D_
32 #define MPP_READ_DISTRIBUTED_ASCII_1D_ mpp_read_distributed_ascii_i1D
34 #define MPP_TYPE_ integer
35 #include <mpp_read_distributed_ascii.fh>
37 subroutine mpp_read_distributed_ascii_a1d(unit,fmt,ssize,data,iostat)
38 integer,
intent(in) :: unit
39 character(*),
intent(in) :: fmt
40 integer,
intent(in) :: ssize
41 character(len=*),
dimension(:),
intent(inout) :: data
42 integer,
intent(out) :: iostat
44 integer,
allocatable :: pelist(:)
45 logical :: is_ioroot=.false.
48 if(.not.module_is_initialized)
call mpp_error(fatal,
'mpp_read_distributed_ascii_a1D: module not initialized')
51 call mpp_dist_io_pelist(ssize,pelist)
52 if(.not.
ALLOCATED(pelist)) &
53 call mpp_error(fatal,
'mpp_read_distributed_ascii_a1D: pelist allocation failed')
54 is_ioroot = mpp_is_dist_ioroot(ssize)
56 if(trim(fmt)==
'*')
then
57 read(unit,*,iostat=iostat)
data
59 read(unit,fmt=trim(fmt),iostat=iostat)
data
61 if(iostat /= 0)
return
64 call mpp_broadcast(
data,len(
data(1)),pelist(1),pelist)
66 end subroutine mpp_read_distributed_ascii_a1d