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