/[lmdze]/trunk/libf/dyn3d/psextbar.f
ViewVC logotype

Annotation of /trunk/libf/dyn3d/psextbar.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 3 months ago) by guez
File size: 2915 byte(s)
Initial import
1 guez 3 !
2     ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/psextbar.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3     !
4     SUBROUTINE psextbar ( ps, psexbarxy )
5     use dimens_m
6     use paramet_m
7     use comgeom
8     IMPLICIT NONE
9    
10     c=======================================================================
11     c
12     c Auteur: P. Le Van
13     c -------
14     c
15     c Objet:
16     c ------
17     c
18     c **********************************************************************
19     c calcul des moyennes en x et en y de (pression au sol*aire variable) ..
20     c **********************************************************************
21     c
22     c ps est un argum. d'entree pour le s-pg ..
23     c psexbarxy est un argum. de sortie pour le s-pg ..
24     c
25     c Methode:
26     c --------
27     c
28     c A chaque point scalaire P (i,j) est affecte 4 coefficients d'aires
29     c alpha1(i,j) calcule au point ( i+1/4,j-1/4 )
30     c alpha2(i,j) calcule au point ( i+1/4,j+1/4 )
31     c alpha3(i,j) calcule au point ( i-1/4,j+1/4 )
32     c alpha4(i,j) calcule au point ( i-1/4,j-1/4 )
33     c
34     c Avec alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j)
35     c
36     c N.B . Pour plus de details, voir s-pg ... iniconst ...
37     c
38     c
39     c
40     c alpha4 . . alpha1 . alpha4
41     c (i,j) (i,j) (i+1,j)
42     c
43     c P . U . . P
44     c (i,j) (i,j) (i+1,j)
45     c
46     c alpha3 . . alpha2 .alpha3
47     c (i,j) (i,j) (i+1,j)
48     c
49     c V . Z . . V
50     c (i,j)
51     c
52     c alpha4 . . alpha1 .alpha4
53     c (i,j+1) (i,j+1) (i+1,j+1)
54     c
55     c P . U . . P
56     c (i,j+1) (i+1,j+1)
57     c
58     c
59     c
60     c
61     c On a :
62     c
63     c pbarx(i,j) = Pext(i ,j) * ( alpha1(i ,j) + alpha2(i,j)) +
64     c Pext(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) )
65     c localise au point ... U (i,j) ...
66     c
67     c pbary(i,j) = Pext(i,j ) * ( alpha2(i,j ) + alpha3(i,j ) +
68     c Pext(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1)
69     c localise au point ... V (i,j) ...
70     c
71     c pbarxy(i,j)= Pext(i,j) *alpha2(i,j) + Pext(i+1,j) *alpha3(i+1,j) +
72     c Pext(i,j+1)*alpha1(i,j+1)+ Pext(i+1,j+1)*alpha4(i+1,j+1)
73     c localise au point ... Z (i,j) ...
74     c
75     c
76     c
77     c=======================================================================
78    
79    
80    
81     REAL, intent(in):: ps( ip1jmp1 )
82     real psexbarxy ( ip1jm ), pext( ip1jmp1 )
83    
84     INTEGER l, ij
85     c
86    
87     DO ij = 1, ip1jmp1
88     pext(ij) = ps(ij) * aire(ij)
89     ENDDO
90    
91    
92     DO 5 ij = 1, ip1jm - 1
93     psexbarxy( ij ) = pext(ij)*alpha2(ij) + pext(ij+1)*alpha3(ij+1) +
94     * pext(ij+iip1)*alpha1(ij+iip1) + pext(ij+iip2)*alpha4(ij+iip2)
95     5 CONTINUE
96    
97    
98     c .... correction pour psexbarxy( iip1,j ) ........
99    
100     CDIR$ IVDEP
101    
102     DO 7 ij = iip1, ip1jm, iip1
103     psexbarxy( ij ) = psexbarxy( ij - iim )
104     7 CONTINUE
105    
106    
107     RETURN
108     END

  ViewVC Help
Powered by ViewVC 1.1.21