Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / SURFEX / writesurf_precipn.F90
1 !SURFEX_LIC Copyright 1994-2014 Meteo-France 
2 !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C  licence
3 !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SURFEX_LIC for details. version 1.
5 !     #########
6       SUBROUTINE WRITESURF_PRECIP_n(HPROGRAM)
7 !     #######################################
8 !
9 !!****  *WRITESURF_PRECIP_n* - routine to write precip fields into the restart file 
10 !!
11 !!    PURPOSE
12 !!    -------
13 !!       The purpose of this routine is to store the 
14 !!       precip field into the restart file . Indeed, 
15 !!       when ARPEGE/ALADIN is used, the precip field 
16 !!       is not initialize at the begin of a run.
17 !!
18 !!
19 !!**  METHOD
20 !!    ------
21 !!
22 !!    EXTERNAL
23 !!    --------
24 !!      
25 !!
26 !!
27 !!    IMPLICIT ARGUMENTS
28 !!    ------------------
29 !!
30 !!    REFERENCE
31 !!    ---------
32 !!
33 !!
34 !!    AUTHOR
35 !!    ------
36 !!      B. Decharme   *Meteo France*    
37 !!
38 !!    MODIFICATIONS
39 !!    -------------
40 !!      Original    04/2009
41 !-------------------------------------------------------------------------------
42 !
43 !*       0.    DECLARATIONS
44 !              ------------
45 !
46 USE MODD_SURF_ATM_n,         ONLY : NSIZE_FULL
47 !
48 USE MODD_SURF_ATM,           ONLY : LRW_PRECIP,LSAVE_PRECIP
49 USE MODD_DIAG_SURF_ATM_n,    ONLY : XRW_RAIN, XRW_SNOW
50 !
51 USE MODI_WRITE_SURF
52 !
53 !
54 !
55 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
56 USE PARKIND1  ,ONLY : JPRB
57 !
58 IMPLICIT NONE
59 !
60 !*       0.1   Declarations of arguments
61 !              -------------------------
62 !
63  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
64 !
65 !*       0.2   Declarations of local variables
66 !              -------------------------------
67 !
68
69 !
70 INTEGER           :: IRESP          ! Error code after redding
71  CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
72  CHARACTER(LEN=100):: YCOMMENT       ! Comment string
73 REAL(KIND=JPRB) :: ZHOOK_HANDLE
74 !
75 !-------------------------------------------------------------------------------
76 !
77 IF (LHOOK) CALL DR_HOOK('WRITESURF_PRECIP_N',0,ZHOOK_HANDLE)
78 YCOMMENT='flag to store precip fields in restart file'
79  CALL WRITE_SURF(HPROGRAM,'RW_PRECIP',LRW_PRECIP,IRESP,HCOMMENT=YCOMMENT)
80 !
81 IF(LRW_PRECIP.AND.LSAVE_PRECIP)THEN
82 !
83    YRECFM='RW_RAIN'
84    YCOMMENT='X_Y_RAINFALL (kg/m2/s)'
85    CALL WRITE_SURF(HPROGRAM,YRECFM,XRW_RAIN(:),IRESP,HCOMMENT=YCOMMENT)
86 !
87    YRECFM='RW_SNOW'
88    YCOMMENT='X_Y_SNOWFALL (kg/m2/s)'
89    CALL WRITE_SURF(HPROGRAM,YRECFM,XRW_SNOW(:),IRESP,HCOMMENT=YCOMMENT)
90 !
91 ENDIF
92 IF (LHOOK) CALL DR_HOOK('WRITESURF_PRECIP_N',1,ZHOOK_HANDLE)
93 !
94 !-------------------------------------------------------------------------------
95 !
96 END SUBROUTINE WRITESURF_PRECIP_n