SURFEX v8.1
General documentation of Surfex
bytes_io_mod.F90
Go to the documentation of this file.
1 MODULE bytes_io_mod !**** Interface to BYTES_IO
2 
3 ! Purpose.
4 ! --------
5 ! Fortran 90 Interface to calling byte IO
6 
7 ! Author.
8 ! -------
9 ! W.Deconinck and M.Hamrud ECMWF
10 
11 ! Modifications.
12 ! --------------
13 ! Original: 2016-01-28
14 
15 ! ------------------------------------------------------------------
16 
17 USE parkind1 , ONLY : jprd, jpim, jpib, jprb, jprm
18 USE yomhook , ONLY : lhook, dr_hook
19 #ifdef SFX_MPI
20 USE mpl_module, ONLY : mpl_abort
21 #endif
22 
23 IMPLICIT NONE
24 
25 PRIVATE :: jprd, jpim, jpib, jprb, jprm
26 PRIVATE :: lhook, dr_hook
27 #ifdef SFX_MPI
28 PRIVATE :: mpl_abort
29 #endif
30 PRIVATE
31 
32 INTERFACE bytes_io_read
33 MODULE PROCEDURE bytes_io_read_jpim_int
34 MODULE PROCEDURE bytes_io_read_jpim_int_array
35 MODULE PROCEDURE bytes_io_read_jpim_real4
36 MODULE PROCEDURE bytes_io_read_jpim_real4_array
37 MODULE PROCEDURE bytes_io_read_jpim_real8
38 MODULE PROCEDURE bytes_io_read_jpim_real8_array
39 MODULE PROCEDURE bytes_io_read_jpim_char_array
40 
41 MODULE PROCEDURE bytes_io_read_jpib_int
42 MODULE PROCEDURE bytes_io_read_jpib_int_array
43 MODULE PROCEDURE bytes_io_read_jpib_real4
44 MODULE PROCEDURE bytes_io_read_jpib_real4_array
45 MODULE PROCEDURE bytes_io_read_jpib_real8
46 MODULE PROCEDURE bytes_io_read_jpib_real8_array
47 MODULE PROCEDURE bytes_io_read_jpib_char_array
48 END INTERFACE
49 
50 INTERFACE bytes_io_write
51 MODULE PROCEDURE bytes_io_write_jpim_int
52 MODULE PROCEDURE bytes_io_write_jpim_int_array
53 MODULE PROCEDURE bytes_io_write_jpim_real4
54 MODULE PROCEDURE bytes_io_write_jpim_real4_array
55 MODULE PROCEDURE bytes_io_write_jpim_real8
56 MODULE PROCEDURE bytes_io_write_jpim_real8_array
57 MODULE PROCEDURE bytes_io_write_jpim_char_array
58 
59 MODULE PROCEDURE bytes_io_write_jpib_int
60 MODULE PROCEDURE bytes_io_write_jpib_int_array
61 MODULE PROCEDURE bytes_io_write_jpib_real4
62 MODULE PROCEDURE bytes_io_write_jpib_real4_array
63 MODULE PROCEDURE bytes_io_write_jpib_real8
64 MODULE PROCEDURE bytes_io_write_jpib_real8_array
65 MODULE PROCEDURE bytes_io_write_jpib_char_array
66 END INTERFACE
67 
68 PUBLIC :: bytes_io_open
69 PUBLIC :: bytes_io_close
70 PUBLIC :: bytes_io_write
71 PUBLIC :: bytes_io_read
72 PUBLIC :: bytes_io_seek
73 PUBLIC :: bytes_io_tell
74 
75 INTEGER, PARAMETER, PUBLIC :: jpbytes_io_success=0
76 INTEGER, PARAMETER :: jpbytes_io_could_not_open_file=-1
77 INTEGER, PARAMETER :: jpbytes_io_could_not_close_file=-1
78 INTEGER, PARAMETER :: jpbytes_io_invalid_file_name=-2
79 INTEGER, PARAMETER :: jpbytes_io_invalid_open_mode=-3
80 INTEGER, PARAMETER :: jpbytes_io_end_of_file=-1
81 INTEGER, PARAMETER :: jpbytes_io_seek_error=-2
82 INTEGER, PARAMETER :: jpbytes_io_read_jpim_error=-2
83 INTEGER, PARAMETER :: jpbytes_io_write_jpim_error=-1
84 
85 CONTAINS
86 
87 
88 SUBROUTINE bytes_io_open(KFILE,CDPATH,CDMODE,KRET)
89 INTEGER(KIND=JPIM),INTENT(OUT) :: KFILE
90 CHARACTER(LEN=*) ,INTENT(IN) :: CDPATH
91 CHARACTER(LEN=1) ,INTENT(IN) :: CDMODE
92 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
93 INTEGER(KIND=JPIM) :: IRET
94 REAL(KIND=JPRB) :: ZHOOK_HANDLE
95 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_OPEN',0,zhook_handle)
96 CALL c_bytes_io_open(kfile,cdpath,cdmode,iret)
97 IF(PRESENT(kret)) THEN
98  kret = iret
99 ELSEIF (iret < jpbytes_io_success) THEN
100  WRITE(0,*) 'BYTES_IO ',trim(cdpath),' FAILED',iret
101 #ifdef SFX_MPI
102  CALL mpl_abort('BYTES_IO_OPEN FAILED')
103 #endif
104 ENDIF
105 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_OPEN',1,zhook_handle)
106 END SUBROUTINE bytes_io_open
107 
108 SUBROUTINE bytes_io_close(KFILE,KRET)
109 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
110 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
111 INTEGER(KIND=JPIM) :: IRET
112 REAL(KIND=JPRB) :: ZHOOK_HANDLE
113 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_CLOSE',0,zhook_handle)
114 CALL c_bytes_io_close(kfile,iret)
115 IF(PRESENT(kret)) THEN
116  kret = iret
117 ELSEIF (iret < jpbytes_io_success) THEN
118  WRITE(0,*) 'BYTES_IO_CLOSE ',kfile,' FAILED',iret
119 #ifdef SFX_MPI
120  CALL mpl_abort('BYTES_IO_CLOSE FAILED')
121 #endif
122 ENDIF
123 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_CLOSE',1,zhook_handle)
124 END SUBROUTINE bytes_io_close
125 
126 
127 SUBROUTINE bytes_io_seek(KFILE,KOFFSET,KWHENCE,KRET)
128 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
129 INTEGER(KIND=JPIM),INTENT(IN) :: KOFFSET
130 INTEGER(KIND=JPIM),INTENT(IN) :: KWHENCE
131 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
132 INTEGER(KIND=JPIM) :: IRET
133 REAL(KIND=JPRB) :: ZHOOK_HANDLE
134 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_SEEK',0,zhook_handle)
135 CALL c_bytes_io_seek(kfile,koffset,kwhence,iret)
136 IF(PRESENT(kret)) THEN
137  kret=iret
138 ELSEIF(iret < jpbytes_io_success) THEN
139  WRITE(0,*) 'BYTES_IO_SEEK ',kfile,' FAILED',iret
140 #ifdef SFX_MPI
141  CALL mpl_abort('BYTES_IO_SEEK FAILED')
142 #endif
143 ENDIF
144 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_SEEK',1,zhook_handle)
145 END SUBROUTINE bytes_io_seek
146 
147 
148 SUBROUTINE bytes_io_tell(KFILE,KRET)
149 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
150 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
151 INTEGER(KIND=JPIM) :: IRET
152 REAL(KIND=JPRB) :: ZHOOK_HANDLE
153 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_SEEK',0,zhook_handle)
154 CALL c_bytes_io_tell(kfile,iret)
155 IF(PRESENT(kret)) THEN
156  kret=iret
157 ELSEIF(iret < jpbytes_io_success) THEN
158  WRITE(0,*) 'BYTES_IO_TELL ',kfile,' FAILED',iret
159 #ifdef SFX_MPI
160  CALL mpl_abort('BYTES_IO_TELL FAILED')
161 #endif
162 ENDIF
163 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_TELL',1,zhook_handle)
164 END SUBROUTINE bytes_io_tell
165 
166 ! ============================================
167 ! BYTES_IO_READ_JPIM
168 
169 SUBROUTINE bytes_io_read_jpim_int(KFILE,KBUF,KBYTES,KRET)
170 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
171 INTEGER(KIND=JPIM),INTENT(OUT) :: KBUF
172 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
173 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
174 INTEGER(KIND=JPIM) :: IRET,ILEN
175 REAL(KIND=JPRB) :: ZHOOK_HANDLE
176 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_INT',0,zhook_handle)
177 CALL c_bytes_io_read(kfile,kbuf,kbytes,iret)
178 IF(PRESENT(kret)) THEN
179  kret=iret
180 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
181  WRITE(0,*) 'BYTES_IO_READ_JPIM_INT ',kfile,' ',kbytes,' FAILED',iret
182 #ifdef SFX_MPI
183  CALL mpl_abort('BYTES_IO_READ_JPIM_INT FAILED')
184 #endif
185 ENDIF
186 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_INT',1,zhook_handle)
187 END SUBROUTINE bytes_io_read_jpim_int
188 
189 SUBROUTINE bytes_io_read_jpim_int_array(KFILE,KBUF,KBYTES,KRET)
190 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
191 INTEGER(KIND=JPIM),INTENT(OUT) :: KBUF(:)
192 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
193 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
194 INTEGER(KIND=JPIM) :: IRET,ILEN
195 REAL(KIND=JPRB) :: ZHOOK_HANDLE
196 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_INT_ARRAY',0,zhook_handle)
197 CALL c_bytes_io_read(kfile,kbuf,kbytes,iret)
198 IF(PRESENT(kret)) THEN
199  kret=iret
200 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
201  WRITE(0,*) 'BYTES_IO_READ_JPIM_INT_ARRAY ',kfile,' ',kbytes,' FAILED',iret
202 #ifdef SFX_MPI
203  CALL mpl_abort('BYTES_IO_READ_JPIM_INT_ARRAY FAILED')
204 #endif
205 ENDIF
206 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_INT_ARRAY',1,zhook_handle)
207 END SUBROUTINE bytes_io_read_jpim_int_array
208 
209 SUBROUTINE bytes_io_read_jpim_real4(KFILE,PBUF,KBYTES,KRET)
210 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
211 REAL(KIND=JPRM),INTENT(OUT) :: PBUF
212 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
213 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
214 INTEGER(KIND=JPIM) :: IRET,ILEN
215 REAL(KIND=JPRB) :: ZHOOK_HANDLE
216 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL4',0,zhook_handle)
217 CALL c_bytes_io_read(kfile,pbuf,kbytes,iret)
218 IF(PRESENT(kret)) THEN
219  kret=iret
220 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
221  WRITE(0,*) 'BYTES_IO_READ_JPIM_REAL4 ',kfile,' ',kbytes,' FAILED',iret
222 #ifdef SFX_MPI
223  CALL mpl_abort('BYTES_IO_READ_JPIM_REAL4 FAILED')
224 #endif
225 ENDIF
226 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL4',1,zhook_handle)
227 END SUBROUTINE bytes_io_read_jpim_real4
228 
229 SUBROUTINE bytes_io_read_jpim_real4_array(KFILE,PBUF,KBYTES,KRET)
230 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
231 REAL(KIND=JPRM),INTENT(OUT) :: PBUF(:)
232 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
233 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
234 INTEGER(KIND=JPIM) :: IRET,ILEN
235 REAL(KIND=JPRB) :: ZHOOK_HANDLE
236 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL4_ARRAY',0,zhook_handle)
237 CALL c_bytes_io_read(kfile,pbuf,kbytes,iret)
238 IF(PRESENT(kret)) THEN
239  kret=iret
240 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
241  WRITE(0,*) 'BYTES_IO_READ_JPIM_REAL4_ARRAY ',kfile,' ',kbytes,' FAILED',iret
242 #ifdef SFX_MPI
243  CALL mpl_abort('BYTES_IO_READ_JPIM_REAL4_ARRAY FAILED')
244 #endif
245 ENDIF
246 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL4_ARRAY',1,zhook_handle)
247 END SUBROUTINE bytes_io_read_jpim_real4_array
248 
249 SUBROUTINE bytes_io_read_jpim_real8(KFILE,PBUF,KBYTES,KRET)
250 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
251 REAL(KIND=JPRD),INTENT(OUT) :: PBUF
252 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
253 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
254 INTEGER(KIND=JPIM) :: IRET,ILEN
255 REAL(KIND=JPRB) :: ZHOOK_HANDLE
256 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL8',0,zhook_handle)
257 CALL c_bytes_io_read(kfile,pbuf,kbytes,iret)
258 IF(PRESENT(kret)) THEN
259  kret=iret
260 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
261  WRITE(0,*) 'BYTES_IO_READ_JPIM_REAL8 ',kfile,' ',kbytes,' FAILED',iret
262 #ifdef SFX_MPI
263  CALL mpl_abort('BYTES_IO_READ_JPIM_REAL8 FAILED')
264 #endif
265 ENDIF
266 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL8',1,zhook_handle)
267 END SUBROUTINE bytes_io_read_jpim_real8
268 
269 SUBROUTINE bytes_io_read_jpim_real8_array(KFILE,PBUF,KBYTES,KRET)
270 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
271 REAL(KIND=JPRD),INTENT(OUT) :: PBUF(:)
272 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
273 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
274 INTEGER(KIND=JPIM) :: IRET,ILEN
275 REAL(KIND=JPRB) :: ZHOOK_HANDLE
276 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL8_ARRAY',0,zhook_handle)
277 CALL c_bytes_io_read(kfile,pbuf,kbytes,iret)
278 IF(PRESENT(kret)) THEN
279  kret=iret
280 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
281  WRITE(0,*) 'BYTES_IO_READ_JPIM_REAL8_ARRAY ',kfile,' ',kbytes,' FAILED',iret
282 #ifdef SFX_MPI
283  CALL mpl_abort('BYTES_IO_READ_JPIM_REAL8_ARRAY FAILED')
284 #endif
285 ENDIF
286 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_REAL8_ARRAY',1,zhook_handle)
287 END SUBROUTINE bytes_io_read_jpim_real8_array
288 
289 SUBROUTINE bytes_io_read_jpim_char_array(KFILE,CDBUF,KBYTES,KRET)
290 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
291 CHARACTER(LEN=1) ,INTENT(OUT) :: CDBUF(:)
292 INTEGER(KIND=JPIM),INTENT(INOUT) :: KBYTES
293 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
294 INTEGER(KIND=JPIM) :: IRET,ILEN
295 REAL(KIND=JPRB) :: ZHOOK_HANDLE
296 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_CHAR_ARRAY',0,zhook_handle)
297 CALL c_bytes_io_read(kfile,cdbuf,kbytes,iret)
298 IF(PRESENT(kret)) THEN
299  kret=iret
300 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
301  WRITE(0,*) 'BYTES_IO_READ_JPIM_CHAR_ARRAY ',kfile,' FAILED',iret
302 #ifdef SFX_MPI
303  CALL mpl_abort('BYTES_IO_READ_JPIM_CHAR_ARRAY FAILED')
304 #endif
305 ENDIF
306 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIM_CHAR_ARRAY',1,zhook_handle)
307 END SUBROUTINE bytes_io_read_jpim_char_array
308 
309 
310 ! ============================================
311 ! BYTES_IO_WRITE_JPIM
312 
313 SUBROUTINE bytes_io_write_jpim_int(KFILE,PBUF,KBYTES,KRET)
314 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
315 INTEGER(KIND=JPIM),INTENT(IN) :: PBUF
316 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
317 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
318 INTEGER(KIND=JPIM) :: IRET
319 INTEGER(KIND=JPIM) :: ILEN
320 REAL(KIND=JPRB) :: ZHOOK_HANDLE
321 
322 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_INT',0,zhook_handle)
323 
324 CALL c_bytes_io_write(kfile,pbuf,kbytes,iret)
325 IF(PRESENT(kret)) THEN
326  kret=iret
327 ENDIF
328 IF(iret < jpbytes_io_success ) THEN
329  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_INT ',kfile,' ',kbytes,' FAILED',iret
330 #ifdef SFX_MPI
331  CALL mpl_abort('BYTES_IO_WRITE_JPIM_INT FAILED')
332 #endif
333 ENDIF
334 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_INT',1,zhook_handle)
335 END SUBROUTINE bytes_io_write_jpim_int
336 
337 SUBROUTINE bytes_io_write_jpim_int_array(KFILE,PBUF,KBYTES,KRET)
338 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
339 INTEGER(KIND=JPIM),INTENT(IN) :: PBUF(:)
340 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
341 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
342 INTEGER(KIND=JPIM) :: IRET
343 INTEGER(KIND=JPIM) :: ILEN
344 REAL(KIND=JPRB) :: ZHOOK_HANDLE
345 
346 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_INT',0,zhook_handle)
347 
348 CALL c_bytes_io_write(kfile,pbuf,kbytes,iret)
349 IF(PRESENT(kret)) THEN
350  kret=iret
351 ENDIF
352 IF(iret < jpbytes_io_success ) THEN
353  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_INT ',kfile,' ',kbytes,' FAILED',iret
354 #ifdef SFX_MPI
355  CALL mpl_abort('BYTES_IO_WRITE_JPIM_INT FAILED')
356 #endif
357 ENDIF
358 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_INT',1,zhook_handle)
359 END SUBROUTINE bytes_io_write_jpim_int_array
360 
361 SUBROUTINE bytes_io_write_jpim_real4(KFILE,PBUF,KBYTES,KRET)
362 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
363 REAL(KIND=JPRM),INTENT(IN) :: PBUF
364 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
365 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
366 INTEGER(KIND=JPIM) :: IRET
367 INTEGER(KIND=JPIM) :: ILEN
368 REAL(KIND=JPRB) :: ZHOOK_HANDLE
369 
370 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL4',0,zhook_handle)
371 
372 CALL c_bytes_io_write(kfile,pbuf,kbytes,iret)
373 IF(PRESENT(kret)) THEN
374  kret=iret
375 ENDIF
376 IF(iret < jpbytes_io_success ) THEN
377  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_REAL4 ',kfile,' ',kbytes,' FAILED',iret
378 #ifdef SFX_MPI
379  CALL mpl_abort('BYTES_IO_WRITE_JPIM_REAL4 FAILED')
380 #endif
381 ENDIF
382 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL4',1,zhook_handle)
383 END SUBROUTINE bytes_io_write_jpim_real4
384 
385 SUBROUTINE bytes_io_write_jpim_real4_array(KFILE,PBUF,KBYTES,KRET)
386 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
387 REAL(KIND=JPRM),INTENT(IN) :: PBUF(:)
388 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
389 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
390 INTEGER(KIND=JPIM) :: IRET
391 INTEGER(KIND=JPIM) :: ILEN
392 REAL(KIND=JPRB) :: ZHOOK_HANDLE
393 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL4_ARRAY',0,zhook_handle)
394 CALL c_bytes_io_write(kfile,pbuf,kbytes,iret)
395 IF(PRESENT(kret)) THEN
396  kret=iret
397 ENDIF
398 IF(iret < jpbytes_io_success ) THEN
399  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_REAL4_ARRAY ',kfile,' ',kbytes,' FAILED',iret
400 #ifdef SFX_MPI
401  CALL mpl_abort('BYTES_IO_WRITE_JPIM_REAL4_ARRAY FAILED')
402 #endif
403 ENDIF
404 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL4_ARRAY',1,zhook_handle)
405 END SUBROUTINE bytes_io_write_jpim_real4_array
406 
407 
408 SUBROUTINE bytes_io_write_jpim_real8(KFILE,PBUF,KBYTES,KRET)
409 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
410 REAL(KIND=JPRD),INTENT(IN) :: PBUF
411 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
412 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
413 INTEGER(KIND=JPIM) :: IRET
414 INTEGER(KIND=JPIM) :: ILEN
415 REAL(KIND=JPRB) :: ZHOOK_HANDLE
416 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL8',0,zhook_handle)
417 CALL c_bytes_io_write(kfile,pbuf,kbytes,iret)
418 IF(PRESENT(kret)) THEN
419  kret=iret
420 ENDIF
421 IF(iret < jpbytes_io_success ) THEN
422  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_REAL8 ',kfile,' ',kbytes,' FAILED',iret
423 #ifdef SFX_MPI
424  CALL mpl_abort('BYTES_IO_WRITE_JPIM_REAL8 FAILED')
425 #endif
426 ENDIF
427 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL8',1,zhook_handle)
428 END SUBROUTINE bytes_io_write_jpim_real8
429 
430 SUBROUTINE bytes_io_write_jpim_real8_array(KFILE,PBUF,KBYTES,KRET)
431 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
432 REAL(KIND=JPRD),INTENT(IN) :: PBUF(:)
433 INTEGER(KIND=JPIM),INTENT(IN) :: KBYTES
434 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
435 INTEGER(KIND=JPIM) :: IRET
436 INTEGER(KIND=JPIM) :: ILEN
437 REAL(KIND=JPRB) :: ZHOOK_HANDLE
438 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL8_ARRAY',0,zhook_handle)
439 CALL c_bytes_io_write(kfile,pbuf,kbytes,iret)
440 IF(PRESENT(kret)) THEN
441  kret=iret
442 ENDIF
443 IF(iret < jpbytes_io_success ) THEN
444  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_REAL8_ARRAY ',kfile,' ',kbytes,' FAILED',iret
445 #ifdef SFX_MPI
446  CALL mpl_abort('BYTES_IO_WRITE_JPIM_REAL8_ARRAY FAILED')
447 #endif
448 ENDIF
449 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_REAL8_ARRAY',1,zhook_handle)
450 END SUBROUTINE bytes_io_write_jpim_real8_array
451 
452 SUBROUTINE bytes_io_write_jpim_char_array(KFILE,CDBUF,KBYTES,KRET)
453 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
454 CHARACTER(LEN=1) ,INTENT(IN) :: CDBUF(:)
455 INTEGER(KIND=JPIM),INTENT(INOUT) :: KBYTES
456 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
457 INTEGER(KIND=JPIM) :: IRET
458 REAL(KIND=JPRB) :: ZHOOK_HANDLE
459 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_CHAR_ARRAY',0,zhook_handle)
460 CALL c_bytes_io_write(kfile,cdbuf,kbytes,iret)
461 IF(PRESENT(kret)) THEN
462  kret=iret
463 ELSEIF(iret < jpbytes_io_success) THEN
464  WRITE(0,*) 'BYTES_IO_WRITE_JPIM_CHAR_ARRAY ',kfile,' FAILED',iret
465 #ifdef SFX_MPI
466  CALL mpl_abort('BYTES_IO_WRITE_JPIM_CHAR_ARRAY FAILED')
467 #endif
468 ENDIF
469 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIM_CHAR_ARRAY',1,zhook_handle)
470 END SUBROUTINE bytes_io_write_jpim_char_array
471 
472 ! ============================================
473 ! BYTES_IO_READ_JPIB
474 
475 SUBROUTINE bytes_io_read_jpib_int(KFILE,KBUF,KBYTES,KRET)
476 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
477 INTEGER(KIND=JPIM),INTENT(OUT) :: KBUF
478 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
479 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
480 INTEGER(KIND=JPIM) :: IRET,ILEN
481 REAL(KIND=JPRB) :: ZHOOK_HANDLE
482 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_INT',0,zhook_handle)
483 CALL c_bytes_io_read(kfile,kbuf,int(kbytes,jpim),iret)
484 IF(PRESENT(kret)) THEN
485  kret=iret
486 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
487  WRITE(0,*) 'BYTES_IO_READ_JPIB_INT ',kfile,' ',kbytes,' FAILED',iret
488 #ifdef SFX_MPI
489  CALL mpl_abort('BYTES_IO_READ_JPIB_INT FAILED')
490 #endif
491 ENDIF
492 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_INT',1,zhook_handle)
493 END SUBROUTINE bytes_io_read_jpib_int
494 
495 SUBROUTINE bytes_io_read_jpib_int_array(KFILE,KBUF,KBYTES,KRET)
496 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
497 INTEGER(KIND=JPIM),INTENT(OUT) :: KBUF(:)
498 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
499 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
500 INTEGER(KIND=JPIM) :: IRET,ILEN
501 REAL(KIND=JPRB) :: ZHOOK_HANDLE
502 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_INT_ARRAY',0,zhook_handle)
503 CALL c_bytes_io_read(kfile,kbuf,int(kbytes,jpim),iret)
504 IF(PRESENT(kret)) THEN
505  kret=iret
506 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
507  WRITE(0,*) 'BYTES_IO_READ_JPIB_INT_ARRAY ',kfile,' ',kbytes,' FAILED',iret
508 #ifdef SFX_MPI
509  CALL mpl_abort('BYTES_IO_READ_JPIB_INT_ARRAY FAILED')
510 #endif
511 ENDIF
512 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_INT_ARRAY',1,zhook_handle)
513 END SUBROUTINE bytes_io_read_jpib_int_array
514 
515 SUBROUTINE bytes_io_read_jpib_real4(KFILE,PBUF,KBYTES,KRET)
516 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
517 REAL(KIND=JPRM),INTENT(OUT) :: PBUF
518 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
519 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
520 INTEGER(KIND=JPIM) :: IRET,ILEN
521 REAL(KIND=JPRB) :: ZHOOK_HANDLE
522 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL4',0,zhook_handle)
523 CALL c_bytes_io_read(kfile,pbuf,int(kbytes,jpim),iret)
524 IF(PRESENT(kret)) THEN
525  kret=iret
526 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
527  WRITE(0,*) 'BYTES_IO_READ_JPIB_REAL4 ',kfile,' ',kbytes,' FAILED',iret
528 #ifdef SFX_MPI
529  CALL mpl_abort('BYTES_IO_READ_JPIB_REAL4 FAILED')
530 #endif
531 ENDIF
532 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL4',1,zhook_handle)
533 END SUBROUTINE bytes_io_read_jpib_real4
534 
535 SUBROUTINE bytes_io_read_jpib_real4_array(KFILE,PBUF,KBYTES,KRET)
536 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
537 REAL(KIND=JPRM),INTENT(OUT) :: PBUF(:)
538 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
539 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
540 INTEGER(KIND=JPIM) :: IRET,ILEN
541 REAL(KIND=JPRB) :: ZHOOK_HANDLE
542 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL4_ARRAY',0,zhook_handle)
543 CALL c_bytes_io_read(kfile,pbuf,int(kbytes,jpim),iret)
544 IF(PRESENT(kret)) THEN
545  kret=iret
546 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
547  WRITE(0,*) 'BYTES_IO_READ_JPIB_REAL4_ARRAY ',kfile,' ',kbytes,' FAILED',iret
548 #ifdef SFX_MPI
549  CALL mpl_abort('BYTES_IO_READ_JPIB_REAL4_ARRAY FAILED')
550 #endif
551 ENDIF
552 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL4_ARRAY',1,zhook_handle)
553 END SUBROUTINE bytes_io_read_jpib_real4_array
554 
555 SUBROUTINE bytes_io_read_jpib_real8(KFILE,PBUF,KBYTES,KRET)
556 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
557 REAL(KIND=JPRD),INTENT(OUT) :: PBUF
558 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
559 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
560 INTEGER(KIND=JPIM) :: IRET,ILEN
561 REAL(KIND=JPRB) :: ZHOOK_HANDLE
562 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL8',0,zhook_handle)
563 CALL c_bytes_io_read(kfile,pbuf,int(kbytes,jpim),iret)
564 IF(PRESENT(kret)) THEN
565  kret=iret
566 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
567  WRITE(0,*) 'BYTES_IO_READ_JPIB_REAL8 ',kfile,' ',kbytes,' FAILED',iret
568 #ifdef SFX_MPI
569  CALL mpl_abort('BYTES_IO_READ_JPIB_REAL8 FAILED')
570 #endif
571 ENDIF
572 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL8',1,zhook_handle)
573 END SUBROUTINE bytes_io_read_jpib_real8
574 
575 SUBROUTINE bytes_io_read_jpib_real8_array(KFILE,PBUF,KBYTES,KRET)
576 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
577 REAL(KIND=JPRD),INTENT(OUT) :: PBUF(:)
578 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
579 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
580 INTEGER(KIND=JPIM) :: IRET,ILEN
581 REAL(KIND=JPRB) :: ZHOOK_HANDLE
582 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL8_ARRAY',0,zhook_handle)
583 CALL c_bytes_io_read(kfile,pbuf,int(kbytes,jpim),iret)
584 IF(PRESENT(kret)) THEN
585  kret=iret
586 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
587  WRITE(0,*) 'BYTES_IO_READ_JPIB_REAL8_ARRAY ',kfile,' ',kbytes,' FAILED',iret
588 #ifdef SFX_MPI
589  CALL mpl_abort('BYTES_IO_READ_JPIB_REAL8_ARRAY FAILED')
590 #endif
591 ENDIF
592 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_REAL8_ARRAY',1,zhook_handle)
593 END SUBROUTINE bytes_io_read_jpib_real8_array
594 
595 SUBROUTINE bytes_io_read_jpib_char_array(KFILE,CDBUF,KBYTES,KRET)
596 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
597 CHARACTER(LEN=1) ,INTENT(OUT) :: CDBUF(:)
598 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
599 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
600 INTEGER(KIND=JPIM) :: IRET,ILEN
601 REAL(KIND=JPRB) :: ZHOOK_HANDLE
602 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_CHAR_ARRAY',0,zhook_handle)
603 CALL c_bytes_io_read(kfile,cdbuf,int(kbytes,jpim),iret)
604 IF(PRESENT(kret)) THEN
605  kret=iret
606 ELSEIF(iret < jpbytes_io_success .AND. iret < jpbytes_io_end_of_file ) THEN
607  WRITE(0,*) 'BYTES_IO_READ_JPIB_CHAR_ARRAY ',kfile,' FAILED',iret
608 #ifdef SFX_MPI
609  CALL mpl_abort('BYTES_IO_READ_JPIB_CHAR_ARRAY FAILED')
610 #endif
611 ENDIF
612 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_READ_JPIB_CHAR_ARRAY',1,zhook_handle)
613 END SUBROUTINE bytes_io_read_jpib_char_array
614 
615 
616 ! ============================================
617 ! BYTES_IO_WRITE_JPIB
618 
619 SUBROUTINE bytes_io_write_jpib_int(KFILE,PBUF,KBYTES,KRET)
620 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
621 INTEGER(KIND=JPIM),INTENT(IN) :: PBUF
622 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
623 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
624 INTEGER(KIND=JPIM) :: IRET
625 INTEGER(KIND=JPIM) :: ILEN
626 REAL(KIND=JPRB) :: ZHOOK_HANDLE
627 
628 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_INT',0,zhook_handle)
629 
630 CALL c_bytes_io_write(kfile,pbuf,int(kbytes,jpim),iret)
631 IF(PRESENT(kret)) THEN
632  kret=iret
633 ENDIF
634 IF(iret < jpbytes_io_success ) THEN
635  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_INT ',kfile,' ',kbytes,' FAILED',iret
636 #ifdef SFX_MPI
637  CALL mpl_abort('BYTES_IO_WRITE_JPIB_INT FAILED')
638 #endif
639 ENDIF
640 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_INT',1,zhook_handle)
641 END SUBROUTINE bytes_io_write_jpib_int
642 
643 SUBROUTINE bytes_io_write_jpib_int_array(KFILE,PBUF,KBYTES,KRET)
644 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
645 INTEGER(KIND=JPIM),INTENT(IN) :: PBUF(:)
646 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
647 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
648 INTEGER(KIND=JPIM) :: IRET
649 INTEGER(KIND=JPIM) :: ILEN
650 REAL(KIND=JPRB) :: ZHOOK_HANDLE
651 
652 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_INT',0,zhook_handle)
653 
654 CALL c_bytes_io_write(kfile,pbuf,int(kbytes,jpim),iret)
655 IF(PRESENT(kret)) THEN
656  kret=iret
657 ENDIF
658 IF(iret < jpbytes_io_success ) THEN
659  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_INT ',kfile,' ',kbytes,' FAILED',iret
660 #ifdef SFX_MPI
661  CALL mpl_abort('BYTES_IO_WRITE_JPIB_INT FAILED')
662 #endif
663 ENDIF
664 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_INT',1,zhook_handle)
665 END SUBROUTINE bytes_io_write_jpib_int_array
666 
667 SUBROUTINE bytes_io_write_jpib_real4(KFILE,PBUF,KBYTES,KRET)
668 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
669 REAL(KIND=JPRM),INTENT(IN) :: PBUF
670 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
671 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
672 INTEGER(KIND=JPIM) :: IRET
673 INTEGER(KIND=JPIM) :: ILEN
674 REAL(KIND=JPRB) :: ZHOOK_HANDLE
675 
676 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL4',0,zhook_handle)
677 
678 CALL c_bytes_io_write(kfile,pbuf,int(kbytes,jpim),iret)
679 IF(PRESENT(kret)) THEN
680  kret=iret
681 ENDIF
682 IF(iret < jpbytes_io_success ) THEN
683  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_REAL4 ',kfile,' ',kbytes,' FAILED',iret
684 #ifdef SFX_MPI
685  CALL mpl_abort('BYTES_IO_WRITE_JPIB_REAL4 FAILED')
686 #endif
687 ENDIF
688 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL4',1,zhook_handle)
689 END SUBROUTINE bytes_io_write_jpib_real4
690 
691 SUBROUTINE bytes_io_write_jpib_real4_array(KFILE,PBUF,KBYTES,KRET)
692 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
693 REAL(KIND=JPRM),INTENT(IN) :: PBUF(:)
694 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
695 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
696 INTEGER(KIND=JPIM) :: IRET
697 INTEGER(KIND=JPIM) :: ILEN
698 REAL(KIND=JPRB) :: ZHOOK_HANDLE
699 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL4_ARRAY',0,zhook_handle)
700 CALL c_bytes_io_write(kfile,pbuf,int(kbytes,jpim),iret)
701 IF(PRESENT(kret)) THEN
702  kret=iret
703 ENDIF
704 IF(iret < jpbytes_io_success ) THEN
705  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_REAL4_ARRAY ',kfile,' ',kbytes,' FAILED',iret
706 #ifdef SFX_MPI
707  CALL mpl_abort('BYTES_IO_WRITE_JPIB_REAL4_ARRAY FAILED')
708 #endif
709 ENDIF
710 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL4_ARRAY',1,zhook_handle)
711 END SUBROUTINE bytes_io_write_jpib_real4_array
712 
713 
714 SUBROUTINE bytes_io_write_jpib_real8(KFILE,PBUF,KBYTES,KRET)
715 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
716 REAL(KIND=JPRD),INTENT(IN) :: PBUF
717 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
718 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
719 INTEGER(KIND=JPIM) :: IRET
720 INTEGER(KIND=JPIM) :: ILEN
721 REAL(KIND=JPRB) :: ZHOOK_HANDLE
722 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL8',0,zhook_handle)
723 CALL c_bytes_io_write(kfile,pbuf,int(kbytes,jpim),iret)
724 IF(PRESENT(kret)) THEN
725  kret=iret
726 ENDIF
727 IF(iret < jpbytes_io_success ) THEN
728  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_REAL8 ',kfile,' ',kbytes,' FAILED',iret
729 #ifdef SFX_MPI
730  CALL mpl_abort('BYTES_IO_WRITE_JPIB_REAL8 FAILED')
731 #endif
732 ENDIF
733 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL8',1,zhook_handle)
734 END SUBROUTINE bytes_io_write_jpib_real8
735 
736 SUBROUTINE bytes_io_write_jpib_real8_array(KFILE,PBUF,KBYTES,KRET)
737 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
738 REAL(KIND=JPRD),INTENT(IN) :: PBUF(:)
739 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
740 INTEGER(KIND=JPIM),OPTIONAL,INTENT(OUT) :: KRET
741 INTEGER(KIND=JPIM) :: IRET
742 INTEGER(KIND=JPIM) :: ILEN
743 REAL(KIND=JPRB) :: ZHOOK_HANDLE
744 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL8_ARRAY',0,zhook_handle)
745 CALL c_bytes_io_write(kfile,pbuf,int(kbytes,jpim),iret)
746 IF(PRESENT(kret)) THEN
747  kret=iret
748 ENDIF
749 IF(iret < jpbytes_io_success ) THEN
750  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_REAL8_ARRAY ',kfile,' ',kbytes,' FAILED',iret
751 #ifdef SFX_MPI
752  CALL mpl_abort('BYTES_IO_WRITE_JPIB_REAL8_ARRAY FAILED')
753 #endif
754 ENDIF
755 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_REAL8_ARRAY',1,zhook_handle)
756 END SUBROUTINE bytes_io_write_jpib_real8_array
757 
758 SUBROUTINE bytes_io_write_jpib_char_array(KFILE,CDBUF,KBYTES,KRET)
759 INTEGER(KIND=JPIM),INTENT(IN) :: KFILE
760 CHARACTER(LEN=1) ,INTENT(IN) :: CDBUF(:)
761 INTEGER(KIND=JPIB),INTENT(IN) :: KBYTES
762 INTEGER(KIND=JPIM),INTENT(OUT), OPTIONAL :: KRET
763 INTEGER(KIND=JPIM) :: IRET
764 REAL(KIND=JPRB) :: ZHOOK_HANDLE
765 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_CHAR_ARRAY',0,zhook_handle)
766 CALL c_bytes_io_write(kfile,cdbuf,int(kbytes,jpim),iret)
767 IF(PRESENT(kret)) THEN
768  kret=iret
769 ELSEIF(iret < jpbytes_io_success) THEN
770  WRITE(0,*) 'BYTES_IO_WRITE_JPIB_CHAR_ARRAY ',kfile,' FAILED',iret
771 #ifdef SFX_MPI
772  CALL mpl_abort('BYTES_IO_WRITE_JPIB_CHAR_ARRAY FAILED')
773 #endif
774 ENDIF
775 IF (lhook) CALL dr_hook('BYTES_IO:BYTES_IO_WRITE_JPIB_CHAR_ARRAY',1,zhook_handle)
776 END SUBROUTINE bytes_io_write_jpib_char_array
777 
778 END MODULE bytes_io_mod
subroutine bytes_io_read_jpib_char_array(KFILE, CDBUF, KBYTES, KRET)
subroutine bytes_io_write_jpim_char_array(KFILE, CDBUF, KBYTES, KRET)
static const char * trim(const char *name, int *n)
Definition: drhook.c:2383
integer, parameter jpbytes_io_read_jpim_error
subroutine bytes_io_write_jpim_real4(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_read_jpib_real8_array(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_write_jpim_real4_array(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_read_jpim_real8(KFILE, PBUF, KBYTES, KRET)
integer, parameter jpim
Definition: parkind1.F90:13
integer, parameter jprd
Definition: parkind1.F90:39
void c_bytes_io_open(int *unit, char *name, char *mode, int *iret, int l1, int l2)
Definition: bytes_io.c:530
subroutine, public bytes_io_tell(KFILE, KRET)
integer, parameter jpbytes_io_end_of_file
subroutine, public bytes_io_open(KFILE, CDPATH, CDMODE, KRET)
subroutine bytes_io_read_jpib_int(KFILE, KBUF, KBYTES, KRET)
subroutine bytes_io_write_jpib_real8_array(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_write_jpib_real4(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_write_jpib_int_array(KFILE, PBUF, KBYTES, KRET)
subroutine, public bytes_io_close(KFILE, KRET)
integer, parameter, public jpbytes_io_success
subroutine bytes_io_read_jpib_int_array(KFILE, KBUF, KBYTES, KRET)
subroutine bytes_io_read_jpim_char_array(KFILE, CDBUF, KBYTES, KRET)
subroutine bytes_io_write_jpib_int(KFILE, PBUF, KBYTES, KRET)
void c_bytes_io_write(int *unit, char *buffer, int *nbytes, int *iret)
Definition: bytes_io.c:766
integer, parameter jpbytes_io_invalid_file_name
subroutine bytes_io_read_jpim_int(KFILE, KBUF, KBYTES, KRET)
subroutine bytes_io_write_jpim_int(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_write_jpim_int_array(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_read_jpim_real4(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_write_jpib_real8(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_write_jpim_real8_array(KFILE, PBUF, KBYTES, KRET)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine bytes_io_read_jpim_int_array(KFILE, KBUF, KBYTES, KRET)
integer, parameter jpbytes_io_could_not_open_file
integer, parameter jpbytes_io_invalid_open_mode
subroutine bytes_io_read_jpib_real4_array(KFILE, PBUF, KBYTES, KRET)
integer, parameter jprm
Definition: parkind1.F90:30
void c_bytes_io_tell(int *unit, int *iret)
Definition: bytes_io.c:661
subroutine bytes_io_write_jpib_real4_array(KFILE, PBUF, KBYTES, KRET)
void c_bytes_io_close(int *unit, int *iret)
Definition: bytes_io.c:801
integer, parameter jpbytes_io_seek_error
subroutine bytes_io_read_jpim_real4_array(KFILE, PBUF, KBYTES, KRET)
integer, parameter jpbytes_io_could_not_close_file
subroutine, public bytes_io_seek(KFILE, KOFFSET, KWHENCE, KRET)
subroutine bytes_io_read_jpib_real8(KFILE, PBUF, KBYTES, KRET)
logical lhook
Definition: yomhook.F90:15
subroutine bytes_io_write_jpim_real8(KFILE, PBUF, KBYTES, KRET)
subroutine bytes_io_read_jpim_real8_array(KFILE, PBUF, KBYTES, KRET)
integer, parameter jpib
Definition: parkind1.F90:14
subroutine bytes_io_read_jpib_real4(KFILE, PBUF, KBYTES, KRET)
integer, parameter jpbytes_io_write_jpim_error
void c_bytes_io_seek(int *unit, int *offset, int *whence, int *iret)
Definition: bytes_io.c:608
subroutine bytes_io_write_jpib_char_array(KFILE, CDBUF, KBYTES, KRET)
void c_bytes_io_read(int *unit, char *buffer, int *nbytes, int *iret)
Definition: bytes_io.c:718