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

Contents of /trunk/dyn3d/caladvtrac.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10 - (show annotations)
Fri Apr 18 14:45:53 2008 UTC (16 years, 1 month ago) by guez
Original Path: trunk/libf/dyn3d/caladvtrac.f90
File size: 1660 byte(s)
Added NetCDF directory "/home/guez/include" in "g95.mk" and
"nag_tools.mk".

Added some "intent" attributes in "PVtheta", "advtrac", "caladvtrac",
"calfis", "diagedyn", "dissip", "vlspltqs", "aeropt", "ajsec",
"calltherm", "clmain", "cltrac", "cltracrn", "concvl", "conema3",
"conflx", "fisrtilp", "newmicro", "nuage", "diagcld1", "diagcld2",
"drag_noro", "lift_noro", "SUGWD", "physiq", "phytrac", "radlwsw", "thermcell".

Removed the case "ierr == 0" in "abort_gcm"; moved call to "histclo"
and messages for end of run from "abort_gcm" to "gcm"; replaced call
to "abort_gcm" in "leapfrog" by exit from outer loop.

In "calfis": removed argument "pp" and variable "unskap"; changed
"pksurcp" from scalar to rank 2; use "pressure_var"; rewrote
computation of "zplev", "zplay", "ztfi", "pcvgt" using "dyn_phy";
added computation of "pls".

Removed unused variable in "dynredem0".

In "exner_hyb": changed "dellta" from scalar to rank 1; replaced call
to "ssum" by call to "sum"; removed variables "xpn" and "xps";
replaced some loops by array expressions.

In "leapfrog": use "pressure_var"; deleted variables "p", "longcles".

Converted common blocks "YOECUMF", "YOEGWD" to modules.

Removed argument "pplay" in "cvltr", "diagetpq", "nflxtr".

Created module "raddimlw" from include file "raddimlw.h".

Corrected call to "new_unit" in "test_disvert".

1 SUBROUTINE caladvtrac(q, pbaru, pbarv, p, masse, dq, teta, pk)
2
3 ! From dyn3d/caladvtrac.F, version 1.3 2005/04/13 08:58:34
4
5 ! Authors : F. Hourdin, P. Le Van, F. Forget, F. Codron
6 ! F. Codron (10/99) : ajout humidité spécifique pour eau vapeur
7 ! Schéma de Van Leer
8
9 use dimens_m, only: iim, jjm, llm, nqmx
10 use paramet_m, only: ip1jmp1
11 use comconst, only: dtvr
12 use conf_gcm_m, only: iapp_tracvl
13
14 IMPLICIT NONE
15
16 REAL pbaru(ip1jmp1, llm), pbarv((iim + 1) * jjm, llm), masse(ip1jmp1, llm)
17 REAL, intent(in):: p(ip1jmp1, llm + 1)
18 real q(ip1jmp1, llm, nqmx)
19
20 real, intent(out):: dq(ip1jmp1, llm, 2)
21 ! (n'est utilisé et dimensionné que pour l'eau vapeur et liquide)
22
23 REAL teta(ip1jmp1, llm), pk(ip1jmp1, llm)
24
25 ! Local:
26
27 EXTERNAL advtrac, qminimum
28 INTEGER l, iq, iapptrac
29 REAL finmasse(ip1jmp1, llm), dtvrtrac
30
31 !------------------------------------------------
32
33 dq(:, :, :) = q(:, :, :2) ! initialisation
34
35 ! Advection:
36 CALL advtrac(pbaru, pbarv, p, masse, q, iapptrac, teta, pk)
37
38 IF (iapptrac == iapp_tracvl) THEN
39 ! Calcul de deltap qu'on stocke dans finmasse
40 forall (l = 1:llm) finmasse(:, l) = p(:, l) - p(:, l+1)
41
42 ! On appelle "qminimum" uniquement pour l'eau vapeur et liquide
43 CALL qminimum(q, 2, finmasse)
44
45 finmasse(:, :) = masse(:, :)
46 CALL filtreg(finmasse, jjm + 1, llm, -2, 2, .TRUE., 1)
47
48 ! Calcul de "dq" pour l'eau, pour le passer à la physique
49 dtvrtrac = iapp_tracvl * dtvr
50 DO iq = 1, 2
51 dq(:, :, iq) = (q(:, :, iq) - dq(:, :, iq)) * finmasse(:, :) &
52 / dtvrtrac
53 ENDDO
54 ELSE
55 dq(:, :, :) = 0.
56 ENDIF
57
58 END SUBROUTINE caladvtrac

  ViewVC Help
Powered by ViewVC 1.1.21