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

Contents of /trunk/Sources/dyn3d/rotatf.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 137 - (show annotations)
Wed May 6 15:51:03 2015 UTC (9 years ago) by guez
File size: 1129 byte(s)
Removed unused argument missval in ma_fucoll_r[1-3]1, ma_fufill_r[1-3]1.

Split filtreg into two procedures: filtreg_scal and filtreg_v. I did
not like the test on the extent of the argument and there was no
common code between the two cases: jjm and jjm + 1. Also, it is
simpler now to just remove the argument "direct" from filtreg_v instead
of allowing it and then stopping the program if it is false.

Removed the computation of pkf in reanalyse2nat, was not used.

As a consequence of the split of filtreg, had to extract the
computation of pkf out of exner_hyb. This is clearer anyway because we
want to be able to call exner_hyb with any size in the first two
dimensions (as in test_disvert). But at the same time exner_hyb
required particular sizes for the computation of pkf. It was
awkward. The only computation of pkf is now in leapfrog.

1 module rotatf_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE rotatf(klevel, x, y, rot)
8
9 ! From LMDZ4/libf/dyn3d/rotatf.F, version 1.1.1.1 2004/05/19 12:53:05
10
11 ! Author: P.Le Van
12
13 ! Calcule le rotationnel à tous les niveaux d'un vecteur de
14 ! composantes covariantes x et y.
15
16 USE dimens_m
17 USE paramet_m
18 USE comgeom
19 USE filtreg_v_m, ONLY: filtreg_v
20
21
22 ! ..... variables en arguments ......
23
24 INTEGER, INTENT (IN) :: klevel
25 ! klevel, x et y sont des arguments d'entree pour le s-prog
26 ! rot est un argument de sortie pour le s-prog
27
28 REAL rot(iim + 1, jjm, klevel)
29 REAL, INTENT (IN) :: x(iim + 1, jjm + 1, klevel), y(iim + 1, jjm, klevel)
30
31 ! ... variables locales ...
32
33 INTEGER l, i, j
34
35
36 DO l = 1, klevel
37 forall (i = 1:iim, j = 1:jjm) rot(i, j, l) = y(i + 1, j, l) &
38 - y(i, j, l) + x(i, j + 1, l) - x(i, j, l)
39 rot(iim + 1, :, l) = rot(1, :, l)
40 END DO
41
42 CALL filtreg_v(rot, intensive = .false.)
43
44 DO l = 1, klevel
45 rot(:, :, l) = rot(:, :, l)*unsairez_2d
46 END DO
47
48 END SUBROUTINE rotatf
49
50 end module rotatf_m

  ViewVC Help
Powered by ViewVC 1.1.21