353 |
ENDDO |
ENDDO |
354 |
ENDDO |
ENDDO |
355 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
356 |
tmpVol = arrDr*arrhFac*arrArea*frcArr |
tmpVol = arrhFac*arrArea*frcArr |
357 |
ELSE |
ELSE |
358 |
tmpVol = arrDr*arrArea*frcArr |
tmpVol = arrArea*frcArr |
359 |
ENDIF |
ENDIF |
360 |
|
|
361 |
ELSEIF ( regId.EQ.0 .AND. useFract ) THEN |
ELSEIF ( regId.EQ.0 .AND. useFract ) THEN |
367 |
ENDDO |
ENDDO |
368 |
ENDDO |
ENDDO |
369 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
370 |
tmpVol = arrDr*arrhFac*arrArea*frcArr |
tmpVol = arrhFac*arrArea*frcArr |
371 |
ELSE |
ELSE |
372 |
tmpVol = arrDr*arrArea*frcArr |
tmpVol = arrArea*frcArr |
373 |
ENDIF |
ENDIF |
374 |
|
|
375 |
ELSEIF ( regId.EQ.0 .AND. exclSpVal ) THEN |
ELSEIF ( regId.EQ.0 .AND. exclSpVal ) THEN |
381 |
ENDDO |
ENDDO |
382 |
ENDDO |
ENDDO |
383 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
384 |
tmpVol = arrDr*arrhFac*arrArea |
tmpVol = arrhFac*arrArea |
385 |
ELSE |
ELSE |
386 |
tmpVol = arrDr*arrArea |
tmpVol = arrArea |
387 |
ENDIF |
ENDIF |
388 |
|
|
389 |
ELSEIF ( regId.EQ.0 ) THEN |
ELSEIF ( regId.EQ.0 ) THEN |
394 |
ENDDO |
ENDDO |
395 |
ENDDO |
ENDDO |
396 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
397 |
tmpVol = arrDr*arrhFac*arrArea |
tmpVol = arrhFac*arrArea |
398 |
ELSE |
ELSE |
399 |
tmpVol = arrDr*arrArea |
tmpVol = arrArea |
400 |
ENDIF |
ENDIF |
401 |
|
|
402 |
ELSEIF ( useFract .AND. exclSpVal ) THEN |
ELSEIF ( useFract .AND. exclSpVal ) THEN |
410 |
ENDDO |
ENDDO |
411 |
ENDDO |
ENDDO |
412 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
413 |
tmpVol = arrDr*arrhFac*arrArea*frcArr |
tmpVol = arrhFac*arrArea*frcArr |
414 |
ELSE |
ELSE |
415 |
tmpVol = arrDr*arrArea*frcArr |
tmpVol = arrArea*frcArr |
416 |
ENDIF |
ENDIF |
417 |
|
|
418 |
ELSEIF ( useFract ) THEN |
ELSEIF ( useFract ) THEN |
425 |
ENDDO |
ENDDO |
426 |
ENDDO |
ENDDO |
427 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
428 |
tmpVol = arrDr*arrhFac*arrArea*frcArr |
tmpVol = arrhFac*arrArea*frcArr |
429 |
ELSE |
ELSE |
430 |
tmpVol = arrDr*arrArea*frcArr |
tmpVol = arrArea*frcArr |
431 |
ENDIF |
ENDIF |
432 |
|
|
433 |
ELSEIF ( exclSpVal ) THEN |
ELSEIF ( exclSpVal ) THEN |
441 |
ENDDO |
ENDDO |
442 |
ENDDO |
ENDDO |
443 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
444 |
tmpVol = arrDr*arrhFac*arrArea |
tmpVol = arrhFac*arrArea |
445 |
ELSE |
ELSE |
446 |
tmpVol = arrDr*arrArea |
tmpVol = arrArea |
447 |
ENDIF |
ENDIF |
448 |
|
|
449 |
ELSE |
ELSE |
456 |
ENDDO |
ENDDO |
457 |
ENDDO |
ENDDO |
458 |
IF ( useWeight ) THEN |
IF ( useWeight ) THEN |
459 |
tmpVol = arrDr*arrhFac*arrArea |
tmpVol = arrhFac*arrArea |
460 |
ELSE |
ELSE |
461 |
tmpVol = arrDr*arrArea |
tmpVol = arrArea |
462 |
ENDIF |
ENDIF |
463 |
|
|
464 |
ENDIF |
ENDIF |
465 |
|
C inpArr can be undefined/non-initialised in overlaps, so we need |
466 |
|
C to clean this fields first by copying the defined range to tmpFld |
467 |
|
tmpFld = 0. _d 0 |
468 |
|
DO j = 1,jRun |
469 |
|
DO i = 1,iRun |
470 |
|
tmpFld(i,j) = inpArr(i,j)*tmpFac |
471 |
|
ENDDO |
472 |
|
ENDDO |
473 |
IF ( power.EQ.2) THEN |
IF ( power.EQ.2) THEN |
474 |
tmpFld = tmpFac*inpArr*inpArr |
tmpFld = tmpFld*tmpFld |
|
ELSE |
|
|
tmpFld = tmpFac*inpArr |
|
475 |
ENDIF |
ENDIF |
476 |
C sum up the volume |
C sum up the volume |
477 |
tmpVol = tmpVol*arrMaskL |
tmpVol = tmpVol*arrMaskL |
478 |
statArr(0) = SUM(tmpVol) |
statArr(0) = SUM(tmpVol)*arrDr |
479 |
C compute and sum up volume*field |
C compute and sum up volume*field |
480 |
tmpVol = tmpVol*tmpFld |
tmpVol = tmpVol*tmpFld |
481 |
statArr(1) = SUM(tmpVol) |
statArr(1) = SUM(tmpVol)*arrDr |
482 |
C compute and sum up volume*field**2 |
C compute and sum up volume*field**2 |
483 |
tmpVol = tmpVol*tmpFld |
tmpVol = tmpVol*tmpFld |
484 |
statArr(2) = SUM(tmpVol) |
statArr(2) = SUM(tmpVol)*arrDr |
485 |
statArr(im) = MINVAL(tmpFld, MASK = arrMaskL>0.) |
statArr(im) = MINVAL(tmpFld, MASK = arrMaskL>0.) |
486 |
statArr(ix) = MAXVAL(tmpFld, MASK = arrMaskL>0.) |
statArr(ix) = MAXVAL(tmpFld, MASK = arrMaskL>0.) |
487 |
|
|