analogueFuncs.f

      ************************************************************************
      *     Collection of functions and subroutines
      *     for analogue calculations and search
      ************************************************************************
   5: 
      ********************************************************************************
      *     three variable (aridity index, HDD, CDD) monte carlo bootstrap simulation
      *     for distance - probability curve creation
      *     warning: in creation and turned out to be not particularly useful
  10: *     due to the rather limited possible K-S differences by only 30 datapoints
      *     selected from the same sample
      *     FIXME: obsolete
      
            SUBROUTINE AHCBootstrapMonteCarlo (
  15:      c p_a, p_simN, p_arids, p_HDDs, p_CDDs )
            
            INTEGER p_a ! number of data points (i.e. years)
            REAL p_arids(p_a), p_HDDs(p_a), p_CDDs(p_a) !data
            INTEGER p_simN ! number of monte carlo simulations
  20:       
            INTEGER idum !for random number gen
            REAL simArids(p_a), simHDDs(p_a), simCDDs(p_a), simD
            INTEGER i, a, j
            INTEGER curveP
  25:       PARAMETER(curveP=100000)
            REAL avg
            INTEGER curve(curveP)
            
            do i=1, curveP
  30:             curve(i)=0
            enddo
            
            avg = 0.
            do i=1, p_simN
  35:          do a=1, p_a
                  j=1+int(real(p_a)*ran1(idum))
                  simArids(a) = p_arids(j)
                  simHDDs(a) = p_HDDs(j)
                  simCDDs(a) = p_CDDs(j)
  40:          enddo
               CALL ks3d2s(p_arids, p_HDDs, p_CDDs, p_a,
           c            simArids, simHDDs, simCDDs, p_a, simD)
               do j=1, min(curveP, int(simD*real(curveP)))
                  curve(j) = curve(j) + 1
  45:          enddo
               !print *, "distance from simulation: ", simD         
               avg = avg + simD/real(p_simN) 
            enddo
            
  50:       
            OPEN (51, file="test.data")
            print *, "average: ", avg
            
            do i=1, curveP
  55:             WRITE (51, *) real(i)/real(curveP), curve(i)
            enddo
            
            CLOSE (51)
            
  60:       END
            
            


Info Section
Warning: externals (function calls) may not be acurate calls: ks3d2s
back to top
f2html v0.3 (C) 1997,98 Beroud Jean-Marc. Thu Aug  3 21:52:42 CEST 2006