[Dart-dev] [4152] DART/trunk/system_simulation/full_error.f90: Changed to use dart libraries and (r8)
nancy at ucar.edu
nancy at ucar.edu
Fri Nov 20 15:37:03 MST 2009
Revision: 4152
Author: jla
Date: 2009-11-20 15:37:03 -0700 (Fri, 20 Nov 2009)
Log Message:
-----------
Changed to use dart libraries and (r8)
Modified Paths:
--------------
DART/trunk/system_simulation/full_error.f90
-------------- next part --------------
Modified: DART/trunk/system_simulation/full_error.f90
===================================================================
--- DART/trunk/system_simulation/full_error.f90 2009-11-20 22:33:37 UTC (rev 4151)
+++ DART/trunk/system_simulation/full_error.f90 2009-11-20 22:37:03 UTC (rev 4152)
@@ -11,7 +11,7 @@
! $Revision$
! $Date$
-use types_mod
+use types_mod, only : r8
use random_seq_mod, only : random_seq_type, init_random_seq, random_gaussian, &
twod_gaussians, random_uniform
@@ -19,21 +19,19 @@
integer, parameter :: num_times = 1, num_points = 100000000
!!!integer, parameter :: num_times = 1, num_points = 10000000
+integer, parameter :: ens_size = 80
+
type (random_seq_type) :: ran_id
-real(r8), allocatable :: pairs(:, :)
+real(r8) :: pairs(2, ens_size), temp(ens_size)
real(r8) :: zero_2(2) = 0.0, cov(2, 2)
real(r8) :: t_correl, correl_mean, sample_correl, alpha, beta
real(r8) :: s_mean(2), s_var(2), reg_mean, reg_sd, t_sd1, t_sd2, true_correl_mean
real(r8) :: tcorrel_sum(201), reg_sum(201), reg_2_sum(201)
-integer i, j, k, ens_size, bin_num, bin_count(201)
+integer i, j, k, bin_num, bin_count(201)
call init_random_seq(ran_id)
-! Set the ensemble size
-ens_size = 40
-
-allocate(pairs(2, ens_size))
write(*, *) 'stats for ensemble size ', ens_size
bin_count = 0
@@ -73,11 +71,12 @@
! Also interested in finding out what the spurious variance reduction factor is
! First need to compute sample s.d. for the obs and unobs variable
do i = 1, 2
- call sample_mean_var(pairs(i, :), ens_size, s_mean(i), s_var(i))
+ temp = pairs(i, :)
+ call sample_mean_var(temp, ens_size, s_mean(i), s_var(i))
end do
!-----------------
- reg_sum(bin_num) = reg_sum(bin_num) +t _correl * sqrt(s_var(2) / s_var(1))
+ reg_sum(bin_num) = reg_sum(bin_num) + t_correl * sqrt(s_var(2) / s_var(1))
reg_2_sum(bin_num) = reg_2_sum(bin_num) + (t_correl * sqrt(s_var(2) / s_var(1)))**2
bin_count(bin_num) = bin_count(bin_num) + 1
@@ -85,9 +84,7 @@
end do
end do
-deallocate(pairs)
-
do i = 1, 201
if(bin_count(i) > 0) then
! Compute the standard deviation of the true correlations
@@ -115,12 +112,14 @@
subroutine comp_correl(ens, n, correl)
+use types_mod, only : r8
+
implicit none
integer, intent(in) :: n
-double precision, intent(in) :: ens(2, n)
-double precision, intent(out) :: correl
-double precision :: sum_x, sum_y, sum_xy, sum_x2, sum_y2
+real(r8), intent(in) :: ens(2, n)
+real(r8), intent(out) :: correl
+real(r8) :: sum_x, sum_y, sum_xy, sum_x2, sum_y2
sum_x = sum(ens(2, :))
@@ -140,13 +139,15 @@
subroutine sample_mean_var(x, n, mean, var)
+use types_mod, only : r8
+
implicit none
integer, intent(in) :: n
-double precision, intent(in) :: x(n)
-double precision, intent(out) :: mean, var
+real(r8), intent(in) :: x(n)
+real(r8), intent(out) :: mean, var
-double precision :: sx, s_x2
+real(r8) :: sx, s_x2
sx = sum(x)
s_x2 = sum(x * x)
More information about the Dart-dev
mailing list