SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITE_COVER_TEX_ISBA_PAR(KPATCH,KLAYER,HISBA,HPHOTO,PSOILGRID) 00003 ! ########################## 00004 ! 00005 !!**** *WRITE_COVER_TEX* writes the ISBA data arrays into a tex file 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 !! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! V. Masson Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 08/01/98 00032 !! 00033 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan 00034 !! B. Decharme 2008 Bug if ZDMAX = XUNDEF 00035 !---------------------------------------------------------------------------- 00036 ! 00037 !* 0. DECLARATION 00038 ! ----------- 00039 ! 00040 ! 00041 ! 00042 USE MODE_WRITE_COVER_TEX 00043 00044 USE MODI_CONVERT_COVER_ISBA 00045 00046 USE MODD_TYPE_DATE_SURF 00047 USE MODD_WRITE_COVER_TEX,ONLY : NTEX, CNAME, CLANG, NLINES 00048 USE MODD_SURF_PAR, ONLY : XUNDEF 00049 USE MODD_CSTS, ONLY : XDAY 00050 00051 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER, NVEGTYPE 00052 ! 00053 ! 00054 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00055 USE PARKIND1 ,ONLY : JPRB 00056 ! 00057 IMPLICIT NONE 00058 ! 00059 !* 0.1 Declaration of arguments 00060 ! ------------------------ 00061 ! 00062 INTEGER, INTENT(IN) :: KPATCH! number of patch 00063 INTEGER, INTENT(IN) :: KLAYER! number of soil layers 00064 CHARACTER(LEN=*), INTENT(IN) :: HISBA ! type of soil (Force-Restore OR Diffusion) 00065 CHARACTER(LEN=*), INTENT(IN) :: HPHOTO! type of photosynthesis 00066 REAL, DIMENSION(:),INTENT(IN) :: PSOILGRID ! reference grid for DIF 00067 ! 00068 !* 0.2 Declaration of local variables 00069 ! ------------------------------ 00070 ! 00071 ! 00072 INTEGER :: I,J,IP 00073 ! 00074 CHARACTER(LEN=6), DIMENSION(12 ) :: YDATA_VEGPARAM! vegetation parameters 00075 CHARACTER(LEN=6) :: YSTRING6 00076 CHARACTER(LEN=24) :: YDATA_CV ! Cv 00077 CHARACTER(LEN=24) :: YDATA_RE25 ! Re25 00078 CHARACTER(LEN=4) :: YDATA_STRESS ! Stress def. 00079 CHARACTER(LEN=6), DIMENSION(12 ) :: YDATA_MONTH ! monthly veg. parameters 00080 CHARACTER(LEN=6), DIMENSION(10 ) :: YDATA_LAYER ! soil layer parameters 00081 ! 00082 CHARACTER(LEN=20) :: YFMT ! fortran format 00083 ! 00084 INTEGER :: JPAGE ! current page when the number of classes 00085 ! is too long to stand on one page only 00086 INTEGER :: JPATCH ! loop counter 00087 ! 00088 ! 00089 LOGICAL :: GLINE ! flag to write an additional horizontal line 00090 ! 00091 REAL, DIMENSION(JPCOVER,JPCOVER ) :: ZCOVER 00092 REAL, DIMENSION(JPCOVER,KPATCH, 12 ) :: ZVEG, ZLAI, ZZ0VEG, ZEMIS_ECO, ZF2I 00093 REAL, DIMENSION(JPCOVER,KPATCH ) :: ZRSMIN,ZGAMMA,ZRGL,ZCV, 00094 ZALBNIR_VEG,ZALBVIS_VEG,ZALBUV_VEG, 00095 ZGMES,ZBSLAI,ZLAIMIN,ZSEFOLD, 00096 ZH_TREE, ZGC, ZZ0_O_Z0H, 00097 ZWRMAX_CF, ZDMAX, ZRE25 00098 REAL, DIMENSION(JPCOVER,KLAYER,KPATCH):: ZDG, ZROOTFRAC 00099 REAL, DIMENSION(JPCOVER,KPATCH) :: ZDROOT 00100 REAL, DIMENSION(JPCOVER,KPATCH) :: ZDG2 00101 INTEGER, DIMENSION(JPCOVER,KPATCH) :: IWG_LAYER 00102 LOGICAL, DIMENSION(JPCOVER,KPATCH, 12 ) :: GSTRESS 00103 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00104 00105 !------------------------------------------------------------------------------- 00106 ! 00107 IF (LHOOK) CALL DR_HOOK('WRITE_COVER_TEX_ISBA_PAR',0,ZHOOK_HANDLE) 00108 IF (NTEX==0 .AND. LHOOK) CALL DR_HOOK('WRITE_COVER_TEX_ISBA_PAR',1,ZHOOK_HANDLE) 00109 IF (NTEX==0) RETURN 00110 ! 00111 GLINE=.FALSE. 00112 ! 00113 ZCOVER(:,:) = 0. 00114 DO I=1,JPCOVER 00115 ZCOVER(I,I) = 1. 00116 END DO 00117 ! 00118 !ocl scalar 00119 ! 00120 CALL CONVERT_COVER_ISBA(HISBA,2,ZCOVER,HPHOTO, 'NAT', & 00121 PRSMIN=ZRSMIN,PGAMMA=ZGAMMA,PWRMAX_CF=ZWRMAX_CF, & 00122 PRGL=ZRGL,PCV=ZCV,PSOILGRID=PSOILGRID, & 00123 PDG=ZDG,KWG_LAYER=IWG_LAYER,PDROOT=ZDROOT, & 00124 PDG2=ZDG2,PZ0_O_Z0H=ZZ0_O_Z0H, & 00125 PALBNIR_VEG=ZALBNIR_VEG,PALBVIS_VEG=ZALBVIS_VEG, & 00126 PALBUV_VEG=ZALBUV_VEG, & 00127 PROOTFRAC=ZROOTFRAC, & 00128 PGMES=ZGMES,PBSLAI=ZBSLAI,PLAIMIN=ZLAIMIN, & 00129 PSEFOLD=ZSEFOLD,PGC=ZGC,PDMAX=ZDMAX, & 00130 PH_TREE=ZH_TREE,PRE25=ZRE25 ) 00131 ! 00132 DO J=1,12 00133 CALL CONVERT_COVER_ISBA(HISBA,3*J-1,ZCOVER,HPHOTO, 'NAT', & 00134 PVEG=ZVEG(:,:,J), PLAI=ZLAI(:,:,J), & 00135 PZ0=ZZ0VEG(:,:,J), PEMIS_ECO=ZEMIS_ECO(:,:,J), & 00136 PF2I=ZF2I(:,:,J),OSTRESS=GSTRESS(:,:,J) ) 00137 END DO 00138 ! 00139 !------------------------------------------------------------------------------- 00140 !------------------------------------------------------------------------------- 00141 ! 00142 DO JPATCH=1,KPATCH 00143 ! 00144 IF ( (KPATCH>=2 .AND. JPATCH==1) & 00145 .OR. (KPATCH>=7 .AND. JPATCH==2) & 00146 .OR. (KPATCH>=10 .AND. JPATCH==3) ) CYCLE 00147 ! 00148 ! 00149 ! 00150 I=0 00151 DO 00152 00153 IF (I==JPCOVER) EXIT 00154 00155 IF (CLANG=='EN') THEN 00156 WRITE(NTEX,*) '{\bf averaged leaf area index} (patch ',JPATCH,'/',KPATCH,') \\' 00157 ELSE 00158 WRITE(NTEX,*) "{\bf indice foliaire moyenn\'e} (partition ",JPATCH,'/',KPATCH,') \\' 00159 END IF 00160 WRITE(NTEX,*) 00161 '\medskip\' WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||c|c||c||} 00162 ' WRITE(NTEX,*) '\hline 00163 ' WRITE(NTEX,*) '\hline 00164 ' WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12&$d_2$&$d_3$&$h$ 00165 ' WRITE(NTEX,*) '\hline 00166 ' WRITE(NTEX,*) '\hline 00167 00168 00169 00170 00171 00172 00173 00174 .OR. 00175 ' IP=0 DO IF (I==JPCOVER) EXIT I=I+1 IF (ZLAI(I,JPATCH,1)/=XUNDEF) THEN IP=IP+1 DO J=1,12 IF (ZLAI(I,JPATCH,J)==0. ZLAI(I,JPATCH,J)==XUNDEF) THEN YDATA_MONTH(J) = ' - 00176 00177 ' ELSE WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZLAI(I,JPATCH,J),1),'.',DEC(ZLAI(I,JPATCH,J),1),') 00178 00179 00180 00181 00182 00183 ' WRITE(YSTRING6, FMT=YFMT) ZLAI(I,JPATCH,J) YDATA_MONTH(J) = YSTRING6 END IF END DO WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZDG(I,2,JPATCH),1),'.',DEC(ZDG(I,2,JPATCH),1),') 00184 00185 00186 00187 ' WRITE(YSTRING6, FMT=YFMT) ZDG(I,2,JPATCH) YDATA_VEGPARAM(1) = YSTRING6 IF (KLAYER>=3) THEN WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZDG(I,3,JPATCH),1),'.',DEC(ZDG(I,3,JPATCH),1),') 00188 00189 00190 00191 ' WRITE(YSTRING6, FMT=YFMT) ZDG(I,3,JPATCH) YDATA_VEGPARAM(2) = YSTRING6 ELSE YDATA_VEGPARAM(2) = ' - 00192 00193 00194 .OR. 00195 ' END IF IF (ZH_TREE(I,JPATCH)==XUNDEF ZH_TREE(I,JPATCH)==0.) THEN YDATA_VEGPARAM(3) = ' - 00196 00197 ' ELSE WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZH_TREE(I,JPATCH)),'.',DEC(ZH_TREE(I,JPATCH)),') 00198 00199 00200 00201 00202 00203 ' WRITE(YSTRING6, FMT=YFMT) ZH_TREE(I,JPATCH) YDATA_VEGPARAM(3) = YSTRING6 END IF WRITE(NTEX, FMT=*) & I,' & ',CNAME(I),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & 00204 ', & YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & 00205 ', & YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & 00206 ', & YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & 00207 ', & YDATA_MONTH(12),' & ',YDATA_VEGPARAM(1),' & ',YDATA_VEGPARAM(2),' & ',YDATA_VEGPARAM(3),' 00208 00209 ' WRITE(NTEX,*) '\hline 00210 00211 00212 00213 00214 00215 ' GLINE=.TRUE. END IF CALL HLINE(NTEX,GLINE,I) IF (IP==NLINES) EXIT END DO WRITE(NTEX,*) '\end{tabular} 00216 00217 00218 00219 '!!-------------------------------------------------------------------------------! WRITE(NTEX,*) '\clearpage 00220 00221 00222 00223 00224 00225 00226 00227 00228 00229 '!ENDDO!-------------------------------------------------------------------------------!!I=0DO IF (I==JPCOVER) EXIT IF (CLANG=='EN 00230 ') THEN WRITE(NTEX,*) '{\bf ground layer depth} (from surface, patch ',JPATCH,'/',KPATCH,') 00231 00232 ' ELSE WRITE(NTEX,*) "{\bf profondeur des couche de sol} (depuis la surface, partition ",JPATCH,'/',KPATCH,') 00233 00234 ' END IF WRITE(NTEX,*) '\medskip 00235 WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c||}' 00236 WRITE(NTEX,*) '\hline' 00237 WRITE(NTEX,*) '\hline' 00238 WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10\\' 00239 WRITE(NTEX,*) '\hline' 00240 WRITE(NTEX,*) '\hline' 00241 IP=0 00242 DO 00243 IF (I==JPCOVER) EXIT 00244 I=I+1 00245 YDATA_LAYER(:) = ' - ' 00246 IF (ZDG(I,1,JPATCH)/=XUNDEF) THEN 00247 IP=IP+1 00248 DO J=1,MIN(KLAYER,10) 00249 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZDG(I,J,JPATCH),1),'.',DEC(ZDG(I,J,JPATCH),1),')' 00250 WRITE(YSTRING6, FMT=YFMT) ZDG(I,J,JPATCH) 00251 YDATA_LAYER(J) = YSTRING6 00252 END DO 00253 00254 WRITE(NTEX, FMT=*) & 00255 I,' & ',CNAME(I),' & ',YDATA_LAYER(1), ' & ',YDATA_LAYER(2), ' & ', & 00256 YDATA_LAYER(3),' & ',YDATA_LAYER(4), ' & ',YDATA_LAYER(5), ' & ', & 00257 YDATA_LAYER(6),' & ',YDATA_LAYER(7), ' & ',YDATA_LAYER(8), ' & ', & 00258 YDATA_LAYER(9),' & ',YDATA_LAYER(10),' \\' 00259 00260 WRITE(NTEX,*) '\hline' 00261 GLINE=.TRUE. 00262 END IF 00263 CALL HLINE(NTEX,GLINE,I) 00264 IF (IP==NLINES) EXIT 00265 END DO 00266 WRITE(NTEX,*) '\end{tabular}' 00267 ! 00268 !------------------------------------------------------------------------------- 00269 ! 00270 WRITE(NTEX,*) '\clearpage' 00271 ! 00272 ENDDO 00273 !------------------------------------------------------------------------------- 00274 ! 00275 IF (HISBA=='DIF') THEN 00276 ! 00277 I=0 00278 DO 00279 IF (I==JPCOVER) EXIT 00280 00281 IF (CLANG=='EN') THEN 00282 WRITE(NTEX,*) '{\bf cumulative root fraction} (patch ',JPATCH,'/',KPATCH,') \\' 00283 ELSE 00284 WRITE(NTEX,*) "{\bf fraction de racines cumul\'ee} (partition ",JPATCH,'/',KPATCH,') \\' 00285 END IF 00286 WRITE(NTEX,*) 00287 '\medskip\' WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c||} 00288 ' WRITE(NTEX,*) '\hline 00289 ' WRITE(NTEX,*) '\hline 00290 ' WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10 00291 ' WRITE(NTEX,*) '\hline 00292 ' WRITE(NTEX,*) '\hline 00293 00294 00295 00296 00297 ' IP=0 DO IF (I==JPCOVER) EXIT I=I+1 YDATA_LAYER(:) = ' - 00298 00299 00300 00301 ' IF (ZROOTFRAC(I,1,JPATCH)/=XUNDEF) THEN IP=IP+1 DO J=1,MIN(KLAYER,10) WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZROOTFRAC(I,J,JPATCH),1),'.',DEC(ZROOTFRAC(I,J,JPATCH),1),') 00302 00303 00304 00305 00306 00307 ' WRITE(YSTRING6, FMT=YFMT) ZROOTFRAC(I,J,JPATCH) YDATA_LAYER(J) = YSTRING6 END DO WRITE(NTEX, FMT=*) & I,' & ',CNAME(I),' & ',YDATA_LAYER(1), ' & ',YDATA_LAYER(2), ' & 00308 ', & YDATA_LAYER(3),' & ',YDATA_LAYER(4), ' & ',YDATA_LAYER(5), ' & 00309 ', & YDATA_LAYER(6),' & ',YDATA_LAYER(7), ' & ',YDATA_LAYER(8), ' & 00310 ', & YDATA_LAYER(9),' & ',YDATA_LAYER(10),' 00311 00312 ' WRITE(NTEX,*) '\hline 00313 00314 00315 00316 00317 00318 ' GLINE=.TRUE. END IF CALL HLINE(NTEX,GLINE,I) IF (IP==NLINES) EXIT END DO WRITE(NTEX,*) '\end{tabular} 00319 00320 00321 00322 '!!-------------------------------------------------------------------------------! WRITE(NTEX,*) '\clearpage 00323 00324 00325 00326 00327 00328 00329 00330 00331 00332 00333 'ENDDOEND IF!!-------------------------------------------------------------------------------!I=0DO IF (I==JPCOVER) EXIT IF (CLANG=='EN 00334 ') THEN WRITE(NTEX,*) '{\bf vegetation fraction (over natural or agricultural areas)} (patch ',JPATCH,'/',KPATCH,') 00335 00336 00337 ' ELSE WRITE(NTEX,*) "{\bf fraction de v\'eg\'etation (sur les surfaces naturelles ou cultiv\'ees)} (partition ", & JPATCH,'/',KPATCH,') 00338 00339 ' END IF WRITE(NTEX,*) '\medskip 00340 WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||}' 00341 WRITE(NTEX,*) '\hline' 00342 WRITE(NTEX,*) '\hline' 00343 WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12\\' 00344 WRITE(NTEX,*) '\hline' 00345 WRITE(NTEX,*) '\hline' 00346 IP=0 00347 DO 00348 IF (I==JPCOVER) EXIT 00349 I=I+1 00350 IF (ZLAI(I,JPATCH,1)/=XUNDEF) THEN 00351 IP=IP+1 00352 DO J=1,12 00353 IF (ZVEG(I,JPATCH,J)==0.) THEN 00354 YDATA_MONTH(J) = ' - ' 00355 ELSE 00356 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZVEG(I,JPATCH,J),2),'.',DEC(ZVEG(I,JPATCH,J),2),')' 00357 WRITE(YSTRING6, FMT=YFMT) ZVEG(I,JPATCH,J) 00358 00359 YDATA_MONTH(J) = YSTRING6 00360 END IF 00361 END DO 00362 00363 WRITE(NTEX, FMT=*) & 00364 I,' & ',CNAME(I),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & ', & 00365 YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & ', & 00366 YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & ', & 00367 YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & ', & 00368 YDATA_MONTH(12),' \\' 00369 00370 WRITE(NTEX,*) '\hline' 00371 GLINE=.TRUE. 00372 END IF 00373 CALL HLINE(NTEX,GLINE,I) 00374 IF (IP==NLINES) EXIT 00375 END DO 00376 WRITE(NTEX,*) '\end{tabular}' 00377 ! 00378 !------------------------------------------------------------------------------- 00379 ! 00380 WRITE(NTEX,*) '\clearpage' 00381 ! 00382 ENDDO 00383 !------------------------------------------------------------------------------- 00384 !------------------------------------------------------------------------------- 00385 ! 00386 ! 00387 I=0 00388 DO 00389 IF (I==JPCOVER) EXIT 00390 00391 IF (CLANG=='EN') THEN 00392 WRITE(NTEX,*) '{\bf surface roughness length for momentum: $z_{0}$} (patch ',JPATCH,'/',KPATCH,') \\' 00393 ELSE 00394 WRITE(NTEX,*) "{\bf longueur de rugosit\'e de la surface (qdm): $z_{0}$} (partition ",JPATCH,'/',KPATCH,') \\' 00395 END IF 00396 WRITE(NTEX,*) 00397 '\medskip\' WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||} 00398 ' WRITE(NTEX,*) '\hline 00399 ' WRITE(NTEX,*) '\hline 00400 ' WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12 00401 ' WRITE(NTEX,*) '\hline 00402 ' WRITE(NTEX,*) '\hline 00403 00404 00405 00406 00407 00408 00409 00410 00411 ' IP=0 DO IF (I==JPCOVER) EXIT I=I+1 IF (ZLAI(I,JPATCH,1)/=XUNDEF) THEN IP=IP+1 DO J=1,12 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZZ0VEG(I,JPATCH,J)),'.',DEC(ZZ0VEG(I,JPATCH,J)),') 00412 00413 00414 00415 00416 00417 ' WRITE(YSTRING6, FMT=YFMT) ZZ0VEG(I,JPATCH,J) YDATA_MONTH(J) = YSTRING6 END DO WRITE(NTEX, FMT=*) & I,' & ',CNAME(I),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & 00418 ', & YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & 00419 ', & YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & 00420 ', & YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & 00421 ', & YDATA_MONTH(12),' 00422 00423 ' WRITE(NTEX,*) '\hline 00424 00425 00426 00427 00428 00429 00430 ' GLINE=.TRUE. END IF CALL HLINE(NTEX,GLINE,I) IF (IP==NLINES) EXIT END DO WRITE(NTEX,*) '\end{tabular} 00431 00432 00433 00434 00435 '!!-------------------------------------------------------------------------------! WRITE(NTEX,*) '\clearpage 00436 00437 00438 00439 00440 00441 00442 00443 00444 00445 '!ENDDO!-------------------------------------------------------------------------------!!I=0DO IF (I==JPCOVER) EXIT IF (CLANG=='EN 00446 ') THEN WRITE(NTEX,*) '{\bf emissivity of natural continental surfaces} (patch ',JPATCH,'/',KPATCH,') 00447 00448 ' ELSE WRITE(NTEX,*) "{\bf \'emissivit\'e des surfaces continentales naturelles} (partition ",JPATCH,'/',KPATCH,') 00449 00450 ' END IF WRITE(NTEX,*) '\medskip 00451 WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||}' 00452 WRITE(NTEX,*) '\hline' 00453 WRITE(NTEX,*) '\hline' 00454 WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12\\' 00455 WRITE(NTEX,*) '\hline' 00456 WRITE(NTEX,*) '\hline' 00457 IP=0 00458 DO 00459 IF (I==JPCOVER) EXIT 00460 I=I+1 00461 IF (ZLAI(I,JPATCH,1)/=XUNDEF) THEN 00462 IP=IP+1 00463 DO J=1,12 00464 IF (ZEMIS_ECO(I,JPATCH,J)==1.) THEN 00465 YDATA_MONTH(J) = ' 1. ' 00466 ELSE 00467 WRITE(YSTRING6, FMT='(F3.2)') ZEMIS_ECO(I,JPATCH,J) 00468 YDATA_MONTH(J) = YSTRING6 00469 END IF 00470 END DO 00471 00472 WRITE(NTEX, FMT=*) & 00473 I,' & ',CNAME(I),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & ', & 00474 YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & ', & 00475 YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & ', & 00476 YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & ', & 00477 YDATA_MONTH(12),' \\' 00478 00479 WRITE(NTEX,*) '\hline' 00480 GLINE=.TRUE. 00481 END IF 00482 CALL HLINE(NTEX,GLINE,I) 00483 IF (IP==NLINES) EXIT 00484 END DO 00485 WRITE(NTEX,*) '\end{tabular}' 00486 ! 00487 !------------------------------------------------------------------------------- 00488 ! 00489 WRITE(NTEX,*) '\clearpage' 00490 ! 00491 ENDDO 00492 !------------------------------------------------------------------------------- 00493 ! 00494 ! 00495 I=0 00496 DO 00497 IF (I==JPCOVER) EXIT 00498 00499 IF (CLANG=='EN') THEN 00500 WRITE(NTEX,*) '{\bf other vegetation parameters} (1) (patch ',JPATCH,'/',KPATCH,') \\' 00501 ELSE 00502 WRITE(NTEX,*) "{\bf autres param\`etres de v\'eg\'etation} (1) (partition ",JPATCH,'/',KPATCH,') \\' 00503 END IF 00504 WRITE(NTEX,*) 00505 '\medskip\' WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c||} 00506 ' WRITE(NTEX,*) '\hline 00507 ' WRITE(NTEX,*) '\hline 00508 00509 ' WRITE(NTEX,*) & '&&$\alpha_{nir}$&$\alpha_{vis}$&$\alpha_{UV}$&$r_{s_{min}}$&$\gamma$&$rgl$&$C_{w_{r_{max}}}$&$z_0$/$z_{0_h}$&$C_v$ 00510 ' WRITE(NTEX,*) '\hline 00511 ' WRITE(NTEX,*) '\hline 00512 00513 00514 00515 00516 .AND..AND. 00517 00518 ' IP=0 DO IF (I==JPCOVER) EXIT I=I+1 IF (ZLAI(I,JPATCH,1)>0. ZVEG(I,JPATCH,1)>0. ZVEG(I,JPATCH,1)/=XUNDEF) THEN IP=IP+1 WRITE(YSTRING6, FMT='(F3.2) 00519 00520 ') ZALBNIR_VEG(I,JPATCH) YDATA_VEGPARAM(4) = YSTRING6 WRITE(YSTRING6, FMT='(F3.2) 00521 00522 ') ZALBVIS_VEG(I,JPATCH) YDATA_VEGPARAM(5) = YSTRING6 WRITE(YSTRING6, FMT='(F3.2) 00523 00524 00525 ') ZALBUV_VEG (I,JPATCH) YDATA_VEGPARAM(6) = YSTRING6 ZRSMIN(I,JPATCH) = NINT(ZRSMIN(I,JPATCH)) WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZRSMIN(I,JPATCH)),'.',DEC(ZRSMIN(I,JPATCH)),') 00526 00527 00528 ' WRITE(YSTRING6, FMT=YFMT) ZRSMIN(I,JPATCH) YDATA_VEGPARAM(7) = YSTRING6 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZGAMMA(I,JPATCH)),'.',DEC(ZGAMMA(I,JPATCH)),') 00529 00530 00531 00532 ' WRITE(YSTRING6, FMT=YFMT) ZGAMMA(I,JPATCH) YDATA_VEGPARAM(8) = YSTRING6 ZRGL(I,JPATCH) = NINT(ZRGL(I,JPATCH)) WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZRGL(I,JPATCH)),'.',DEC(ZRGL(I,JPATCH)),') 00533 00534 00535 ' WRITE(YSTRING6, FMT=YFMT) ZRGL(I,JPATCH) YDATA_VEGPARAM(9) = YSTRING6 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZWRMAX_CF(I,JPATCH)),'.',DEC(ZWRMAX_CF(I,JPATCH)),') 00536 00537 00538 ' WRITE(YSTRING6, FMT=YFMT) ZWRMAX_CF(I,JPATCH) YDATA_VEGPARAM(10) = YSTRING6 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZZ0_O_Z0H(I,JPATCH)),'.',DEC(ZZ0_O_Z0H(I,JPATCH)),') 00539 00540 00541 ' WRITE(YSTRING6, FMT=YFMT) ZZ0_O_Z0H(I,JPATCH) YDATA_VEGPARAM(11) = YSTRING6 WRITE(YFMT,'(A2,I1,A1,I1,A5)') '(F',NB(10000. *ZCV(I,JPATCH)),'.',DEC(10000. *ZCV(I,JPATCH)),',A10) 00542 ' WRITE(YDATA_CV, FMT=YFMT) 10000. *ZCV(I,JPATCH),' $10^{-4}$ 00543 00544 00545 ' WRITE(NTEX, FMT=*) & I,' & ',CNAME(I),' & 00546 ', & YDATA_VEGPARAM(4),' & ',YDATA_VEGPARAM(5),' & 00547 ', & YDATA_VEGPARAM(6),' & ',YDATA_VEGPARAM(7),' & 00548 ', & YDATA_VEGPARAM(8),' & ',YDATA_VEGPARAM(9),' & 00549 ', & YDATA_VEGPARAM(10),' & ',YDATA_VEGPARAM(11),' & 00550 ', & YDATA_CV,' 00551 ' WRITE(NTEX,*) '\hline 00552 00553 00554 00555 00556 00557 ' GLINE=.TRUE. END IF CALL HLINE(NTEX,GLINE,I) IF (IP==NLINES) EXIT END DO WRITE(NTEX,*) '\end{tabular} 00558 00559 00560 00561 '!!-------------------------------------------------------------------------------! WRITE(NTEX,*) '\clearpage 00562 00563 00564 00565 00566 00567 00568 00569 00570 00571 '!ENDDO!-------------------------------------------------------------------------------!!I=0DO IF (I==JPCOVER) EXIT IF (CLANG=='EN 00572 ') THEN WRITE(NTEX,*) '{\bf other vegetation parameters} (2) (patch ',JPATCH,'/',KPATCH,') 00573 00574 ' ELSE WRITE(NTEX,*) "{\bf autres param\`etres de v\'eg\'etation} (2) (partition ",JPATCH,'/',KPATCH,') 00575 00576 ' END IF WRITE(NTEX,*) '\medskip 00577 WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c||}' 00578 WRITE(NTEX,*) '\hline' 00579 WRITE(NTEX,*) '\hline' 00580 WRITE(NTEX,*) '&&$gm$&$B/lai$&$lai_{_{m}}$&$e_{_{fold}}$&$G_c$&$D_{max}$&$f_{2i}$&stress&Re$_{25}$\\' 00581 WRITE(NTEX,*) '\hline' 00582 WRITE(NTEX,*) '\hline' 00583 IP=0 00584 DO 00585 IF (I==JPCOVER) EXIT 00586 I=I+1 00587 00588 IF (ZLAI(I,JPATCH,1)>0. .AND. ZVEG(I,JPATCH,1)>0. .AND. ZVEG(I,JPATCH,1)/=XUNDEF) THEN 00589 IP=IP+1 00590 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZGMES(I,JPATCH)),'.',DEC(ZGMES(I,JPATCH)),')' 00591 WRITE(YSTRING6, FMT=YFMT) ZGMES(I,JPATCH) 00592 YDATA_VEGPARAM(1) = YSTRING6 00593 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZBSLAI(I,JPATCH)),'.',DEC(ZBSLAI(I,JPATCH)),')' 00594 WRITE(YSTRING6, FMT=YFMT) ZBSLAI(I,JPATCH) 00595 YDATA_VEGPARAM(2) = YSTRING6 00596 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZLAIMIN(I,JPATCH)),'.',DEC(ZLAIMIN(I,JPATCH)),')' 00597 WRITE(YSTRING6, FMT=YFMT) ZLAIMIN(I,JPATCH) 00598 YDATA_VEGPARAM(3) = YSTRING6 00599 ZSEFOLD(I,JPATCH) = NINT(ZSEFOLD(I,JPATCH)/XDAY) 00600 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(ZSEFOLD(I,JPATCH)),'.',DEC(ZSEFOLD(I,JPATCH)),')' 00601 WRITE(YSTRING6, FMT=YFMT) ZSEFOLD(I,JPATCH) 00602 YDATA_VEGPARAM(4) = YSTRING6 00603 WRITE(YFMT,'(A2,I1,A1,I1,A5)') '(F',NB(10000. *ZGC(I,JPATCH)),'.',DEC(10000. *ZGC(I,JPATCH)),',A10)' 00604 WRITE(YDATA_CV, FMT=YFMT) 10000. *ZGC(I,JPATCH),' $10^{-4}$' 00605 IF (ZDMAX(I,JPATCH) /= XUNDEF)THEN 00606 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZDMAX(I,JPATCH)),'.',DEC(ZDMAX(I,JPATCH)),')' 00607 WRITE(YSTRING6, FMT=YFMT) ZDMAX(I,JPATCH) 00608 ELSE 00609 YSTRING6 =' - ' 00610 ENDIF 00611 YDATA_VEGPARAM(5) = YSTRING6 00612 IF (GSTRESS(I,JPATCH,1)) THEN 00613 YDATA_STRESS='def.' 00614 ELSE 00615 YDATA_STRESS='off.' 00616 END IF 00617 WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NBT(ZF2I(I,JPATCH,1)),'.',DEC(ZF2I(I,JPATCH,1)),')' 00618 WRITE(YSTRING6, FMT=YFMT) ZF2I(I,JPATCH,1) 00619 YDATA_VEGPARAM(6) = YSTRING6 00620 WRITE(YFMT,'(A2,I1,A1,I1,A5)') '(F',NB(10000000. *ZRE25(I,JPATCH)),'.',DEC(10000000. *ZRE25(I,JPATCH)),',A10)' 00621 WRITE(YDATA_RE25, FMT=YFMT) 10000000. *ZRE25(I,JPATCH),' $10^{-7}$' 00622 WRITE(NTEX, FMT=*) & 00623 I,' & ',CNAME(I),' & ', & 00624 YDATA_VEGPARAM(1),' & ',YDATA_VEGPARAM(2),' & ', & 00625 YDATA_VEGPARAM(3),' & ',YDATA_VEGPARAM(4),' & ', & 00626 YDATA_CV, ' & ',YDATA_VEGPARAM(5),' & ', & 00627 YDATA_VEGPARAM(6),' & ', & 00628 YDATA_STRESS ,' & ',YDATA_RE25,' \\' 00629 WRITE(NTEX,*) '\hline' 00630 GLINE=.TRUE. 00631 END IF 00632 CALL HLINE(NTEX,GLINE,I) 00633 IF (IP==NLINES) EXIT 00634 END DO 00635 WRITE(NTEX,*) '\end{tabular}' 00636 ! 00637 !------------------------------------------------------------------------------- 00638 ! 00639 WRITE(NTEX,*) '\clearpage' 00640 00641 END DO 00642 ! 00643 END DO 00644 IF (LHOOK) CALL DR_HOOK('WRITE_COVER_TEX_ISBA_PAR',1,ZHOOK_HANDLE) 00645 ! 00646 !------------------------------------------------------------------------------- 00647 ! 00648 ! 00649 END SUBROUTINE WRITE_COVER_TEX_ISBA_PAR