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

Annotation of /trunk/Sources/dyn3d/caladvtrac.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10 - (hide 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 guez 3 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 guez 10 REAL, intent(in):: p(ip1jmp1, llm + 1)
18     real q(ip1jmp1, llm, nqmx)
19 guez 3
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