/[MITgcm]/MITgcm_contrib/darwin2/pkg/darwin/invnormal.F
ViewVC logotype

Annotation of /MITgcm_contrib/darwin2/pkg/darwin/invnormal.F

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


Revision 1.1 - (hide annotations) (download)
Wed Apr 13 18:56:24 2011 UTC (14 years, 3 months ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64k_20130723, ctrb_darwin2_ckpt65w_20160512, ctrb_darwin2_ckpt65j_20150225, ctrb_darwin2_ckpt63l_20120405, ctrb_darwin2_ckpt66g_20170424, ctrb_darwin2_ckpt64h_20130528, ctrb_darwin2_ckpt66k_20171025, ctrb_darwin2_ckpt66n_20180118, ctrb_darwin2_ckpt62v_20110413, ctrb_darwin2_ckpt65v_20160409, ctrb_darwin2_ckpt65s_20160114, ctrb_darwin2_ckpt65_20140718, ctrb_darwin2_ckpt64m_20130820, ctrb_darwin2_ckpt66d_20170214, ctrb_darwin2_ckpt64r_20131210, ctrb_darwin2_ckpt65m_20150615, ctrb_darwin2_ckpt65q_20151118, ctrb_darwin2_ckpt65o_20150914, ctrb_darwin2_ckpt64f_20130405, ctrb_darwin2_ckpt63f_20111201, ctrb_darwin2_ckpt64a_20121116, ctrb_darwin2_ckpt65p_20151023, ctrb_darwin2_ckpt64n_20130826, ctrb_darwin2_ckpt65e_20140929, ctrb_darwin2_ckpt64o_20131024, ctrb_darwin2_ckpt64v_20140411, ctrb_darwin2_ckpt64z_20140711, ctrb_darwin2_ckpt65l_20150504, ctrb_darwin2_ckpt65z_20160929, ctrb_darwin2_ckpt65n_20150729, ctrb_darwin2_ckpt62y_20110526, ctrb_darwin2_ckpt64y_20140622, ctrb_darwin2_ckpt65d_20140915, ctrb_darwin2_ckpt64t_20140202, ctrb_darwin2_ckpt66h_20170602, ctrb_darwin2_ckpt64i_20130622, ctrb_darwin2_ckpt62x_20110513, ctrb_darwin2_ckpt64s_20140105, ctrb_darwin2_ckpt62w_20110426, ctrb_darwin2_ckpt64x_20140524, ctrb_darwin2_ckpt63o_20120629, ctrb_darwin2_ckpt64e_20130305, ctrb_darwin2_ckpt65x_20160612, ctrb_darwin2_ckpt66f_20170407, ctrb_darwin2_ckpt63c_20111011, ctrb_darwin2_ckpt63i_20120124, ctrb_darwin2_ckpt65g_20141120, ctrb_darwin2_ckpt63m_20120506, ctrb_darwin2_ckpt63s_20120908, ctrb_darwin2_ckpt65k_20150402, ctrb_darwin2_ckpt63e_20111107, ctrb_darwin2_ckpt64w_20140502, ctrb_darwin2_ckpt63b_20110830, ctrb_darwin2_ckpt63j_20120217, ctrb_darwin2_ckpt66a_20161020, ctrb_darwin2_ckpt63r_20120817, ctrb_darwin2_ckpt64g_20130503, ctrb_darwin2_ckpt64l_20130806, ctrb_darwin2_ckpt63g_20111220, ctrb_darwin2_ckpt65f_20141014, ctrb_darwin2_ckpt64c_20130120, ctrb_darwin2_ckpt63a_20110804, ctrb_darwin2_ckpt66b_20161219, ctrb_darwin2_ckpt64u_20140308, ctrb_darwin2_ckpt64j_20130704, ctrb_darwin2_ckpt65i_20150123, ctrb_darwin2_ckpt66j_20170815, ctrb_darwin2_ckpt65y_20160801, ctrb_darwin2_ckpt63h_20111230, ctrb_darwin2_ckpt63p_20120707, ctrb_darwin2_ckpt66c_20170121, ctrb_darwin2_ckpt65a_20140728, ctrb_darwin2_ckpt65b_20140812, ctrb_darwin2_ckpt65t_20160221, ctrb_darwin2_ckpt64p_20131118, ctrb_darwin2_ckpt63d_20111107, ctrb_darwin2_ckpt63q_20120731, ctrb_darwin2_ckpt63_20110728, ctrb_darwin2_ckpt64b_20121224, ctrb_darwin2_ckpt64d_20130219, ctrb_darwin2_ckpt66o_20180209, ctrb_darwin2_ckpt66e_20170314, ctrb_darwin2_ckpt64_20121012, ctrb_darwin2_ckpt64q_20131118, ctrb_darwin2_baseline, ctrb_darwin2_ckpt64p_20131024, ctrb_darwin2_ckpt65u_20160315, ctrb_darwin2_ckpt65r_20151221, ctrb_darwin2_ckpt66i_20170718, ctrb_darwin2_ckpt63n_20120604, ctrb_darwin2_ckpt63k_20120317, ctrb_darwin2_ckpt65c_20140830, ctrb_darwin2_ckpt62z_20110622, ctrb_darwin2_ckpt66l_20171025, ctrb_darwin2_ckpt65h_20141217, ctrb_darwin2_ckpt66m_20171213, HEAD
darwin2 initial checkin

1 jahn 1.1 C $Header$
2     C $Name$
3    
4     c Inverse normal distribution
5     c returns inverse normal cumulative distribution
6     c from p:[0,1] -> y:[-inf,+inf] centered on mu with stdev of sigma
7     c p is RandNo passed in, y is return variable for deviate
8     c
9     c Scott Grant, Spring 2006
10    
11     SUBROUTINE invnormal(y,p,mean,sigma)
12     implicit none
13    
14     c local variables
15     real*8 mean
16     real*8 sigma
17     real*8 q
18     real*8 r
19     real*8 x
20     real*8 p
21     real*8 plow
22     real*8 phigh
23     real*8 y
24     real*8 a(6)
25     real*8 b(5)
26     real*8 c(6)
27     real*8 d(4)
28    
29    
30     c Create random variable from -inf to +inf
31     c Coefficients in rational approximations.
32     a(1) = -3.969683028665376d+01
33     a(2) = 2.209460984245205d+02
34     a(3) = -2.759285104469687d+02
35     a(4) = 1.383577518672690d+02
36     a(5) = -3.066479806614716d+01
37     a(6) = 2.506628277459239d+00
38    
39     b(1) = -5.447609879822406d+01
40     b(2) = 1.615858368580409d+02
41     b(3) = -1.556989798598866d+02
42     b(4) = 6.680131188771972d+01
43     b(5) = -1.328068155288572d+01
44    
45     c(1) = -7.784894002430293d-03
46     c(2) = -3.223964580411365d-01
47     c(3) = -2.400758277161838d+00
48     c(4) = -2.549732539343734d+00
49     c(5) = 4.374664141464968d+00
50     c(6) = 2.938163982698783d+00
51    
52     d(1) = 7.784695709041462d-03
53     d(2) = 3.224671290700398d-01
54     d(3) = 2.445134137142996d+00
55     d(4) = 3.754408661907416d+00
56    
57     c Define break-points.
58    
59     plow = 0.02425d0
60     phigh = 1.d0 - plow
61    
62     c Rational approximation for lower region.
63    
64     if ((0.d0 .lt. p) .and. (p .lt. plow))then
65     q = sqrt(-2.0d0*log(p))
66     x = (((((c(1)*q+c(2))*q+c(3))*q+c(4))*q+c(5))*q+c(6)) /
67     & ((((d(1)*q+d(2))*q+d(3))*q+d(4))*q+1.d0)
68     endif
69    
70     c Rational approximation for central region.
71    
72     if ((plow .le. p).and.(p .le. phigh))then
73     q = p - 0.5d0
74     r = q*q
75     x = (((((a(1)*r+a(2))*r+a(3))*r+a(4))*r+a(5))*r+a(6))*q /
76     & (((((b(1)*r+b(2))*r+b(3))*r+b(4))*r+b(5))*r+1.d0)
77     endif
78    
79     c Rational approximation for upper region.
80    
81     if ((phigh .lt. p).and.(p .lt. 1.d0))then
82     q = sqrt(-2.0d0*log(1.d0-p))
83     x = -(((((c(1)*q+c(2))*q+c(3))*q+c(4))*q+c(5))*q+c(6)) /
84     & ((((d(1)*q+d(2))*q+d(3))*q+d(4))*q+1.d0)
85     endif
86    
87     c Normal Deviate about mean
88     c write(6,*)'DEVIATE',x
89     y = sigma*sqrt(2.0d0)*x + mean
90     c write(6,*)'Normal PDF Value INSIDE:',y
91     c write(6,*)'MEAN:',mean
92     c write(6,*)'SIGMA:',sigma
93    
94    
95     return
96     end

  ViewVC Help
Powered by ViewVC 1.1.22