68 USE modi_error_read_surf_lfi
70 USE yomhook
,ONLY : lhook, dr_hook
71 USE parkind1
,ONLY : jprb
77 CHARACTER(LEN=*),
INTENT(IN) :: hrec
78 REAL,
INTENT(OUT) :: pfield
79 INTEGER,
INTENT(OUT) :: kresp
80 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
86 REAL(KIND=JPRB) :: zhook_handle
88 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX0_LFI',0,zhook_handle)
92 CALL fmreadx0(cfile_lfi,hrec,cluout_lfi,1,pfield,igrid,ilench,hcomment,kresp)
96 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX0_LFI',1,zhook_handle)
106 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
114 USE modi_error_read_surf_lfi
116 USE modi_get_surf_undef
118 USE yomhook
,ONLY : lhook, dr_hook
119 USE parkind1
,ONLY : jprb
129 CHARACTER(LEN=*),
INTENT(IN) :: hrec
130 REAL,
DIMENSION(:),
INTENT(OUT) :: pfield
131 INTEGER,
INTENT(OUT) :: kresp
132 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
133 CHARACTER(LEN=1),
INTENT(IN) :: hdir
139 CHARACTER(LEN=18) :: yrec
143 INTEGER :: iversion, ibugfix
144 INTEGER :: il1, infompi
147 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: istatus
149 DOUBLE PRECISION :: xtime0
150 REAL(KIND=JPRB) :: zhook_handle
152 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX1_LFI',0,zhook_handle)
168 ALLOCATE(xworkd(il1))
172 IF (nrank==npio)
THEN
177 ALLOCATE(xworkd(il1))
178 ELSEIF (hdir/=
'-')
THEN
179 ALLOCATE(xworkd(nfull))
189 IF (hrec(1:2)==
'D_')
THEN
190 CALL fmreadn0(cfile_lfi,
'VERSION',cluout_lfi,1,iversion,igrid,ilench,hcomment,nworkb)
191 CALL fmreadn0(cfile_lfi,
'BUG',cluout_lfi,1,ibugfix,igrid,ilench,hcomment,nworkb)
192 IF (iversion<=2 .OR. (iversion==3 .AND. ibugfix<=5)) yrec =
'DATA_'//hrec(3:12)
196 IF (hdir==
'H' .OR. hdir==
'A')
THEN
197 IF (.NOT. lmnh_compatible)
THEN
198 CALL fmreadx1(cfile_lfi,yrec,cluout_lfi,nfull,xworkd,igrid,ilench,hcomment,nworkb)
203 CALL fmreadx1(cfile_lfi,yrec,cluout_lfi,il1,xworkd,igrid,ilench,hcomment,nworkb)
209 ELSEIF (hdir/=
'-')
THEN
218 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
222 IF ( nrank==npio )
THEN
226 pfield(:) = xworkd(1:il1)
228 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
231 ELSEIF (hdir==
'-')
THEN
236 CALL mpi_bcast(xworkd,il1*kind(xworkd)/4,mpi_real,npio,ncomm,infompi)
237 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
241 pfield(:) = xworkd(:)
253 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX1_LFI',1,zhook_handle)
264 niu, nib, nie, nju, njb, nje
267 USE modi_error_read_surf_lfi
269 USE yomhook
,ONLY : lhook, dr_hook
270 USE parkind1
,ONLY : jprb
276 CHARACTER(LEN=*),
INTENT(IN) :: hrec
277 REAL,
DIMENSION(:),
INTENT(OUT):: pfield
278 INTEGER,
INTENT(OUT):: kresp
279 CHARACTER(LEN=100),
INTENT(OUT):: hcomment
280 CHARACTER(LEN=1),
INTENT(IN) :: hdir
287 CHARACTER(LEN=4) :: yrec1d
290 INTEGER :: igrid, ilench
291 REAL,
DIMENSION(:),
ALLOCATABLE :: zwork1d
292 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zwork2d
293 REAL(KIND=JPRB) :: zhook_handle
295 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX1_LFI:READ_IN_LFI_X1_FOR_MNH',0,zhook_handle)
297 ALLOCATE(zwork2d(niu,nju))
300 IF (hrec==
'XX ' .OR. hrec==
'DX ')
THEN
301 ALLOCATE(zwork1d(niu))
304 ELSEIF (hrec==
'YY ' .OR. hrec==
'DY ')
THEN
305 ALLOCATE(zwork1d(nju))
308 ELSEIF (njb==nje)
THEN
309 ALLOCATE(zwork1d(niu))
311 ELSEIF (nib==nie)
THEN
312 ALLOCATE(zwork1d(nju))
316 IF (hrec==
'XX' .OR. hrec==
'YY'.OR. hrec==
'DX' .OR. hrec==
'DY')
THEN
318 CALL fmreadx1(cfile_lfi,yrec1d,cluout_lfi,ilen,zwork1d,igrid,ilench,hcomment,kresp)
323 DO jj = 1,
SIZE(zwork2d,2)
324 zwork2d(nib:nie,jj) = 0.5 * zwork1d(nib:nie) + 0.5 * zwork1d(nib+1:nie+1)
327 DO jj = 1,
SIZE(zwork2d,2)
328 zwork2d(nib:nie,jj) = - zwork1d(nib:nie) + zwork1d(nib+1:nie+1)
331 DO ji = 1,
SIZE(zwork2d,1)
332 zwork2d(ji,njb:nje) = 0.5 * zwork1d(njb:nje) + 0.5 * zwork1d(njb+1:nje+1)
335 DO ji = 1,
SIZE(zwork2d,1)
336 zwork2d(ji,njb:nje) = - zwork1d(njb:nje) + zwork1d(njb+1:nje+1)
342 ELSEIF (njb==nje)
THEN
344 CALL fmreadx1(cfile_lfi,yrec,cluout_lfi,
SIZE(zwork1d),zwork1d,igrid,ilench,hcomment,kresp)
345 DO jj = 1,
SIZE(zwork2d,2)
346 zwork2d(nib:nie,jj) = zwork1d(nib:nie)
351 ELSEIF (nib==nie)
THEN
353 CALL fmreadx1(cfile_lfi,yrec,cluout_lfi,
SIZE(zwork1d),zwork1d,igrid,ilench,hcomment,kresp)
354 DO ji = 1,
SIZE(zwork2d,1)
355 zwork2d(ji,njb:nje) = zwork1d(njb:nje)
362 CALL fmreadx2(cfile_lfi,hrec,cluout_lfi,
SIZE(zwork2d),zwork2d,igrid,ilench,hcomment,kresp)
368 pfield(ji+(nie-nib+1)*(jj-1)) = zwork2d(nib+ji-1,njb+jj-1)
376 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX1_LFI:READ_IN_LFI_X1_FOR_MNH',1,zhook_handle)
388 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
396 USE modi_error_read_surf_lfi
398 USE modi_get_surf_undef
400 USE yomhook
,ONLY : lhook, dr_hook
401 USE parkind1
,ONLY : jprb
411 CHARACTER(LEN=*),
INTENT(IN) :: hrec
412 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfield
413 INTEGER,
INTENT(OUT) :: kresp
414 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
415 CHARACTER(LEN=1),
INTENT(IN) :: hdir
421 CHARACTER(LEN=16) :: yrec
425 INTEGER :: iversion, ibugfix
426 INTEGER :: il1, il2, infompi
429 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: istatus
431 DOUBLE PRECISION :: xtime0
432 REAL(KIND=JPRB) :: zhook_handle
434 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX2_LFI',0,zhook_handle)
451 ALLOCATE(xworkd2(il1,il2))
455 IF (nrank==npio)
THEN
460 ALLOCATE(xworkd2(il1,il2))
461 ELSEIF (hdir/=
'-')
THEN
462 ALLOCATE(xworkd2(nfull,il2))
472 IF (hrec(1:2)==
'D_')
THEN
473 CALL fmreadn0(cfile_lfi,
'VERSION',cluout_lfi,1,iversion,igrid,ilench,hcomment,nworkb)
474 CALL fmreadn0(cfile_lfi,
'BUG',cluout_lfi,1,ibugfix,igrid,ilench,hcomment,nworkb)
475 IF (iversion<=2 .OR. (iversion==3 .AND. ibugfix<=5)) yrec =
'DATA_'//hrec(3:12)
476 IF (yrec(13:15)==
'SOI') yrec=yrec(1:15)//
'L'
477 IF (yrec(12:14)==
'SOI') yrec=yrec(1:14)//
'L'
481 IF (hdir==
'H' .OR. hdir==
'A')
THEN
482 IF (.NOT. lmnh_compatible)
THEN
483 CALL fmreadx2(cfile_lfi,yrec,cluout_lfi,
SIZE(xworkd2),xworkd2(:,:),igrid,ilench,hcomment,nworkb)
488 CALL fmreadx2(cfile_lfi,yrec,cluout_lfi,il1*il2,xworkd2(:,:),igrid,ilench,hcomment,nworkb)
494 ELSEIF (hdir/=
'-')
THEN
495 ALLOCATE(xworkd2(0,0))
501 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
505 IF ( nrank==npio )
THEN
509 pfield(:,:) = xworkd2(1:il1,:)
511 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
514 ELSEIF (hdir==
'-')
THEN
519 CALL mpi_bcast(xworkd2,il1*il2*kind(xworkd2)/4,mpi_real,npio,ncomm,infompi)
520 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
524 pfield(:,:) = xworkd2(1:il1,:)
535 IF (hdir==
'H' .OR. hdir==
'A')
THEN
537 WHERE(pfield==999.) pfield=zundef
540 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX2_LFI',1,zhook_handle)
551 niu, nib, nie, nju, njb, nje
554 USE modi_error_read_surf_lfi
556 USE yomhook
,ONLY : lhook, dr_hook
557 USE parkind1
,ONLY : jprb
563 CHARACTER(LEN=*),
INTENT(IN) :: hrec
564 REAL,
DIMENSION(:,:),
INTENT(OUT):: pfield
565 INTEGER,
INTENT(OUT):: kresp
566 CHARACTER(LEN=100),
INTENT(OUT):: hcomment
567 CHARACTER(LEN=1),
INTENT(IN) :: hdir
574 INTEGER :: igrid, ilench
575 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zwork3d
576 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zwork2d
577 REAL(KIND=JPRB) :: zhook_handle
579 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX2_LFI:READ_IN_LFI_X2_FOR_MNH',0,zhook_handle)
581 ALLOCATE(zwork3d(niu,nju,
SIZE(pfield,2)))
582 zwork3d(:,:,:) = 999.
585 ALLOCATE(zwork2d(niu,
SIZE(pfield,2)))
587 ELSEIF (nib==nie)
THEN
588 ALLOCATE(zwork2d(nju,
SIZE(pfield,2)))
594 CALL fmreadx2(cfile_lfi,yrec,cluout_lfi,
SIZE(zwork2d),zwork2d,igrid,ilench,hcomment,kresp)
595 DO jj = 1,
SIZE(zwork3d,2)
596 zwork3d(nib:nie,jj,:) = zwork2d(nib:nie,:)
601 ELSEIF (nib==nie)
THEN
603 CALL fmreadx2(cfile_lfi,yrec,cluout_lfi,
SIZE(zwork2d),zwork2d,igrid,ilench,hcomment,kresp)
604 DO ji = 1,
SIZE(zwork3d,1)
605 zwork3d(ji,nib:nie,:) = zwork2d(njb:nje,:)
612 CALL fmreadx3(cfile_lfi,hrec,cluout_lfi,
SIZE(zwork3d),zwork3d,igrid,ilench,hcomment,kresp)
618 pfield(ji+(nie-nib+1)*(jj-1),:) = zwork3d(nib+ji-1,njb+jj-1,:)
624 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFX2_LFI:READ_IN_LFI_X2_FOR_MNH',1,zhook_handle)
638 lmnh_compatible, niu, nib, nie, nju, njb, nje
643 USE modi_error_read_surf_lfi
645 USE yomhook
,ONLY : lhook, dr_hook
646 USE parkind1
,ONLY : jprb
652 CHARACTER(LEN=*),
INTENT(IN) :: hrec
653 INTEGER,
INTENT(OUT) :: kfield
654 INTEGER,
INTENT(OUT) :: kresp
655 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
659 CHARACTER(LEN=40) :: ygrid
662 INTEGER :: iimax, ijmax
665 REAL(KIND=JPRB) :: zhook_handle
667 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFN0_LFI',0,zhook_handle)
671 CALL fmreadn0(cfile_lfi,hrec,cluout_lfi,1,kfield,igrid,ilench,hcomment,kresp)
677 IF (hrec/=
'DIM_FULL' .AND. lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFN0_LFI',1,zhook_handle)
678 IF (hrec/=
'DIM_FULL')
RETURN
688 CALL fmreadc0(cfile_lfi,
'GRID_TYPE ',cluout_lfi,1,ygrid,igrid,ilench,hcomment,kresp)
690 lmnh_compatible = (ygrid==
"CARTESIAN " .OR. ygrid==
"CONF PROJ ")
692 IF (lmnh_compatible)
THEN
693 CALL fmreadn0(cfile_lfi,
'IMAX',cluout_lfi,1,iimax,igrid,ilench,hcomment,kresp)
698 CALL fmreadn0(cfile_lfi,
'JMAX',cluout_lfi,1,ijmax,igrid,ilench,hcomment,kresp)
713 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFN0_LFI',1,zhook_handle)
723 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
730 USE modi_error_read_surf_lfi
733 USE yomhook
,ONLY : lhook, dr_hook
734 USE parkind1
,ONLY : jprb
744 CHARACTER(LEN=*),
INTENT(IN) :: hrec
745 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kfield
746 INTEGER,
INTENT(OUT) :: kresp
747 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
748 CHARACTER(LEN=1),
INTENT(IN) :: hdir
756 INTEGER :: il1, infompi
759 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: istatus
761 DOUBLE PRECISION :: xtime0
762 REAL(KIND=JPRB) :: zhook_handle
764 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFN1_LFI',0,zhook_handle)
780 ALLOCATE(nworkd(il1))
784 IF (nrank==npio)
THEN
789 ALLOCATE(nworkd(il1))
790 ELSEIF (hdir/=
'-')
THEN
791 ALLOCATE(nworkd(nfull))
795 CALL fmreadn1(cfile_lfi,hrec,cluout_lfi,nfull,nworkd,igrid,ilench,hcomment,nworkb)
797 CALL fmreadn1(cfile_lfi,hrec,cluout_lfi,il1,nworkd(:),igrid,ilench,hcomment,nworkb)
809 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
813 IF ( nrank==npio )
THEN
817 kfield(:) = nworkd(1:il1)
819 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
822 ELSEIF (hdir==
'-')
THEN
827 CALL mpi_bcast(nworkd,il1*kind(nworkd)/4,mpi_integer,npio,ncomm,infompi)
828 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
832 kfield(:) = nworkd(1:il1)
843 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFN1_LFI',1,zhook_handle)
856 USE modi_error_read_surf_lfi
858 USE yomhook
,ONLY : lhook, dr_hook
859 USE parkind1
,ONLY : jprb
865 CHARACTER(LEN=*),
INTENT(IN) :: hrec
866 CHARACTER(LEN=40),
INTENT(OUT) :: hfield
867 INTEGER,
INTENT(OUT) :: kresp
868 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
874 REAL(KIND=JPRB) :: zhook_handle
876 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFC0_LFI',0,zhook_handle)
880 CALL fmreadc0(cfile_lfi,hrec,cluout_lfi,1,hfield,igrid,ilench,hcomment,kresp)
884 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFC0_LFI',1,zhook_handle)
897 USE modi_error_read_surf_lfi
899 USE yomhook
,ONLY : lhook, dr_hook
900 USE parkind1
,ONLY : jprb
906 CHARACTER(LEN=*),
INTENT(IN) :: hrec
907 LOGICAL,
INTENT(OUT) :: ofield
908 INTEGER,
INTENT(OUT) :: kresp
909 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
915 REAL(KIND=JPRB) :: zhook_handle
917 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFL0_LFI',0,zhook_handle)
921 CALL fmreadl0(cfile_lfi,hrec,cluout_lfi,1,ofield,igrid,ilench,hcomment,kresp)
925 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFL0_LFI',1,zhook_handle)
935 USE modd_surfex_mpi, ONLY : nrank, nproc, ncomm, npio, xtime_npio_read, xtime_comm_read
942 USE modi_error_read_surf_lfi
946 USE yomhook
,ONLY : lhook, dr_hook
947 USE parkind1
,ONLY : jprb
957 CHARACTER(LEN=*),
INTENT(IN) :: hrec
958 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: ofield
959 INTEGER,
INTENT(OUT) :: kresp
960 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
961 CHARACTER(LEN=1),
INTENT(IN) :: hdir
970 INTEGER :: il1, infompi
971 DOUBLE PRECISION :: xtime0
972 REAL(KIND=JPRB) :: zhook_handle
974 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFL1_LFI',0,zhook_handle)
986 ALLOCATE(lworkd(il1))
989 IF (nrank==npio)
THEN
995 WRITE(iluout,*)
'Error: 1D logical vector for reading on an horizontal grid:'
996 WRITE(iluout,*)
'this option is not coded in READ_SURFL1_LFI'
997 CALL
abor1_sfx(
'MODE_READ_SURF_LFI: 1D LOGICAL VECTOR FOR READING NOT CODED IN READ_SURFL1_LFI')
1000 CALL fmreadl1(cfile_lfi,hrec,cluout_lfi,il1,lworkd,igrid,ilench,hcomment,nworkb)
1011 xtime_npio_read = xtime_npio_read + (mpi_wtime() - xtime0)
1014 IF (nproc>1 .AND. hdir/=
'A')
THEN
1016 xtime0 = mpi_wtime()
1018 CALL mpi_bcast(lworkd,il1,mpi_logical,npio,ncomm,infompi)
1020 xtime_comm_read = xtime_comm_read + (mpi_wtime() - xtime0)
1026 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFL1_LFI',1,zhook_handle)
1039 USE modi_error_read_surf_lfi
1041 USE yomhook
,ONLY : lhook, dr_hook
1042 USE parkind1
,ONLY : jprb
1048 CHARACTER(LEN=*),
INTENT(IN) :: hrec
1049 INTEGER,
INTENT(OUT) :: kyear
1050 INTEGER,
INTENT(OUT) :: kmonth
1051 INTEGER,
INTENT(OUT) :: kday
1052 REAL,
INTENT(OUT) :: ptime
1053 INTEGER,
INTENT(OUT) :: kresp
1054 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1058 CHARACTER(LEN=12) :: yrec
1059 INTEGER,
DIMENSION(3) :: itdate
1063 REAL(KIND=JPRB) :: zhook_handle
1065 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFT0_LFI',0,zhook_handle)
1069 yrec=trim(hrec)//
'%TDATE'
1070 CALL fmreadn1(cfile_lfi,yrec,cluout_lfi,3,itdate,igrid,ilench,hcomment,kresp)
1073 yrec=trim(hrec)//
'%TIME'
1074 CALL fmreadx0(cfile_lfi,yrec,cluout_lfi,1,ptime,igrid,ilench,hcomment,kresp)
1081 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFT0_LFI',1,zhook_handle)
1094 USE modi_error_read_surf_lfi
1096 USE yomhook
,ONLY : lhook, dr_hook
1097 USE parkind1
,ONLY : jprb
1103 CHARACTER(LEN=*),
INTENT(IN) :: hrec
1104 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kyear
1105 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kmonth
1106 INTEGER,
DIMENSION(:),
INTENT(OUT) :: kday
1107 REAL,
DIMENSION(:),
INTENT(OUT) :: ptime
1108 INTEGER,
INTENT(OUT) :: kresp
1109 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1113 CHARACTER(LEN=12) :: yrec
1117 INTEGER,
DIMENSION(3,SIZE(KYEAR)) :: itdate
1118 REAL(KIND=JPRB) :: zhook_handle
1120 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFT1_LFI',0,zhook_handle)
1124 yrec=trim(hrec)//
'%TDATE'
1125 CALL fmreadn2(cfile_lfi,yrec,cluout_lfi,
SIZE(itdate),itdate,igrid,ilench,hcomment,kresp)
1128 yrec=trim(hrec)//
'%TIME'
1129 CALL fmreadx1(cfile_lfi,yrec,cluout_lfi,
SIZE(ptime),ptime,igrid,ilench,hcomment,kresp)
1132 kyear(:) = itdate(1,:)
1133 kmonth(:) = itdate(2,:)
1134 kday(:) = itdate(3,:)
1136 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFT1_LFI',1,zhook_handle)
1149 USE modi_error_read_surf_lfi
1151 USE yomhook
,ONLY : lhook, dr_hook
1152 USE parkind1
,ONLY : jprb
1158 CHARACTER(LEN=*),
INTENT(IN) :: hrec
1159 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kyear
1160 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kmonth
1161 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kday
1162 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptime
1163 INTEGER,
INTENT(OUT) :: kresp
1164 CHARACTER(LEN=100),
INTENT(OUT) :: hcomment
1168 CHARACTER(LEN=12) :: yrec
1172 REAL(KIND=JPRB) :: zhook_handle
1174 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFT2_LFI',0,zhook_handle)
1178 yrec=trim(hrec)//
'%YEAR'
1179 CALL fmreadn2(cfile_lfi,yrec,cluout_lfi,
SIZE(kyear),kyear,igrid,ilench,hcomment,kresp)
1182 yrec=trim(hrec)//
'%MONTH'
1183 CALL fmreadn2(cfile_lfi,yrec,cluout_lfi,
SIZE(kmonth),kmonth,igrid,ilench,hcomment,kresp)
1186 yrec=trim(hrec)//
'%DAY'
1187 CALL fmreadn2(cfile_lfi,yrec,cluout_lfi,
SIZE(kday),kday,igrid,ilench,hcomment,kresp)
1190 yrec=trim(hrec)//
'%TIME'
1191 CALL fmreadx2(cfile_lfi,yrec,cluout_lfi,
SIZE(ptime),ptime,igrid,ilench,hcomment,kresp)
1194 IF (lhook) CALL dr_hook(
'MODE_READ_SURF_LFI:READ_SURFT2_LFI',1,zhook_handle)
subroutine error_read_surf_lfi(HREC, KRESP)
subroutine read_surfx0_lfi(HREC, PFIELD, KRESP, HCOMMENT)
subroutine read_surft2_lfi(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surfn0_lfi(HREC, KFIELD, KRESP, HCOMMENT)
subroutine read_in_lfi_x2_for_mnh(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine get_surf_undef(PUNDEF)
subroutine abor1_sfx(YTEXT)
subroutine read_surfn1_lfi(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfc0_lfi(HREC, HFIELD, KRESP, HCOMMENT)
subroutine read_in_lfi_x1_for_mnh(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfl0_lfi(HREC, OFIELD, KRESP, HCOMMENT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_surfl1_lfi(HREC, OFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surft0_lfi(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surft1_lfi(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surfx1_lfi(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfx2_lfi(HREC, PFIELD, KRESP, HCOMMENT, HDIR)