Changeset 105 for trunk/libf/phytitan/physiq.F
- Timestamp:
- Mar 28, 2011, 11:39:43 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libf/phytitan/physiq.F
r104 r105 117 117 REAL qx(klon,klev,nqmax) 118 118 119 REAL t_ancien(klon,klev) 120 REAL u_ancien(klon,klev) 121 SAVE t_ancien, u_ancien 119 REAL,save,allocatable :: t_ancien(:,:) 120 REAL,save,allocatable :: u_ancien(:,:) 122 121 LOGICAL ancien_ok 123 122 SAVE ancien_ok … … 134 133 REAL d_ps(klon) 135 134 136 INTEGER klevp1, klevm1 137 PARAMETER(klevp1=klev+1,klevm1=klev-1) 138 c 139 REAL swnet(klon,klevp1) 140 SAVE swnet 141 c 142 REAL lwnet(klon,klevp1) 143 SAVE lwnet 144 c 145 REAL LWdnTOA(klon) 146 SAVE LWdnTOA 135 REAL,save,allocatable :: swnet(:,:) 136 REAL,save,allocatable :: lwnet(:,:) 147 137 c 148 138 c Variables propres a la physique … … 157 147 SAVE chimpas ! frequence d'appel chimie 158 148 c 159 REAL radsol(klon) 160 SAVE radsol ! bilan radiatif au sol calcule par code radiatif 161 c 162 REAL rlev(klon,klev+1) ! altitude a chaque niveau (interface inferieure de la couche) 163 SAVE rlev 164 ci 165 INTEGER itap 166 SAVE itap ! compteur pour la physique 167 c 168 REAL ftsol(klon) 169 SAVE ftsol ! temperature du sol 170 c 171 REAL ftsoil(klon,nsoilmx) 172 SAVE ftsoil ! temperature dans le sol 173 c 174 REAL falbe(klon) 175 SAVE falbe ! albedo 176 149 REAL,save,allocatable :: radsol(:) ! bilan radiatif au sol calcule par code radiatif 150 REAL,save,allocatable :: rlev(:,:) ! altitude a chaque niveau (interface inferieure de la couche) 151 INTEGER,save :: itap ! compteur pour la physique 152 REAL,save,allocatable :: ftsol(:) ! temperature du sol 153 REAL,save,allocatable :: ftsoil(:,:) ! temperature dans le sol 154 REAL,save,allocatable :: falbe(:) ! albedo 177 155 REAL delp(klon,klev) ! epaisseur d'une couche 178 156 … … 181 159 c Parametres de l'Orographie a l'Echelle Sous-Maille (OESM): 182 160 c 183 REAL zmea(klon) 184 SAVE zmea ! orographie moyenne 185 c 186 REAL zstd(klon) 187 SAVE zstd ! deviation standard de l'OESM 188 c 189 REAL zsig(klon) 190 SAVE zsig ! pente de l'OESM 191 c 192 REAL zgam(klon) 193 save zgam ! anisotropie de l'OESM 194 c 195 REAL zthe(klon) 196 SAVE zthe ! orientation de l'OESM 197 c 198 REAL zpic(klon) 199 SAVE zpic ! Maximum de l'OESM 200 c 201 REAL zval(klon) 202 SAVE zval ! Minimum de l'OESM 203 c 204 REAL rugoro(klon) 205 SAVE rugoro ! longueur de rugosite de l'OESM 161 REAL,save,allocatable :: zmea(:) ! orographie moyenne 162 REAL,save,allocatable :: zstd(:) ! deviation standard de l'OESM 163 REAL,save,allocatable :: zsig(:) ! pente de l'OESM 164 REAL,save,allocatable :: zgam(:) ! anisotropie de l'OESM 165 REAL,save,allocatable :: zthe(:) ! orientation de l'OESM 166 REAL,save,allocatable :: zpic(:) ! Maximum de l'OESM 167 REAL,save,allocatable :: zval(:) ! Minimum de l'OESM 168 REAL,save,allocatable :: rugoro(:) ! longueur de rugosite de l'OESM 206 169 207 170 INTEGER igwd,idx(klon),itest(klon) … … 234 197 REAL zustrph(klon),zvstrph(klon) 235 198 c 236 REAL zuthe(klon),zvthe(klon) 237 SAVE zuthe 238 SAVE zvthe 199 REAL,save,allocatable :: zuthe(:),zvthe(:) 239 200 240 201 c Variables locales: … … 245 206 cAA Pour TRACEURS 246 207 cAA 208 REAL,save,allocatable :: source(:,:) 247 209 integer nmicro 248 REAL source(klon,nqmax) 249 save nmicro,source 210 save nmicro 250 211 251 212 REAL ycoefh(klon,klev) ! coef d'echange pour phytrac … … 256 217 257 218 REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee 258 REAL dlw(klon) ! derivee infra rouge 259 cym 260 SAVE dlw 261 cym 262 REAL fder(klon) ! Derive de flux (sensible et latente) 263 save fder 219 REAL,save,allocatable :: dlw(:) ! derivee infra rouge 220 REAL,save,allocatable :: fder(:) ! Derive de flux (sensible et latente) 264 221 REAL ve(klon) ! integr. verticale du transport meri. de l'energie 265 222 REAL vq(klon) ! integr. verticale du transport meri. de l'eau … … 301 258 REAL flux_ec(klon,klev) ! flux de chaleur Ec 302 259 c 303 304 c RADIATIF305 306 REAL heat(klon,klev) ! chauffage solaire307 REAL cool(klon,klev) ! refroidissement infrarouge308 REAL dtrad(klon,klev) ! K s-1309 REAL tmpout(klon,klev) ! K s-1310 REAL topsw(klon), toplw(klon), solsw(klon), sollw(klon)311 real sollwdown(klon) ! downward LW flux at surface312 313 260 c Le rayonnement n'est pas calcule tous les pas, il faut donc 314 261 c sauvegarder les sorties du rayonnement 315 SAVE heat,cool,dtrad,topsw,toplw,solsw,sollw,sollwdown 316 c 262 REAL,save,allocatable :: heat(:,:) ! chauffage solaire 263 REAL,save,allocatable :: cool(:,:) ! refroidissement infrarouge 264 REAL,save,allocatable :: dtrad(:,:) ! K s-1 265 REAL,save,allocatable :: topsw(:), toplw(:) 266 REAL,save,allocatable :: solsw(:), sollw(:) 267 REAL,save,allocatable :: sollwdown(:) ! downward LW flux at surface 268 REAL tmpout(klon,klev) ! K s-1 269 317 270 INTEGER itaprad 318 271 SAVE itaprad … … 437 390 REAL mangtot ! moment cinetique total 438 391 392 CHARACTER*2 str1 393 439 394 c Temporaire avant de trouver mieux : 440 395 c Recuperation des TAU du TR 441 CHARACTER*2 str1 396 REAL t_tauhvd(klon,klev),t_khvd(klon,klev) 397 c ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX 398 INTEGER ngrid 399 PARAMETER (ngrid=(jjm-1)*iim+2) ! = klon 442 400 INTEGER NSPECV,NSPECI,NLAYER 443 PARAMETER (NSPECV=24,NSPECI=46,NLAYER=klev) 444 REAL t_tauhvd(klon,klev),t_khvd(klon,klev) 445 REAL TAUHID(klon,NLAYER,NSPECI) 446 & ,TAUGID(klon,NLAYER,NSPECI) 447 & ,TAUHVD(klon,NLAYER,NSPECV) 448 & ,TAUGVD(klon,NLAYER,NSPECV) 401 PARAMETER (NSPECV=24,NSPECI=46,NLAYER=llm) 402 REAL TAUHID(ngrid,NLAYER,NSPECI) 403 & ,TAUGID(ngrid,NLAYER,NSPECI) 404 & ,TAUHVD(ngrid,NLAYER,NSPECV) 405 & ,TAUGVD(ngrid,NLAYER,NSPECV) 449 406 450 407 COMMON /TAUD/ TAUHID,TAUGID,TAUHVD,TAUGVD … … 478 435 c======================== 479 436 IF (debut) THEN 437 allocate(t_ancien(klon,klev),u_ancien(klon,klev)) 438 allocate(swnet(klon,klevp1),lwnet(klon,klevp1)) 439 allocate(radsol(klon),ftsol(klon),falbe(klon)) 440 allocate(rlev(klon,klevp1),ftsoil(klon,nsoilmx)) 441 allocate(zmea(klon),zstd(klon),zsig(klon),zgam(klon)) 442 allocate(zthe(klon),zpic(klon),zval(klon),rugoro(klon)) 443 allocate(zuthe(klon),zvthe(klon),dlw(klon),fder(klon)) 444 allocate(heat(klon,klev),cool(klon,klev)) 445 allocate(dtrad(klon,klev),topsw(klon),toplw(klon)) 446 allocate(solsw(klon),sollw(klon),sollwdown(klon)) 447 allocate(source(klon,nqmax)) 480 448 481 449 CALL suphec ! initialiser constantes et parametres phys. … … 1442 1410 DO i = 1, klon 1443 1411 qaer(i,l,iq) = qaer(i,l,iq) + 1444 . (d_tr_mph(i,l,iq)*delp(i,l)/RG)* ptimestep1412 . (d_tr_mph(i,l,iq)*delp(i,l)/RG)*dtime 1445 1413 ENDDO 1446 1414 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.