41 CHARACTER(LEN=*),
INTENT(IN) :: hrec
42 REAL,
INTENT(OUT) :: pfield
43 INTEGER,
INTENT(OUT) :: kresp
44 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
47 CHARACTER(LEN=*),
INTENT(IN) :: hrec
48 INTEGER,
INTENT(OUT) :: kfield
49 INTEGER,
INTENT(OUT) :: kresp
50 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
53 CHARACTER(LEN=*),
INTENT(IN) :: hrec
54 CHARACTER(LEN=40),
INTENT(OUT) :: hfield
55 INTEGER,
INTENT(OUT) :: kresp
56 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
59 CHARACTER(LEN=*),
INTENT(IN) :: hrec
60 LOGICAL,
INTENT(OUT) :: ofield
61 INTEGER,
INTENT(OUT) :: kresp
62 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
67 CHARACTER(LEN=*),
INTENT(IN) :: hrec
68 REAL,
DIMENSION(:),
INTENT(OUT) :: pfield
69 INTEGER,
INTENT(OUT) :: kresp
70 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
71 CHARACTER(LEN=1),
INTENT(IN) :: hdir
74 CHARACTER(LEN=*),
INTENT(IN) :: hrec
75 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfield
76 INTEGER,
INTENT(OUT) :: kresp
77 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
78 CHARACTER(LEN=1),
INTENT(IN) :: hdir
81 CHARACTER(LEN=*),
INTENT(IN) :: hrec
82 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: pfield
83 INTEGER,
INTENT(OUT) :: kresp
84 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
85 CHARACTER(LEN=1),
INTENT(IN) :: hdir
88 CHARACTER(LEN=*),
INTENT(IN) :: hrec
89 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kfield
90 INTEGER,
INTENT(OUT) :: kresp
91 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
92 CHARACTER(LEN=1),
INTENT(IN) :: hdir
95 CHARACTER(LEN=*),
INTENT(IN) :: hrec
96 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: ofield
97 INTEGER,
INTENT(OUT) :: kresp
98 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
99 CHARACTER(LEN=1),
INTENT(IN) :: hdir
104 CHARACTER(LEN=*),
INTENT(IN) :: hrec
105 INTEGER,
INTENT(OUT) :: kyear
106 INTEGER,
INTENT(OUT) :: kmonth
107 INTEGER,
INTENT(OUT) :: kday
108 REAL,
INTENT(OUT) :: ptime
109 INTEGER,
INTENT(OUT) :: kresp
110 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
124 USE modi_ol_find_file_read
125 USE modi_error_read_surf_ol
127 USE yomhook
,ONLY : lhook, dr_hook
128 USE parkind1
,ONLY : jprb
136 CHARACTER(LEN=*),
INTENT(IN) :: hrec
137 REAL,
INTENT(OUT) :: pfield
138 INTEGER,
INTENT(OUT) :: kresp
139 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
144 CHARACTER(LEN=100) :: yfile
145 INTEGER :: ivar_id,ifile_id,jret,ival,itype,indims
146 INTEGER,
DIMENSION(4) :: iret
147 REAL(KIND=JPRB) :: zhook_handle
149 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX0_OL',0,zhook_handle)
158 IF (ifile_id.NE.0)
THEN
162 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
163 iret(1)=nf_inq_vartype(ifile_id,ivar_id,itype)
164 iret(1)=nf_inq_varndims(ifile_id,ivar_id,indims)
168 IF (itype==nf_double)
THEN
169 iret(2)=nf_get_var_double(ifile_id,ivar_id,pfield)
170 ELSEIF (itype==nf_float)
THEN
171 iret(2)=nf_get_var_real(ifile_id,ivar_id,zfield)
180 IF ((pfield==xundef).OR.(ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
188 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX0_OL',1,zhook_handle)
206 USE modi_ol_find_file_read
207 USE modi_error_read_surf_ol
210 USE yomhook
,ONLY : lhook, dr_hook
211 USE parkind1
,ONLY : jprb
223 CHARACTER(LEN=*),
INTENT(IN) :: hrec
224 REAL,
DIMENSION(:),
INTENT(OUT) :: pfield
225 INTEGER,
INTENT(OUT) :: kresp
226 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
227 CHARACTER(LEN=1),
INTENT(IN) :: hdir
233 CHARACTER(LEN=100) :: yfile,yout
234 INTEGER :: ivar_id,ifile_id,jret,jdim,indims, itype
235 INTEGER,
DIMENSION(2) :: idimids,idimlen
236 INTEGER,
DIMENSION(2) :: iret
238 INTEGER,
DIMENSION(:),
ALLOCATABLE :: istart,icount,istride
239 REAL*4,
DIMENSION(:),
ALLOCATABLE :: ztab_1d4
240 DOUBLE PRECISION :: xtime0
241 REAL(KIND=JPRB) :: zhook_handle
243 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX1_OL',0,zhook_handle)
257 IF (nrank==npio)
THEN
265 IF (ifile_id.NE.0)
THEN
269 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
270 iret(1)=nf_inq_vartype(ifile_id,ivar_id,itype)
271 iret(1)=nf_inq_varndims(ifile_id,ivar_id,indims)
272 iret(1)=nf_inq_vardimid(ifile_id,ivar_id,idimids(1:indims))
275 jret=nf_inq_dimlen(ifile_id,idimids(jdim),idimlen(jdim))
277 ALLOCATE(xworkd(idimlen(1)*idimlen(2)))
284 ALLOCATE(istart(indims))
285 ALLOCATE(icount(indims))
286 ALLOCATE(istride(indims))
288 iret=nf_inq_dimname(ifile_id,idimids(jdim),yout)
289 IF ((index(yout,
'time') > 0).OR.(index(yout,
'TIME') >0) &
290 .OR.(index(yout,
'Time')>0.))
THEN
293 istride(jdim)=xstride
296 icount(jdim)=idimlen(jdim)
301 IF (itype==nf_double)
THEN
302 iret(1)=nf_get_vars_double(ifile_id,ivar_id,istart,icount,istride,xworkd)
303 ELSEIF (itype==nf_float)
THEN
304 ALLOCATE(ztab_1d4(idimlen(1)*idimlen(2)))
305 iret(1)=nf_get_vars_real(ifile_id,ivar_id,istart,icount,istride,ztab_1d4)
306 xworkd(:) = ztab_1d4(:)
315 IF (itype==nf_double)
THEN
316 iret(1)=nf_get_var_double(ifile_id,ivar_id,xworkd)
317 ELSEIF (itype==nf_float)
THEN
318 ALLOCATE(ztab_1d4(idimlen(1)*idimlen(2)))
319 iret(1)=nf_get_var_real(ifile_id,ivar_id,ztab_1d4)
320 xworkd(:) = ztab_1d4(:)
330 IF ((ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
334 IF (minval(xworkd)==xundef)
THEN
354 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
369 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX1_OL',1,zhook_handle)
386 USE modi_ol_find_file_read
387 USE modi_error_read_surf_ol
390 USE yomhook
,ONLY : lhook, dr_hook
391 USE parkind1
,ONLY : jprb
403 CHARACTER(LEN=*),
INTENT(IN) :: hrec
404 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfield
405 INTEGER,
INTENT(OUT) :: kresp
406 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
407 CHARACTER(LEN=1),
INTENT(IN) :: hdir
413 CHARACTER(LEN=100) :: yfile,yout
414 INTEGER :: ivar_id,ifile_id,jret,jdim,indims,itype
415 INTEGER,
DIMENSION(3) :: idimids,idimlen
416 INTEGER,
DIMENSION(2) :: iret
417 INTEGER,
DIMENSION(:),
ALLOCATABLE :: istart,istride,icount
418 REAL*4,
DIMENSION(:,:),
ALLOCATABLE :: ztab_2d4
419 DOUBLE PRECISION :: xtime0
420 REAL(KIND=JPRB) :: zhook_handle
422 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX2_OL',0,zhook_handle)
436 IF (nrank==npio)
THEN
444 IF (ifile_id.NE.0)
THEN
448 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
449 iret(1)=nf_inq_vartype(ifile_id,ivar_id,itype)
450 iret(1)=nf_inq_varndims(ifile_id,ivar_id,indims)
451 iret(1)=nf_inq_vardimid(ifile_id,ivar_id,idimids(1:indims))
454 jret=nf_inq_dimlen(ifile_id,idimids(jdim),idimlen(jdim))
462 ALLOCATE(istart(indims))
463 ALLOCATE(icount(indims))
465 ALLOCATE(istride(indims))
467 iret=nf_inq_dimname(ifile_id,idimids(jdim),yout)
468 IF ((index(yout,
'time') > 0).OR.(index(yout,
'TIME') >0) &
469 .OR.(index(yout,
'Time')>0.))
THEN
472 istride(jdim)=xstride
475 icount(jdim)=idimlen(jdim)
480 ALLOCATE(xworkd2(product(icount(1:indims-1)),icount(indims)))
481 IF (itype==nf_double)
THEN
482 iret(2)=nf_get_vars_double(ifile_id,ivar_id,istart,icount,istride,xworkd2)
483 ELSEIF (itype==nf_float)
THEN
484 ALLOCATE(ztab_2d4(product(icount(1:indims-1)),icount(indims)))
485 iret(2)=nf_get_vars_real(ifile_id,ivar_id,istart,icount,istride,ztab_2d4)
486 xworkd2(:,:) = ztab_2d4(:,:)
494 ALLOCATE(xworkd2(product(idimlen(1:indims-1)),idimlen(indims)))
495 IF (itype==nf_double)
THEN
496 iret(2)=nf_get_var_double(ifile_id,ivar_id,xworkd2)
497 ELSEIF (itype==nf_float)
THEN
498 ALLOCATE(ztab_2d4(product(idimlen(1:indims-1)),idimlen(indims)))
499 iret(2)=nf_get_var_real(ifile_id,ivar_id,ztab_2d4)
500 xworkd2(:,:) = ztab_2d4(:,:)
510 IF ((ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
514 IF (minval(xworkd2)==xundef)
THEN
527 ALLOCATE(xworkd2(0,0))
534 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
549 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX2_OL',1,zhook_handle)
566 USE modi_ol_find_file_read
567 USE modi_error_read_surf_ol
570 USE yomhook
,ONLY : lhook, dr_hook
571 USE parkind1
,ONLY : jprb
583 CHARACTER(LEN=*),
INTENT(IN) :: hrec
584 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: pfield
585 INTEGER,
INTENT(OUT) :: kresp
586 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
587 CHARACTER(LEN=1),
INTENT(IN) :: hdir
593 CHARACTER(LEN=100) :: yfile,yout
594 INTEGER :: ivar_id,ifile_id,jret,jdim,indims,itype
595 INTEGER,
DIMENSION(3) :: idimids,idimlen
596 INTEGER,
DIMENSION(2) :: iret
597 INTEGER,
DIMENSION(:),
ALLOCATABLE :: istart,istride,icount
598 REAL*4,
DIMENSION(:,:,:),
ALLOCATABLE :: ztab_3d4
599 DOUBLE PRECISION :: xtime0
600 REAL(KIND=JPRB) :: zhook_handle
602 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX3_OL',0,zhook_handle)
616 IF (nrank==npio)
THEN
624 IF (ifile_id.NE.0)
THEN
628 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
629 iret(1)=nf_inq_vartype(ifile_id,ivar_id,itype)
630 iret(1)=nf_inq_varndims(ifile_id,ivar_id,indims)
631 iret(1)=nf_inq_vardimid(ifile_id,ivar_id,idimids(1:indims))
633 jret=nf_inq_dimlen(ifile_id,idimids(jdim),idimlen(jdim))
641 ALLOCATE(istart(indims))
642 ALLOCATE(icount(indims))
643 ALLOCATE(istride(indims))
645 iret=nf_inq_dimname(ifile_id,idimids(jdim),yout)
646 IF ((index(yout,
'time') > 0).OR.(index(yout,
'TIME') >0) &
647 .OR.(index(yout,
'Time')>0.))
THEN
650 istride(jdim)=xstride
653 icount(jdim)=idimlen(jdim)
658 ALLOCATE(xworkd3(icount(1),icount(2),icount(3)))
660 IF (itype==nf_double)
THEN
661 iret(2)=nf_get_vars_double(ifile_id,ivar_id,istart,icount,istride,xworkd3)
662 ELSEIF (itype==nf_float)
THEN
663 ALLOCATE(ztab_3d4(icount(1),icount(2),icount(3)))
664 iret(2)=nf_get_vars_real(ifile_id,ivar_id,istart,icount,istride,ztab_3d4)
665 xworkd3(:,:,:) = ztab_3d4(:,:,:)
673 ALLOCATE(xworkd3(idimlen(1),idimlen(2),idimlen(3)))
674 IF (itype==nf_double)
THEN
675 iret(2)=nf_get_var_double(ifile_id,ivar_id,xworkd3)
676 ELSEIF (itype==nf_float)
THEN
677 ALLOCATE(ztab_3d4(icount(1),icount(2),icount(3)))
678 iret(2)=nf_get_var_real(ifile_id,ivar_id,ztab_3d4)
679 xworkd3(:,:,:) = ztab_3d4(:,:,:)
689 IF ((ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
693 IF (minval(xworkd3)==xundef)
THEN
706 ALLOCATE(xworkd3(0,0,0))
713 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
728 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFX3_OL',1,zhook_handle)
740 USE modi_ol_find_file_read
741 USE modi_error_read_surf_ol
743 USE yomhook
,ONLY : lhook, dr_hook
744 USE parkind1
,ONLY : jprb
752 CHARACTER(LEN=*),
INTENT(IN) :: hrec
753 INTEGER,
INTENT(OUT) :: kfield
754 INTEGER,
INTENT(OUT) :: kresp
755 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
760 CHARACTER(LEN=100):: yfile
761 INTEGER :: ivar_id,ifile_id,jret,jdim,indims
762 INTEGER,
DIMENSION(4) :: iret
763 REAL(KIND=JPRB) :: zhook_handle
765 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFN0_OL',0,zhook_handle)
774 IF (ifile_id.NE.0)
THEN
778 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
782 iret(2)=nf_get_var_int(ifile_id,ivar_id,kfield)
789 IF ((kfield==nundef).OR.(ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
797 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFN0_OL',1,zhook_handle)
807 USE yomhook
,ONLY : lhook, dr_hook
808 USE parkind1
,ONLY : jprb
810 USE modi_read_surfx1_ol
816 CHARACTER(LEN=*),
INTENT(IN) :: hrec
817 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kfield
818 INTEGER,
INTENT(OUT) :: kresp
819 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
820 CHARACTER(LEN=1),
INTENT(IN) :: hdir
826 REAL,
DIMENSION(SIZE(KFIELD)) :: zfield
827 REAL(KIND=JPRB) :: zhook_handle
829 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFN1_OL',0,zhook_handle)
832 kfield = nint(zfield)
834 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFN1_OL',1,zhook_handle)
844 USE modi_ol_find_file_read
845 USE modi_error_read_surf_ol
849 USE yomhook
,ONLY : lhook, dr_hook
850 USE parkind1
,ONLY : jprb
858 CHARACTER(LEN=*),
INTENT(IN) :: hrec
859 CHARACTER(LEN=40),
INTENT(OUT) :: hfield
860 INTEGER,
INTENT(OUT) :: kresp
861 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
865 CHARACTER(LEN=100):: yfile
866 CHARACTER(LEN=100):: yfield
867 INTEGER :: ivar_id,ifile_id,jret,jdim,indims
868 INTEGER,
DIMENSION(4) :: iret
869 REAL(KIND=JPRB) :: zhook_handle
871 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFC0_OL',0,zhook_handle)
880 IF (ifile_id.NE.0)
THEN
884 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
888 iret(2)=nf_get_var_text(ifile_id,ivar_id,yfield)
889 hfield=yfield(:len_trim(yfield))
896 IF ((ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
903 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFC0_OL',1,zhook_handle)
913 USE modi_ol_find_file_read
914 USE modi_error_read_surf_ol
918 USE yomhook
,ONLY : lhook, dr_hook
919 USE parkind1
,ONLY : jprb
927 CHARACTER(LEN=*),
INTENT(IN) :: hrec
928 LOGICAL,
INTENT(OUT) :: ofield
929 INTEGER,
INTENT(OUT) :: kresp
930 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
934 CHARACTER(LEN=1) :: yfield
935 CHARACTER(LEN=100) :: yfile
936 INTEGER :: ivar_id,ifile_id, jret
937 INTEGER,
DIMENSION(2) :: iret
938 REAL(KIND=JPRB) :: zhook_handle
940 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFL0_OL',0,zhook_handle)
949 IF (ifile_id.NE.0)
THEN
953 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
957 iret(2)=nf_get_var_text(ifile_id,ivar_id,yfield)
959 IF (yfield ==
'T') ofield=.true.
960 IF (yfield ==
'F') ofield=.false.
966 IF ((ifile_id==0).OR.iret(1).NE.nf_noerr)
THEN
972 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFL0_OL',1,zhook_handle)
982 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
986 USE modi_ol_find_file_read
987 USE modi_error_read_surf_ol
991 USE yomhook
,ONLY : lhook, dr_hook
992 USE parkind1
,ONLY : jprb
1004 CHARACTER(LEN=*),
INTENT(IN) :: hrec
1005 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: ofield
1006 INTEGER,
INTENT(OUT) :: kresp
1007 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1008 CHARACTER(LEN=1),
INTENT(IN) :: hdir
1014 CHARACTER(LEN=100) :: yfile
1015 CHARACTER(LEN=1),
DIMENSION(:),
ALLOCATABLE :: ytab_1d
1017 INTEGER :: ivar_id,ifile_id,jret,jdim,indims
1019 INTEGER,
DIMENSION(1) :: idimids,idimlen
1020 INTEGER,
DIMENSION(2) :: iret
1021 INTEGER,
DIMENSION(:),
POINTER :: imask
1022 DOUBLE PRECISION :: xtime0
1023 REAL(KIND=JPRB) :: zhook_handle
1025 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFL1_OL',0,zhook_handle)
1036 xtime0 = mpi_wtime()
1040 ALLOCATE(lworkd(
SIZE(ofield)))
1043 IF (nrank==npio)
THEN
1051 IF (ifile_id.NE.0)
THEN
1055 iret(1)=nf_inq_varid(ifile_id,hrec,ivar_id)
1056 iret(1)=nf_inq_varndims(ifile_id,ivar_id,indims)
1057 iret(1)=nf_inq_vardimid(ifile_id,ivar_id,idimids)
1059 jret=nf_inq_dimlen(ifile_id,idimids(jdim),idimlen(jdim))
1061 ALLOCATE(ytab_1d(idimlen(1)))
1065 iret(1)=nf_get_var_text(ifile_id,ivar_id,ytab_1d)
1067 DO jret=1,idimlen(1)
1068 IF (ytab_1d(jret) ==
'T') lworkd(jret)=.true.
1069 IF (ytab_1d(jret) ==
'F') lworkd(jret)=.false.
1077 IF ((ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
1093 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
1098 xtime0 = mpi_wtime()
1100 CALL mpi_bcast(lworkd,
SIZE(lworkd),mpi_logical,npio,ncomm,infompi)
1102 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
1108 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFL1_OL',1,zhook_handle)
1119 USE modi_ol_find_file_read
1120 USE modi_error_read_surf_ol
1124 USE yomhook
,ONLY : lhook, dr_hook
1125 USE parkind1
,ONLY : jprb
1129 include
"netcdf.inc"
1133 CHARACTER(LEN=*),
INTENT(IN) :: hrec
1134 INTEGER,
INTENT(OUT) :: kyear
1135 INTEGER,
INTENT(OUT) :: kmonth
1136 INTEGER,
INTENT(OUT) :: kday
1137 REAL,
INTENT(OUT) :: ptime
1138 INTEGER,
INTENT(OUT) :: kresp
1139 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1144 CHARACTER(LEN=18) :: yrecfm
1145 CHARACTER(LEN=100) :: yfile
1146 INTEGER :: ivar_id,ifile_id,jret,jdim,indims,jwrk
1147 INTEGER,
DIMENSION(1) :: idimids,idimlen
1148 INTEGER,
DIMENSION(4) :: iret
1149 INTEGER,
DIMENSION(3) :: itdate
1150 INTEGER,
DIMENSION(:),
POINTER :: imask
1152 REAL(KIND=JPRB) :: zhook_handle
1154 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFT0_OL',0,zhook_handle)
1161 yrecfm=trim(hrec)//
'-TDATE'
1163 yrecfm=trim(hrec)//
'-TIME'
1169 IF (ifile_id.NE.0)
THEN
1173 jret=nf_inq_varid(ifile_id,yrecfm,ivar_id)
1178 iret(jwrk)=nf_get_var_int(ifile_id,ivar_id,itdate)
1183 iret(jwrk)=nf_get_var_double(ifile_id,ivar_id,ptime)
1191 IF ((ifile_id==0).OR.iret(jret).NE.nf_noerr)
THEN
1197 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_OL:READ_SURFT0_OL',1,zhook_handle)
subroutine read_surfx3_ol(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfc0_ol(HREC, HFIELD, KRESP, HCOMMENT)
subroutine ol_find_file_read(HNAME, IFILE_ID)
subroutine read_surfx1_ol(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfx2_ol(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surft0_ol(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surfl0_ol(HREC, OFIELD, KRESP, HCOMMENT)
subroutine read_surfl1_ol(HREC, OFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfn0_ol(HREC, KFIELD, KRESP, HCOMMENT)
subroutine read_surfx0_ol(HREC, PFIELD, KRESP, HCOMMENT)
subroutine read_surfn1_ol(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine error_read_surf_ol(HREC, KRESP)