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

« back to all changes in this revision

Viewing changes to contrib/surfphot/libsrc/long.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 @(#)long.for  19.1 (ES0-DMD) 02/25/03 13:30:46
 
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 LONG(W1,W2,W3,W4,DR1,DR2,DR3,DR4,I,J,Z,A)                      
 
30
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++      
 
31
C.PURPOSE: calculates system matrix elements in the case of black corners       
 
32
C -------------------------------------------------------------------------     
 
33
      IMPLICIT         NONE
 
34
      DOUBLE PRECISION W1,W2,W3,W4
 
35
      DOUBLE PRECISION DR1, DR2, DR3, DR4
 
36
      INTEGER          I, J
 
37
      DOUBLE PRECISION Z(64,10),A(21,22)
 
38
C
 
39
      DOUBLE PRECISION D1, D2, D3, D4
 
40
C                                                                               
 
41
      D1       = (DR1+DR2+DR3+DR4)/4.0                                          
 
42
      D2       = (DR2+DR4-DR1-DR3)/4.0                                          
 
43
      D3       = (DR1+DR2-DR3-DR4)/4.0                                          
 
44
      D4       = (DR2+DR3-DR1-DR4)/4.0                                          
 
45
      W1       = W1/4.0D0                                                       
 
46
      W2       = W2/4.0D0                                                       
 
47
      W3       = W3/4.0D0                                                       
 
48
      W4       = W4/4.0D0                                                       
 
49
      A(1,1)   = A(1,1)   + W1                                                  
 
50
      A(1,2)   = A(1,2)   + Z(I,1)*W2                                           
 
51
      A(1,3)   = A(1,3)   + Z(J,1)*W3                                           
 
52
      A(1,4)   = A(1,4)   + Z(I,2)*W1                                           
 
53
      A(1,5)   = A(1,5)   + Z(I,1)*Z(J,1)*W4                                    
 
54
      A(1,6)   = A(1,6)   + Z(J,2)*W1                                           
 
55
      A(1,7)   = A(1,7)   + Z(I,3)*W2                                           
 
56
      A(1,8)   = A(1,8)   + Z(I,2)*Z(J,1)*W3                                    
 
57
      A(1,9)   = A(1,9)   + Z(I,1)*Z(J,2)*W2                                    
 
58
      A(1,10)  = A(1,10)  + Z(J,3)*W3                                           
 
59
      A(1,11)  = A(1,11)  + Z(I,4)*W1                                           
 
60
      A(1,12)  = A(1,12)  + Z(I,3)*Z(J,1)*W4                                    
 
61
      A(1,13)  = A(1,13)  + Z(I,2)*Z(J,2)*W1                                    
 
62
      A(1,14)  = A(1,14)  + Z(I,1)*Z(J,3)*W4                                    
 
63
      A(1,15)  = A(1,15)  + Z(J,4)*W1                                           
 
64
      A(1,16)  = A(1,16)  + Z(I,5)*W2                                           
 
65
      A(1,17)  = A(1,17)  + Z(I,4)*Z(J,1)*W3                                    
 
66
      A(1,18)  = A(1,18)  + Z(I,3)*Z(J,2)*W2                                    
 
67
      A(1,19)  = A(1,19)  + Z(I,2)*Z(J,3)*W3                                    
 
68
      A(1,20)  = A(1,20)  + Z(I,1)*Z(J,4)*W2                                    
 
69
      A(1,21)  = A(1,21)  + Z(J,5)*W3                                           
 
70
      A(2,16)  = A(2,16)  + Z(I,6)*W1                                           
 
71
      A(2,17)  = A(2,17)  + Z(I,5)*Z(J,1)*W4                                    
 
72
      A(2,18)  = A(2,18)  + Z(I,4)*Z(J,2)*W1                                    
 
73
      A(2,19)  = A(2,19)  + Z(I,3)*Z(J,3)*W4                                    
 
74
      A(2,20)  = A(2,20)  + Z(I,2)*Z(J,4)*W1                                    
 
75
      A(2,21)  = A(2,21)  + Z(I,1)*Z(J,5)*W4                                    
 
76
      A(3,21)  = A(3,21)  + Z(J,6)*W1                                           
 
77
      A(4,16)  = A(4,16)  + Z(I,7)*W2                                           
 
78
      A(4,17)  = A(4,17)  + Z(I,6)*Z(J,1)*W3                                    
 
79
      A(4,18)  = A(4,18)  + Z(I,5)*Z(J,2)*W2                                    
 
80
      A(4,19)  = A(4,19)  + Z(I,4)*Z(J,3)*W3                                    
 
81
      A(4,20)  = A(4,20)  + Z(I,3)*Z(J,4)*W2                                    
 
82
      A(4,21)  = A(4,21)  + Z(I,2)*Z(J,5)*W3                                    
 
83
      A(5,21)  = A(5,21)  + Z(I,1)*Z(J,6)*W2                                    
 
84
      A(6,21)  = A(6,21)  + Z(J,7)*W3                                           
 
85
      A(7,16)  = A(7,16)  + Z(I,8)*W1                                           
 
86
      A(7,17)  = A(7,17)  + Z(I,7)*Z(J,1)*W4                                    
 
87
      A(7,18)  = A(7,18)  + Z(I,6)*Z(J,2)*W1                                    
 
88
      A(7,19)  = A(7,19)  + Z(I,5)*Z(J,3)*W4                                    
 
89
      A(7,20)  = A(7,20)  + Z(I,4)*Z(J,4)*W1                                    
 
90
      A(7,21)  = A(7,21)  + Z(I,3)*Z(J,5)*W4                                    
 
91
      A(8,21)  = A(8,21)  + Z(I,2)*Z(J,6)*W1                                    
 
92
      A(9,21)  = A(9,21)  + Z(I,1)*Z(J,7)*W4                                    
 
93
      A(10,21) = A(10,21) + Z(J,8)*W1                                           
 
94
      A(11,16) = A(11,16) + Z(I,9)*W2                                           
 
95
      A(11,17) = A(11,17) + Z(I,8)*Z(J,1)*W3                                    
 
96
      A(11,18) = A(11,18) + Z(I,7)*Z(J,2)*W2                                    
 
97
      A(11,19) = A(11,19) + Z(I,6)*Z(J,3)*W3                                    
 
98
      A(11,20) = A(11,20) + Z(I,5)*Z(J,4)*W2                                    
 
99
      A(11,21) = A(11,21) + Z(I,4)*Z(J,5)*W3                                    
 
100
      A(12,21) = A(12,21) + Z(I,3)*Z(J,6)*W2                                    
 
101
      A(13,21) = A(13,21) + Z(I,2)*Z(J,7)*W3                                    
 
102
      A(14,21) = A(14,21) + Z(I,1)*Z(J,8)*W2                                    
 
103
      A(15,21) = A(15,21) + Z(J,9)*W3                                           
 
104
      A(16,16) = A(16,16) + Z(I,10)*W1                                          
 
105
      A(16,17) = A(16,17) + Z(I,9)*Z(J,1)*W4                                    
 
106
      A(16,18) = A(16,18) + Z(I,8)*Z(J,2)*W1                                    
 
107
      A(16,19) = A(16,19) + Z(I,7)*Z(J,3)*W4                                    
 
108
      A(16,20) = A(16,20) + Z(I,6)*Z(J,4)*W1                                    
 
109
      A(16,21) = A(16,21) + Z(I,5)*Z(J,5)*W4                                    
 
110
      A(17,21) = A(17,21) + Z(I,4)*Z(J,6)*W1                                    
 
111
      A(18,21) = A(18,21) + Z(I,3)*Z(J,7)*W4                                    
 
112
      A(19,21) = A(19,21) + Z(I,2)*Z(J,8)*W1                                    
 
113
      A(20,21) = A(20,21) + Z(I,1)*Z(J,9)*W4                                    
 
114
      A(21,21) = A(21,21) + Z(J,10)*W1                                          
 
115
      A(1,22)  = A(1,22)  + D1                                                  
 
116
      A(2,22)  = A(2,22)  + D2*Z(I,1)                                           
 
117
      A(3,22)  = A(3,22)  + D3*Z(J,1)                                           
 
118
      A(4,22)  = A(4,22)  + D1*Z(I,2)                                           
 
119
      A(5,22)  = A(5,22)  + D4*Z(I,1)*Z(J,1)                                    
 
120
      A(6,22)  = A(6,22)  + D1*Z(J,2)                                           
 
121
      A(7,22)  = A(7,22)  + D2*Z(I,3)                                           
 
122
      A(8,22)  = A(8,22)  + D3*Z(I,2)*Z(J,1)                                    
 
123
      A(9,22)  = A(9,22)  + D2*Z(I,1)*Z(J,2)                                    
 
124
      A(10,22) = A(10,22) + D3*Z(J,3)                                           
 
125
      A(11,22) = A(11,22) + D1*Z(I,4)                                           
 
126
      A(12,22) = A(12,22) + D4*Z(I,3)*Z(J,1)                                    
 
127
      A(13,22) = A(13,22) + D1*Z(I,2)*Z(J,2)                                    
 
128
      A(14,22) = A(14,22) + D4*Z(I,1)*Z(J,3)                                    
 
129
      A(15,22) = A(15,22) + D1*Z(J,4)                                           
 
130
      A(16,22) = A(16,22) + D2*Z(I,5)                                           
 
131
      A(17,22) = A(17,22) + D3*Z(I,4)*Z(J,1)                                    
 
132
      A(18,22) = A(18,22) + D2*Z(I,3)*Z(J,2)                                    
 
133
      A(19,22) = A(19,22) + D3*Z(I,2)*Z(J,3)                                    
 
134
      A(20,22) = A(20,22) + D2*Z(I,1)*Z(J,4)                                    
 
135
      A(21,22) = A(21,22) + D3*Z(J,5)                                           
 
136
      RETURN                                                                    
 
137
                                                                                
 
138
      END