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

Annotation of /trunk/dyn3d/addfi.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 37 - (hide annotations)
Tue Dec 21 15:45:48 2010 UTC (13 years, 5 months ago) by guez
Original Path: trunk/libf/dyn3d/addfi.f90
File size: 3499 byte(s)
Inlined procedure "pression".

Split "guide.f90" into "guide.f90" and "tau2alpha.f90". Split
"read_reanalyse.f" into single-procedure files in directory
"Read_reanalyse".

Useless copy of variables in "iniphysiq". Directly define module
variables in "gcm" and remove procedure "iniphysiq".

Added "pressure-altitude" in "test_disvert".

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

  ViewVC Help
Powered by ViewVC 1.1.21