34 SUBROUTINE get_comment(HCOMMENT_IN, HDIM_OUT, HCOMMENT_OUT)
41 CHARACTER(LEN=*),
INTENT(IN) :: HCOMMENT_IN
42 CHARACTER(LEN=*),
INTENT(OUT) :: HCOMMENT_OUT
43 CHARACTER(LEN=*),
INTENT(OUT) :: HDIM_OUT
45 INTEGER :: ILEN, JSIZE
46 REAL(KIND=JPRB) :: ZHOOK_HANDLE
48 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:GET_COMMENT',0,zhook_handle)
50 ilen = len_trim(hcomment_in)
52 IF (hcomment_in(ilen:ilen)==
")")
THEN 54 IF (hcomment_in(jsize:jsize)==
"(")
THEN 55 hdim_out = hcomment_in(jsize+1:ilen-1)
56 hcomment_out = hcomment_in(1:jsize-1)
61 hcomment_out = hcomment_in
68 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:GET_COMMENT',1,zhook_handle)
80 USE modi_def_var_netcdf
92 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
93 CHARACTER(LEN=12),
INTENT(IN) :: HREC
94 REAL,
INTENT(IN) :: PFIELD
95 INTEGER,
INTENT(OUT) :: KRESP
96 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
100 CHARACTER(LEN=100) :: YCOMMENT
101 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
102 INTEGER,
DIMENSION(0) :: IDIMS
103 INTEGER :: IFILE_ID, IVAR_ID, JRET
104 INTEGER,
DIMENSION(2) :: IRET
105 REAL(KIND=JPRB) :: ZHOOK_HANDLE
107 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX0_OL',0,zhook_handle)
111 yatt_title(1) =
"units" 124 IF (ifile_id /= 0)
THEN 127 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
130 iret(2)=nf90_put_var(ifile_id,ivar_id,pfield)
137 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
142 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX0_OL',1,zhook_handle)
154 USE modi_def_var_netcdf
166 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
167 CHARACTER(LEN=12),
INTENT(IN) :: HREC
168 INTEGER,
INTENT(IN) :: KFIELD
169 INTEGER,
INTENT(OUT) :: KRESP
170 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
174 CHARACTER(LEN=100) :: YCOMMENT
175 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
176 INTEGER,
DIMENSION(0) :: IDIMS
177 INTEGER :: IFILE_ID, IVAR_ID, JRET
178 INTEGER,
DIMENSION(2) :: IRET
179 REAL(KIND=JPRB) :: ZHOOK_HANDLE
181 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFN0_OL',0,zhook_handle)
185 yatt_title(1) =
"units" 198 IF (ifile_id /= 0)
THEN 201 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
204 iret(2)=nf90_put_var(ifile_id,ivar_id,kfield)
210 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
215 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFN0_OL',1,zhook_handle)
227 USE modi_def_var_netcdf
239 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
240 CHARACTER(LEN=12),
INTENT(IN) :: HREC
241 CHARACTER(LEN=40),
INTENT(IN) :: HFIELD
242 INTEGER,
INTENT(OUT) :: KRESP
243 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
247 CHARACTER(LEN=100) :: YCOMMENT
248 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
249 INTEGER,
DIMENSION(0) :: IDIMS
250 CHARACTER(LEN=100) :: YFIELD
251 INTEGER :: IFILE_ID, IVAR_ID, JRET
252 INTEGER,
DIMENSION(2) :: IRET
253 REAL(KIND=JPRB) :: ZHOOK_HANDLE
255 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFC0_OL',0,zhook_handle)
259 yatt_title(1) =
"units" 263 ivar_id,nf90_char,len_trim(hfield))
273 IF (ifile_id /= 0)
THEN 276 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
279 yfield=hfield(:len_trim(hfield))
280 iret(2)=nf90_put_var(ifile_id,ivar_id,yfield)
286 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
291 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFC0_OL',1,zhook_handle)
303 USE modi_def_var_netcdf
316 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
317 CHARACTER(LEN=12),
INTENT(IN) :: HREC
318 LOGICAL,
INTENT(IN) :: OFIELD
319 INTEGER,
INTENT(OUT):: KRESP
320 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
324 CHARACTER(LEN=100) :: YCOMMENT
325 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
326 INTEGER,
DIMENSION(0) :: IDIMS
327 CHARACTER(LEN=1) :: YFIELD
328 INTEGER :: IFILE_ID, IVAR_ID, JRET
329 INTEGER,
DIMENSION(2) :: IRET
330 REAL(KIND=JPRB) :: ZHOOK_HANDLE
332 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFL0_OL',0,zhook_handle)
336 yatt_title(1) =
"units" 349 IF (ifile_id /= 0)
THEN 352 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
360 iret(2)=nf90_put_var(ifile_id,ivar_id,yfield)
367 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
372 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFL0_OL',1,zhook_handle)
396 REAL,
INTENT(IN) :: PFIELD
397 INTEGER,
INTENT(OUT):: KRESP
398 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
402 INTEGER,
DIMENSION(1) :: ISTART
404 INTEGER :: IFILE_ID, JFILE, JRET
405 REAL(KIND=JPRB) :: ZHOOK_HANDLE
407 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX0_TIME_OL',0,zhook_handle)
417 IF (ifile_id/=0)
THEN 419 jret = nf90_inq_varid(ifile_id,
'time',ivar_id)
420 IF (jret.EQ.nf90_noerr)
THEN 421 jret = nf90_put_var(ifile_id,ivar_id,pfield,istart)
429 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX0_TIME_OL',1,zhook_handle)
434 SUBROUTINE write_surfx1_ol(HSELECT,HREC,PFIELD,KRESP,HCOMMENT,HDIR,HNAM_DIM)
445 USE modi_def_var_netcdf
463 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
465 CHARACTER(LEN=12),
INTENT(IN) :: HREC
466 REAL,
DIMENSION(:),
INTENT(IN) :: PFIELD
467 INTEGER,
INTENT(OUT):: KRESP
468 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
469 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
473 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: HNAM_DIM
477 CHARACTER(LEN=100) :: YCOMMENT
478 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
479 INTEGER,
DIMENSION(3) :: IDIMIDS
480 INTEGER,
DIMENSION(3) :: IDIMLEN
482 CHARACTER(LEN=100) :: YNAME
483 CHARACTER(LEN=16) :: YNAM_DIM
484 INTEGER,
DIMENSION(5) :: IRET
485 INTEGER :: IFILE_ID, IVAR_ID, JDIM, INDIMS
491 DOUBLE PRECISION :: XTIME0
492 REAL(KIND=JPRB) :: ZHOOK_HANDLE
494 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX1_OL',0,zhook_handle)
506 IF (gfound .AND.
lhook)
CALL dr_hook(
"WRITE_SURF_OL:WRITE_SURFX1_OL",1,zhook_handle)
511 yatt_title(1) =
"units" 514 IF (
PRESENT(hnam_dim))
THEN 517 ynam_dim =
"Number_of_points" 525 iret(2) = nf90_inq_dimid(
nid_nc,trim(ynam_dim),idimids(1))
528 iret(2) = nf90_inq_dimid(
nid_nc,
'lon',idimids(1))
530 iret(2) = nf90_inq_dimid(
nid_nc,
'xx',idimids(1))
531 iret(3) = nf90_inq_dimid(
nid_nc,
'yy',idimids(2))
533 iret(3) = nf90_inq_dimid(
nid_nc,
'lat',idimids(2))
535 iret0 = nf90_inq_dimid(
nid_nc,
'time',idimids(3))
536 IF (iret0==0) indims=3
537 ELSEIF (.NOT.
PRESENT(hnam_dim))
THEN 538 iret0 = nf90_inq_dimid(
nid_nc,
'time',idimids(2))
539 IF (iret0==0) indims=2
542 iret(4)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
545 IF (iret0==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
548 IF (yname.NE.
'lon' .AND. yname.NE.
'xx')
THEN 550 yatt_title,yatt,ivar_id,nf90_double,1)
553 yatt_title,yatt,ivar_id,nf90_double)
556 jret = nf90_put_att(
nid_nc,ivar_id,
"grid_mapping",
"Projection_Type")
575 IF (ifile_id /= 0)
THEN 579 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
580 iret(2)=nf90_inquire_variable(ifile_id,ivar_id,ndims=indims)
581 iret(3)=nf90_inquire_variable(ifile_id,ivar_id,dimids=idimids(1:indims))
583 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),len=idimlen(jdim))
586 iret(4)=nf90_inquire_dimension(ifile_id,idimids(1),
name=yname)
591 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
611 CALL mpi_bcast(ifile_id,kind(ifile_id)/4,mpi_integer,
npio,
ncomm,infompi)
616 IF (ifile_id/=0)
THEN 618 IF (yname .EQ.
'Number_of_points')
THEN 628 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX1_OL',1,zhook_handle)
642 INTEGER,
INTENT(IN) :: KDIM
643 INTEGER,
INTENT(IN) :: KNDIMS
645 REAL,
DIMENSION(KDIM) :: ZTAB1D
646 REAL,
DIMENSION(KDIM) :: ZWORK_IGN
648 INTEGER,
DIMENSION(KNDIMS) :: ISTART
649 INTEGER,
DIMENSION(KNDIMS) :: ICOUNT
650 INTEGER,
DIMENSION(KNDIMS) :: ISTRIDE
651 REAL(KIND=JPRB) :: ZHOOK_HANDLE
653 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX1_OL:WRITE_DATAX1_OL',0,zhook_handle)
681 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),
name=yname)
682 IF ((
index(yname,
'time') > 0).OR.(
index(yname,
'TIME') >0) &
683 .OR.(
index(yname,
'Time')>0.))
THEN 689 icount(jdim)=idimlen(jdim)
693 iret(5)=nf90_put_var(ifile_id,ivar_id,ztab1d,istart,icount,istride)
695 iret(5)=nf90_put_var(ifile_id,ivar_id,ztab1d)
706 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX1_OL:WRITE_DATAX1_OL',1,zhook_handle)
713 SUBROUTINE write_surfx2_ol(HSELECT,HREC,PFIELD,KRESP,HCOMMENT,HDIR,HNAM_DIM)
724 USE modi_def_var_netcdf
740 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
742 CHARACTER(LEN=12),
INTENT(IN) :: HREC
743 REAL,
DIMENSION(:,:),
INTENT(IN) :: PFIELD
744 INTEGER,
INTENT(OUT):: KRESP
745 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
746 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
750 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: HNAM_DIM
754 CHARACTER(LEN=100) :: YCOMMENT
755 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
756 INTEGER,
DIMENSION(4) :: IDIMIDS
757 INTEGER,
DIMENSION(4) :: IDIMLEN
759 CHARACTER(LEN=20) :: YNAM_DIM
760 CHARACTER(LEN=100) :: YNAME
761 INTEGER,
DIMENSION(5) :: IRET
762 INTEGER :: IFILE_ID, IVAR_ID, JDIM, INDIMS
768 DOUBLE PRECISION :: XTIME0
770 REAL(KIND=JPRB) :: ZHOOK_HANDLE
772 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX2_OL',0,zhook_handle)
785 IF (gfound .AND.
lhook)
CALL dr_hook(
"WRITE_SURF_OL:WRITE_SURFX2_OL",1,zhook_handle)
790 yatt_title(1) =
"units" 793 IF (
PRESENT(hnam_dim))
THEN 796 ynam_dim =
"Number_of_Patches" 807 IF ( trim(ynam_dim) ==
"Nemis_snap" )
THEN 808 iret(2) = nf90_inq_dimid(
nid_nc,
"Nsnap_temp",idimids(1))
811 iret(2) = nf90_inq_dimid(
nid_nc,
"Number_of_points",idimids(1))
814 iret(3) = nf90_inq_dimid(
nid_nc,trim(ynam_dim),idimids(2))
815 IF (indims==3) iret0 = nf90_inq_dimid(
nid_nc,
'time',idimids(3))
818 iret(2) = nf90_inq_dimid(
nid_nc,
'lon',idimids(1))
820 iret(2) = nf90_inq_dimid(
nid_nc,
'xx',idimids(1))
821 iret(3) = nf90_inq_dimid(
nid_nc,
'yy',idimids(2))
823 iret(3) = nf90_inq_dimid(
nid_nc,
'lat',idimids(2))
825 iret(4) = nf90_inq_dimid(
nid_nc,trim(ynam_dim),idimids(3))
826 iret0 = nf90_inq_dimid(
nid_nc,
'time',idimids(4))
827 IF (iret0==0) indims = 4
830 iret(5)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
833 IF (iret0==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
836 IF (yname .NE.
'lon' .AND. yname .NE.
'xx')
THEN 838 yatt_title,yatt,ivar_id,nf90_double)
841 yatt_title,yatt,ivar_id,nf90_double)
844 jret = nf90_put_att(
nid_nc,ivar_id,
"grid_mapping",
"Projection_Type")
863 IF ( ifile_id /= 0 )
THEN 868 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
869 iret(2)=nf90_inquire_variable(ifile_id,ivar_id,ndims=indims)
870 iret(3)=nf90_inquire_variable(ifile_id,ivar_id,dimids=idimids(1:indims))
872 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),len=idimlen(jdim))
873 IF (jret.NE.nf90_noerr) kresp=1
876 iret(4)=nf90_inquire_dimension(ifile_id,idimids(1),
name=yname)
881 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
892 idimlen(:) =
SIZE(pfield,2)
899 CALL mpi_bcast(ifile_id,kind(ifile_id)/4,mpi_integer,
npio,
ncomm,infompi)
904 IF (ifile_id/=0)
THEN 906 IF (yname .EQ.
'Number_of_points')
THEN 916 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX2_OL',1,zhook_handle)
932 INTEGER,
INTENT(IN) :: KDIM1
933 INTEGER,
INTENT(IN) :: KDIM2
934 INTEGER,
INTENT(IN) :: KNDIMS
936 REAL,
DIMENSION(KDIM1,KDIM2) :: ZTAB2D
937 REAL,
DIMENSION(KDIM1,SIZE(PFIELD,2)) :: ZWORK_IGN
938 INTEGER,
DIMENSION(KNDIMS) :: ISTART
939 INTEGER,
DIMENSION(KNDIMS) :: ISTRIDE
940 INTEGER,
DIMENSION(KNDIMS) :: ICOUNT
941 REAL(KIND=JPRB) :: ZHOOK_HANDLE
943 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX2_OL:WRITE_DATAX2_OL',0,zhook_handle)
975 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),
name=yname)
976 IF ((
index(yname,
'time') > 0).OR.(
index(yname,
'TIME') >0) &
977 .OR.(
index(yname,
'Time')>0.))
THEN 983 icount(jdim)=idimlen(jdim)
987 iret(5)=nf90_put_var(ifile_id,ivar_id,ztab2d,istart,icount,istride)
989 iret(5)=nf90_put_var(ifile_id,ivar_id,ztab2d)
1000 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX2_OL:WRITE_DATAX2_OL',1,zhook_handle)
1007 SUBROUTINE write_surfx3_ol(HSELECT,HREC,PFIELD,KRESP,HCOMMENT,HDIR,HNAM_DIM)
1018 USE modi_def_var_netcdf
1036 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
1038 CHARACTER(LEN=12),
INTENT(IN) :: HREC
1039 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PFIELD
1040 INTEGER,
INTENT(OUT):: KRESP
1041 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
1042 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
1046 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: HNAM_DIM
1050 CHARACTER(LEN=100) :: YCOMMENT
1051 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
1052 INTEGER,
DIMENSION(5) :: IDIMIDS
1053 INTEGER,
DIMENSION(5) :: IDIMLEN
1055 CHARACTER(LEN=16) :: YNAM_DIM
1056 CHARACTER(LEN=100) :: YNAME
1057 INTEGER,
DIMENSION(5) :: IRET
1058 INTEGER :: IFILE_ID, IVAR_ID, JDIM, INDIMS
1064 DOUBLE PRECISION :: XTIME0
1066 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1068 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX3_OL',0,zhook_handle)
1080 IF (gfound .AND.
lhook)
CALL dr_hook(
"WRITE_SURF_OL:WRITE_SURFX3_OL",1,zhook_handle)
1085 yatt_title(1) =
"units" 1088 IF (
PRESENT(hnam_dim))
THEN 1091 CALL abor1_sfx(
"WRITE_SURFX3_OL: TO WRITE A 3D FIELD, HNAM_DIM IS NEEDED")
1101 iret(2) = nf90_inq_dimid(
nid_nc,
"Number_of_points",idimids(1))
1102 IF (iret(2)==0)
THEN 1104 iret(3) = nf90_inq_dimid(
nid_nc,trim(ynam_dim),idimids(2))
1105 iret(4) = nf90_inq_dimid(
nid_nc,
'Number_of_Patches',idimids(3))
1106 iret0 = nf90_inq_dimid(
nid_nc,
'time',idimids(4))
1109 iret(2) = nf90_inq_dimid(
nid_nc,
'lon',idimids(1))
1110 IF (iret(2)/=0)
THEN 1111 iret(2) = nf90_inq_dimid(
nid_nc,
'xx',idimids(1))
1112 iret(3) = nf90_inq_dimid(
nid_nc,
'yy',idimids(2))
1114 iret(3) = nf90_inq_dimid(
nid_nc,
'lat',idimids(2))
1116 iret(4) = nf90_inq_dimid(
nid_nc,trim(ynam_dim),idimids(3))
1117 iret(5) = nf90_inq_dimid(
nid_nc,
'Number_of_Patches',idimids(4))
1118 iret0 = nf90_inq_dimid(
nid_nc,
'time',idimids(5))
1119 IF (iret0==0) indims = 5
1122 iret(5)=nf90_inquire_dimension(
nid_nc,idimids(1),
name=yname)
1125 IF (iret0==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
1128 IF (yname .NE.
'lon' .AND. yname .NE.
'xx')
THEN 1130 yatt_title,yatt,ivar_id,nf90_double)
1133 yatt_title,yatt,ivar_id,nf90_double)
1136 jret = nf90_put_att(
nid_nc,ivar_id,
"grid_mapping",
"Projection_Type")
1147 xtime0 = mpi_wtime()
1155 IF ( ifile_id /= 0 )
THEN 1160 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
1161 iret(2)=nf90_inquire_variable(ifile_id,ivar_id,ndims=indims)
1162 iret(3)=nf90_inquire_variable(ifile_id,ivar_id,dimids=idimids(1:indims))
1164 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),len=idimlen(jdim))
1165 IF (jret.NE.nf90_noerr) kresp=1
1168 iret(4)=nf90_inquire_dimension(ifile_id,idimids(1),
name=yname)
1173 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
1184 idimlen(:) =
SIZE(pfield,2)
1190 xtime0 = mpi_wtime()
1191 CALL mpi_bcast(ifile_id,kind(ifile_id)/4,mpi_integer,
npio,
ncomm,infompi)
1196 IF (ifile_id/=0)
THEN 1198 IF (yname .EQ.
'Number_of_points')
THEN 1201 CALL write_datax3_ol(idimlen(1)*idimlen(2),idimlen(3),idimlen(4),indims)
1208 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX3_OL',1,zhook_handle)
1224 INTEGER,
INTENT(IN) :: KDIM1
1225 INTEGER,
INTENT(IN) :: KDIM2
1226 INTEGER,
INTENT(IN) :: KDIM3
1227 INTEGER,
INTENT(IN) :: KNDIMS
1229 REAL,
DIMENSION(KDIM1,KDIM2,KDIM3) :: ZTAB3D
1230 REAL,
DIMENSION(KDIM1,SIZE(PFIELD,2),SIZE(PFIELD,3)) :: ZWORK_IGN
1231 INTEGER,
DIMENSION(KNDIMS) :: ISTART
1232 INTEGER,
DIMENSION(KNDIMS) :: ISTRIDE
1233 INTEGER,
DIMENSION(KNDIMS) :: ICOUNT
1234 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1236 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX3_OL:WRITE_DATAX3_OL',0,zhook_handle)
1259 xtime0 = mpi_wtime()
1268 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),
name=yname)
1269 IF ((
index(yname,
'time') > 0).OR.(
index(yname,
'TIME') >0) &
1270 .OR.(
index(yname,
'Time')>0.))
THEN 1276 icount(jdim)=idimlen(jdim)
1280 iret(5)=nf90_put_var(ifile_id,ivar_id,ztab3d,istart,icount,istride)
1282 iret(5)=nf90_put_var(ifile_id,ivar_id,ztab3d)
1293 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFX3_OL:WRITE_DATAX3_OL',1,zhook_handle)
1300 SUBROUTINE write_surfn1_ol (HSELECT,HREC,KFIELD,KRESP,HCOMMENT,HDIR,HNAM_DIM)
1314 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
1315 CHARACTER(LEN=12),
INTENT(IN) :: HREC
1316 INTEGER,
DIMENSION(:),
INTENT(IN) :: KFIELD
1317 INTEGER,
INTENT(OUT) :: KRESP
1318 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
1319 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
1323 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: HNAM_DIM
1327 REAL,
DIMENSION(SIZE(KFIELD)) :: ZFIELD
1328 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1330 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFN1_OL',0,zhook_handle)
1332 zfield=float(kfield)
1333 CALL write_surfx1_ol(hselect,hrec,zfield,kresp,hcomment,hdir,hnam_dim)
1335 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFN1_OL',1,zhook_handle)
1350 USE modi_def_var_netcdf
1367 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
1369 CHARACTER(LEN=*),
INTENT(IN) :: HREC
1370 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OFIELD
1371 INTEGER,
INTENT(OUT):: KRESP
1372 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
1373 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
1379 CHARACTER(LEN=100) :: YCOMMENT
1380 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
1381 INTEGER,
DIMENSION(2) :: IDIMIDS
1382 INTEGER,
DIMENSION(2) :: IDIMLEN
1384 CHARACTER(LEN=100) :: YNAME
1385 INTEGER,
DIMENSION(4) :: IRET
1386 INTEGER :: IFILE_ID, IVAR_ID, JDIM, INDIMS
1391 DOUBLE PRECISION :: XTIME0
1392 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1394 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFL1_OL',0,zhook_handle)
1402 IF (gfound .AND.
lhook)
CALL dr_hook(
"WRITE_SURF_OL:WRITE_SURFL1_OL",1,zhook_handle)
1407 yatt_title(1) =
"units" 1414 IF (hrec(1:2)==
'L_')
THEN 1415 iret(1) = nf90_inq_dimid(
nid_nc,
'Nb_of_input_data',idimids(1))
1417 iret(1) = nf90_inq_dimid(
nid_nc,
'Number_of_covers',idimids(1))
1419 iret(2) = nf90_inquire_dimension(
nid_nc,idimids(1),len=idimlen(1))
1422 yatt_title,yatt,ivar_id,nf90_char,1)
1433 xtime0 = mpi_wtime()
1440 IF (ifile_id /= 0)
THEN 1444 iret(1)=nf90_inq_varid(ifile_id,hrec,ivar_id)
1445 iret(2)=nf90_inquire_variable(ifile_id,ivar_id,ndims=indims)
1446 iret(3)=nf90_inquire_variable(ifile_id,ivar_id,dimids=idimids(1:indims))
1448 jret=nf90_inquire_dimension(ifile_id,idimids(jdim),len=idimlen(jdim))
1458 IF (ifile_id==0 .OR. iret(jret).NE.nf90_noerr) kresp=1
1469 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFL1_OL',1,zhook_handle)
1475 INTEGER,
INTENT(IN) :: KDIM
1477 CHARACTER(LEN=1),
DIMENSION(KDIM) :: YTAB1D
1478 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1480 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFL1_OL:WRITE_DATAL1_OL',0,zhook_handle)
1483 IF (ofield(jret))
THEN 1492 iret(4)=nf90_put_var(ifile_id,ivar_id,ytab1d)
1496 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFL1_OL:WRITE_DATAL1_OL',1,zhook_handle)
1503 SUBROUTINE write_surft0_ol(HSELECT,HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
1512 USE modi_def_var_netcdf
1524 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
1525 CHARACTER(LEN=12),
INTENT(IN) :: HREC
1526 INTEGER,
INTENT(IN) :: KYEAR
1527 INTEGER,
INTENT(IN) :: KMONTH
1528 INTEGER,
INTENT(IN) :: KDAY
1529 REAL,
INTENT(IN) :: PTIME
1530 INTEGER,
INTENT(OUT) :: KRESP
1531 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
1535 CHARACTER(LEN=100) :: YCOMMENT
1536 CHARACTER(LEN=100),
DIMENSION(1) :: YATT_TITLE, YATT
1537 INTEGER,
DIMENSION(0) :: IDIMS
1539 CHARACTER(LEN=12) :: YRECFM
1540 INTEGER :: IFILE_ID, IVAR_ID, JRET, JWRK
1541 INTEGER,
DIMENSION(8) :: IRET
1542 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1544 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFT0_OL',0,zhook_handle)
1548 yatt_title(1) =
"units" 1554 yrecfm = trim(hrec)//
'-YEAR' 1555 ELSEIF (jwrk==2)
THEN 1556 yrecfm = trim(hrec)//
'-MONTH' 1557 ELSEIF (jwrk==3)
THEN 1558 yrecfm = trim(hrec)//
'-DAY' 1559 ELSEIF (jwrk==4)
THEN 1560 yrecfm=trim(hrec)//
'-TIME' 1581 IF (ifile_id /= 0)
THEN 1586 yrecfm = trim(hrec)//
'-YEAR' 1587 ELSEIF (jwrk==2)
THEN 1588 yrecfm = trim(hrec)//
'-MONTH' 1589 ELSEIF (jwrk==3)
THEN 1590 yrecfm = trim(hrec)//
'-DAY' 1591 ELSEIF (jwrk==4)
THEN 1592 yrecfm=trim(hrec)//
'-TIME' 1597 iret((jwrk-1)*2+1)=nf90_inq_varid(ifile_id,yrecfm,ivar_id)
1600 iret((jwrk-1)*2+2)=nf90_put_var(ifile_id,ivar_id,kyear)
1601 ELSEIF (jwrk==2)
THEN 1602 iret((jwrk-1)*2+2)=nf90_put_var(ifile_id,ivar_id,kmonth)
1603 ELSEIF (jwrk==3)
THEN 1604 iret((jwrk-1)*2+2)=nf90_put_var(ifile_id,ivar_id,kday)
1606 iret((jwrk-1)*2+2)=nf90_put_var(ifile_id,ivar_id,ptime)
1616 IF (ifile_id==0.OR.iret(jret).NE.nf90_noerr) kresp=1
1621 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_OL:WRITE_SURFT0_OL',1,zhook_handle)
subroutine write_datax2_ol(KDIM1, KDIM2, KNDIMS)
subroutine write_surfc0_ol(HSELECT, HREC, HFIELD, KRESP, HCOMMENT)
subroutine handle_err(IRET, HNAME)
quick &counting sorts only inumt inumt name
subroutine write_surfl1_ol(HSELECT, HREC, OFIELD, KRESP, HCOMMENT, HDIR)
integer, dimension(:), pointer nmask
character(len=200), dimension(25) xnetcdf_filename_out
subroutine abor1_sfx(YTEXT)
subroutine write_datal1_ol(KDIM)
subroutine write_surfn1_ol(HSELECT, HREC, KFIELD, KRESP, HCOMMENT, HDIR, HNAM_DIM)
subroutine def_var_netcdf(HSELECT, KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, H
subroutine write_datax1_ol(KDIM, KNDIMS)
subroutine write_surfx0_time_ol(PFIELD, KRESP, HCOMMENT)
subroutine write_surfl0_ol(HSELECT, HREC, OFIELD, KRESP, HCOMMENT)
subroutine write_surfx1_ol(HSELECT, HREC, PFIELD, KRESP, HCOMMENT, HDIR, HNAM_DIM)
integer, dimension(25) xnetcdf_fileid_out
subroutine io_buff(HREC, HACTION, OKNOWN)
subroutine write_surfx3_ol(HSELECT, HREC, PFIELD, KRESP, HCOMMENT, HDIR, HNAM_DIM)
subroutine write_surfx2_ol(HSELECT, HREC, PFIELD, KRESP, HCOMMENT, HDIR, HNAM_DIM)
integer, dimension(:), allocatable nmask_ign
subroutine write_datax3_ol(KDIM1, KDIM2, KDIM3, KNDIMS)
subroutine wlog_mpi(HLOG, PLOG, KLOG, KLOG2, OLOG)
subroutine write_surft0_ol(HSELECT, HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine write_surfn0_ol(HSELECT, HREC, KFIELD, KRESP, HCOMMENT)
subroutine write_surfx0_ol(HSELECT, HREC, PFIELD, KRESP, HCOMMENT)