SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TRIP/init_tripn.F90
Go to the documentation of this file.
00001 !######################################################
00002 SUBROUTINE INIT_TRIP_n (HPROGRAM,KYEAR,KMONTH,ORESTART)
00003 !######################################################
00004 !
00005 !!****  *INIT_TRIP_n*  
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !     Initialize TRIP variables and parameters.
00011 !     
00012 !!**  METHOD
00013 !!    ------
00014 !
00015 !     Direct calculation
00016 !
00017 !!    EXTERNAL
00018 !!    --------
00019 !
00020 !     None
00021 !!
00022 !!    IMPLICIT ARGUMENTS
00023 !!    ------------------
00024 !!
00025 !!      
00026 !!    REFERENCE
00027 !!    ---------
00028 !!      
00029 !!    AUTHOR
00030 !!    ------
00031 !!      B. Decharme     
00032 !!
00033 !!    MODIFICATIONS
00034 !!    -------------
00035 !!      Original    01/02/05 
00036 !!      For surfex  21/05/08 
00037 !-------------------------------------------------------------------------------
00038 !
00039 !*       0.     DECLARATIONS
00040 !               ------------
00041 !
00042 USE MODD_TRIP_PAR
00043 USE MODD_TRIP_GRID_n, ONLY : XGRID_TRIP, XAREA, GMASK
00044 USE MODD_TRIP_n
00045 !
00046 USE MODD_READ_NAMELIST,  ONLY : LNAM_READ
00047 !
00048 USE MODE_GRID_TRIP
00049 USE MODE_TRIP_INIT
00050 USE MODE_RW_TRIP
00051 !
00052 USE MODI_INIT_TRIP_PAR
00053 USE MODI_GET_LUOUT
00054 !
00055 USE MODI_DEFAULT_TRIP
00056 USE MODI_READ_NAM_GRID_TRIP
00057 USE MODI_READ_TRIP_CONF_n
00058 USE MODI_INIT_DIAG_TRIP_n
00059 USE MODI_INIT_RESTART_TRIP_n
00060 !
00061 !
00062 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00063 USE PARKIND1  ,ONLY : JPRB
00064 !
00065 IMPLICIT NONE
00066 !
00067 !-------------------------------------------------------------------------------
00068 !
00069 !*      0.1    declarations of arguments
00070 !
00071  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
00072 INTEGER,          INTENT(IN) :: KYEAR
00073 INTEGER,          INTENT(IN) :: KMONTH 
00074 LOGICAL,          INTENT(IN) :: ORESTART
00075 !
00076 !-------------------------------------------------------------------------------
00077 !
00078 !*      0.2    declarations of local variables
00079 !
00080  CHARACTER(LEN=13), PARAMETER         :: YFILE_PARAM  ='TRIP_PARAM.nc'
00081  CHARACTER(LEN=12), PARAMETER         :: YFILE_INIT   ='TRIP_PREP.nc'
00082  CHARACTER(LEN=15), PARAMETER         :: YFILE_RESTART='TRIP_RESTART.nc'
00083  CHARACTER(LEN=10), PARAMETER         :: YDIAG        ='TRIP_DIAG_'
00084 !
00085  CHARACTER(LEN=6)                     :: YTIME
00086 !
00087  CHARACTER(LEN=50)                    :: YFILE
00088  CHARACTER(LEN=20)                    :: YVAR 
00089 !
00090 REAL,DIMENSION(:,:),ALLOCATABLE      :: ZREAD, ZHSTREAM
00091 !
00092 INTEGER           :: ILUOUT         ! output listing logical unit
00093 !
00094 REAL    :: ZLONMIN   ! minimum longitude (degrees)
00095 REAL    :: ZLONMAX   ! maximum longitude (degrees)
00096 REAL    :: ZLATMIN   ! minimum latitude  (degrees)
00097 REAL    :: ZLATMAX   ! maximum latitude  (degrees)
00098 REAL    :: ZGRID_RES ! 1° or 0.5° resolution
00099 INTEGER :: ILON      ! number of points in longitude
00100 INTEGER :: ILAT      ! number of points in latitude
00101 !
00102 INTEGER :: IWORK, IFLOOD, I, J, INI
00103 !
00104 !-------------------------------------------------------------------------------
00105 !Output attribut for netcdf diag file
00106 !-------------------------------------------------------------------------------
00107 !
00108  CHARACTER(LEN=50) :: YTITLE,YTIMEUNIT
00109 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00110 !                    YTITLE    = Title of each output file
00111 !                    YTIMEUNIT = Time unit in each output file if present
00112 !
00113 !-------------------------------------------------------------------------------
00114 !Initilyse TRIP
00115 !-------------------------------------------------------------------------------
00116 !
00117 IF (LHOOK) CALL DR_HOOK('INIT_TRIP_N',0,ZHOOK_HANDLE)
00118  CALL INIT_TRIP_PAR
00119 !
00120  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00121 !
00122 WRITE(ILUOUT,*)''
00123 WRITE(ILUOUT,*)''
00124 WRITE(ILUOUT,*)'!'
00125 WRITE(ILUOUT,*)'! TRIP RUN !!!!!!!!!!!!!'
00126 WRITE(ILUOUT,*)'!'
00127 !
00128 WRITE(ILUOUT,*)''
00129 WRITE(ILUOUT,*)'        INITIALYSE TRIP            '
00130 WRITE(ILUOUT,*)''
00131 !
00132 !-------------------------------------------------------------------------------
00133 !        
00134 IF (LNAM_READ) THEN
00135 !        
00136 ! * default values for the TRIP configuration
00137 !
00138   CALL DEFAULT_TRIP(CGROUNDW,CVIT,LFLOODT,LDIAG_CPL,LTRIP_DIAG_MISC, &
00139                     LNCPRINT,LPRINT_TRIP,XTSTEP_COUPLING,XTRIP_TSTEP,&
00140                     XDATA_TAUG,XCVEL,XRATMED                         )  
00141 !
00142 ENDIF
00143 !
00144 ! * TRIP general options
00145 !
00146   CALL READ_TRIP_CONF_n(HPROGRAM)
00147 !
00148 ! * Read TRIP grid configuration
00149 !
00150  CALL READ_NAM_GRID_TRIP(HPROGRAM)
00151 !
00152 ! * Store TRIP grid configuration
00153 !
00154  CALL GET_GRID_TRIP(XGRID_TRIP,ZLONMIN,ZLONMAX,ZLATMIN,ZLATMAX,ZGRID_RES,ILON,ILAT)
00155 !
00156 !-------------------------------------------------------------------------------
00157 ! * Check options
00158 !-------------------------------------------------------------------------------
00159 !
00160 IF(CVIT == 'VAR')THEN
00161    IF(XCVEL/=0.5)THEN
00162       XCVEL=0.5
00163       WRITE(ILUOUT,*)'! ATTENTION : You use the velocity scheme and XCVEL is not 0.5 m/s !!!'
00164       WRITE(ILUOUT,*)'! ATTENTION : XCVEL put at 0.5 m/s !!!'
00165   ENDIF
00166 ELSE
00167    IF(XCVEL<0.1)THEN
00168       WRITE(ILUOUT,*)'!!! ATTENTION : XCVEL < 0.1 m/s !!! Not good !!!'
00169       STOP
00170   ENDIF     
00171 ENDIF      
00172 !
00173 IF(LFLOODT)THEN
00174   IF(CGROUNDW=='DEF')THEN
00175     WRITE(ILUOUT,*)'! ATTENTION : You use the flooding scheme without the groundwater scheme !!!'
00176   ENDIF
00177   IF(CVIT /= 'VAR')THEN
00178     WRITE(ILUOUT,*)'! You cannot use the flooding scheme without the variable velocity scheme !!!'
00179     STOP
00180   ENDIF
00181   IF(XTRIP_TSTEP>3600.)THEN
00182     WRITE(ILUOUT,*)'!'
00183     WRITE(ILUOUT,*)'! For flooding, the TRIP time step is too big      !!!'
00184     WRITE(ILUOUT,*)'! XTRIP_TSTEP must be equal or inferior to 3600s   !!!'
00185     WRITE(ILUOUT,*)'!'
00186     STOP
00187   ENDIF
00188 ENDIF
00189 !
00190 IF(MOD(XTSTEP_COUPLING,XTRIP_TSTEP)/=0.)THEN
00191   WRITE(ILUOUT,*)'! XTSTEP_COUPLING and XTRIP_TSTEP are not good !!!'     
00192   WRITE(ILUOUT,*)'! MOD(XTSTEP_COUPLING,XTRIP_TSTEP) should be 0 !!!'     
00193   STOP
00194 ENDIF
00195 !
00196 WRITE(ILUOUT,*)'! ',ZGRID_RES,'° TRIP run !!!'  
00197 !
00198 IF(ZGRID_RES/=1.0)THEN
00199 !
00200   IF(XRATMED==1.4)THEN
00201      WRITE(ILUOUT,*)'! meandering ratio is 1.4 at 0.5° or 1° resolution !!!'   
00202      WRITE(ILUOUT,*)'! for other resolution change XRATMED in namelist  !!!' 
00203      IF(ZGRID_RES<0.5)STOP
00204   ENDIF 
00205 !
00206 ENDIF
00207 !
00208 !-------------------------------------------------------------------------------
00209 !Allocate arguments
00210 !-------------------------------------------------------------------------------
00211 !
00212 ALLOCATE(IGRCN      (ILON,ILAT))       
00213 ALLOCATE(ISEQ       (ILON,ILAT))   
00214 ALLOCATE(INEXTX     (ILON,ILAT))    
00215 ALLOCATE(INEXTY     (ILON,ILAT))     
00216 ALLOCATE(XLEN       (ILON,ILAT))           
00217 ALLOCATE(XAREA      (ILON,ILAT))          
00218 ALLOCATE(XSURF_STO  (ILON,ILAT))
00219 !
00220 IF(CGROUNDW/='DEF')THEN
00221   ALLOCATE(XGROUND_STO(ILON,ILAT))      
00222   ALLOCATE(XTAUG      (ILON,ILAT))
00223 ELSE
00224   ALLOCATE(XGROUND_STO(0,0))      
00225   ALLOCATE(XTAUG      (0,0))
00226 ENDIF
00227 !
00228 IF(LFLOODT)THEN
00229   ALLOCATE(XN_FLOOD    (ILON,ILAT))      
00230   ALLOCATE(XHC_BED     (ILON,ILAT))
00231   ALLOCATE(XFLOOD_STO  (ILON,ILAT))
00232   ALLOCATE(XWFLOOD     (ILON,ILAT))
00233   ALLOCATE(XFLOOD_LEN  (ILON,ILAT))
00234   ALLOCATE(XHFLOOD     (ILON,ILAT))
00235   ALLOCATE(XFFLOOD     (ILON,ILAT))
00236   ALLOCATE(XPIFLOOD    (ILON,ILAT))  
00237 ELSE
00238   ALLOCATE(XN_FLOOD  (0,0))      
00239   ALLOCATE(XHC_BED   (0,0))
00240   ALLOCATE(XFLOOD_STO(0,0))
00241   ALLOCATE(XWFLOOD   (0,0))
00242   ALLOCATE(XFLOOD_LEN(0,0))
00243   ALLOCATE(XHFLOOD   (0,0))
00244   ALLOCATE(XFFLOOD   (0,0))
00245   ALLOCATE(XPIFLOOD  (0,0))  
00246 ENDIF
00247 !
00248 IF(CVIT=='VAR')THEN
00249   ALLOCATE(XSLOPEBED(ILON,ILAT))      
00250   ALLOCATE(XWIDTH   (ILON,ILAT))      
00251   ALLOCATE(XN       (ILON,ILAT))
00252 ELSE
00253   ALLOCATE(XSLOPEBED(0,0))      
00254   ALLOCATE(XWIDTH   (0,0))      
00255   ALLOCATE(XN       (0,0))
00256 ENDIF
00257 !
00258 !-------------------------------------------------------------------------------
00259 ! * Compute and Read TRIP parameter
00260 !-------------------------------------------------------------------------------
00261 !
00262 ALLOCATE(ZREAD(ILON,ILAT))
00263 !
00264 ! * Flow direction 
00265 !
00266 YVAR ='FLOWDIR'
00267  CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,ZREAD)
00268 WHERE(ZREAD==XTRIP_UNDEF)ZREAD=0.0
00269 IGRCN(:,:)=INT(ZREAD(:,:))
00270 !
00271 IF(.NOT.ASSOCIATED(GMASK))THEN
00272   ALLOCATE(GMASK(ILON,ILAT))
00273   GMASK(:,:)=.TRUE.
00274   WHERE(IGRCN(:,:)==0)GMASK(:,:)=.FALSE.
00275 ENDIF
00276 !
00277 ! * Rriver sequence
00278 !
00279 YVAR ='RIVSEQ'
00280  CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,ZREAD)
00281 WHERE(ZREAD==XTRIP_UNDEF)ZREAD=0.0
00282 ISEQ(:,:)=INT(ZREAD(:,:))
00283 !
00284 ! * Maximum river sequence value
00285 !
00286 ISEQMAX = MAXVAL(ISEQ)
00287 !
00288 DEALLOCATE(ZREAD)
00289 !
00290 ! * Set down stream
00291 !
00292  CALL SETNEXT(ILON,ILAT,IGRCN,INEXTX,INEXTY)
00293 !
00294 ! * Set area size
00295 !
00296  CALL SETAREA(ILAT,ZLATMIN,ZGRID_RES,XAREA)
00297 !
00298 ! * Distance between grids with the meandering ratio
00299 !
00300 YVAR ='RIVLEN'
00301  CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XLEN)
00302 WHERE(.NOT.GMASK(:,:))XLEN(:,:)=0.0
00303 !
00304 ! * Variable velocity schemes variables
00305 !
00306 IF(CVIT == 'VAR')THEN
00307 !
00308   YVAR ='N_RIV'
00309   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XN)
00310 !
00311   YVAR ='WIDTHRIV'
00312   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XWIDTH)
00313 !
00314   YVAR ='SLOPERIV'
00315   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XSLOPEBED)
00316 !  
00317   WHERE(ISEQ(:,:)==0.OR.XWIDTH>=XTRIP_UNDEF-1.0)
00318         XSLOPEBED= 0.0      
00319         XWIDTH   = 0.0      
00320         XN       = 0.0
00321   ENDWHERE
00322 !
00323 ENDIF 
00324 !
00325 ! * Calculate the groundwater transfert time
00326 !
00327 IF(CGROUNDW/='DEF')THEN
00328 !
00329   YVAR ='TAUG'
00330   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XTAUG)
00331 !
00332   WHERE(ISEQ(:,:)==0)
00333         XTAUG=0.0
00334   ELSEWHERE
00335         XTAUG=XTAUG*XDAY_T
00336   ENDWHERE
00337 !
00338 ENDIF
00339 !
00340 ! * Calculate floodplains parameters
00341 !
00342 IF(LFLOODT)THEN
00343 !
00344   YVAR ='RIVDEPTH'
00345   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XHC_BED)
00346 !
00347   YVAR ='NFLOOD'
00348   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XN_FLOOD)
00349 !  
00350   WHERE(XHC_BED==XTRIP_UNDEF)
00351     XHC_BED  = 0.0
00352     XN_FLOOD = 0.0
00353   ENDWHERE
00354 !
00355   ALLOCATE(ITABMAX(ILON,ILAT)) 
00356 !
00357   ALLOCATE(XTAB_F (ILON,ILAT,NTRIPTAB))      
00358   ALLOCATE(XTAB_H (ILON,ILAT,NTRIPTAB))      
00359   ALLOCATE(XTAB_VF(ILON,ILAT,NTRIPTAB))      
00360 !
00361   YVAR ='TABF'
00362   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XTAB_F)
00363 !
00364   YVAR ='TABH'
00365   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XTAB_H)
00366 !
00367   YVAR ='TABVF'
00368   CALL READ_TRIP(ILUOUT,YFILE_PARAM,YVAR,XTAB_VF)
00369 !
00370   ITABMAX(:,:)=NTRIPTAB-COUNT(XTAB_H(:,:,:)>=XTRIP_UNDEF-1.0,3)  
00371 !
00372 ELSE
00373 !
00374   ALLOCATE(ITABMAX(0,0  ))  
00375   ALLOCATE(XTAB_F (0,0,0))      
00376   ALLOCATE(XTAB_H (0,0,0))      
00377   ALLOCATE(XTAB_VF(0,0,0))      
00378 !
00379 ENDIF
00380 !
00381 !-------------------------------------------------------------------------------
00382 ! * Read initial and historical variables
00383 !-------------------------------------------------------------------------------
00384 !
00385 YVAR ='SURF_STO'
00386  CALL READ_TRIP(ILUOUT,YFILE_INIT,YVAR,XSURF_STO)
00387 !
00388 IF(CGROUNDW/='DEF')THEN
00389   YVAR ='GROUND_STO'
00390   CALL READ_TRIP(ILUOUT,YFILE_INIT,YVAR,XGROUND_STO)
00391 ENDIF
00392 !
00393 IF(LFLOODT)THEN
00394 !
00395   YVAR ='FLOOD_STO'
00396   CALL READ_TRIP(ILUOUT,YFILE_INIT,YVAR,XFLOOD_STO)
00397 !
00398   YVAR ='FFLOOD_T'
00399   CALL READ_TRIP(ILUOUT,YFILE_INIT,YVAR,XFFLOOD)
00400 !
00401   YVAR ='HFLOOD_T'
00402   CALL READ_TRIP(ILUOUT,YFILE_INIT,YVAR,XHFLOOD)
00403 !  
00404 ENDIF
00405 !
00406 !-------------------------------------------------------------------------------
00407 ! * Initial Conditions
00408 !-------------------------------------------------------------------------------
00409 !
00410 IF(CVIT == 'VAR')THEN
00411 !        
00412   ALLOCATE(ZHSTREAM(ILON,ILAT))
00413 !
00414   WHERE(XWIDTH(:,:)>0.0)
00415         ZHSTREAM(:,:)=MAX(0.0,XSURF_STO(:,:)/(XRHOLW_T*XLEN(:,:)*XWIDTH(:,:)))
00416   ELSEWHERE
00417         ZHSTREAM(:,:)=0.0
00418   ENDWHERE
00419 !
00420 ENDIF
00421 !
00422 ! * Fraction, width, water depth of floodplains
00423 ! 
00424 IWORK=0
00425 !
00426 IF(LFLOODT)THEN 
00427 !        
00428   WHERE(XLEN(:,:)/=0.0)
00429         XFLOOD_LEN(:,:) = XRATMED*SQRT(XFFLOOD(:,:)*XAREA(:,:))
00430         XPIFLOOD  (:,:) = XFLOOD_STO(:,:)        
00431   ELSEWHERE
00432         XFLOOD_LEN(:,:) = 0.0
00433         XWFLOOD   (:,:) = 0.0
00434         XFFLOOD   (:,:) = 0.0
00435         XHFLOOD   (:,:) = 0.0
00436         XFLOOD_STO(:,:) = 0.0
00437         XPIFLOOD  (:,:) = 0.0        
00438   ENDWHERE
00439 !
00440 !
00441   WHERE(XFFLOOD(:,:)>0.0)
00442         XWFLOOD(:,:) = XAREA(:,:) * XFFLOOD(:,:) / XFLOOD_LEN(:,:)
00443   ELSEWHERE
00444         XWFLOOD(:,:) = 0.0
00445   ENDWHERE
00446 !  
00447   INI = COUNT(XLEN>0.0)
00448   IWORK =COUNT(XHC_BED>0.0)
00449   IFLOOD=COUNT(XFFLOOD>0.0)
00450 !
00451 ENDIF
00452 !
00453 !-------------------------------------------------------------------------------
00454 !
00455 WRITE(ILUOUT,*)'Coupling_time_step :           ',XTSTEP_COUPLING
00456 WRITE(ILUOUT,*)'TRIP_time_step :               ',XTRIP_TSTEP
00457 WRITE(ILUOUT,*)''
00458 WRITE(ILUOUT,*)'Sequence max :                 ',ISEQMAX
00459 WRITE(ILUOUT,*)''
00460 WRITE(ILUOUT,*)'MEANDERING RATIO FIXED TO      ',XRATMED
00461 WRITE(ILUOUT,*)'CELL LENGTH MIN, MAX (km):     ',MINVAL(XLEN/1.E3, XLEN>0.0),  &
00462                                                    MAXVAL(XLEN/1.E3, XLEN>0.0)                                 
00463 WRITE(ILUOUT,*)'CELL AREA MIN, MAX (kmē):      ',MINVAL(XAREA/1.E6,XLEN>0.0),  &
00464                                                    MAXVAL(XAREA/1.E6,XLEN>0.0)  
00465 WRITE(ILUOUT,*)''
00466 IF(CGROUNDW/='DEF')THEN
00467   WRITE(ILUOUT,*)''
00468   WRITE(ILUOUT,*)'Ground transf. time MIN, MAX : ',MINVAL(XTAUG/XDAY_T,XLEN>0.0),  &
00469                                                      MAXVAL(XTAUG/XDAY_T,XLEN>0.0)  
00470 ENDIF
00471 IF(CVIT == 'VAR')THEN
00472   WRITE(ILUOUT,*)'WIDTH_RIVER MIN, MAX :         ',MINVAL(XWIDTH,    XWIDTH>0.0),  &
00473                                                    MAXVAL(XWIDTH,    XWIDTH>0.0)
00474   WRITE(ILUOUT,*)'N MANNING COEF MIN, MAX :      ',MINVAL(XN,        XWIDTH>0.0),  &
00475                                                    MAXVAL(XN,        XWIDTH>0.0)
00476   WRITE(ILUOUT,*)'RIVER SLOPE MIN, MAX :         ',MINVAL(XSLOPEBED, XN  >0.0),  &
00477                                                      MAXVAL(XSLOPEBED, XN  >0.0)  
00478   WRITE(ILUOUT,*)''
00479   WRITE(ILUOUT,*)'Initial river depth          : ',MINVAL(ZHSTREAM,  XWIDTH>0.0),  &
00480                                                    MAXVAL(ZHSTREAM,  XWIDTH>0.0)  
00481   DEALLOCATE(ZHSTREAM)
00482 ENDIF
00483 WRITE(ILUOUT,*)''
00484 WRITE(ILUOUT,*)'Initial river storage        : ',MINVAL(XSURF_STO, XLEN>0.0),  &
00485                                                    MAXVAL(XSURF_STO, XLEN>0.0)  
00486 IF(CGROUNDW/='DEF')THEN                                                 
00487   WRITE(ILUOUT,*)''
00488   WRITE(ILUOUT,*)'Initial ground storage       : ',MINVAL(XGROUND_STO,XLEN>0.0),  &
00489                                                      MAXVAL(XGROUND_STO,XLEN>0.0)  
00490 ENDIF
00491 WRITE(ILUOUT,*)''
00492 
00493 IF(LFLOODT)THEN 
00494   WRITE(ILUOUT,*)'N FLOOD FIXED TO               ',MINVAL(XN_FLOOD,  XHC_BED>0.0)
00495   WRITE(ILUOUT,*)'RIVER DEPTH MIN, MAX :         ',MINVAL(XHC_BED,   XHC_BED>0.0),  &
00496                                                      MAXVAL(XHC_BED,   XHC_BED>0.0)  
00497   WRITE(ILUOUT,*)''
00498   WRITE(ILUOUT,*)'Number of potential flood cell : ',IWORK,'on',INI
00499   WRITE(ILUOUT,*)'          %                      ',100.0*(FLOAT(IWORK)/FLOAT(INI))
00500   WRITE(ILUOUT,*)'Number of actual flood cell :    ',IFLOOD,'on',IWORK
00501   WRITE(ILUOUT,*)'          %                      ',100.0*(FLOAT(IFLOOD)/FLOAT(IWORK))
00502   WRITE(ILUOUT,*)'% of flooded area in the domain :',SUM(XFFLOOD*XAREA)/SUM(XAREA)
00503   WRITE(ILUOUT,*)''
00504   WRITE(ILUOUT,*)'Initial flood depth (m) :      ',MINVAL(XHFLOOD,    XHC_BED>0.0), &
00505                                                      MAXVAL(XHFLOOD,    XHC_BED>0.0)  
00506   WRITE(ILUOUT,*)'Initial flood fraction :       ',MINVAL(XFFLOOD,    XHC_BED>0.0), &
00507                                                      MAXVAL(XFFLOOD,    XHC_BED>0.0)  
00508   WRITE(ILUOUT,*)'Initial flood volume m3/1E9 :  ',MINVAL(XFLOOD_STO/(XRHOLW_T*1.E9),XHC_BED>0.0), &
00509                                                      MAXVAL(XFLOOD_STO/(XRHOLW_T*1.E9),XHC_BED>0.0)   
00510   WRITE(ILUOUT,*)'Initial flood length (km):     ',MINVAL(XFLOOD_LEN/1.E3, XHC_BED>0.0),  &
00511                                                      MAXVAL(XFLOOD_LEN/1.E3, XHC_BED>0.0)                           
00512   WRITE(ILUOUT,*)'Initial flood WIDTH (km) :     ',MINVAL(XWFLOOD/1.E3,    XHC_BED>0.0), &
00513                                                      MAXVAL(XWFLOOD/1.E3,    XHC_BED>0.0)      
00514   WRITE(ILUOUT,*)''
00515 ENDIF
00516 !
00517 !-------------------------------------------------------------------------------
00518 ! * Create diag file
00519 !-------------------------------------------------------------------------------
00520 !
00521 IF(KMONTH/=0)THEN
00522   WRITE(YTIME,'(i4.4,i2.2)') KYEAR, KMONTH
00523 ELSE
00524   WRITE(YTIME,'(i4.4)') KYEAR
00525 ENDIF
00526 !
00527 IF(LDIAG_CPL)THEN
00528   YFILE  = YDIAG//'CPL_'//YTIME(1:LEN_TRIM(YTIME))//'.nc'
00529   YTITLE = 'TRIP coupling time step outputs'
00530   YTIMEUNIT='-'
00531   CALL INIT_DIAG_TRIP_n(ILUOUT,YFILE,ILON,ILAT,YTITLE,YTIMEUNIT,.TRUE.)
00532 ENDIF
00533 !
00534 NRUN=0
00535 !
00536 YFILE     = YDIAG//'RUN_'//YTIME(1:LEN_TRIM(YTIME))//'.nc'
00537 YTITLE    = 'TRIP run outputs'
00538 YTIMEUNIT = '-'
00539  CALL INIT_DIAG_TRIP_n(ILUOUT,YFILE,ILON,ILAT,YTITLE,YTIMEUNIT,.FALSE.)
00540 !
00541 !-------------------------------------------------------------------------------
00542 ! * Create restart file
00543 !-------------------------------------------------------------------------------
00544 !
00545 IF(ORESTART)THEN        
00546   YTITLE   ='TRIP restart variables'
00547   YTIMEUNIT='-'
00548   CALL INIT_RESTART_TRIP_n(ILUOUT,YFILE_RESTART,ILON,ILAT,YTITLE,YTIMEUNIT,.FALSE.)
00549 ENDIF
00550 IF (LHOOK) CALL DR_HOOK('INIT_TRIP_N',1,ZHOOK_HANDLE)
00551 !
00552 !-------------------------------------------------------------------------------
00553 ! * END
00554 !-------------------------------------------------------------------------------
00555 END SUBROUTINE INIT_TRIP_n
00556 
00557 
00558 
00559 
00560