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