~ubuntu-branches/debian/jessie/eso-midas/jessie

« back to all changes in this revision

Viewing changes to applic/fit/libsrc/lognorm.for

  • Committer: Package Import Robot
  • Author(s): Ole Streicher
  • Date: 2014-04-22 14:44:58 UTC
  • Revision ID: package-import@ubuntu.com-20140422144458-okiwi1assxkkiz39
Tags: upstream-13.09pl1.2+dfsg
ImportĀ upstreamĀ versionĀ 13.09pl1.2+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
C @(#)lognorm.for       19.1 (ES0-DMD) 02/25/03 13:17:40
 
2
C===========================================================================
 
3
C Copyright (C) 1995 European Southern Observatory (ESO)
 
4
C
 
5
C This program is free software; you can redistribute it and/or 
 
6
C modify it under the terms of the GNU General Public License as 
 
7
C published by the Free Software Foundation; either version 2 of 
 
8
C the License, or (at your option) any later version.
 
9
C
 
10
C This program is distributed in the hope that it will be useful,
 
11
C but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
C GNU General Public License for more details.
 
14
C
 
15
C You should have received a copy of the GNU General Public 
 
16
C License along with this program; if not, write to the Free 
 
17
C Software Foundation, Inc., 675 Massachusetss Ave, Cambridge, 
 
18
C MA 02139, USA.
 
19
C
 
20
C Corresponding concerning ESO-MIDAS should be addressed as follows:
 
21
C       Internet e-mail: midas@eso.org
 
22
C       Postal address: European Southern Observatory
 
23
C                       Data Management Division 
 
24
C                       Karl-Schwarzschild-Strasse 2
 
25
C                       D 85748 Garching bei Muenchen 
 
26
C                       GERMANY
 
27
C===========================================================================
 
28
C
 
29
      SUBROUTINE LOGNRM(IND,X,NP,PARAM,Y,DERIV)                                
 
30
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                  
 
31
C.COPYRIGHT: Copyright (c) 1987 European Southern Observatory,                  
 
32
C                                         all rights reserved                   
 
33
C                                                                               
 
34
C.VERSION: 1.0  ESO-FORTRAN Conversion, AA  18:01 - 21 DEC 1987                 
 
35
C                                                                               
 
36
C.LANGUAGE: F77+ESOext                                                          
 
37
C                                                                               
 
38
C.AUTHOR: J.D.PONZ                                                              
 
39
C                                                                               
 
40
C--------------------------------------------------------------                 
 
41
C                                                                               
 
42
C   Logarithmic normal distribution                                             
 
43
C      IMPLICIT NONE                                                            
 
44
C                                                                               
 
45
C   Y = P1*EXP(-0.5*((LN(X-P4)-P2)/P3)**2)/((X-P4)*P3*SQRT(2*PI))               
 
46
C                                                                               
 
47
      INTEGER NP,IND,I
 
48
      DOUBLE PRECISION Y,PARAM(NP),DERIV(NP)                                    
 
49
      REAL X(IND)                                                          
 
50
      DOUBLE PRECISION A,B,C,D,E                                                
 
51
C                                                                               
 
52
      Y      = 0.0D0                                                            
 
53
      DO 10 I = 1,4                                                             
 
54
          DERIV(I) = 0.0D0                                                      
 
55
   10 CONTINUE                                                                  
 
56
      A      = X(1) - PARAM(4)                                                  
 
57
      IF (A.LE.0.0D0) RETURN                                                    
 
58
C                                                                               
 
59
      B      = DLOG(A) - PARAM(2)                                               
 
60
      C      = 1.0D0/PARAM(3)                                                   
 
61
      D      = B*C*C                                                            
 
62
      E      = B*D                                                              
 
63
      DERIV(1) = 3.989422803D-1*C*DEXP(-0.5D0*E)/A                              
 
64
      Y      = PARAM(1)*DERIV(1)                                                
 
65
      DERIV(2) = Y*D                                                            
 
66
      DERIV(3) = Y*C* (E-1.0D0)                                                 
 
67
      DERIV(4) = Y* (D+1.0D0)/A                                                 
 
68
      RETURN                                                                    
 
69
                                                                                
 
70
      END