/[MITgcm]/MITgcm/pkg/diagnostics/diagstats_calc.F
ViewVC logotype

Diff of /MITgcm/pkg/diagnostics/diagstats_calc.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by mlosch, Mon Nov 7 09:20:46 2011 UTC revision 1.5 by mlosch, Fri Jan 20 14:24:08 2012 UTC
# Line 353  C     and thus will not compile with a F Line 353  C     and thus will not compile with a F
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
# Line 367  C     and thus will not compile with a F Line 367  C     and thus will not compile with a F
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
# Line 381  C     and thus will not compile with a F Line 381  C     and thus will not compile with a F
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
# Line 394  C     and thus will not compile with a F Line 394  C     and thus will not compile with a F
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
# Line 410  C     and thus will not compile with a F Line 410  C     and thus will not compile with a F
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
# Line 425  C     and thus will not compile with a F Line 425  C     and thus will not compile with a F
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
# Line 441  C     and thus will not compile with a F Line 441  C     and thus will not compile with a F
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
# Line 456  C     and thus will not compile with a F Line 456  C     and thus will not compile with a F
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    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22