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

Contents of /trunk/libf/dyn3d/addfi.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 2 months ago) by guez
File size: 4009 byte(s)
Initial import
1 !
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