SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITESURF_PGD_ISBA_PAR_n(HPROGRAM) 00003 ! ################################################ 00004 ! 00005 !!**** *WRITESURF_PGD_ISBA_PAR_n* - writes ISBA physiographic fields 00006 !! 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! 00011 !!** METHOD 00012 !! ------ 00013 !! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! 00018 !! IMPLICIT ARGUMENTS 00019 !! ------------------ 00020 !! 00021 !! REFERENCE 00022 !! --------- 00023 !! 00024 !! 00025 !! AUTHOR 00026 !! ------ 00027 !! V. Masson *Meteo France* 00028 !! 00029 !! MODIFICATIONS 00030 !! ------------- 00031 !! Original 01/2003 00032 !! P. Le Moigne 12/2004 : add type of photosynthesis 00033 !------------------------------------------------------------------------------- 00034 ! 00035 !* 0. DECLARATIONS 00036 ! ------------ 00037 ! 00038 USE MODD_DATA_ISBA_n, ONLY : NTIME, XPAR_VEG, XPAR_LAI,XPAR_RSMIN,XPAR_GAMMA,XPAR_WRMAX_CF, & 00039 XPAR_RGL,XPAR_CV,XPAR_DG,XPAR_Z0,XPAR_Z0_O_Z0H, & 00040 XPAR_ALBNIR_VEG,XPAR_ALBVIS_VEG, XPAR_ALBUV_VEG, & 00041 XPAR_ALBNIR_SOIL,XPAR_ALBVIS_SOIL, XPAR_ALBUV_SOIL, & 00042 XPAR_EMIS, XPAR_DICE, & 00043 XPAR_VEGTYPE,XPAR_ROOTFRAC, & 00044 XPAR_GMES,XPAR_BSLAI,XPAR_LAIMIN,XPAR_SEFOLD,XPAR_GC, & 00045 XPAR_DMAX, XPAR_F2I, LDATA_STRESS, XPAR_H_TREE,XPAR_RE25,& 00046 XPAR_CE_NITRO,XPAR_CF_NITRO,XPAR_CNA_NITRO, & 00047 XPAR_GROUND_DEPTH, XPAR_ROOT_DEPTH, & 00048 XPAR_ROOT_EXTINCTION, XPAR_ROOT_LIN, & 00049 LPAR_STRESS, XPAR_IRRIG, XPAR_WATSUP, & 00050 LDATA_VEGTYPE, LDATA_LAI, LDATA_H_TREE, LDATA_DG, LDATA_ROOTFRAC,& 00051 LDATA_VEG, LDATA_Z0, LDATA_EMIS, LDATA_DICE, & 00052 LDATA_RSMIN, LDATA_GAMMA, LDATA_WRMAX_CF, LDATA_RGL, & 00053 LDATA_CV, LDATA_Z0_O_Z0H, & 00054 LDATA_ALBNIR_VEG, LDATA_ALBVIS_VEG, LDATA_ALBUV_VEG, & 00055 LDATA_ALBVIS_SOIL, LDATA_ALBNIR_SOIL, LDATA_ALBUV_SOIL, & 00056 LDATA_GMES, LDATA_BSLAI, LDATA_SEFOLD, LDATA_GC, LDATA_DMAX, & 00057 LDATA_RE25, LDATA_LAIMIN, LDATA_F2I, & 00058 LDATA_CE_NITRO,LDATA_CF_NITRO, LDATA_CNA_NITRO,& 00059 LDATA_STRESS, LDATA_IRRIG, LDATA_WATSUP, & 00060 LDATA_GROUND_DEPTH, LDATA_ROOT_DEPTH, & 00061 LDATA_ROOT_EXTINCTION, LDATA_ROOT_LIN 00062 00063 ! 00064 USE MODI_WRITE_SURF 00065 ! 00066 ! 00067 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00068 USE PARKIND1 ,ONLY : JPRB 00069 ! 00070 IMPLICIT NONE 00071 ! 00072 !* 0.1 Declarations of arguments 00073 ! ------------------------- 00074 ! 00075 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling 00076 ! 00077 !* 0.2 Declarations of local variables 00078 ! ------------------------------- 00079 ! 00080 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00081 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00082 CHARACTER(LEN=100):: YCOMMENT ! Comment string 00083 INTEGER :: JTIME ! loop index 00084 INTEGER :: JLAYER ! loop index 00085 INTEGER :: JPATCH ! loop index 00086 REAL, DIMENSION(:,:), ALLOCATABLE :: ZWORK 00087 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00088 ! 00089 !------------------------------------------------------------------------------- 00090 ! 00091 IF (LHOOK) CALL DR_HOOK('WRITESURF_PGD_ISBA_PAR_N',0,ZHOOK_HANDLE) 00092 YRECFM='L_VEGTYPE' 00093 YCOMMENT=YRECFM 00094 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_VEGTYPE,IRESP,HCOMMENT=YCOMMENT) 00095 IF (LDATA_VEGTYPE) THEN 00096 YRECFM='D_VEGTYPE' 00097 YCOMMENT='X_Y_DATA_VEGTYPE' 00098 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_VEGTYPE(:,:),IRESP,HCOMMENT=YCOMMENT) 00099 ENDIF 00100 ! 00101 IF (LDATA_LAI .OR. LDATA_VEG .OR. LDATA_Z0 .OR. LDATA_EMIS) THEN 00102 YRECFM='NDATA_TIME' 00103 YCOMMENT='(-)' 00104 CALL WRITE_SURF(HPROGRAM,YRECFM,NTIME,IRESP,HCOMMENT=YCOMMENT) 00105 ENDIF 00106 ! 00107 YRECFM='L_VEG' 00108 YCOMMENT=YRECFM 00109 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_VEG,IRESP,HCOMMENT=YCOMMENT) 00110 IF (LDATA_VEG) THEN 00111 DO JTIME=1,NTIME 00112 WRITE(YRECFM,FMT='(A7,I2.2)') 'D_VEG_T',JTIME 00113 YCOMMENT='X_Y_D_VEG' 00114 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_VEG(:,JTIME,:),IRESP,HCOMMENT=YCOMMENT) 00115 END DO 00116 ENDIF 00117 ! 00118 YRECFM='L_LAI' 00119 YCOMMENT=YRECFM 00120 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_LAI,IRESP,HCOMMENT=YCOMMENT) 00121 IF (LDATA_LAI) THEN 00122 DO JTIME=1,NTIME 00123 WRITE(YRECFM,FMT='(A7,I2.2)') 'D_LAI_T',JTIME 00124 YCOMMENT='X_Y_D_LAI' 00125 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_LAI(:,JTIME,:),IRESP,HCOMMENT=YCOMMENT) 00126 END DO 00127 ENDIF 00128 ! 00129 YRECFM='L_Z0' 00130 YCOMMENT=YRECFM 00131 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_Z0,IRESP,HCOMMENT=YCOMMENT) 00132 IF (LDATA_Z0) THEN 00133 DO JTIME=1,NTIME 00134 WRITE(YRECFM,FMT='(A6,I2.2)') 'D_Z0_T',JTIME 00135 YCOMMENT='X_Y_D_Z0' 00136 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_Z0(:,JTIME,:),IRESP,HCOMMENT=YCOMMENT) 00137 END DO 00138 ENDIF 00139 ! 00140 YRECFM='L_EMIS' 00141 YCOMMENT=YRECFM 00142 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_EMIS,IRESP,HCOMMENT=YCOMMENT) 00143 IF (LDATA_EMIS) THEN 00144 DO JTIME=1,NTIME 00145 WRITE(YRECFM,FMT='(A8,I2.2)') 'D_EMIS_T',JTIME 00146 YCOMMENT='X_Y_D_EMIS' 00147 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_EMIS(:,JTIME,:),IRESP,HCOMMENT=YCOMMENT) 00148 END DO 00149 ENDIF 00150 ! 00151 YRECFM='L_RSMIN' 00152 YCOMMENT=YRECFM 00153 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_RSMIN,IRESP,HCOMMENT=YCOMMENT) 00154 IF (LDATA_RSMIN) THEN 00155 YRECFM='D_RSMIN' 00156 YCOMMENT='X_Y_D_RSMIN' 00157 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_RSMIN(:,:),IRESP,HCOMMENT=YCOMMENT) 00158 ENDIF 00159 ! 00160 YRECFM='L_GAMMA' 00161 YCOMMENT=YRECFM 00162 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GAMMA,IRESP,HCOMMENT=YCOMMENT) 00163 IF (LDATA_GAMMA) THEN 00164 YRECFM='D_GAMMA' 00165 YCOMMENT='X_Y_D_GAMMA' 00166 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GAMMA(:,:),IRESP,HCOMMENT=YCOMMENT) 00167 ENDIF 00168 ! 00169 YRECFM='L_WRMAX_CF' 00170 YCOMMENT=YRECFM 00171 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_WRMAX_CF,IRESP,HCOMMENT=YCOMMENT) 00172 IF (LDATA_WRMAX_CF) THEN 00173 YRECFM='D_WRMAX_CF' 00174 YCOMMENT='X_Y_D_WRMAX_CF' 00175 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_WRMAX_CF(:,:),IRESP,HCOMMENT=YCOMMENT) 00176 ENDIF 00177 ! 00178 YRECFM='L_RGL' 00179 YCOMMENT=YRECFM 00180 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_RGL,IRESP,HCOMMENT=YCOMMENT) 00181 IF (LDATA_RGL) THEN 00182 YRECFM='D_RGL' 00183 YCOMMENT='X_Y_D_RGL' 00184 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_RGL(:,:),IRESP,HCOMMENT=YCOMMENT) 00185 ENDIF 00186 ! 00187 YRECFM='L_CV' 00188 YCOMMENT=YRECFM 00189 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_CV,IRESP,HCOMMENT=YCOMMENT) 00190 IF (LDATA_CV) THEN 00191 YRECFM='D_CV' 00192 YCOMMENT='X_Y_D_CV' 00193 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CV(:,:),IRESP,HCOMMENT=YCOMMENT) 00194 ENDIF 00195 ! 00196 YRECFM='L_Z0_O_Z0H' 00197 YCOMMENT=YRECFM 00198 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_Z0_O_Z0H,IRESP,HCOMMENT=YCOMMENT) 00199 IF (LDATA_Z0_O_Z0H) THEN 00200 YRECFM='D_Z0_O_Z0H' 00201 YCOMMENT='X_Y_D_Z0_O_Z0H' 00202 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_Z0_O_Z0H(:,:),IRESP,HCOMMENT=YCOMMENT) 00203 ENDIF 00204 ! 00205 YRECFM='L_DG' 00206 YCOMMENT=YRECFM 00207 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_DG,IRESP,HCOMMENT=YCOMMENT) 00208 IF (LDATA_DG) THEN 00209 ALLOCATE(ZWORK(SIZE(XPAR_DG,1),SIZE(XPAR_DG,3))) 00210 DO JLAYER=1,SIZE(XPAR_DG,2) 00211 IF (JLAYER<10) WRITE(YRECFM,FMT='(A4,I1.1)') 'D_DG',JLAYER 00212 IF (JLAYER>=10) WRITE(YRECFM,FMT='(A4,I2.2)') 'D_DG',JLAYER 00213 YCOMMENT='X_Y_'//YRECFM 00214 DO JPATCH=1,SIZE(XPAR_DG,3) 00215 ZWORK(:,JPATCH) = XPAR_DG(:,JLAYER,JPATCH) 00216 END DO 00217 CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT) 00218 END DO 00219 DEALLOCATE(ZWORK) 00220 ENDIF 00221 ! 00222 YRECFM='L_ROOTFRAC' 00223 YCOMMENT=YRECFM 00224 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROOTFRAC,IRESP,HCOMMENT=YCOMMENT) 00225 IF (LDATA_ROOTFRAC) THEN 00226 ALLOCATE(ZWORK(SIZE(XPAR_ROOTFRAC,1),SIZE(XPAR_ROOTFRAC,3))) 00227 DO JLAYER=1,SIZE(XPAR_ROOTFRAC,2) 00228 IF (JLAYER<10) WRITE(YRECFM,FMT='(A10,I1.1)') 'D_ROOTFRAC',JLAYER 00229 IF (JLAYER>=10) WRITE(YRECFM,FMT='(A10,I2.2)') 'D_ROOTFRAC',JLAYER 00230 YCOMMENT='X_Y_'//YRECFM 00231 DO JPATCH=1,SIZE(XPAR_ROOTFRAC,3) 00232 ZWORK(:,JPATCH) = XPAR_ROOTFRAC(:,JLAYER,JPATCH) 00233 END DO 00234 CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,HCOMMENT=YCOMMENT) 00235 END DO 00236 DEALLOCATE(ZWORK) 00237 ENDIF 00238 ! 00239 YRECFM='L_GROUND_DPT' 00240 YCOMMENT=YRECFM 00241 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GROUND_DEPTH,IRESP,HCOMMENT=YCOMMENT) 00242 IF (LDATA_GROUND_DEPTH) THEN 00243 YRECFM='D_GROUND_DPT' 00244 YCOMMENT='X_Y_'//YRECFM 00245 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GROUND_DEPTH(:,:),IRESP,HCOMMENT=YCOMMENT) 00246 ENDIF 00247 ! 00248 YRECFM='L_ROOT_DEPTH' 00249 YCOMMENT=YRECFM 00250 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROOT_DEPTH,IRESP,HCOMMENT=YCOMMENT) 00251 IF (LDATA_ROOT_DEPTH) THEN 00252 YRECFM='D_ROOT_DEPTH' 00253 YCOMMENT='X_Y_'//YRECFM 00254 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ROOT_DEPTH(:,:),IRESP,HCOMMENT=YCOMMENT) 00255 ENDIF 00256 ! 00257 YRECFM='L_ROOT_EXT' 00258 YCOMMENT=YRECFM 00259 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROOT_EXTINCTION,IRESP,HCOMMENT=YCOMMENT) 00260 IF (LDATA_ROOT_EXTINCTION) THEN 00261 YRECFM='D_ROOT_EXT' 00262 YCOMMENT='X_Y_'//YRECFM 00263 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ROOT_EXTINCTION(:,:),IRESP,HCOMMENT=YCOMMENT) 00264 ENDIF 00265 ! 00266 YRECFM='L_ROOT_LIN' 00267 YCOMMENT=YRECFM 00268 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROOT_LIN,IRESP,HCOMMENT=YCOMMENT) 00269 IF (LDATA_ROOT_LIN) THEN 00270 YRECFM='D_ROOT_LIN' 00271 YCOMMENT='X_Y_'//YRECFM 00272 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ROOT_LIN(:,:),IRESP,HCOMMENT=YCOMMENT) 00273 ENDIF 00274 ! 00275 YRECFM='L_DICE' 00276 YCOMMENT=YRECFM 00277 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_DICE,IRESP,HCOMMENT=YCOMMENT) 00278 IF (LDATA_DICE) THEN 00279 YRECFM='D_DICE' 00280 YCOMMENT='X_Y_'//YRECFM 00281 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_DICE(:,:),IRESP,HCOMMENT=YCOMMENT) 00282 ENDIF 00283 ! 00284 YRECFM='L_ALBNIR_VEG' 00285 YCOMMENT=YRECFM 00286 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALBNIR_VEG,IRESP,HCOMMENT=YCOMMENT) 00287 IF (LDATA_ALBNIR_VEG) THEN 00288 YRECFM='D_ALBNIR_VEG' 00289 YCOMMENT='X_Y_'//YRECFM 00290 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALBNIR_VEG(:,:),IRESP,HCOMMENT=YCOMMENT) 00291 ENDIF 00292 ! 00293 YRECFM='L_ALBVIS_VEG' 00294 YCOMMENT=YRECFM 00295 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALBVIS_VEG,IRESP,HCOMMENT=YCOMMENT) 00296 IF (LDATA_ALBVIS_VEG) THEN 00297 YRECFM='D_ALBVIS_VEG' 00298 YCOMMENT='X_Y_'//YRECFM 00299 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALBVIS_VEG(:,:),IRESP,HCOMMENT=YCOMMENT) 00300 ENDIF 00301 ! 00302 YRECFM='L_ALBUV_VEG' 00303 YCOMMENT=YRECFM 00304 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALBUV_VEG,IRESP,HCOMMENT=YCOMMENT) 00305 IF (LDATA_ALBUV_VEG) THEN 00306 YRECFM='D_ALBUV_VEG' 00307 YCOMMENT='X_Y_'//YRECFM 00308 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALBUV_VEG(:,:),IRESP,HCOMMENT=YCOMMENT) 00309 ENDIF 00310 ! 00311 YRECFM='L_ALBNIR_SOI' 00312 YCOMMENT=YRECFM 00313 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALBNIR_SOIL,IRESP,HCOMMENT=YCOMMENT) 00314 IF (LDATA_ALBNIR_SOIL) THEN 00315 YRECFM='D_ALBNIR_SOI' 00316 YCOMMENT='X_Y_'//YRECFM 00317 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALBNIR_SOIL(:,:),IRESP,HCOMMENT=YCOMMENT) 00318 ENDIF 00319 ! 00320 YRECFM='L_ALBVIS_SOI' 00321 YCOMMENT=YRECFM 00322 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALBVIS_SOIL,IRESP,HCOMMENT=YCOMMENT) 00323 IF (LDATA_ALBVIS_SOIL) THEN 00324 YRECFM='D_ALBVIS_SOI' 00325 YCOMMENT='X_Y_'//YRECFM 00326 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALBVIS_SOIL(:,:),IRESP,HCOMMENT=YCOMMENT) 00327 ENDIF 00328 ! 00329 YRECFM='L_ALBUV_SOI' 00330 YCOMMENT=YRECFM 00331 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALBUV_SOIL,IRESP,HCOMMENT=YCOMMENT) 00332 IF (LDATA_ALBUV_SOIL) THEN 00333 YRECFM='D_ALBUV_SOI' 00334 YCOMMENT='X_Y_'//YRECFM 00335 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALBUV_SOIL(:,:),IRESP,HCOMMENT=YCOMMENT) 00336 ENDIF 00337 ! 00338 YRECFM='L_GMES' 00339 YCOMMENT=YRECFM 00340 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GMES,IRESP,HCOMMENT=YCOMMENT) 00341 IF (LDATA_GMES) THEN 00342 YRECFM='D_GMES' 00343 YCOMMENT='X_Y_'//YRECFM 00344 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GMES(:,:),IRESP,HCOMMENT=YCOMMENT) 00345 ENDIF 00346 ! 00347 YRECFM='L_BSLAI' 00348 YCOMMENT=YRECFM 00349 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_BSLAI,IRESP,HCOMMENT=YCOMMENT) 00350 IF (LDATA_BSLAI) THEN 00351 YRECFM='D_BSLAI' 00352 YCOMMENT='X_Y_'//YRECFM 00353 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_BSLAI(:,:),IRESP,HCOMMENT=YCOMMENT) 00354 ENDIF 00355 ! 00356 YRECFM='L_LAIMIN' 00357 YCOMMENT=YRECFM 00358 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_LAIMIN,IRESP,HCOMMENT=YCOMMENT) 00359 IF (LDATA_LAIMIN) THEN 00360 YRECFM='D_LAIMIN' 00361 YCOMMENT='X_Y_'//YRECFM 00362 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_LAIMIN(:,:),IRESP,HCOMMENT=YCOMMENT) 00363 ENDIF 00364 ! 00365 YRECFM='L_SEFOLD' 00366 YCOMMENT=YRECFM 00367 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_SEFOLD,IRESP,HCOMMENT=YCOMMENT) 00368 IF (LDATA_SEFOLD) THEN 00369 YRECFM='D_SEFOLD' 00370 YCOMMENT='X_Y_'//YRECFM 00371 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_SEFOLD(:,:),IRESP,HCOMMENT=YCOMMENT) 00372 ENDIF 00373 ! 00374 YRECFM='L_GC' 00375 YCOMMENT=YRECFM 00376 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GC,IRESP,HCOMMENT=YCOMMENT) 00377 IF (LDATA_GC) THEN 00378 YRECFM='D_GC' 00379 YCOMMENT='X_Y_'//YRECFM 00380 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GC(:,:),IRESP,HCOMMENT=YCOMMENT) 00381 ENDIF 00382 ! 00383 YRECFM='L_DMAX' 00384 YCOMMENT=YRECFM 00385 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_DMAX,IRESP,HCOMMENT=YCOMMENT) 00386 IF (LDATA_DMAX) THEN 00387 YRECFM='D_DMAX' 00388 YCOMMENT='X_Y_'//YRECFM 00389 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_DMAX(:,:),IRESP,HCOMMENT=YCOMMENT) 00390 ENDIF 00391 ! 00392 YRECFM='L_F2I' 00393 YCOMMENT=YRECFM 00394 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_F2I,IRESP,HCOMMENT=YCOMMENT) 00395 IF (LDATA_F2I) THEN 00396 YRECFM='D_F2I' 00397 YCOMMENT='X_Y_'//YRECFM 00398 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_F2I(:,:),IRESP,HCOMMENT=YCOMMENT) 00399 ENDIF 00400 ! 00401 YRECFM='L_STRESS' 00402 YCOMMENT=YRECFM 00403 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_STRESS,IRESP,HCOMMENT=YCOMMENT) 00404 IF (LDATA_STRESS) THEN 00405 ALLOCATE(ZWORK(SIZE(LPAR_STRESS,1),SIZE(LPAR_STRESS,2))) 00406 ZWORK=0. 00407 WHERE(LPAR_STRESS) ZWORK=1. 00408 YRECFM='D_STRESS' 00409 YCOMMENT='X_Y_'//YRECFM 00410 CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK(:,:),IRESP,HCOMMENT=YCOMMENT) 00411 DEALLOCATE(ZWORK) 00412 ENDIF 00413 ! 00414 YRECFM='L_H_TREE' 00415 YCOMMENT=YRECFM 00416 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_H_TREE,IRESP,HCOMMENT=YCOMMENT) 00417 IF (LDATA_H_TREE) THEN 00418 YRECFM='D_H_TREE' 00419 YCOMMENT='X_Y_'//YRECFM 00420 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_H_TREE(:,:),IRESP,HCOMMENT=YCOMMENT) 00421 ENDIF 00422 ! 00423 YRECFM='L_RE25' 00424 YCOMMENT=YRECFM 00425 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_RE25,IRESP,HCOMMENT=YCOMMENT) 00426 IF (LDATA_RE25) THEN 00427 YRECFM='D_RE25' 00428 YCOMMENT='X_Y_'//YRECFM 00429 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_RE25(:,:),IRESP,HCOMMENT=YCOMMENT) 00430 ENDIF 00431 ! 00432 YRECFM='L_CE_NITRO' 00433 YCOMMENT=YRECFM 00434 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_CE_NITRO,IRESP,HCOMMENT=YCOMMENT) 00435 IF (LDATA_CE_NITRO) THEN 00436 YRECFM='D_CE_NITRO' 00437 YCOMMENT='X_Y_'//YRECFM 00438 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CE_NITRO(:,:),IRESP,HCOMMENT=YCOMMENT) 00439 ENDIF 00440 ! 00441 YRECFM='L_CF_NITRO' 00442 YCOMMENT=YRECFM 00443 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_CF_NITRO,IRESP,HCOMMENT=YCOMMENT) 00444 IF (LDATA_CF_NITRO) THEN 00445 YRECFM='D_CF_NITRO' 00446 YCOMMENT='X_Y_'//YRECFM 00447 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CF_NITRO(:,:),IRESP,HCOMMENT=YCOMMENT) 00448 ENDIF 00449 ! 00450 YRECFM='L_CNA_NITRO' 00451 YCOMMENT=YRECFM 00452 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_CNA_NITRO,IRESP,HCOMMENT=YCOMMENT) 00453 IF (LDATA_CNA_NITRO) THEN 00454 YRECFM='D_CNA_NITRO' 00455 YCOMMENT='X_Y_'//YRECFM 00456 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CNA_NITRO(:,:),IRESP,HCOMMENT=YCOMMENT) 00457 ENDIF 00458 ! 00459 YRECFM='L_IRRIG' 00460 YCOMMENT=YRECFM 00461 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_IRRIG,IRESP,HCOMMENT=YCOMMENT) 00462 IF (LDATA_IRRIG) THEN 00463 DO JTIME=1,NTIME 00464 WRITE(YRECFM,FMT='(A9,I2.2)') 'D_IRRIG_T',JTIME 00465 YCOMMENT='X_Y_IRRIG' 00466 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_IRRIG(:,JTIME,:),IRESP,HCOMMENT=YCOMMENT) 00467 ENDDO 00468 ENDIF 00469 ! 00470 YRECFM='L_WATSUP' 00471 YCOMMENT=YRECFM 00472 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_WATSUP,IRESP,HCOMMENT=YCOMMENT) 00473 IF (LDATA_WATSUP) THEN 00474 DO JTIME=1,NTIME 00475 WRITE(YRECFM,FMT='(A10,I2.2)') 'D_WATSUP_T',JTIME 00476 YCOMMENT='X_Y_WATSUP' 00477 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_WATSUP(:,JTIME,:),IRESP,HCOMMENT=YCOMMENT) 00478 ENDDO 00479 ENDIF 00480 ! 00481 IF (LHOOK) CALL DR_HOOK('WRITESURF_PGD_ISBA_PAR_N',1,ZHOOK_HANDLE) 00482 ! 00483 !------------------------------------------------------------------------------- 00484 ! 00485 END SUBROUTINE WRITESURF_PGD_ISBA_PAR_n