SURFEX v8.1
General documentation of Surfex
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 (HSELECT, HREC,PFIELD,KRESP,HCOMMENT,HDIR)
184 ! #############################################################
185 !
186 !!**** * - routine to fill a write 1D array for the externalised surface
187 !
188 !
189 !
191 !
192 USE modd_io_surf_txt, ONLY : nmask, nfull, cmask
193 USE modd_write_txt, ONLY : cvar, nvar, nind
194 !
195 USE modi_error_write_surf_txt
197 !
198 USE yomhook ,ONLY : lhook, dr_hook
199 USE parkind1 ,ONLY : jprb
200 !
201 IMPLICIT NONE
202 !
203 #ifdef SFX_MPI
204 include "mpif.h"
205 #endif
206 !
207 !* 0.1 Declarations of arguments
208 !
209 !
210  CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: HSELECT
211 !
212  CHARACTER(LEN=12), INTENT(IN) :: HREC ! name of the article to be read
213 REAL, DIMENSION(:), INTENT(IN) :: PFIELD ! array containing the data field
214 INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears
215  CHARACTER(LEN=100), INTENT(IN) :: HCOMMENT ! comment string
216  CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field :
217  ! 'H' : field with
218  ! horizontal spatial dim.
219  ! '-' : no horizontal dim.
220 !* 0.2 Declarations of local variables
221 !
222 INTEGER :: ISIZE
223 LOGICAL :: LWFL=.false.
224 REAL, DIMENSION(MAX(NFULL,SIZE(PFIELD))) :: ZWORK ! work array read in the file
225 DOUBLE PRECISION :: XTIME0
226 REAL(KIND=JPRB) :: ZHOOK_HANDLE
227 !
228 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFX1_TXT',0,zhook_handle)
229 !
230 kresp=0
231 !
232 IF (hdir=='-') THEN
233  isize = SIZE(pfield)
234  zwork(1:isize) = pfield
235 ELSE
236  isize = SIZE(zwork)
237  CALL gather_and_write_mpi(pfield,zwork,nmask)
238 ENDIF
239 !
240 IF (nrank==npio) THEN
241  !
242 #ifdef SFX_MPI
243  xtime0 = mpi_wtime()
244 #endif
245  !
246  CALL init_write_txt(hselect, hrec,lwfl)
247  !
248  IF (lwfl) WRITE(nind,fmt='(50D14.6)',iostat=kresp) zwork(1:isize)
249  !
250  IF (kresp/=0) CALL error_write_surf_txt(hrec,kresp)
251  !
252 #ifdef SFX_MPI
253  xtime_npio_write = xtime_npio_write + (mpi_wtime() - xtime0)
254 #endif
255  !
256 END IF
257 !
258 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFX1_TXT',1,zhook_handle)
259 !
260 END SUBROUTINE write_surfx1_txt
261 !
262 ! #############################################################
263  SUBROUTINE write_surfx2_txt (HSELECT, HREC,PFIELD,KRESP,HCOMMENT,HDIR)
264 ! #############################################################
265 !
266 !!**** * - routine to fill a write 2D array for the externalised surface
267 !
268 !
269 !
271 !
272 USE modd_io_surf_txt, ONLY : nmask, nfull
273 USE modd_write_txt, ONLY : cvar, nvar, nind
274 !
275 USE modi_error_write_surf_txt
277 !
278 USE yomhook ,ONLY : lhook, dr_hook
279 USE parkind1 ,ONLY : jprb
280 !
281 IMPLICIT NONE
282 !
283 #ifdef SFX_MPI
284 include "mpif.h"
285 #endif
286 !
287 !* 0.1 Declarations of arguments
288 !
289 !
290  CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: HSELECT
291 !
292  CHARACTER(LEN=12), INTENT(IN) :: HREC ! name of the article to be read
293 REAL, DIMENSION(:,:), INTENT(IN) :: PFIELD ! array containing the data field
294 INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears
295  CHARACTER(LEN=100), INTENT(IN) :: HCOMMENT ! comment string
296  CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field :
297  ! 'H' : field with
298  ! horizontal spatial dim.
299  ! '-' : no horizontal dim.
300 !* 0.2 Declarations of local variables
301 !
302 INTEGER :: ISIZE
303 LOGICAL :: LWFL=.false.
304 REAL, DIMENSION(MAX(NFULL,SIZE(PFIELD,1)),SIZE(PFIELD,2)) :: ZWORK ! work array read in the file
305 DOUBLE PRECISION :: XTIME0
306 REAL(KIND=JPRB) :: ZHOOK_HANDLE
307 !
308 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFX2_TXT',0,zhook_handle)
309 !
310 kresp=0
311 !
312 IF (hdir=='-') THEN
313  isize = SIZE(pfield,1)
314  zwork(1:isize,:) = pfield
315 ELSE
316  isize = SIZE(zwork,1)
317  CALL gather_and_write_mpi(pfield,zwork,nmask)
318 ENDIF
319 !
320 IF (nrank==npio) THEN
321  !
322 #ifdef SFX_MPI
323  xtime0 = mpi_wtime()
324 #endif
325  !
326  CALL init_write_txt(hselect, hrec,lwfl)
327  !
328  IF (lwfl) WRITE(nind,fmt='(50D14.6)',iostat=kresp) zwork(1:isize,:)
329  !
330  IF (kresp/=0) CALL error_write_surf_txt(hrec,kresp)
331  !
332 #ifdef SFX_MPI
333  xtime_npio_write = xtime_npio_write + (mpi_wtime() - xtime0)
334 #endif
335  !
336 ENDIF
337 !
338 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFX2_TXT',1,zhook_handle)
339 !
340 END SUBROUTINE write_surfx2_txt
341 !
342 ! #############################################################
343  SUBROUTINE write_surfn1_txt(HREC,KFIELD,KRESP,HCOMMENT,HDIR)
344 ! #############################################################
345 !
346 !!**** * - routine to write an integer array
347 !
348 USE modi_error_write_surf_txt
349 !
350 USE yomhook ,ONLY : lhook, dr_hook
351 USE parkind1 ,ONLY : jprb
352 !
353 IMPLICIT NONE
354 !
355 !* 0.1 Declarations of arguments
356 !
357  CHARACTER(LEN=12), INTENT(IN) :: HREC ! name of the article to be read
358 INTEGER, DIMENSION(:), INTENT(IN) :: KFIELD ! the integer to be read
359 INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears
360  CHARACTER(LEN=100), INTENT(IN) :: HCOMMENT ! comment string
361  CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field :
362  ! 'H' : field with
363  ! horizontal spatial dim.
364  ! '-' : no horizontal dim.
365 !* 0.2 Declarations of local variables
366 !
367 !INTEGER, DIMENSION(NFULL) :: IWORK ! work array read in the file
368 REAL(KIND=JPRB) :: ZHOOK_HANDLE
369 !
370 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFN1_TXT',0,zhook_handle)
371 !
372 kresp = 0
373 !
374 !plm IF (HREC(1:8)=="EMISTIME") THEN
375  !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
376  !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
377  !plm WRITE(NUNIT,FMT='(100I8)',ERR=100) KFIELD
378 
379 !plm ELSE
380  !plm CALL UNPACK_SAME_RANK(NMASK,KFIELD,IWORK(:))
381 
382  !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
383  !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
384  !plm WRITE(NUNIT,FMT='(100I8)',ERR=100) IWORK
385  !
386 !plm ENDIF
387 !
388 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFN1_TXT',1,zhook_handle)
389 RETURN
390 !
391 100 CONTINUE
392  CALL error_write_surf_txt(hrec,kresp)
393 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFN1_TXT',1,zhook_handle)
394 !
395 END SUBROUTINE write_surfn1_txt
396 !
397 ! #############################################################
398  SUBROUTINE write_surfl1_txt(HREC,OFIELD,KRESP,HCOMMENT,HDIR)
399 ! #############################################################
400 !
401 !!**** * - routine to write a logical array
402 !
403 USE modi_error_write_surf_txt
404 !
405 USE yomhook ,ONLY : lhook, dr_hook
406 USE parkind1 ,ONLY : jprb
407 !
408 IMPLICIT NONE
409 !
410 !* 0.1 Declarations of arguments
411 !
412  CHARACTER(LEN=12), INTENT(IN) :: HREC ! name of the article to be read
413 LOGICAL, DIMENSION(:), INTENT(IN) :: OFIELD ! array containing the data field
414 INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears
415  CHARACTER(LEN=100), INTENT(IN) :: HCOMMENT ! comment string
416  CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field :
417  ! 'H' : field with
418  ! horizontal spatial dim.
419  ! '-' : no horizontal dim.
420 REAL(KIND=JPRB) :: ZHOOK_HANDLE
421 !
422 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFL1_TXT',0,zhook_handle)
423 kresp=0
424 !
425 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//HREC
426 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
427 !plm WRITE(NUNIT,FMT=*,ERR=100) OFIELD
428 
429 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFL1_TXT',1,zhook_handle)
430 RETURN
431 !
432 100 CONTINUE
433  CALL error_write_surf_txt(hrec,kresp)
434 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFL1_TXT',1,zhook_handle)
435 !
436 END SUBROUTINE write_surfl1_txt
437 !
438 ! #############################################################
439  SUBROUTINE write_surft0_txt(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
440 ! #############################################################
441 !
442 !!**** * - routine to write a date
443 ! ------------
444 !
445 USE modi_error_write_surf_txt
446 !
447 USE yomhook ,ONLY : lhook, dr_hook
448 USE parkind1 ,ONLY : jprb
449 !
450 IMPLICIT NONE
451 !
452 !* 0.1 Declarations of arguments
453 !
454  CHARACTER(LEN=12), INTENT(IN) :: HREC ! name of the article to be read
455 INTEGER, INTENT(IN) :: KYEAR ! year
456 INTEGER, INTENT(IN) :: KMONTH ! month
457 INTEGER, INTENT(IN) :: KDAY ! day
458 REAL, INTENT(IN) :: PTIME ! time
459 INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears
460  CHARACTER(LEN=100), INTENT(IN) :: HCOMMENT ! comment string
461 
462 !* 0.2 Declarations of local variables
463 !
464 INTEGER, DIMENSION(3) :: ITDATE
465 REAL(KIND=JPRB) :: ZHOOK_HANDLE
466 !
467 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFT0_TXT',0,zhook_handle)
468 !
469 kresp=0
470 !
471 !plm ITDATE(1) = KYEAR
472 !plm ITDATE(2) = KMONTH
473 !plm ITDATE(3) = KDAY
474 
475 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TDATE'
476 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
477 !plm WRITE(NUNIT,FMT=*,ERR=100) ITDATE(:)
478 
479 !-------------------------------------------------------------------------------
480 !
481 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TIME'
482 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
483 !plm WRITE(NUNIT,FMT=*,ERR=100) PTIME
484 
485 !-------------------------------------------------------------------------------
486 !
487 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFT0_TXT',1,zhook_handle)
488 RETURN
489 !
490 100 CONTINUE
491  CALL error_write_surf_txt(hrec,kresp)
492 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFT0_TXT',1,zhook_handle)
493 !
494 END SUBROUTINE write_surft0_txt
495 !
496 ! #############################################################
497  SUBROUTINE write_surft2_txt(HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
498 ! #############################################################
499 !
500 !!**** * - routine to write a date
501 !
502 USE modi_error_write_surf_txt
503 !
504 USE yomhook ,ONLY : lhook, dr_hook
505 USE parkind1 ,ONLY : jprb
506 !
507 IMPLICIT NONE
508 !
509 !* 0.1 Declarations of arguments
510 !
511  CHARACTER(LEN=12), INTENT(IN) :: HREC ! name of the article to be read
512 INTEGER, DIMENSION(:,:), INTENT(IN) :: KYEAR ! year
513 INTEGER, DIMENSION(:,:), INTENT(IN) :: KMONTH ! month
514 INTEGER, DIMENSION(:,:), INTENT(IN) :: KDAY ! day
515 REAL, DIMENSION(:,:), INTENT(IN) :: PTIME ! time
516 INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears
517  CHARACTER(LEN=100), INTENT(IN) :: HCOMMENT ! comment string
518 
519 !* 0.2 Declarations of local variables
520 !
521 INTEGER, DIMENSION(3,SIZE(KYEAR,1),SIZE(KYEAR,2)) :: ITDATE
522 REAL(KIND=JPRB) :: ZHOOK_HANDLE
523 !
524 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFT2_TXT',0,zhook_handle)
525 !
526 kresp=0
527 !
528 !plm ITDATE(1,:,:) = KYEAR (:,:)
529 !plm ITDATE(2,:,:) = KMONTH (:,:)
530 !plm ITDATE(3,:,:) = KDAY (:,:)
531 
532 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TDATE'
533 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
534 !plm WRITE(NUNIT,FMT=*,ERR=100) ITDATE(:,:,:)
535 
536 !-------------------------------------------------------------------------------
537 !
538 !plm WRITE(NUNIT,FMT=*,ERR=100) '&'//CMASK//' '//TRIM(HREC)//'%TIME'
539 !plm WRITE(NUNIT,FMT='(A50)',ERR=100) HCOMMENT(1:50)
540 !plm WRITE(NUNIT,FMT=*,ERR=100) PTIME
541 
542 !-------------------------------------------------------------------------------
543 !
544 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFT2_TXT',1,zhook_handle)
545 RETURN
546 !
547 100 CONTINUE
548  CALL error_write_surf_txt(hrec,kresp)
549 IF (lhook) CALL dr_hook('MODE_WRITE_SURF_TXT:WRITE_SURFT2_TXT',1,zhook_handle)
550 !
551 END SUBROUTINE write_surft2_txt
552 !
553 END MODULE mode_write_surf_txt
subroutine write_surft0_txt(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine init_write_txt(HSELECT, HREC, OWFL)
subroutine write_surft2_txt(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine write_surfx2_txt(HSELECT, HREC, PFIELD, KRESP, HCOMMENT, HDIR)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine write_surfc0_txt(HREC, HFIELD, KRESP, HCOMMENT)
integer, dimension(:), pointer nmask
subroutine write_surfn0_txt(HREC, KFIELD, KRESP, HCOMMENT)
integer, dimension(jpvar) nvar
subroutine write_surfl1_txt(HREC, OFIELD, KRESP, HCOMMENT, HDIR)
logical lhook
Definition: yomhook.F90:15
subroutine write_surfx0_txt(HREC, PFIELD, KRESP, HCOMMENT)
character(len=6) cmask
subroutine write_surfl0_txt(HREC, OFIELD, KRESP, HCOMMENT)
subroutine write_surfn1_txt(HREC, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine write_surfx1_txt(HSELECT, HREC, PFIELD, KRESP, HCOMMENT, HDIR)
character(len=12), dimension(jpvar) cvar
subroutine error_write_surf_txt(HREC, KRESP)