source: LMDZ4/trunk/libf/phylmd/atm2geo.F90 @ 2520

Last change on this file since 2520 was 1385, checked in by Laurent Fairhead, 15 years ago

Correction of bug in wind component transformation at the poles


Correction d'un bug dans la transformation du vent aux pôles

OM

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.1 KB
Line 
1!
2! $Header$
3!
4SUBROUTINE atm2geo ( im, jm, pte, ptn, plon, plat, pxx, pyy, pzz )
5  USE dimphy
6  USE mod_phys_lmdz_para
7  IMPLICIT NONE
8  INCLUDE 'dimensions.h'
9  INCLUDE 'YOMCST.h'
10!
11! Change wind local atmospheric coordinates to geocentric
12!
13  INTEGER, INTENT (in)                 :: im, jm
14  REAL, DIMENSION (im,jm), INTENT (in) :: pte, ptn
15  REAL, DIMENSION (im,jm), INTENT (in) :: plon, plat
16  REAL, DIMENSION (im,jm), INTENT(out) :: pxx, pyy, pzz
17 
18  REAL :: rad
19
20
21  rad = rpi / 180.0E0
22 
23  pxx(:,:) = &
24       - pte(:,:) * SIN(rad * plon(:,:)) &
25       - ptn(:,:) * SIN(rad * plat(:,:)) * COS(rad * plon(:,:))
26
27  pyy(:,:) = &
28       + pte(:,:) * COS(rad * plon(:,:)) &
29       - ptn(:,:) * SIN(rad * plat(:,:)) * SIN(rad * plon(:,:))
30 
31  pzz(:,:) = &
32       + ptn(:,:) * COS(rad * plat (:,:))
33 
34! Value at North Pole 
35  IF (is_north_pole) THEN
36     pxx(:, 1) = - pte (1, 1)
37     pyy(:, 1) = - ptn (1, 1)
38     pzz(:, 1) = pzz(1,1)
39  ENDIF
40
41! Value at South Pole
42  IF (is_south_pole) THEN
43     pxx(:,jm) = pxx(1,jm)
44     pyy(:,jm) = pyy(1,jm)
45     pzz(:,jm) = pzz(1,jm)
46  ENDIF
47 
48END SUBROUTINE atm2geo
Note: See TracBrowser for help on using the repository browser.