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

Annotation of /trunk/dyn3d/caladvtrac.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 44 - (hide annotations)
Wed Apr 13 12:29:18 2011 UTC (13 years, 1 month ago) by guez
Original Path: trunk/libf/dyn3d/caladvtrac.f90
File size: 1943 byte(s)
Removed argument "pdteta" of "calfis", because it was not used.

Created module "conf_guide_m", containing procedure
"conf_guide". Moved module variables from "guide_m" to "conf_guide_m".

In module "getparam", removed "ini_getparam" and "fin_getparam" from
generic interface "getpar".

Created module variables in "tau2alpha_m" to replace common "comdxdy".

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

  ViewVC Help
Powered by ViewVC 1.1.21