SURFEX v7.3
General documentation of Surfex
|
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