/[lmdze]/trunk/dyn3d/addfi.f
ViewVC logotype

Annotation of /trunk/dyn3d/addfi.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
Original Path: trunk/libf/dyn3d/addfi.f
File size: 4009 byte(s)
Initial import
1 guez 3 !
2     ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/addfi.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3     !
4     SUBROUTINE addfi(nq, pdt,
5     S pucov, pvcov, pteta, pq , pps ,
6     S pdufi, pdvfi, pdhfi,pdqfi, pdpfi )
7     use dimens_m
8     use paramet_m
9     use comconst
10     use comgeom
11     use serre
12     IMPLICIT NONE
13     c
14     c=======================================================================
15     c
16     c Addition of the physical tendencies
17     c
18     c Interface :
19     c -----------
20     c
21     c Input :
22     c -------
23     c pdt time step of integration
24     c pucov(ip1jmp1,llm) first component of the covariant velocity
25     c pvcov(ip1ip1jm,llm) second component of the covariant velocity
26     c pteta(ip1jmp1,llm) potential temperature
27     c pts(ip1jmp1,llm) surface temperature
28     c pdufi(ip1jmp1,llm) |
29     c pdvfi(ip1jm,llm) | respective
30     c pdhfi(ip1jmp1) | tendencies
31     c pdtsfi(ip1jmp1) |
32     c
33     c Output :
34     c --------
35     c pucov
36     c pvcov
37     c ph
38     c pts
39     c
40     c
41     c=======================================================================
42     c
43     c-----------------------------------------------------------------------
44     c
45     c 0. Declarations :
46     c ------------------
47     c
48     c
49     c Arguments :
50     c -----------
51     c
52     INTEGER nq
53    
54     REAL pdt
55     c
56     REAL pvcov(ip1jm,llm),pucov(ip1jmp1,llm)
57     REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nq),pps(ip1jmp1)
58     c
59     REAL pdvfi(ip1jm,llm),pdufi(ip1jmp1,llm)
60     REAL pdqfi(ip1jmp1,llm,nq),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1)
61     c
62     c Local variables :
63     c -----------------
64     c
65     REAL xpn(iim),xps(iim),tpn,tps
66     INTEGER j,k,iq,ij
67     REAL qtestw, qtestt
68     PARAMETER ( qtestw = 1.0e-15 )
69     PARAMETER ( qtestt = 1.0e-40 )
70    
71     REAL SSUM
72     c
73     c-----------------------------------------------------------------------
74    
75     !!print *, "Call sequence information: addfi"
76    
77     DO k = 1,llm
78     DO j = 1,ip1jmp1
79     pteta(j,k)= pteta(j,k) + pdhfi(j,k) * pdt
80     ENDDO
81     ENDDO
82    
83     DO k = 1, llm
84     DO ij = 1, iim
85     xpn(ij) = aire( ij ) * pteta( ij ,k)
86     xps(ij) = aire(ij+ip1jm) * pteta(ij+ip1jm,k)
87     ENDDO
88     tpn = SSUM(iim,xpn,1)/ apoln
89     tps = SSUM(iim,xps,1)/ apols
90    
91     DO ij = 1, iip1
92     pteta( ij ,k) = tpn
93     pteta(ij+ip1jm,k) = tps
94     ENDDO
95     ENDDO
96     c
97    
98     DO k = 1,llm
99     DO j = iip2,ip1jm
100     pucov(j,k)= pucov(j,k) + pdufi(j,k) * pdt
101     ENDDO
102     ENDDO
103    
104     DO k = 1,llm
105     DO j = 1,ip1jm
106     pvcov(j,k)= pvcov(j,k) + pdvfi(j,k) * pdt
107     ENDDO
108     ENDDO
109    
110     c
111     DO j = 1,ip1jmp1
112     pps(j) = pps(j) + pdpfi(j) * pdt
113     ENDDO
114    
115     DO iq = 1, 2
116     DO k = 1,llm
117     DO j = 1,ip1jmp1
118     pq(j,k,iq)= pq(j,k,iq) + pdqfi(j,k,iq) * pdt
119     pq(j,k,iq)= AMAX1( pq(j,k,iq), qtestw )
120     ENDDO
121     ENDDO
122     ENDDO
123    
124     DO iq = 3, nq
125     DO k = 1,llm
126     DO j = 1,ip1jmp1
127     pq(j,k,iq)= pq(j,k,iq) + pdqfi(j,k,iq) * pdt
128     pq(j,k,iq)= AMAX1( pq(j,k,iq), qtestt )
129     ENDDO
130     ENDDO
131     ENDDO
132    
133    
134     DO ij = 1, iim
135     xpn(ij) = aire( ij ) * pps( ij )
136     xps(ij) = aire(ij+ip1jm) * pps(ij+ip1jm )
137     ENDDO
138     tpn = SSUM(iim,xpn,1)/apoln
139     tps = SSUM(iim,xps,1)/apols
140    
141     DO ij = 1, iip1
142     pps ( ij ) = tpn
143     pps ( ij+ip1jm ) = tps
144     ENDDO
145    
146    
147     DO iq = 1, nq
148     DO k = 1, llm
149     DO ij = 1, iim
150     xpn(ij) = aire( ij ) * pq( ij ,k,iq)
151     xps(ij) = aire(ij+ip1jm) * pq(ij+ip1jm,k,iq)
152     ENDDO
153     tpn = SSUM(iim,xpn,1)/apoln
154     tps = SSUM(iim,xps,1)/apols
155    
156     DO ij = 1, iip1
157     pq ( ij ,k,iq) = tpn
158     pq (ij+ip1jm,k,iq) = tps
159     ENDDO
160     ENDDO
161     ENDDO
162    
163     RETURN
164     END

  ViewVC Help
Powered by ViewVC 1.1.21