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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 178 - (hide annotations)
Fri Mar 11 18:47:26 2016 UTC (8 years, 3 months ago) by guez
File size: 3228 byte(s)
Moved variables date0, deltat, datasz_max, ncvar_ids, point, buff_pos,
buffer, regular from module histcom_var to modules where they are
defined.

Removed procedure ioipslmpp, useless for a sequential program.

Added argument datasz_max to histwrite_real (to avoid circular
dependency with histwrite).

Removed useless variables and computations everywhere.

Changed real litteral constants from default kind to double precision
in lwb, lwu, lwvn, sw1s, swtt, swtt1, swu.

Removed unused arguments: paer of sw, sw1s, sw2s, swclr; pcldsw of
sw1s, sw2s; pdsig, prayl of swr; co2_ppm of clmain, clqh; tsol of
transp_lay; nsrf of screenp; kcrit and kknu of gwstress; pstd of
orosetup.

Added output of relative humidity.

1 guez 69 module fluxstokenc_m
2 guez 3
3 guez 69 IMPLICIT NONE
4 guez 3
5 guez 69 contains
6 guez 3
7 guez 69 SUBROUTINE fluxstokenc(pbaru, pbarv, masse, teta, phi, phis, time_step, itau)
8 guez 3
9 guez 69 ! Author: F. Hourdin
10 guez 3
11 guez 69 USE histwrite_m, ONLY: histwrite
12 guez 178 use initfluxsto_m, only: initfluxsto
13     USE dimens_m, ONLY: jjm, llm
14     USE paramet_m, ONLY: iip1, ijmllm, ijp1llm, ip1jm, ip1jmp1
15 guez 69 USE comgeom, ONLY: aire
16     USE tracstoke, ONLY: istdyn, istphy
17 guez 3
18 guez 69 REAL pbaru(ip1jmp1, llm), pbarv(ip1jm, llm)
19 guez 102 REAL, intent(in):: masse(ip1jmp1, llm)
20 guez 69 real, intent(in):: phi(ip1jmp1, llm)
21     real, intent(in):: teta(ip1jmp1, llm)
22     REAL, intent(in):: phis(ip1jmp1)
23     REAL, intent(in):: time_step
24     INTEGER, INTENT (IN):: itau
25 guez 3
26 guez 69 ! Variables local to the procedure:
27 guez 3
28 guez 69 REAL, SAVE:: pbaruc(ip1jmp1, llm), pbarvc(ip1jm, llm)
29     REAL, SAVE:: massem(ip1jmp1, llm)
30     real, SAVE:: tetac(ip1jmp1, llm), phic(ip1jmp1, llm)
31 guez 3
32 guez 69 REAL pbarug(ip1jmp1, llm), pbarvg(iip1, jjm, llm), wg(ip1jmp1, llm)
33     REAL tst(1), ist(1), istp(1)
34     INTEGER ij, l
35     INTEGER, save:: fluxid, fluxvid
36     integer fluxdid
37 guez 3
38 guez 69 !-------------------------------------------------------------
39 guez 3
40 guez 69 IF (itau == 0) THEN
41 guez 144 CALL initfluxsto(time_step, istdyn*time_step, istdyn*time_step, &
42 guez 69 fluxid, fluxvid, fluxdid)
43     CALL histwrite(fluxid, 'phis', 1, phis)
44     CALL histwrite(fluxid, 'aire', 1, aire)
45     tst(1) = time_step
46     CALL histwrite(fluxdid, 'dtvr', 1, tst)
47     ist(1) = istdyn
48     CALL histwrite(fluxdid, 'istdyn', 1, ist)
49     istp(1) = istphy
50     CALL histwrite(fluxdid, 'istphy', 1, istp)
51 guez 3
52 guez 69 CALL initial0(ijp1llm, phic)
53     CALL initial0(ijp1llm, tetac)
54     CALL initial0(ijp1llm, pbaruc)
55     CALL initial0(ijmllm, pbarvc)
56     END IF
57 guez 3
58 guez 69 ! accumulation des flux de masse horizontaux
59     DO l = 1, llm
60     DO ij = 1, ip1jmp1
61     pbaruc(ij, l) = pbaruc(ij, l) + pbaru(ij, l)
62     tetac(ij, l) = tetac(ij, l) + teta(ij, l)
63     phic(ij, l) = phic(ij, l) + phi(ij, l)
64     END DO
65     DO ij = 1, ip1jm
66     pbarvc(ij, l) = pbarvc(ij, l) + pbarv(ij, l)
67     END DO
68     END DO
69 guez 3
70 guez 69 ! selection de la masse instantannee des mailles avant le transport.
71 guez 102 IF (itau == 0) massem = masse
72 guez 28
73 guez 69 IF (mod(itau + 1, istdyn) == 0) THEN
74     ! on advecte a ce pas de temps
75     ! normalisation
76     DO l = 1, llm
77     DO ij = 1, ip1jmp1
78     pbaruc(ij, l) = pbaruc(ij, l)/float(istdyn)
79     tetac(ij, l) = tetac(ij, l)/float(istdyn)
80     phic(ij, l) = phic(ij, l)/float(istdyn)
81     END DO
82     DO ij = 1, ip1jm
83     pbarvc(ij, l) = pbarvc(ij, l)/float(istdyn)
84     END DO
85     END DO
86 guez 28
87 guez 69 ! traitement des flux de masse avant advection.
88     ! 1. calcul de w
89     ! 2. groupement des mailles pres du pole.
90 guez 28
91 guez 150 CALL groupe(pbaruc, pbarvc, pbarug, pbarvg, wg)
92 guez 69
93     CALL histwrite(fluxid, 'masse', itau, massem)
94     CALL histwrite(fluxid, 'pbaru', itau, pbarug)
95     CALL histwrite(fluxvid, 'pbarv', itau, pbarvg)
96     CALL histwrite(fluxid, 'w', itau, wg)
97     CALL histwrite(fluxid, 'teta', itau, tetac)
98     CALL histwrite(fluxid, 'phi', itau, phic)
99     END IF
100    
101     END SUBROUTINE fluxstokenc
102    
103     end module fluxstokenc_m

  ViewVC Help
Powered by ViewVC 1.1.21