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 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KFIELD
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
103 SUBROUTINE read_surft0_nc(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
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
112 SUBROUTINE read_surft1_nc(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
113 CHARACTER(LEN=*),
INTENT(IN) :: HREC
114 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KYEAR
115 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KMONTH
116 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KDAY
117 REAL,
DIMENSION(:),
INTENT(OUT) :: PTIME
118 INTEGER,
INTENT(OUT) :: KRESP
119 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
121 SUBROUTINE read_surft2_nc(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
122 CHARACTER(LEN=*),
INTENT(IN) :: HREC
123 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KYEAR
124 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KMONTH
125 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KDAY
126 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PTIME
127 INTEGER,
INTENT(OUT) :: KRESP
128 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
145 USE modi_error_read_surf_nc
157 CHARACTER(LEN=*),
INTENT(IN) :: HREC
158 REAL,
INTENT(OUT) :: PFIELD
159 INTEGER,
INTENT(OUT) :: KRESP
160 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
165 CHARACTER(LEN=100) :: YFILE
166 INTEGER :: IVAR_ID,JRET,IVAL,ITYPE,INDIMS
167 INTEGER,
DIMENSION(4) :: IRET
168 REAL(KIND=JPRB) :: ZHOOK_HANDLE
170 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX0_NC',0,zhook_handle)
179 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
180 iret(1)=nf90_inquire_variable(
nid_nc,ivar_id,xtype=itype)
181 iret(1)=nf90_inquire_variable(
nid_nc,ivar_id,ndims=indims)
185 IF (itype==nf90_double)
THEN 186 iret(2)=nf90_get_var(
nid_nc,ivar_id,pfield)
187 ELSEIF (itype==nf90_float)
THEN 188 iret(2)=nf90_get_var(
nid_nc,ivar_id,zfield)
192 iret(3) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
199 IF ((pfield==
xundef).OR.(
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 207 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX0_NC',1,zhook_handle)
225 USE modi_error_read_surf_nc
242 CHARACTER(LEN=*),
INTENT(IN) :: HREC
243 REAL,
DIMENSION(:),
INTENT(OUT) :: PFIELD
244 INTEGER,
INTENT(OUT) :: KRESP
245 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
246 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
253 INTEGER,
DIMENSION(MPI_STATUS_SIZE,NPROC-1) :: ISTATUS
255 CHARACTER(LEN=100) :: YFILE,YOUT
256 CHARACTER(LEN=100) :: YNAME
257 INTEGER :: IL1, IVAR_ID,JRET,JDIM,INDIMS, ITYPE, INFOMPI
258 INTEGER,
DIMENSION(2) :: ISTART, ICOUNT
259 INTEGER,
DIMENSION(4) :: IDIMIDS,IDIMLEN
260 INTEGER,
DIMENSION(4) :: IRET
262 REAL,
DIMENSION(:),
ALLOCATABLE :: ZWORK
263 REAL*4,
DIMENSION(:),
ALLOCATABLE :: ZTAB_1D4
264 DOUBLE PRECISION :: XTIME0
265 REAL(KIND=JPRB) :: ZHOOK_HANDLE
267 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX1_NC',0,zhook_handle)
290 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
291 iret(2)=nf90_inquire_variable(
nid_nc,ivar_id,xtype=itype)
293 iret(3)=nf90_inquire_variable(
nid_nc,ivar_id,ndims=indims)
297 iret(4)=nf90_inquire_variable(
nid_nc,ivar_id,dimids=idimids(1:indims))
301 jret=nf90_inquire_dimension(
nid_nc,idimids(jdim),len=idimlen(jdim))
303 iret(4)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
306 IF (trim(yname).NE.
'Number_of_points')
THEN 307 ALLOCATE(zwork(idimlen(1)*idimlen(2)))
309 ALLOCATE(zwork(idimlen(1)))
313 icount(1:indims) = idimlen(1:indims)
325 IF (itype==nf90_double)
THEN 326 iret(1)=nf90_get_var(
nid_nc,ivar_id,zwork,istart,icount)
327 ELSEIF (itype==nf90_float)
THEN 328 ALLOCATE(ztab_1d4(
SIZE(zwork)))
329 iret(2)=nf90_get_var(
nid_nc,ivar_id,ztab_1d4,istart,icount)
330 zwork(:) = ztab_1d4(:)
334 iret(3) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
341 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 349 ELSEIF (hdir/=
'-')
THEN 361 ELSEIF (hdir==
'A')
THEN 366 pfield(:) = zwork(1:
SIZE(pfield))
371 ELSEIF (hdir==
'-')
THEN 375 CALL mpi_bcast(zwork,
SIZE(zwork)*kind(zwork)/4,mpi_real,
npio,
ncomm,infompi)
379 pfield(:) = zwork(1:
SIZE(pfield))
393 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX1_NC',1,zhook_handle)
409 USE modi_error_read_surf_nc
427 CHARACTER(LEN=*),
INTENT(IN) :: HREC
428 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFIELD
429 INTEGER,
INTENT(OUT) :: KRESP
430 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
431 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
438 INTEGER,
DIMENSION(MPI_STATUS_SIZE,NPROC-1) :: ISTATUS
440 CHARACTER(LEN=100) :: YFILE,YOUT
441 CHARACTER(LEN=100) :: YNAME
443 INTEGER :: IVAR_ID,JRET,JDIM, INDIMS,ITYPE, INFOMPI
444 INTEGER,
DIMENSION(4) :: IDIMIDS,IDIMLEN
445 INTEGER,
DIMENSION(3) :: ISTART, ICOUNT
446 INTEGER,
DIMENSION(4) :: IRET
447 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZWORK2
448 REAL*4,
DIMENSION(:,:),
ALLOCATABLE :: ZTAB_2D4
449 DOUBLE PRECISION :: XTIME0
450 REAL(KIND=JPRB) :: ZHOOK_HANDLE
452 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX2_NC',0,zhook_handle)
467 ALLOCATE(zwork2(il1,il2))
476 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
477 iret(2)=nf90_inquire_variable(
nid_nc,ivar_id,xtype=itype)
479 iret(3)=nf90_inquire_variable(
nid_nc,ivar_id,ndims=indims)
480 iret(4)=nf90_inquire_variable(
nid_nc,ivar_id,dimids=idimids(1:indims))
483 jret=nf90_inquire_dimension(
nid_nc,idimids(jdim),len=idimlen(jdim))
486 iret(4)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
489 IF (trim(yname).NE.
'Number_of_points')
THEN 490 ALLOCATE(zwork2(idimlen(1)*idimlen(2),idimlen(3)))
492 ALLOCATE(zwork2(idimlen(1),idimlen(2)))
500 icount(:) = idimlen(1:3)
501 IF (itype==nf90_double)
THEN 502 iret(2)=nf90_get_var(
nid_nc,ivar_id,zwork2,istart,icount)
503 ELSEIF (itype==nf90_float)
THEN 504 ALLOCATE(ztab_2d4(
SIZE(zwork2,1),
SIZE(zwork2,2)))
505 iret(2)=nf90_get_var(
nid_nc,ivar_id,ztab_2d4,istart,icount)
506 zwork2(:,:) = ztab_2d4(:,:)
510 iret(3) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
517 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 525 ELSEIF (hdir/=
'-')
THEN 526 ALLOCATE(zwork2(1,
SIZE(pfield,2)))
537 ELSEIF (hdir==
'A')
THEN 542 pfield(:,:) = zwork2(:,1:
SIZE(pfield,2))
547 ELSEIF (hdir==
'-')
THEN 551 CALL mpi_bcast(zwork2,
SIZE(zwork2)*kind(zwork2)/4,mpi_real,
npio,
ncomm,infompi)
555 pfield(:,:) = zwork2(:,1:
SIZE(pfield,2))
569 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX2_NC',1,zhook_handle)
583 USE modi_error_read_surf_nc
595 CHARACTER(LEN=*),
INTENT(IN) :: HREC
596 INTEGER,
INTENT(OUT) :: KFIELD
597 INTEGER,
INTENT(OUT) :: KRESP
598 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
603 CHARACTER(LEN=100):: YFILE
604 INTEGER :: IVAR_ID,JRET,JDIM,INDIMS
605 INTEGER,
DIMENSION(4) :: IRET
606 REAL(KIND=JPRB) :: ZHOOK_HANDLE
608 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFN0_NC',0,zhook_handle)
617 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
621 iret(2)=nf90_get_var(
nid_nc,ivar_id,kfield)
623 iret(3)=nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
630 IF ((kfield==
nundef).OR.(
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 638 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFN0_NC',1,zhook_handle)
655 USE modi_error_read_surf_nc
672 CHARACTER(LEN=*),
INTENT(IN) :: HREC
673 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KFIELD
674 INTEGER,
INTENT(OUT) :: KRESP
675 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
676 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
682 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IWORK
683 CHARACTER(LEN=100) :: YFILE,YOUT
684 CHARACTER(LEN=100) :: YNAME
685 INTEGER :: IL1, IVAR_ID,JRET,JDIM,INDIMS, ITYPE, INFOMPI
686 INTEGER,
DIMENSION(4) :: IDIMIDS,IDIMLEN
687 INTEGER,
DIMENSION(4) :: IRET
689 DOUBLE PRECISION :: XTIME0
690 REAL(KIND=JPRB) :: ZHOOK_HANDLE
692 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFX1_NC',0,zhook_handle)
715 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
716 iret(2)=nf90_inquire_variable(
nid_nc,ivar_id,xtype=itype)
722 ELSEIF (hdir/=
'-')
THEN 724 iret(3)=nf90_inquire_variable(
nid_nc,ivar_id,ndims=indims)
728 iret(4)=nf90_inquire_variable(
nid_nc,ivar_id,dimids=idimids(1:indims))
731 jret=nf90_inquire_dimension(
nid_nc,idimids(jdim),len=idimlen(jdim))
734 iret(4)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
736 IF (trim(yname).NE.
'Number_of_points')
THEN 737 ALLOCATE(iwork(idimlen(1)*idimlen(2)))
739 ALLOCATE(iwork(idimlen(1)))
751 IF (itype==nf90_int)
THEN 752 iret(1)=nf90_get_var(
nid_nc,ivar_id,iwork)
755 iret(2) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
762 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 770 ELSEIF (hdir/=
'-')
THEN 783 kfield(:) = iwork(1:
SIZE(kfield))
788 ELSEIF (hdir==
'-')
THEN 792 CALL mpi_bcast(iwork,
SIZE(iwork)*kind(iwork)/4,mpi_integer,
npio,
ncomm,infompi)
796 kfield(:) = iwork(1:
SIZE(kfield))
807 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFN1_NC',1,zhook_handle)
823 USE modi_error_read_surf_nc
840 CHARACTER(LEN=*),
INTENT(IN) :: HREC
841 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KFIELD
842 INTEGER,
INTENT(OUT) :: KRESP
843 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
844 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
850 CHARACTER(LEN=100) :: YFILE,YOUT
851 CHARACTER(LEN=100) :: YNAME
852 INTEGER :: IL1, IL2, IVAR_ID,JRET,JDIM,INDIMS,ITYPE, INFOMPI
853 INTEGER,
DIMENSION(4) :: IDIMIDS,IDIMLEN
854 INTEGER,
DIMENSION(4) :: IRET
855 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IWORK2
856 DOUBLE PRECISION :: XTIME0
857 REAL(KIND=JPRB) :: ZHOOK_HANDLE
859 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFN2_NC',0,zhook_handle)
874 ALLOCATE(iwork2(il1,il2))
883 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
884 iret(2)=nf90_inquire_variable(
nid_nc,ivar_id,xtype=itype)
885 iret(3)=nf90_inquire_variable(
nid_nc,ivar_id,ndims=indims)
886 iret(4)=nf90_inquire_variable(
nid_nc,ivar_id,dimids=idimids(1:indims))
889 jret=nf90_inquire_dimension(
nid_nc,idimids(jdim),len=idimlen(jdim))
892 iret(4)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
896 IF (trim(yname).NE.
'Number_of_points')
THEN 897 ALLOCATE(iwork2(idimlen(1)*idimlen(2),idimlen(3)))
899 ALLOCATE(iwork2(idimlen(1),idimlen(2)))
902 IF (itype==nf90_int)
THEN 903 iret(2)=nf90_get_var(
nid_nc,ivar_id,iwork2)
906 iret(3) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
912 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 921 ELSEIF (hdir/=
'-')
THEN 922 ALLOCATE(iwork2(0,0))
934 kfield(:,:) = iwork2(:,:)
939 ELSEIF (hdir==
'-')
THEN 943 CALL mpi_bcast(iwork2,
SIZE(iwork2)*kind(iwork2)/4,mpi_integer,
npio,
ncomm,infompi)
947 kfield(:,:) = iwork2(:,:)
958 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFN2_NC',1,zhook_handle)
972 USE modi_error_read_surf_nc
984 CHARACTER(LEN=*),
INTENT(IN) :: HREC
985 CHARACTER(LEN=40),
INTENT(OUT) :: HFIELD
986 INTEGER,
INTENT(OUT) :: KRESP
987 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
991 CHARACTER(LEN=100):: YFILE
992 CHARACTER(LEN=40):: YFIELD
993 INTEGER :: IVAR_ID,JRET,JDIM,INDIMS
994 INTEGER,
DIMENSION(4) :: IRET
995 REAL(KIND=JPRB) :: ZHOOK_HANDLE
997 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFC0_NC',0,zhook_handle)
1006 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
1010 iret(2)=nf90_get_var(
nid_nc,ivar_id,yfield)
1011 hfield=yfield(:len_trim(yfield))
1013 iret(3) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
1020 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 1027 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFC0_NC',1,zhook_handle)
1039 USE modi_error_read_surf_nc
1053 CHARACTER(LEN=*),
INTENT(IN) :: HREC
1054 LOGICAL,
INTENT(OUT) :: OFIELD
1055 INTEGER,
INTENT(OUT) :: KRESP
1056 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
1060 CHARACTER(LEN=1) :: YFIELD
1061 CHARACTER(LEN=100) :: YFILE
1062 INTEGER :: IVAR_ID,JRET
1063 INTEGER,
DIMENSION(3) :: IRET
1064 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1066 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFL0_NC',0,zhook_handle)
1075 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
1079 iret(2)=nf90_get_var(
nid_nc,ivar_id,yfield)
1081 iret(3) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
1085 IF (yfield ==
"T") ofield=.true.
1086 IF (yfield ==
"F") ofield=.false.
1090 IF ((
nid_nc==0).OR.iret(1).NE.nf90_noerr)
THEN 1096 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFL0_NC',1,zhook_handle)
1110 USE modi_error_read_surf_nc
1128 CHARACTER(LEN=*),
INTENT(IN) :: HREC
1129 LOGICAL,
DIMENSION(:),
INTENT(OUT) :: OFIELD
1130 INTEGER,
INTENT(OUT) :: KRESP
1131 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
1132 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
1138 CHARACTER(LEN=100) :: YFILE
1139 CHARACTER(LEN=1),
DIMENSION(:),
ALLOCATABLE :: YTAB_1D
1141 INTEGER :: IVAR_ID,JRET,JDIM,INDIMS
1143 INTEGER,
DIMENSION(1) :: IDIMIDS,IDIMLEN,ISTART,ICOUNT
1144 INTEGER,
DIMENSION(2) :: IRET
1145 INTEGER,
DIMENSION(:),
POINTER :: IMASK
1146 DOUBLE PRECISION :: XTIME0
1147 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1149 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFL1_NC',0,zhook_handle)
1158 xtime0 = mpi_wtime()
1167 iret(1)=nf90_inq_varid(
nid_nc,hrec,ivar_id)
1168 iret(1)=nf90_inquire_variable(
nid_nc,ivar_id,ndims=indims)
1169 iret(1)=nf90_inquire_variable(
nid_nc,ivar_id,dimids=idimids)
1171 jret=nf90_inquire_dimension(
nid_nc,idimids(jdim),len=idimlen(jdim))
1173 IF ( indims>0 )
THEN 1174 ALLOCATE(ytab_1d(idimlen(1)))
1175 icount(1) = idimlen(1)
1177 ALLOCATE(ytab_1d(1))
1184 iret(1)=nf90_get_var(
nid_nc,ivar_id,ytab_1d,istart,icount)
1186 DO jret=1,min(
SIZE(ofield),
SIZE(ytab_1d))
1187 IF (ytab_1d(jret) ==
"T") ofield(jret)=.true.
1188 IF (ytab_1d(jret) ==
"F") ofield(jret)=.false.
1191 iret(2) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
1198 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 1213 IF (
nproc>1 .AND. hdir/=
'A')
THEN 1215 xtime0 = mpi_wtime()
1216 CALL mpi_bcast(ofield,
SIZE(ofield),mpi_logical,
npio,
ncomm,infompi)
1221 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFL1_NC',1,zhook_handle)
1227 SUBROUTINE read_surft0_nc(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
1234 USE modi_error_read_surf_nc
1248 CHARACTER(LEN=*),
INTENT(IN) :: HREC
1249 INTEGER,
INTENT(OUT) :: KYEAR
1250 INTEGER,
INTENT(OUT) :: KMONTH
1251 INTEGER,
INTENT(OUT) :: KDAY
1252 REAL,
INTENT(OUT) :: PTIME
1253 INTEGER,
INTENT(OUT) :: KRESP
1254 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
1259 CHARACTER(LEN=18) :: YRECFM
1260 CHARACTER(LEN=100) :: YFILE
1261 INTEGER :: IVAR_ID,JRET,JDIM,INDIMS,JWRK
1262 INTEGER,
DIMENSION(1) :: IDIMIDS,IDIMLEN
1263 INTEGER,
DIMENSION(5) :: IRET
1264 INTEGER,
DIMENSION(:),
POINTER :: IMASK
1266 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1268 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFT0_NC',0,zhook_handle)
1276 yrecfm=trim(hrec)//
'-YEAR' 1277 ELSEIF (jwrk == 2)
THEN 1278 yrecfm = trim(hrec)//
'-MONTH' 1279 ELSEIF (jwrk == 3)
THEN 1280 yrecfm = trim(hrec)//
'-DAY' 1281 ELSEIF (jwrk == 4)
THEN 1282 yrecfm=trim(hrec)//
'-TIME' 1290 jret=nf90_inq_varid(
nid_nc,yrecfm,ivar_id)
1295 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kyear)
1296 ELSEIF (jwrk==2)
THEN 1297 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kmonth)
1298 ELSEIF (jwrk==3)
THEN 1299 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kday)
1300 ELSEIF (jwrk==4)
THEN 1301 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,ptime)
1304 iret(5) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
1312 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 1318 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFT0_NC',1,zhook_handle)
1323 SUBROUTINE read_surft1_nc(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
1330 USE modi_error_read_surf_nc
1344 CHARACTER(LEN=*),
INTENT(IN) :: HREC
1345 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KYEAR
1346 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KMONTH
1347 INTEGER,
DIMENSION(:),
INTENT(OUT) :: KDAY
1348 REAL,
DIMENSION(:),
INTENT(OUT) :: PTIME
1349 INTEGER,
INTENT(OUT) :: KRESP
1350 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
1355 CHARACTER(LEN=18) :: YRECFM
1356 CHARACTER(LEN=100) :: YFILE
1357 INTEGER :: IVAR_ID,JRET,JDIM,INDIMS,JWRK
1358 INTEGER,
DIMENSION(1) :: IDIMIDS,IDIMLEN
1359 INTEGER,
DIMENSION(5) :: IRET
1360 INTEGER,
DIMENSION(:),
POINTER :: IMASK
1362 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1364 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFT1_NC',0,zhook_handle)
1372 yrecfm=trim(hrec)//
'-YEAR' 1373 ELSEIF (jwrk == 2)
THEN 1374 yrecfm = trim(hrec)//
'-MONTH' 1375 ELSEIF (jwrk == 3)
THEN 1376 yrecfm = trim(hrec)//
'-DAY' 1377 ELSEIF (jwrk == 4)
THEN 1378 yrecfm=trim(hrec)//
'-TIME' 1386 jret=nf90_inq_varid(
nid_nc,yrecfm,ivar_id)
1391 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kyear)
1392 ELSEIF (jwrk==2)
THEN 1393 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kmonth)
1394 ELSEIF (jwrk==3)
THEN 1395 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kday)
1396 ELSEIF (jwrk==4)
THEN 1397 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,ptime)
1400 iret(5) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
1408 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 1414 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFT1_NC',1,zhook_handle)
1419 SUBROUTINE read_surft2_nc(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
1426 USE modi_error_read_surf_nc
1440 CHARACTER(LEN=*),
INTENT(IN) :: HREC
1441 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KYEAR
1442 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KMONTH
1443 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KDAY
1444 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PTIME
1445 INTEGER,
INTENT(OUT) :: KRESP
1446 CHARACTER(LEN=100),
INTENT(OUT) :: HCOMMENT
1451 CHARACTER(LEN=18) :: YRECFM
1452 CHARACTER(LEN=100) :: YFILE
1453 INTEGER :: IVAR_ID,JRET,JDIM,INDIMS,JWRK
1454 INTEGER,
DIMENSION(1) :: IDIMIDS,IDIMLEN
1455 INTEGER,
DIMENSION(5) :: IRET
1456 INTEGER,
DIMENSION(:),
POINTER :: IMASK
1458 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1460 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFT2_NC',0,zhook_handle)
1468 yrecfm=trim(hrec)//
'-YEAR' 1469 ELSEIF (jwrk == 2)
THEN 1470 yrecfm = trim(hrec)//
'-MONTH' 1471 ELSEIF (jwrk == 3)
THEN 1472 yrecfm = trim(hrec)//
'-DAY' 1473 ELSEIF (jwrk == 4)
THEN 1474 yrecfm=trim(hrec)//
'-TIME' 1482 jret=nf90_inq_varid(
nid_nc,yrecfm,ivar_id)
1487 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kyear)
1488 ELSEIF (jwrk==2)
THEN 1489 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kmonth)
1490 ELSEIF (jwrk==3)
THEN 1491 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,kday)
1492 ELSEIF (jwrk==4)
THEN 1493 iret(jwrk)=nf90_get_var(
nid_nc,ivar_id,ptime)
1496 iret(5) = nf90_get_att(
nid_nc,ivar_id,
"comment",hcomment)
1504 IF ((
nid_nc==0).OR.iret(jret).NE.nf90_noerr)
THEN 1510 IF (
lhook)
CALL dr_hook(
'MODE_READ_SURF_NC:READ_SURFT2_NC',1,zhook_handle)
subroutine read_surfx0_nc(HREC, PFIELD, KRESP, HCOMMENT)
integer, dimension(:), allocatable nreq
subroutine read_surfl0_nc(HREC, OFIELD, KRESP, HCOMMENT)
subroutine read_surfn2_nc(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfn0_nc(HREC, KFIELD, KRESP, HCOMMENT)
subroutine error_read_surf_nc(HREC, KRESP)
subroutine read_surfx2_nc(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
quick &counting sorts only inumt inumt name
subroutine read_surfn1_nc(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surft1_nc(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surft0_nc(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine read_surft2_nc(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
integer, parameter nundef
subroutine read_surfl1_nc(HREC, OFIELD, KRESP, HCOMMENT, HDIR)
subroutine read_surfx1_nc(HREC, PFIELD, KRESP, HCOMMENT, HDIR)
integer, dimension(:), pointer nmask
subroutine read_surfc0_nc(HREC, HFIELD, KRESP, HCOMMENT)