source: LMDZ4/trunk/libf/phylmd/atm2geo.F @ 1107

Last change on this file since 1107 was 793, checked in by Laurent Fairhead, 17 years ago

Modifications suite a la transformation des fichiers include pour
qu'ils soient compatibles a la fois au format fixe et au format libre
Un bon nombre de fichiers *.inc du coup disparaissent
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.5 KB
RevLine 
[524]1!
2! $Header$
3!
4C
5      SUBROUTINE atm2geo ( im, jm, pte, ptn, plon, plat, pxx, pyy, pzz )
[766]6      USE dimphy
[776]7      USE mod_phys_lmdz_para
[766]8      IMPLICIT NONE
[793]9      include 'dimensions.h'
[524]10cc
11cc Change wind local atmospheric coordinates to
12cc geocentric
13cc
[766]14cxxx      INCLUDE 'param.h'
[524]15c
16      INTEGER, INTENT (in)              :: im, jm
17      REAL, DIMENSION (im,jm), INTENT (in) :: pte, ptn
18      REAL, DIMENSION (im,jm), INTENT (in) :: plon, plat
19      REAL, DIMENSION (im,jm), INTENT(out) :: pxx, pyy, pzz
20c
21      REAL, PARAMETER :: rpi = 3.141592653E0
22      REAL, PARAMETER :: rad = rpi / 180.0E0
23c
24      REAL, DIMENSION (im,jm) :: zsinlon, zcoslon
25      REAL, DIMENSION (im,jm) :: zsinlat, zcoslat
26c
27      LOGICAL, SAVE :: linit = .FALSE.
[766]28c$OMP THREADPRIVATE(linit)
[776]29
30cym utilise pour le couple, ne fonctionne que en MPI seul
[524]31c
[766]32cxxx      IF ( .NOT. linit ) THEN
[524]33          zsinlon = SIN (rad * plon)
34          zcoslon = COS (rad * plon)
35          zsinlat = SIN (rad * plat)
36          zcoslat = COS (rad * plat)
37          linit = .TRUE.
[766]38cxxx      ENDIF
[524]39c
40      pxx = - zsinlon * pte - zsinlat * zcoslon * ptn
41      pyy =   zcoslon * pte - zsinlat * zsinlon * ptn
42      pzz =   zcoslat * ptn
[766]43
[524]44c
45c Value at North Pole
[776]46      IF (is_north_pole) THEN
[766]47        pxx ( :,  1) = - ptn ( 1, 1)
48        pyy ( :,  1) = - pte ( 1, 1)
49        pzz ( :,  1) = 0.0
50      ENDIF
[524]51c Value at South Pole
[766]52     
[776]53      IF (is_south_pole) THEN
[766]54        pxx ( :, jm) = + ptn ( 1, jm)
55        pyy ( :, jm) = + pte ( 1, jm)
56        pzz ( :, jm) = 0.0
57      ENDIF
58 
[524]59      RETURN
60      END SUBROUTINE atm2geo
Note: See TracBrowser for help on using the repository browser.