SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TRIP/init_restart_tripn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE INIT_RESTART_TRIP_n (KLUOUT,HFILE,KLON,KLAT,HTITLE,HTIMEUNIT,OTIME )
00003 !     #######################################################################
00004 !
00005 !!****  *INIT_RESTART_TRIP_n*  
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !     Define the name and unit of each trip restart variables.
00011 !     
00012 !!    REFERENCE
00013 !!    ---------
00014 !!      
00015 !!    AUTHOR
00016 !!    ------
00017 !!      B. Decharme     
00018 !!
00019 !!    MODIFICATIONS
00020 !!    -------------
00021 !!      Original    27/05/08 
00022 !-------------------------------------------------------------------------------
00023 !
00024 !*       0.     DECLARATIONS
00025 !               ------------
00026 !
00027 USE MODE_TRIP_NETCDF
00028 !
00029 USE MODD_TRIP_n,   ONLY : CGROUNDW, LFLOODT, LNCPRINT
00030 USE MODD_TRIP_PAR, ONLY : XTRIP_UNDEF
00031 !
00032 USE MODD_DIAG_TRIP_n
00033 !
00034 !
00035 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00036 USE PARKIND1  ,ONLY : JPRB
00037 !
00038 USE MODI_GET_LONLAT_TRIP
00039 !
00040 IMPLICIT NONE
00041 !
00042 include 'netcdf.inc'
00043 !
00044 !*      0.1    declarations of arguments
00045 !
00046 !
00047  CHARACTER(LEN=*), INTENT(IN) :: HFILE, HTITLE, HTIMEUNIT
00048 !
00049 INTEGER, INTENT(IN)          :: KLUOUT, KLON, KLAT
00050 !
00051 LOGICAL, INTENT(IN)          :: OTIME
00052 !
00053 !*      0.2    declarations of restart variables
00054 !
00055  CHARACTER(LEN=nf_max_name), DIMENSION(:), ALLOCATABLE :: YVNAME  !Name of each restart variable
00056  CHARACTER(LEN=nf_max_name), DIMENSION(:), ALLOCATABLE :: YVLNAME !Long name of each restart variables
00057  CHARACTER(LEN=nf_max_name), DIMENSION(:), ALLOCATABLE :: YUNIT   !Unit of each restart variable
00058 !
00059  CHARACTER(LEN=nf_max_name) :: YFILE,YTITLE,YTIMEUNIT
00060 !
00061 REAL, DIMENSION(:), ALLOCATABLE ::  ZLON
00062 REAL, DIMENSION(:), ALLOCATABLE ::  ZLAT
00063 !
00064 INTEGER :: IND, INCID, INUM
00065 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00066 !
00067 !-------------------------------------------------------------------------------
00068 !-------------------------------------------------------------------------------
00069 !
00070 ! * Number of restart variable
00071 !
00072 IF (LHOOK) CALL DR_HOOK('INIT_RESTART_TRIP_N',0,ZHOOK_HANDLE)
00073 IND = 1
00074 IF(CGROUNDW/='DEF') IND = IND + 1
00075 IF(LFLOODT)IND = IND + 3
00076 !
00077 ! * Allocate netcdf file attributs
00078 !
00079 ALLOCATE(YVNAME  (IND))
00080 ALLOCATE(YVLNAME (IND))
00081 ALLOCATE(YUNIT   (IND))
00082 !
00083 ALLOCATE(ZLON(KLON))
00084 ALLOCATE(ZLAT(KLAT))
00085 !
00086 ! * Initialyse netcdf file attributs
00087 !
00088 YVNAME (1) = 'SURF_STO                  '
00089 YVLNAME(1) = 'River storage             '
00090 YUNIT  (1) = 'kg                        '
00091 !
00092 INUM = 1
00093 !
00094 IF(CGROUNDW/='DEF')THEN
00095 !        
00096 INUM = INUM + 1
00097 YVNAME (INUM) = 'GROUND_STO                '
00098 YVLNAME(INUM) = 'Groundwater storage       '
00099 YUNIT  (INUM) = 'kg                        '
00100 !
00101 ENDIF
00102 !
00103 IF(LFLOODT)THEN
00104 !
00105 INUM = INUM + 1
00106 YVNAME (INUM) = 'FLOOD_STO                 '
00107 YVLNAME(INUM) = 'Floodplain storage        '
00108 YUNIT  (INUM) = 'kg                        '
00109 
00110 INUM = INUM + 1
00111 YVNAME (INUM) = 'FFLOOD_T                  '
00112 YVLNAME(INUM) = 'TRIP flooded fraction     '
00113 YUNIT  (INUM) = '-                         '
00114 !
00115 INUM = INUM + 1
00116 YVNAME (INUM) = 'HFLOOD_T                  '
00117 YVLNAME(INUM) = 'Flood depth               '
00118 YUNIT  (INUM) = 'm                         '
00119 !
00120 ENDIF
00121 !
00122 ! * Create netcdf file
00123 !
00124 YFILE     = HFILE(1:LEN_TRIM(HFILE))
00125 YTITLE    = HTITLE(1:LEN_TRIM(HTITLE))
00126 YTIMEUNIT = HTIMEUNIT(1:LEN_TRIM(HTIMEUNIT))
00127 !
00128  CALL GET_LONLAT_TRIP(KLON,KLAT,ZLON,ZLAT)
00129 !
00130  CALL NCCREATE(KLUOUT,YFILE,YTITLE,YTIMEUNIT,YVNAME,YVLNAME,YUNIT,ZLON,ZLAT,XTRIP_UNDEF,LNCPRINT,INCID,OTIME)
00131 !
00132  CALL NCCLOSE(KLUOUT,LNCPRINT,YFILE,INCID)
00133 !
00134 ! * Deallocate netcdf file attributs
00135 !
00136 DEALLOCATE(YVNAME  )
00137 DEALLOCATE(YVLNAME )
00138 DEALLOCATE(YUNIT   )
00139 DEALLOCATE(ZLON    )
00140 DEALLOCATE(ZLAT    )
00141 IF (LHOOK) CALL DR_HOOK('INIT_RESTART_TRIP_N',1,ZHOOK_HANDLE)
00142 !
00143 !-------------------------------------------------------------------------------
00144 !-------------------------------------------------------------------------------
00145 END SUBROUTINE INIT_RESTART_TRIP_n