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