62 hrec,pfield,kresp,hcomment)
75 USE modi_error_read_surf_asc
77 USE yomhook
,ONLY : lhook, dr_hook
78 USE parkind1
,ONLY : jprb
86 CHARACTER(LEN=*),
INTENT(IN) :: hrec
87 REAL,
INTENT(OUT) :: pfield
88 INTEGER,
INTENT(OUT) :: kresp
89 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
93 CHARACTER(LEN=50):: ycomment
94 CHARACTER(LEN=6) :: ymask
96 REAL(KIND=JPRB) :: zhook_handle
98 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX0_ASC',0,zhook_handle)
105 IF (lwork0) ymask=
'FULL '
107 CALL
posnam(nunit,ymask//
' '//hrec,gfound,nluout)
108 IF (.NOT. gfound) CALL
posnam(nunit,
'FULL '//
' '//hrec,gfound,nluout)
110 READ(nunit,fmt=*,end=100)
111 READ(nunit,fmt=
'(A50)') ycomment
112 READ(nunit,fmt=*,err=100) pfield
115 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX0_ASC',1,zhook_handle)
120 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX0_ASC',1,zhook_handle)
126 hrec,pfield,kresp,hcomment,hdir)
134 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
143 USE modi_error_read_surf_asc
146 USE yomhook
,ONLY : lhook, dr_hook
147 USE parkind1
,ONLY : jprb
159 CHARACTER(LEN=*),
INTENT(IN) :: hrec
160 REAL,
DIMENSION(:),
INTENT(OUT) :: pfield
161 INTEGER,
INTENT(OUT) :: kresp
162 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
163 CHARACTER(LEN=1),
INTENT(IN) :: hdir
169 CHARACTER(LEN=6) :: ymask
170 INTEGER :: il1, infompi
174 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: istatus
176 REAL(KIND=JPRB) :: zhook_handle
178 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX1_ASC',0,zhook_handle)
192 ALLOCATE(xworkd(il1))
196 IF (nrank==npio)
THEN
201 ALLOCATE(xworkd(il1))
202 ELSEIF (hdir/=
'-')
THEN
203 ALLOCATE(xworkd(nfull))
207 CALL
posnam(nunit,cmask//
' '//hrec,lwork0,nluout)
208 IF (.NOT. lwork0) CALL
posnam(nunit,
'FULL '//
' '//hrec,lwork0,nluout)
213 IF (lwork0) ymask=
'FULL '
214 CALL
posnam(nunit,ymask//
' '//hrec,lwork0,nluout)
217 READ(nunit,fmt=*,iostat=nworkb)
218 READ(nunit,fmt=
'(A50)',iostat=nworkb) cwork0
219 READ(nunit,fmt=*,iostat=nworkb) xworkd
223 ELSEIF (hdir/=
'-')
THEN
233 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
239 IF ( nrank==npio )
THEN
243 pfield(:) = xworkd(1:il1)
245 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
248 ELSEIF (hdir==
'-')
THEN
253 CALL mpi_bcast(xworkd,il1*kind(xworkd)/4,mpi_real,npio,ncomm,infompi)
254 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
258 pfield(:) = xworkd(1:il1)
269 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX1_ASC',1,zhook_handle)
275 hrec,pfield,kresp,hcomment,hdir)
286 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
293 USE modi_error_read_surf_asc
296 USE yomhook
,ONLY : lhook, dr_hook
297 USE parkind1
,ONLY : jprb
309 CHARACTER(LEN=*),
INTENT(IN) :: hrec
310 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfield
311 INTEGER,
INTENT(OUT) :: kresp
312 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
313 CHARACTER(LEN=1),
INTENT(IN) :: hdir
319 CHARACTER(LEN=6) :: ymask
320 INTEGER :: il1, il2, infompi
324 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: istatus
326 REAL(KIND=JPRB) :: zhook_handle
328 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX2_ASC',0,zhook_handle)
343 ALLOCATE(xworkd2(il1,il2))
347 IF (nrank==npio)
THEN
352 ALLOCATE(xworkd2(il1,il2))
353 ELSEIF (hdir/=
'-')
THEN
354 ALLOCATE(xworkd2(nfull,il2))
358 CALL
posnam(nunit,cmask//
' '//hrec,lwork0,nluout)
359 IF (.NOT. lwork0) CALL
posnam(nunit,
'FULL '//
' '//hrec,lwork0,nluout)
364 IF (lwork0) ymask=
'FULL '
365 CALL
posnam(nunit,ymask//
' '//hrec,lwork0,nluout)
368 READ(nunit,fmt=*,iostat=nworkb)
369 READ(nunit,fmt=
'(A50)',iostat=nworkb) cwork0
370 READ(nunit,fmt=*,iostat=nworkb) xworkd2
374 ELSEIF (hdir/=
'-')
THEN
376 ALLOCATE(xworkd2(0,0))
384 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
390 IF ( nrank==npio )
THEN
394 pfield(:,:) = xworkd2(1:il1,:)
396 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
399 ELSEIF (hdir==
'-')
THEN
404 CALL mpi_bcast(xworkd2,il1*il2*kind(xworkd2)/4,mpi_real,npio,ncomm,infompi)
405 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
409 IF (nrank==npio) pfield(:,:) = xworkd2(1:il1,:)
420 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFX2_ASC',1,zhook_handle)
426 hrec,kfield,kresp,hcomment)
441 USE modi_error_read_surf_asc
443 USE yomhook
,ONLY : lhook, dr_hook
444 USE parkind1
,ONLY : jprb
452 CHARACTER(LEN=*),
INTENT(IN) :: hrec
453 INTEGER,
INTENT(OUT) :: kfield
454 INTEGER,
INTENT(OUT) :: kresp
455 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
459 CHARACTER(LEN=50) :: ycomment
460 CHARACTER(LEN=6) :: ymask
462 REAL(KIND=JPRB) :: zhook_handle
464 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFN0_ASC',0,zhook_handle)
471 IF (lwork0) ymask=
'FULL '
473 CALL
posnam(nunit,ymask//
' '//hrec,gfound,nluout)
474 IF (.NOT. gfound) CALL
posnam(nunit,
'FULL '//
' '//hrec,gfound,nluout)
476 READ(nunit,fmt=*,end=100)
477 READ(nunit,fmt=
'(A50)') ycomment
478 READ(nunit,fmt=*,err=100) kfield
481 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFN0_ASC',1,zhook_handle)
486 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFN0_ASC',1,zhook_handle)
492 hrec,kfield,kresp,hcomment,hdir)
500 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
509 USE modi_error_read_surf_asc
512 USE yomhook
,ONLY : lhook, dr_hook
513 USE parkind1
,ONLY : jprb
525 CHARACTER(LEN=*),
INTENT(IN) :: hrec
526 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kfield
527 INTEGER,
INTENT(OUT) :: kresp
528 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
529 CHARACTER(LEN=1),
INTENT(IN) :: hdir
535 CHARACTER(LEN=6) :: ymask
536 INTEGER :: il1, infompi
539 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: istatus
542 REAL(KIND=JPRB) :: zhook_handle
544 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFN1_ASC',0,zhook_handle)
558 ALLOCATE(nworkd(il1))
562 IF (nrank==npio)
THEN
567 ALLOCATE(nworkd(il1))
568 ELSEIF (hdir/=
'-')
THEN
569 ALLOCATE(nworkd(nfull))
573 CALL
posnam(nunit,cmask//
' '//hrec,lwork0,nluout)
574 IF (.NOT. lwork0) CALL
posnam(nunit,
'FULL '//
' '//hrec,lwork0,nluout)
579 IF (lwork0) ymask=
'FULL '
580 CALL
posnam(nunit,ymask//
' '//hrec,lwork0,nluout)
583 READ(nunit,fmt=*,iostat=nworkb)
584 READ(nunit,fmt=
'(A50)',iostat=nworkb) cwork0
585 READ(nunit,fmt=*,iostat=nworkb) nworkd
589 ELSEIF (hdir/=
'-')
THEN
599 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
605 IF ( nrank==npio )
THEN
609 kfield(:) = nworkd(1:il1)
611 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
614 ELSEIF (hdir==
'-')
THEN
619 CALL mpi_bcast(nworkd,il1*kind(nworkd)/4,mpi_integer,npio,ncomm,infompi)
620 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
624 kfield(:) = nworkd(1:il1)
635 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFN1_ASC',1,zhook_handle)
641 hrec,hfield,kresp,hcomment)
656 USE modi_error_read_surf_asc
658 USE yomhook
,ONLY : lhook, dr_hook
659 USE parkind1
,ONLY : jprb
667 CHARACTER(LEN=*),
INTENT(IN) :: hrec
668 CHARACTER(LEN=40),
INTENT(OUT) :: hfield
669 INTEGER,
INTENT(OUT) :: kresp
670 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
675 CHARACTER(LEN=50):: ycomment
676 CHARACTER(LEN=6) :: ymask
678 REAL(KIND=JPRB) :: zhook_handle
680 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFC0_ASC',0,zhook_handle)
687 IF (lwork0) ymask=
'FULL '
689 CALL
posnam(nunit,ymask//
' '//hrec,gfound,nluout)
690 IF (.NOT. gfound) CALL
posnam(nunit,
'FULL '//
' '//hrec,gfound,nluout)
692 READ(nunit,fmt=*,iostat=iresp)
693 READ(nunit,fmt=
'(A50)',iostat=iresp) ycomment
694 READ(nunit,fmt=
'(A40)',iostat=iresp) hfield
700 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFC0_ASC',1,zhook_handle)
706 hrec,ofield,kresp,hcomment)
721 USE modi_error_read_surf_asc
723 USE yomhook
,ONLY : lhook, dr_hook
724 USE parkind1
,ONLY : jprb
732 CHARACTER(LEN=*),
INTENT(IN) :: hrec
733 LOGICAL,
INTENT(OUT) :: ofield
734 INTEGER,
INTENT(OUT) :: kresp
735 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
739 CHARACTER(LEN=50) :: ycomment
740 CHARACTER(LEN=6) :: ymask
742 REAL(KIND=JPRB) :: zhook_handle
744 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFL0_ASC',0,zhook_handle)
750 IF (lwork0) ymask=
'FULL '
752 CALL
posnam(nunit,ymask//
' '//hrec,gfound,nluout)
753 IF (.NOT. gfound) CALL
posnam(nunit,
'FULL '//
' '//hrec,gfound,nluout)
755 READ(nunit,fmt=*,end=100)
756 READ(nunit,fmt=
'(A50)') ycomment
757 READ(nunit,fmt=*,err=100) ofield
760 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFL0_ASC',1,zhook_handle)
765 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFL0_ASC',1,zhook_handle)
771 hrec,ofield,kresp,hcomment,hdir)
781 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
788 USE modi_error_read_surf_asc
790 USE yomhook
,ONLY : lhook, dr_hook
791 USE parkind1
,ONLY : jprb
803 CHARACTER(LEN=*),
INTENT(IN) :: hrec
804 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: ofield
805 INTEGER,
INTENT(OUT) :: kresp
806 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
807 CHARACTER(LEN=1),
INTENT(IN) :: hdir
813 CHARACTER(LEN=6) :: ymask
814 INTEGER :: infompi, il1
816 REAL(KIND=JPRB) :: zhook_handle
818 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFL1_ASC',0,zhook_handle)
831 ALLOCATE(lworkd(il1))
834 IF (nrank==npio)
THEN
841 IF (lwork0) ymask=
'FULL '
843 CALL
posnam(nunit,ymask//
' '//hrec,lwork0,nluout)
844 IF (.NOT. lwork0) CALL
posnam(nunit,
'FULL '//
' '//hrec,lwork0,nluout)
846 READ(nunit,fmt=*,iostat=nworkb)
847 READ(nunit,fmt=
'(A50)',iostat=nworkb) cwork0
848 READ(nunit,fmt=*,iostat=nworkb) lworkd
858 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
864 IF (nproc>1 .AND. hdir/=
'A')
THEN
867 CALL mpi_bcast(lworkd,il1,mpi_logical,npio,ncomm,infompi)
868 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
875 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFL1_ASC',1,zhook_handle)
882 hrec,kyear,kmonth,kday,ptime,kresp,hcomment)
898 USE modi_error_read_surf_asc
900 USE yomhook
,ONLY : lhook, dr_hook
901 USE parkind1
,ONLY : jprb
909 CHARACTER(LEN=*),
INTENT(IN) :: hrec
910 INTEGER,
INTENT(OUT) :: kyear
911 INTEGER,
INTENT(OUT) :: kmonth
912 INTEGER,
INTENT(OUT) :: kday
913 REAL,
INTENT(OUT) :: ptime
914 INTEGER,
INTENT(OUT) :: kresp
915 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
919 CHARACTER(LEN=50) :: ycomment
920 CHARACTER(LEN=6) :: ymask
922 INTEGER,
DIMENSION(3) :: itdate
923 REAL(KIND=JPRB) :: zhook_handle
925 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT0_ASC',0,zhook_handle)
931 IF (lwork0) ymask=
'FULL '
933 CALL
posnam(nunit,ymask//
' '//trim(hrec)//
'%TDATE',gfound,nluout)
936 READ(nunit,fmt=*,end=100)
937 READ(nunit,fmt=
'(A50)') ycomment
938 READ(nunit,fmt=*,err=100) itdate(:)
944 CALL
posnam(nunit,ymask//
' '//trim(hrec)//
'%TIME',gfound,nluout)
945 IF (.NOT. gfound) CALL
posnam(nunit,
'FULL '//
' '//hrec,gfound,nluout)
947 READ(nunit,fmt=*,end=100)
948 READ(nunit,fmt=
'(A50)') ycomment
949 READ(nunit,fmt=*,err=100) ptime
953 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT0_ASC',1,zhook_handle)
958 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT0_ASC',1,zhook_handle)
964 hrec,kyear,kmonth,kday,ptime,kresp,hcomment)
980 USE modi_error_read_surf_asc
982 USE yomhook
,ONLY : lhook, dr_hook
983 USE parkind1
,ONLY : jprb
991 CHARACTER(LEN=*),
INTENT(IN) :: hrec
992 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kyear
993 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kmonth
994 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kday
995 REAL,
DIMENSION(:),
INTENT(OUT) :: ptime
996 INTEGER,
INTENT(OUT) :: kresp
997 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1001 CHARACTER(LEN=50) :: ycomment
1002 CHARACTER(LEN=6) :: ymask
1004 INTEGER,
DIMENSION(3,SIZE(KYEAR)) :: itdate
1005 REAL(KIND=JPRB) :: zhook_handle
1007 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT1_ASC',0,zhook_handle)
1014 IF (lwork0) ymask=
'FULL '
1016 CALL
posnam(nunit,ymask//
' '//trim(hrec)//
'%TDATE',gfound,nluout)
1018 READ(nunit,fmt=*,end=100)
1019 READ(nunit,fmt=
'(A50)') ycomment
1020 READ(nunit,fmt=*,err=100) itdate(:,:)
1022 kyear(:) = itdate(1,:)
1023 kmonth(:) = itdate(2,:)
1024 kday(:) = itdate(3,:)
1026 CALL
posnam(nunit,cmask//
' '//trim(hrec)//
'%TIME',gfound,nluout)
1028 READ(nunit,fmt=*,end=100)
1029 READ(nunit,fmt=
'(A50)') ycomment
1030 READ(nunit,fmt=*,err=100) ptime
1033 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT1_ASC',1,zhook_handle)
1038 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT1_ASC',1,zhook_handle)
1044 hrec,kyear,kmonth,kday,ptime,kresp,hcomment)
1059 USE modi_error_read_surf_asc
1061 USE yomhook
,ONLY : lhook, dr_hook
1062 USE parkind1
,ONLY : jprb
1070 CHARACTER(LEN=*),
INTENT(IN) :: hrec
1071 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kyear
1072 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kmonth
1073 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kday
1074 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptime
1075 INTEGER,
INTENT(OUT) :: kresp
1076 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1080 CHARACTER(LEN=50) :: ycomment
1081 CHARACTER(LEN=6) :: ymask
1083 INTEGER,
DIMENSION(3,SIZE(KYEAR,1),SIZE(KYEAR,2)) :: itdate
1084 REAL(KIND=JPRB) :: zhook_handle
1086 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT2_ASC',0,zhook_handle)
1093 IF (lwork0) ymask=
'FULL '
1095 CALL
posnam(nunit,ymask//
' '//trim(hrec)//
'%TDATE',gfound,nluout)
1097 READ(nunit,fmt=*,end=100)
1098 READ(nunit,fmt=
'(A50)') ycomment
1099 READ(nunit,fmt=*,err=100) itdate(:,:,:)
1101 kyear(:,:) = itdate(1,:,:)
1102 kmonth(:,:) = itdate(2,:,:)
1103 kday(:,:) = itdate(3,:,:)
1105 CALL
posnam(nunit,ymask//
' '//trim(hrec)//
'%TIME',gfound,nluout)
1107 READ(nunit,fmt=*,end=100)
1108 READ(nunit,fmt=
'(A50)') ycomment
1109 READ(nunit,fmt=*,err=100) ptime
1113 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT2_ASC',1,zhook_handle)
1118 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_ASC:READ_SURFT2_ASC',1,zhook_handle)
subroutine read_surft2_asc(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surft0_asc(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surfx2_asc(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine error_read_surf_asc(HREC, KRESP)
subroutine read_surft1_asc(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surfl1_asc(HREC, OFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfn1_asc(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine read_surfn0_asc(HREC, KFIELD, KRESP, HCOMMENT)
subroutine read_surfc0_asc(HREC, HFIELD, KRESP, HCOMMENT)
subroutine io_buff(HREC, HACTION, OKNOWN)
subroutine read_surfx0_asc(HREC, PFIELD, KRESP, HCOMMENT)
subroutine read_surfx1_asc(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfl0_asc(HREC, OFIELD, KRESP, HCOMMENT)