SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
mode_write_surf_bin.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ######spl
7 !
8 INTERFACE write_surf0_bin
9  MODULE PROCEDURE write_surfx0_bin
10  MODULE PROCEDURE write_surfn0_bin
11  MODULE PROCEDURE write_surfl0_bin
12  MODULE PROCEDURE write_surfc0_bin
13 END INTERFACE
14 INTERFACE write_surfx_bin
15  MODULE PROCEDURE write_surfx1_bin
16  MODULE PROCEDURE write_surfx2_bin
17 END INTERFACE
18 INTERFACE write_surfn_bin
19  MODULE PROCEDURE write_surfn1_bin
20  MODULE PROCEDURE write_surfl1_bin
21 END INTERFACE
22 INTERFACE write_surft_bin
23  MODULE PROCEDURE write_surft0_bin
24  MODULE PROCEDURE write_surft2_bin
25 END INTERFACE
26 !
27  CONTAINS
28 !
29 ! #############################################################
30  SUBROUTINE write_surfx0_bin(HREC,PFIELD,KRESP,HCOMMENT)
31 ! #############################################################
32 !
33 !!**** * - routine to write a real scalar
34 !
35 USE modi_error_write_surf_bin
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 !
42 !* 0.1 Declarations of arguments
43 !
44  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
45 REAL, INTENT(IN) :: pfield ! the real scalar to be read
46 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
47  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
48 !
49 !* 0.2 Declarations of local variables
50 !
51 REAL(KIND=JPRB) :: zhook_handle
52 !
53 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX0_BIN',0,zhook_handle)
54 !
55 kresp=0
56 !
57 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
58 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
59 !plm WRITE(NUNIT,FMT=*,ERR=100) PFIELD
60 
61 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX0_BIN',1,zhook_handle)
62 RETURN
63 !
64 100 CONTINUE
65  CALL error_write_surf_bin(hrec,kresp)
66 !
67 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX0_BIN',1,zhook_handle)
68 !
69 END SUBROUTINE write_surfx0_bin
70 !
71 ! #############################################################
72  SUBROUTINE write_surfn0_bin(HREC,KFIELD,KRESP,HCOMMENT)
73 ! #############################################################
74 !
75 !!**** * - routine to write an integer
76 !
77 USE modi_error_write_surf_bin
78 !
79 USE yomhook ,ONLY : lhook, dr_hook
80 USE parkind1 ,ONLY : jprb
81 !
82 IMPLICIT NONE
83 !
84 !* 0.1 Declarations of arguments
85 !
86  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
87 INTEGER, INTENT(IN) :: kfield ! the integer to be read
88 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
89  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
90 !
91 !* 0.2 Declarations of local variables
92 !
93 REAL(KIND=JPRB) :: zhook_handle
94 !
95 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFN0_BIN',0,zhook_handle)
96 !
97 kresp=0
98 !
99 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
100 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
101 !plm WRITE(NUNIT,FMT=*,ERR=100) KFIELD
102 !
103 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFN0_BIN',1,zhook_handle)
104 RETURN
105 !
106 100 CONTINUE
107  CALL error_write_surf_bin(hrec,kresp)
108 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFN0_BIN',1,zhook_handle)
109 !
110 END SUBROUTINE write_surfn0_bin
111 !
112 ! #############################################################
113  SUBROUTINE write_surfl0_bin(HREC,OFIELD,KRESP,HCOMMENT)
114 ! #############################################################
115 !
116 !!**** * - routine to write a logical
117 !
118 USE modi_error_write_surf_bin
119 !
120 USE yomhook ,ONLY : lhook, dr_hook
121 USE parkind1 ,ONLY : jprb
122 !
123 IMPLICIT NONE
124 !
125 !* 0.1 Declarations of arguments
126 !
127  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
128 LOGICAL, INTENT(IN) :: ofield ! array containing the data field
129 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
130  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
131 !
132 !* 0.2 Declarations of local variables
133 !
134 REAL(KIND=JPRB) :: zhook_handle
135 !
136 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFL0_BIN',0,zhook_handle)
137 !
138 kresp=0
139 !
140 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
141 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
142 !plm WRITE(NUNIT,FMT=*,ERR=100) OFIELD
143 
144 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFL0_BIN',1,zhook_handle)
145 RETURN
146 !
147 100 CONTINUE
148  CALL error_write_surf_bin(hrec,kresp)
149 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFL0_BIN',1,zhook_handle)
150 !
151 END SUBROUTINE write_surfl0_bin
152 !
153 ! #############################################################
154  SUBROUTINE write_surfc0_bin(HREC,HFIELD,KRESP,HCOMMENT)
155 ! #############################################################
156 !
157 !!**** * - routine to write a character
158 !
159 USE modi_error_write_surf_bin
160 !
161 USE yomhook ,ONLY : lhook, dr_hook
162 USE parkind1 ,ONLY : jprb
163 !
164 IMPLICIT NONE
165 !
166 !* 0.1 Declarations of arguments
167 !
168  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
169  CHARACTER(LEN=40), INTENT(IN) :: hfield ! the integer to be read
170 INTEGER, INTENT(OUT) :: kresp ! KRESP : return-code if a problem appears
171  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
172 !
173 !* 0.2 Declarations of local variables
174 !
175 REAL(KIND=JPRB) :: zhook_handle
176 !
177 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFC0_BIN',0,zhook_handle)
178 !
179 kresp=0
180 !
181 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
182 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
183 !plm WRITE(NUNIT,FMT='(A40)',ERR=100) HFIELD
184 
185 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFC0_BIN',1,zhook_handle)
186 RETURN
187 !
188 100 CONTINUE
189  CALL error_write_surf_bin(hrec,kresp)
190 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFC0_BIN',1,zhook_handle)
191 !
192 END SUBROUTINE write_surfc0_bin
193 !
194 ! #############################################################
195  SUBROUTINE write_surfx1_bin (DGU, U, &
196  hrec,pfield,kresp,hcomment,hdir)
197 ! #############################################################
198 !
199 !!**** * - routine to fill a write 1D array for the externalised surface
200 !
201 !
202 !
203 !
205 USE modd_surf_atm_n, ONLY : surf_atm_t
206 !
207 USE modd_surfex_mpi, ONLY : nrank, npio, xtime_npio_write
208 !
209 USE modd_io_surf_bin, ONLY : nmask, nfull, cmask
210 USE modd_write_bin, ONLY : cvar, nvar, nind, nwrite
211 !
212 USE modi_error_write_surf_bin
214 USE modi_init_write_bin
215 !
216 USE yomhook ,ONLY : lhook, dr_hook
217 USE parkind1 ,ONLY : jprb
218 !
219 IMPLICIT NONE
220 !
221 #ifdef SFX_MPI
222 include "mpif.h"
223 #endif
224 !
225 !* 0.1 Declarations of arguments
226 !
227 !
228 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
229 TYPE(surf_atm_t), INTENT(INOUT) :: u
230 !
231  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
232 REAL, DIMENSION(:), INTENT(IN) :: pfield ! array containing the data field
233 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
234  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
235  CHARACTER(LEN=1), INTENT(IN) :: hdir ! type of field :
236  ! 'H' : field with
237  ! horizontal spatial dim.
238  ! '-' : no horizontal dim.
239 !* 0.2 Declarations of local variables
240 !
241 LOGICAL :: lwfl=.false.
242 REAL(KIND=4), DIMENSION(MAX(NFULL,SIZE(PFIELD))) :: zwork ! work array read in the file
243 DOUBLE PRECISION :: xtime0
244 REAL(KIND=JPRB) :: zhook_handle
245 !
246 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX1_BIN',0,zhook_handle)
247 !
248 kresp=0
249 !
250  CALL gather_and_write_mpi(pfield,zwork,nmask)
251 !
252 IF (nrank==npio) THEN
253  !
254 #ifdef SFX_MPI
255  xtime0 = mpi_wtime()
256 #endif
257  !
258 !$OMP SINGLE
259  !
260  CALL init_write_bin(dgu, u, &
261  hrec,1,lwfl)
262  !
263  IF (lwfl) THEN
264  WRITE(nind,rec=nwrite,iostat=kresp) zwork
265  ENDIF
266  !
267  IF (kresp/=0) CALL error_write_surf_bin(hrec,kresp)
268  !
269 !$OMP END SINGLE NOWAIT
270  !
271 #ifdef SFX_MPI
272  xtime_npio_write = xtime_npio_write + (mpi_wtime() - xtime0)
273 #endif
274  !
275 ENDIF
276 !
277 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX1_BIN',1,zhook_handle)
278 !
279 END SUBROUTINE write_surfx1_bin
280 !
281 ! #############################################################
282  SUBROUTINE write_surfx2_bin (DGU, U, &
283  hrec,pfield,kresp,hcomment,hdir)
284 ! #############################################################
285 !
286 !!**** * - routine to fill a write 2D array for the externalised surface
287 !
288 !
289 !
290 !
292 USE modd_surf_atm_n, ONLY : surf_atm_t
293 !
294 USE modd_surfex_mpi, ONLY : nrank, npio, xtime_npio_write
295 !
296 USE modd_io_surf_bin, ONLY : nmask, nfull
297 USE modd_write_bin, ONLY : cvar, nvar, nind, nwrite
298 !
299 USE modi_error_write_surf_bin
301 USE modi_init_write_bin
302 !
303 USE yomhook ,ONLY : lhook, dr_hook
304 USE parkind1 ,ONLY : jprb
305 !
306 IMPLICIT NONE
307 !
308 #ifdef SFX_MPI
309 include "mpif.h"
310 #endif
311 !
312 !* 0.1 Declarations of arguments
313 !
314 !
315 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
316 TYPE(surf_atm_t), INTENT(INOUT) :: u
317 !
318  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
319 REAL, DIMENSION(:,:), INTENT(IN) :: pfield ! array containing the data field
320 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
321  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
322  CHARACTER(LEN=1), INTENT(IN) :: hdir ! type of field :
323  ! 'H' : field with
324  ! horizontal spatial dim.
325  ! '-' : no horizontal dim.
326 !* 0.2 Declarations of local variables
327 !
328 LOGICAL :: lwfl=.false.
329 REAL(KIND=4), DIMENSION(MAX(NFULL,SIZE(PFIELD,1)),SIZE(PFIELD,2)) :: zwork ! work array read in the file
330 DOUBLE PRECISION :: xtime0
331 REAL(KIND=JPRB) :: zhook_handle
332 !
333 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX2_BIN',0,zhook_handle)
334 !
335 kresp=0
336 !
337  CALL gather_and_write_mpi(pfield,zwork,nmask)
338 !
339 IF (nrank==npio) THEN
340  !
341 #ifdef SFX_MPI
342  xtime0 = mpi_wtime()
343 #endif
344  !
345 !$OMP SINGLE
346  !
347  CALL init_write_bin(dgu, u, &
348  hrec,SIZE(pfield,2),lwfl)
349  !
350  IF (lwfl) THEN
351  WRITE(nind,rec=nwrite,iostat=kresp) zwork
352  ENDIF
353  !
354  IF (kresp/=0) CALL error_write_surf_bin(hrec,kresp)
355  !
356 !$OMP END SINGLE NOWAIT
357  !
358 #ifdef SFX_MPI
359  xtime_npio_write = xtime_npio_write + (mpi_wtime() - xtime0)
360 #endif
361  !
362 ENDIF
363 !
364 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFX2_BIN',1,zhook_handle)
365 !
366 END SUBROUTINE write_surfx2_bin
367 !
368 ! #############################################################
369  SUBROUTINE write_surfn1_bin(HREC,KFIELD,KRESP,HCOMMENT,HDIR)
370 ! #############################################################
371 !
372 !!**** * - routine to write an integer array
373 !
374 USE modi_error_write_surf_bin
375 !
376 USE yomhook ,ONLY : lhook, dr_hook
377 USE parkind1 ,ONLY : jprb
378 !
379 IMPLICIT NONE
380 !
381 !* 0.1 Declarations of arguments
382 !
383  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
384 INTEGER, DIMENSION(:), INTENT(IN) :: kfield ! the integer to be read
385 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
386  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
387  CHARACTER(LEN=1), INTENT(IN) :: hdir ! type of field :
388  ! 'H' : field with
389  ! horizontal spatial dim.
390  ! '-' : no horizontal dim.
391 !* 0.2 Declarations of local variables
392 !
393 !INTEGER, DIMENSION(NFULL) :: IWORK ! work array read in the file
394 REAL(KIND=JPRB) :: zhook_handle
395 !
396 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFN1_BIN',0,zhook_handle)
397 !
398 kresp = 0
399 !
400 !plm IF (HREC(1:8)=="EMISTIME") THEN
401  !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
402  !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
403  !plm WRITE(NUNIT,FMT='(100I8)',ERR=100) KFIELD
404 
405 !plm ELSE
406  !plm CALL UNPACK_SAME_RANK(NMASK,KFIELD,IWORK(:))
407 
408  !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
409  !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
410  !plm WRITE(NUNIT,FMT='(100I8)',ERR=100) IWORK
411  !
412 !plm ENDIF
413 !
414 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFN1_BIN',1,zhook_handle)
415 RETURN
416 !
417 100 CONTINUE
418  CALL error_write_surf_bin(hrec,kresp)
419 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFN1_BIN',1,zhook_handle)
420 !
421 END SUBROUTINE write_surfn1_bin
422 !
423 ! #############################################################
424  SUBROUTINE write_surfl1_bin(HREC,OFIELD,KRESP,HCOMMENT,HDIR)
425 ! #############################################################
426 !
427 !!**** * - routine to write a logical array
428 !
429 USE modi_error_write_surf_bin
430 !
431 USE yomhook ,ONLY : lhook, dr_hook
432 USE parkind1 ,ONLY : jprb
433 !
434 IMPLICIT NONE
435 !
436 !* 0.1 Declarations of arguments
437 !
438  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
439 LOGICAL, DIMENSION(:), INTENT(IN) :: ofield ! array containing the data field
440 INTEGER, INTENT(OUT):: kresp ! KRESP : return-code if a problem appears
441  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
442  CHARACTER(LEN=1), INTENT(IN) :: hdir ! type of field :
443  ! 'H' : field with
444  ! horizontal spatial dim.
445  ! '-' : no horizontal dim.
446 !* 0.2 Declarations of local variables
447 !
448 REAL(KIND=JPRB) :: zhook_handle
449 !
450 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFL1_BIN',0,zhook_handle)
451 !
452 kresp=0
453 !
454 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
455 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
456 !plm WRITE(NUNIT,FMT=*,ERR=100) OFIELD
457 
458 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFL1_BIN',1,zhook_handle)
459 RETURN
460 !
461 100 CONTINUE
462  CALL error_write_surf_bin(hrec,kresp)
463 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFL1_BIN',1,zhook_handle)
464 !
465 END SUBROUTINE write_surfl1_bin
466 !
467 ! #############################################################
468  SUBROUTINE write_surft0_bin(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
469 ! #############################################################
470 !
471 !!**** * - routine to write a date
472 !
473 USE modi_error_write_surf_bin
474 !
475 USE yomhook ,ONLY : lhook, dr_hook
476 USE parkind1 ,ONLY : jprb
477 !
478 IMPLICIT NONE
479 !
480 !* 0.1 Declarations of arguments
481 !
482  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
483 INTEGER, INTENT(IN) :: kyear ! year
484 INTEGER, INTENT(IN) :: kmonth ! month
485 INTEGER, INTENT(IN) :: kday ! day
486 REAL, INTENT(IN) :: ptime ! time
487 INTEGER, INTENT(OUT) :: kresp ! KRESP : return-code if a problem appears
488  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
489 
490 !* 0.2 Declarations of local variables
491 !
492 INTEGER, DIMENSION(3) :: itdate
493 REAL(KIND=JPRB) :: zhook_handle
494 !
495 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFT0_BIN',0,zhook_handle)
496 kresp=0
497 !
498 !plm ITDATE(1) = KYEAR
499 !plm ITDATE(2) = KMONTH
500 !plm ITDATE(3) = KDAY
501 
502 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TDATE'
503 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
504 !plm WRITE(NUNIT,FMT=*,ERR=100) ITDATE(:)
505 
506 !-------------------------------------------------------------------------------
507 !
508 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TIME'
509 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
510 !plm WRITE(NUNIT,FMT=*,ERR=100) PTIME
511 
512 !-------------------------------------------------------------------------------
513 !
514 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFT0_BIN',1,zhook_handle)
515 RETURN
516 !
517 100 CONTINUE
518  CALL error_write_surf_bin(hrec,kresp)
519 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFT0_BIN',1,zhook_handle)
520 !
521 END SUBROUTINE write_surft0_bin
522 !
523 ! #############################################################
524  SUBROUTINE write_surft2_bin(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
525 ! #############################################################
526 !
527 !!**** * - routine to write a date
528 !
529 USE modi_error_write_surf_bin
530 !
531 USE yomhook ,ONLY : lhook, dr_hook
532 USE parkind1 ,ONLY : jprb
533 !
534 IMPLICIT NONE
535 !
536 !* 0.1 Declarations of arguments
537 !
538  CHARACTER(LEN=12), INTENT(IN) :: hrec ! name of the article to be read
539 INTEGER, DIMENSION(:,:), INTENT(IN) :: kyear ! year
540 INTEGER, DIMENSION(:,:), INTENT(IN) :: kmonth ! month
541 INTEGER, DIMENSION(:,:), INTENT(IN) :: kday ! day
542 REAL, DIMENSION(:,:), INTENT(IN) :: ptime ! time
543 INTEGER, INTENT(OUT) :: kresp ! KRESP : return-code if a problem appears
544  CHARACTER(LEN=100), INTENT(IN) :: hcomment ! comment string
545 !
546 !* 0.2 Declarations of local variables
547 !
548 INTEGER, DIMENSION(3,SIZE(KYEAR,1),SIZE(KYEAR,2)) :: itdate
549 REAL(KIND=JPRB) :: zhook_handle
550 !
551 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFT2_BIN',0,zhook_handle)
552 kresp=0
553 !
554 !plm ITDATE(1,:,:) = KYEAR (:,:)
555 !plm ITDATE(2,:,:) = KMONTH (:,:)
556 !plm ITDATE(3,:,:) = KDAY (:,:)
557 
558 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TDATE'
559 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
560 !plm WRITE(NUNIT,FMT=*,ERR=100) ITDATE(:,:,:)
561 
562 !-------------------------------------------------------------------------------
563 !
564 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TIME'
565 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
566 !plm WRITE(NUNIT,FMT=*,ERR=100) PTIME
567 
568 !-------------------------------------------------------------------------------
569 !
570 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFT2_BIN',1,zhook_handle)
571 RETURN
572 !
573 100 CONTINUE
574  CALL error_write_surf_bin(hrec,kresp)
575 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_BIN:WRITE_SURFT2_BIN',1,zhook_handle)
576 !
577 END SUBROUTINE write_surft2_bin
578 
579 END MODULE mode_write_surf_bin
subroutine write_surfl1_bin(HREC, OFIELD, KRESP, HCOMMENT, HDIR)
subroutine write_surfl0_bin(HREC, OFIELD, KRESP, HCOMMENT)
subroutine write_surfx2_bin(DGU, U, HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine write_surfc0_bin(HREC, HFIELD, KRESP, HCOMMENT)
subroutine write_surft2_bin(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine write_surfn1_bin(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine write_surft0_bin(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine error_write_surf_bin(HREC, KRESP)
subroutine write_surfn0_bin(HREC, KFIELD, KRESP, HCOMMENT)
subroutine init_write_bin(DGU, U, HREC, KPATCH, OWFL)
subroutine write_surfx1_bin(DGU, U, HREC, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine write_surfx0_bin(HREC, PFIELD, KRESP, HCOMMENT)