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

Annotation of /trunk/dyn3d/caldyn0.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 91 - (hide annotations)
Wed Mar 26 17:18:58 2014 UTC (10 years, 1 month ago) by guez
File size: 2354 byte(s)
Removed unused variables lock_startdate and time_stamp of module
calendar.

Noticed that physiq does not change the surface pressure. So removed
arguments ps and dpfi of subroutine addfi. dpfi was always 0. The
computation of ps in addfi included some averaging at the poles. In
principle, this does not change ps but in practice it does because of
finite numerical precision. So the results of the simulation are
changed. Removed arguments ps and dpfi of calfis. Removed argument
d_ps of physiq.

du at the poles is not computed by dudv1, so declare only the
corresponding latitudes in dudv1. caldyn passes only a section of the
array dudyn as argument.

Removed variable niadv of module iniadvtrac_m.

Declared arguments of exner_hyb as assumed-shape arrays and made all
other horizontal sizes in exner_hyb dynamic. This allows the external
program test_disvert to use exner_hyb at a single horizontal position.

1 guez 23 module caldyn0_m
2 guez 3
3 guez 23 IMPLICIT NONE
4 guez 4
5 guez 23 contains
6 guez 3
7 guez 23 SUBROUTINE caldyn0(ucov, vcov, teta, ps, masse, pk, phis, phi, w, &
8     pbaru, pbarv)
9 guez 3
10 guez 91 ! From dyn3d/caldyn0.F, version 1.1.1.1, 2004/05/19 12:53:07
11 guez 79 ! Authors: P. Le Van, F. Forget
12 guez 78 ! Objet : calcul des tendances dynamiques
13 guez 3
14 guez 78 USE comgeom, ONLY: airesurg
15 guez 91 use convmas_m, only: convmas
16 guez 79 USE dimens_m, ONLY: iim, jjm, llm
17 guez 78 USE disvert_m, ONLY: ap, bp
18     use flumass_m, only: flumass
19 guez 91 use massbar_m, only: massbar
20 guez 78 use massbarxy_m, only: massbarxy
21 guez 67 use massdair_m, only: massdair
22 guez 79 USE paramet_m, ONLY: iip1, ip1jmp1, jjp1, llmp1
23 guez 78 use sortvarc0_m, only: sortvarc0
24     use tourpot_m, only: tourpot
25 guez 91 use vitvert_m, only: vitvert
26 guez 3
27 guez 79 REAL, INTENT(IN):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm) vent covariant
28     REAL, INTENT(IN):: vcov(:, :, :) ! (iim + 1, jjm, llm) ! vent covariant
29 guez 73 REAL, INTENT(IN):: teta(ip1jmp1, llm)
30 guez 78 REAL, INTENT (IN):: ps(ip1jmp1)
31     real, intent(out):: masse(ip1jmp1, llm)
32     REAL, INTENT (IN):: pk(iip1, jjp1, llm)
33     REAL, INTENT (IN):: phis(ip1jmp1)
34     REAL, INTENT (IN):: phi(ip1jmp1, llm)
35 guez 91 REAL, INTENT(out):: w(:, :, :) ! (iim + 1, jjm + 1, llm)
36 guez 79 REAL, intent(out):: pbaru(ip1jmp1, llm), pbarv((iim + 1) * jjm, llm)
37 guez 3
38 guez 78 ! Local:
39 guez 79 REAL vcont((iim + 1) * jjm, llm), ucont(ip1jmp1, llm)
40 guez 78 REAL p(ip1jmp1, llmp1)
41 guez 79 REAL massebx(ip1jmp1, llm), masseby((iim + 1) * jjm, llm)
42     REAL vorpot(iim + 1, jjm, llm)
43 guez 78 real ecin(ip1jmp1, llm), convm(ip1jmp1, llm)
44     REAL bern(ip1jmp1, llm)
45 guez 79 REAL massebxy(iim + 1, jjm, llm), dp(ip1jmp1)
46     INTEGER l
47 guez 3
48 guez 23 !-----------------------------------------------------------------------
49 guez 3
50 guez 23 PRINT *, 'Call sequence information: caldyn0'
51 guez 3
52 guez 23 CALL covcont(llm, ucov, vcov, ucont, vcont)
53 guez 37 forall (l = 1: llm + 1) p(:, l) = ap(l) + bp(l) * ps
54 guez 23 CALL massdair(p, masse)
55     CALL massbar(masse, massebx, masseby)
56     CALL massbarxy(masse, massebxy)
57     CALL flumass(massebx, masseby, vcont, ucont, pbaru, pbarv)
58     CALL convmas(pbaru, pbarv, convm)
59 guez 78 dp = convm(:, 1) / airesurg
60 guez 23 CALL vitvert(convm, w)
61     CALL tourpot(vcov, ucov, massebxy, vorpot)
62     CALL enercin(vcov, ucov, vcont, ucont, ecin)
63     CALL bernoui(ip1jmp1, llm, phi, ecin, bern)
64     CALL sortvarc0(ucov, teta, ps, masse, pk, phis, vorpot, phi, bern, dp)
65    
66     END SUBROUTINE caldyn0
67    
68     end module caldyn0_m

  ViewVC Help
Powered by ViewVC 1.1.21