Changeset 766 for LMDZ4/trunk/libf/phylmd/conema3.F
- Timestamp:
- Jun 4, 2007, 4:34:47 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/conema3.F
r524 r766 9 9 . qcond_incld) 10 10 11 USE dimphy 11 12 IMPLICIT none 12 13 c====================================================================== … … 54 55 c 55 56 #include "dimensions.h" 56 #include "dimphy.h"57 cym#include "dimphy.h" 57 58 #include "conema3.h" 58 59 INTEGER i, l,m,itra … … 84 85 REAL qcond_incld(klon,klev) 85 86 c 86 REAL em_t(klev) 87 REAL em_q(klev) 88 REAL em_qs(klev) 89 REAL em_u(klev), em_v(klev), em_tra(klev,ntrac) 90 REAL em_ph(klev+1), em_p(klev) 91 REAL em_work1(klev), em_work2(klev) 92 REAL em_precip, em_d_t(klev), em_d_q(klev) 93 REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac) 94 REAL em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev) 87 LOGICAL,SAVE :: first=.true. 88 c$OMP THREADPRIVATE(first) 89 90 cym REAL em_t(klev) 91 REAL,ALLOCATABLE,SAVE :: em_t(:) 92 c$OMP THREADPRIVATE(em_t) 93 cym REAL em_q(klev) 94 REAL,ALLOCATABLE,SAVE :: em_q(:) 95 c$OMP THREADPRIVATE(em_q) 96 cym REAL em_qs(klev) 97 REAL,ALLOCATABLE,SAVE :: em_qs(:) 98 c$OMP THREADPRIVATE(em_qs) 99 cym REAL em_u(klev), em_v(klev), em_tra(klev,ntrac) 100 REAL,ALLOCATABLE,SAVE :: em_u(:),em_v(:),em_tra(:,:) 101 c$OMP THREADPRIVATE(em_u,em_v,em_tra) 102 cym REAL em_ph(klev+1), em_p(klev) 103 REAL,ALLOCATABLE,SAVE ::em_ph(:),em_p(:) 104 c$OMP THREADPRIVATE(em_ph,em_p) 105 cym REAL em_work1(klev), em_work2(klev) 106 REAL,ALLOCATABLE,SAVE ::em_work1(:),em_work2(:) 107 c$OMP THREADPRIVATE(em_work1,em_work2) 108 cym REAL em_precip, em_d_t(klev), em_d_q(klev) 109 REAL,SAVE :: em_precip 110 c$OMP THREADPRIVATE(em_precip) 111 REAL,ALLOCATABLE,SAVE :: em_d_t(:),em_d_q(:) 112 c$OMP THREADPRIVATE(em_d_t,em_d_q) 113 cym REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac) 114 REAL,ALLOCATABLE,SAVE ::em_d_u(:),em_d_v(:),em_d_tra(:,:) 115 c$OMP THREADPRIVATE(em_d_u,em_d_v,em_d_tra) 116 cym REAL em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev) 117 REAL,ALLOCATABLE,SAVE :: em_upwd(:),em_dnwd(:),em_dnwdbis(:) 118 c$OMP THREADPRIVATE(em_upwd,em_dnwd,em_dnwdbis) 95 119 REAL em_dtvpdt1(klev), em_dtvpdq1(klev) 96 120 REAL em_dplcldt, em_dplcldr 97 SAVE em_t,em_q, em_qs, em_ph, em_p, em_work1, em_work2 98 SAVE em_u,em_v, em_tra 99 SAVE em_d_u,em_d_v, em_d_tra 100 SAVE em_precip, em_d_t, em_d_q, em_upwd, em_dnwd, em_dnwdbis 121 cym SAVE em_t,em_q, em_qs, em_ph, em_p, em_work1, em_work2 122 cym SAVE em_u,em_v, em_tra 123 cym SAVE em_d_u,em_d_v, em_d_tra 124 cym SAVE em_precip, em_d_t, em_d_q, em_upwd, em_dnwd, em_dnwdbis 125 101 126 INTEGER em_bas, em_top 102 127 SAVE em_bas, em_top 103 128 c$OMP THREADPRIVATE(em_bas,em_top) 104 129 REAL em_wd 105 130 REAL em_qcond(klev) … … 113 138 cccccccccccccccccccccccccccccccccccccccccccccccccc 114 139 115 REAL emmip(klev) !variation de flux ascnon dilue i et i+1 116 SAVE emmip 117 real emMke(klev) 118 save emMke 140 cym REAL emmip(klev) !variation de flux ascnon dilue i et i+1 141 REAL,ALLOCATABLE,SAVE ::emmip(:) 142 c$OMP THREADPRIVATE(emmip) 143 cym SAVE emmip 144 cym real emMke(klev) 145 REAL,ALLOCATABLE,SAVE ::emMke(:) 146 c$OMP THREADPRIVATE(emMke) 147 cym save emMke 119 148 real top 120 149 real bas 121 real emMa(klev) 122 save emMa 150 cym real emMa(klev) 151 REAL,ALLOCATABLE,SAVE ::emMa(:) 152 c$OMP THREADPRIVATE(emMa) 153 cym save emMa 123 154 real Ma(klon,klev) 124 155 real Ment(klev,klev) … … 151 182 #include "YOETHF.h" 152 183 #include "FCTTRE.h" 153 184 185 if (first) then 186 187 allocate(em_t(klev)) 188 allocate(em_q(klev)) 189 allocate(em_qs(klev)) 190 allocate(em_u(klev), em_v(klev), em_tra(klev,ntrac)) 191 allocate(em_ph(klev+1), em_p(klev)) 192 allocate(em_work1(klev), em_work2(klev)) 193 allocate(em_d_t(klev), em_d_q(klev)) 194 allocate(em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac)) 195 allocate(em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev)) 196 allocate(emmip(klev)) 197 allocate(emMke(klev)) 198 allocate(emMa(klev)) 199 200 first=.false. 201 endif 202 154 203 qcond_incld(:,:) = 0. 155 204 c 156 c $$$ print*,'debut conema'205 c@$$ print*,'debut conema' 157 206 158 207 DO 999 i = 1, klon … … 170 219 em_tra(l,itra) = tra(i,l,itra) 171 220 enddo 172 c $$$ print*,'em_t',em_t173 c $$$ print*,'em_q',em_q174 c $$$ print*,'em_qs',em_qs175 c $$$ print*,'em_u',em_u176 c $$$ print*,'em_v',em_v177 c $$$ print*,'em_tra',em_tra178 c $$$ print*,'em_p',em_p221 c@$$ print*,'em_t',em_t 222 c@$$ print*,'em_q',em_q 223 c@$$ print*,'em_qs',em_qs 224 c@$$ print*,'em_u',em_u 225 c@$$ print*,'em_v',em_v 226 c@$$ print*,'em_tra',em_tra 227 c@$$ print*,'em_p',em_p 179 228 180 229 … … 184 233 zx_qs= r2es * FOEEW(zx_t,zdelta)/em_p(l)/100.0 185 234 zx_qs=MIN(0.5,zx_qs) 186 c $$$ print*,'zx_qs',zx_qs235 c@$$ print*,'zx_qs',zx_qs 187 236 zcor=1./(1.-retv*zx_qs) 188 237 zx_qs=zx_qs*zcor 189 238 em_qs(l) = zx_qs 190 c $$$ print*,'em_qs',em_qs239 c@$$ print*,'em_qs',em_qs 191 240 c 192 241 em_work1(l) = work1(i,l) … … 219 268 1793 format('w avant convect ',/,10(1X,E13.5)) 220 269 221 c $$$ print*,'avant convect'270 c@$$ print*,'avant convect' 222 271 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 223 272 c
Note: See TracChangeset
for help on using the changeset viewer.