debuging WHAM for constrains DEBUG ON
[unres.git] / source / wham / src-M / gnmr1.f
1       double precision function gnmr1(y,ymin,ymax)
2       implicit none
3       double precision y,ymin,ymax
4       double precision wykl /4.0d0/
5       if (y.lt.ymin) then
6         gnmr1=(ymin-y)**wykl/wykl
7       else if (y.gt.ymax) then
8         gnmr1=(y-ymax)**wykl/wykl
9       else
10         gnmr1=0.0d0
11       endif
12       return
13       end
14 c------------------------------------------------------------------------------
15       double precision function gnmr1prim(y,ymin,ymax)
16       implicit none
17       double precision y,ymin,ymax
18       double precision wykl /4.0d0/
19       if (y.lt.ymin) then
20         gnmr1prim=-(ymin-y)**(wykl-1)
21       else if (y.gt.ymax) then
22         gnmr1prim=(y-ymax)**(wykl-1)
23       else
24         gnmr1prim=0.0d0
25       endif
26       return
27       end
28 c------------------------------------------------------------------------------
29       double precision function harmonic(y,ymax)
30       implicit none
31       double precision y,ymax
32       double precision wykl /2.0d0/
33       harmonic=(y-ymax)**wykl
34       return
35       end
36 c-------------------------------------------------------------------------------
37       double precision function harmonicprim(y,ymax)
38       double precision y,ymin,ymax
39       double precision wykl /2.0d0/
40       harmonicprim=(y-ymax)*wykl
41       return
42       end
43 c---------------------------------------------------------------------------------
44       double precision function rlornmr1(y,ymin,ymax,sigma)
45       implicit none
46       double precision y,ymin,ymax,sigma
47       double precision wykl /4.0d0/
48       if (y.lt.ymin) then
49         rlornmr1=(ymin-y)**wykl/((ymin-y)**wykl+sigma**wykl)
50       else if (y.gt.ymax) then
51         rlornmr1=(y-ymax)**wykl/((y-ymax)**wykl+sigma**wykl)
52       else
53         rlornmr1=0.0d0
54       endif
55       return
56       end
57 c------------------------------------------------------------------------------
58       double precision function rlornmr1prim(y,ymin,ymax,sigma)
59       implicit none
60       double precision y,ymin,ymax,sigma
61       double precision wykl /4.0d0/
62       if (y.lt.ymin) then
63         rlornmr1prim=-(ymin-y)**(wykl-1)*sigma**wykl*wykl/
64      &   ((ymin-y)**wykl+sigma**wykl)**2
65       else if (y.gt.ymax) then
66         rlornmr1prim=(y-ymax)**(wykl-1)*sigma**wykl*wykl/
67      & ((y-ymax)**wykl+sigma**wykl)**2
68       else
69         rlornmr1prim=0.0d0
70       endif
71       return
72       end
73