SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITESURF_PRECIP_n(HPROGRAM) 00003 ! ####################################### 00004 ! 00005 !!**** *WRITESURF_PRECIP_n* - routine to write precip fields into the restart file 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! The purpose of this routine is to store the 00010 !! precip field into the restart file . Indeed, 00011 !! when ARPEGE/ALADIN is used, the precip field 00012 !! is not initialize at the begin of a run. 00013 !! 00014 !! 00015 !!** METHOD 00016 !! ------ 00017 !! 00018 !! EXTERNAL 00019 !! -------- 00020 !! 00021 !! 00022 !! 00023 !! IMPLICIT ARGUMENTS 00024 !! ------------------ 00025 !! 00026 !! REFERENCE 00027 !! --------- 00028 !! 00029 !! 00030 !! AUTHOR 00031 !! ------ 00032 !! B. Decharme *Meteo France* 00033 !! 00034 !! MODIFICATIONS 00035 !! ------------- 00036 !! Original 04/2009 00037 !------------------------------------------------------------------------------- 00038 ! 00039 !* 0. DECLARATIONS 00040 ! ------------ 00041 ! 00042 USE MODD_SURF_ATM_n, ONLY : NSIZE_FULL 00043 ! 00044 USE MODD_SURF_ATM, ONLY : LRW_PRECIP,LSAVE_PRECIP 00045 USE MODD_DIAG_SURF_ATM_n, ONLY : XRW_RAIN, XRW_SNOW 00046 ! 00047 USE MODI_WRITE_SURF 00048 ! 00049 ! 00050 ! 00051 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00052 USE PARKIND1 ,ONLY : JPRB 00053 ! 00054 IMPLICIT NONE 00055 ! 00056 !* 0.1 Declarations of arguments 00057 ! ------------------------- 00058 ! 00059 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program 00060 ! 00061 !* 0.2 Declarations of local variables 00062 ! ------------------------------- 00063 ! 00064 00065 ! 00066 INTEGER :: IRESP ! Error code after redding 00067 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00068 CHARACTER(LEN=100):: YCOMMENT ! Comment string 00069 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00070 ! 00071 !------------------------------------------------------------------------------- 00072 ! 00073 IF (LHOOK) CALL DR_HOOK('WRITESURF_PRECIP_N',0,ZHOOK_HANDLE) 00074 YCOMMENT='flag to store precip fields in restart file' 00075 CALL WRITE_SURF(HPROGRAM,'RW_PRECIP',LRW_PRECIP,IRESP,HCOMMENT=YCOMMENT) 00076 ! 00077 IF(LRW_PRECIP.AND.LSAVE_PRECIP)THEN 00078 ! 00079 YRECFM='RW_RAIN' 00080 YCOMMENT='X_Y_RAINFALL (kg/m2/s)' 00081 CALL WRITE_SURF(HPROGRAM,YRECFM,XRW_RAIN(:),IRESP,HCOMMENT=YCOMMENT) 00082 ! 00083 YRECFM='RW_SNOW' 00084 YCOMMENT='X_Y_SNOWFALL (kg/m2/s)' 00085 CALL WRITE_SURF(HPROGRAM,YRECFM,XRW_SNOW(:),IRESP,HCOMMENT=YCOMMENT) 00086 ! 00087 ENDIF 00088 IF (LHOOK) CALL DR_HOOK('WRITESURF_PRECIP_N',1,ZHOOK_HANDLE) 00089 ! 00090 !------------------------------------------------------------------------------- 00091 ! 00092 END SUBROUTINE WRITESURF_PRECIP_n