source: LMDZ6/branches/Amaury_dev/libf/dyn3d_common/principal_cshift_m.F90 @ 5119

Last change on this file since 5119 was 5119, checked in by abarral, 4 months ago

enforce PRIVATE by default in several modules, expose PUBLIC as needed
move eigen.f90 to obsolete/
(lint) aslong the way

File size: 1.1 KB
Line 
1module principal_cshift_m
2
3  IMPLICIT NONE
4
5CONTAINS
6
7  SUBROUTINE principal_cshift(is2, xlon, xprimm)
8
9    ! Add or subtract 2 pi so that xlon is near [-pi, pi], then cshift
10    ! so that xlon is in ascending order. Make the same cshift on
11    ! xprimm.
12
13    USE lmdz_physical_constants, ONLY: twopi
14    USE serre_mod, ONLY: clon
15
16    include "dimensions.h"
17    ! for iim
18
19    INTEGER, INTENT(IN):: is2
20    REAL, INTENT(INOUT):: xlon(:), xprimm(:) ! (iim + 1)
21
22    !-----------------------------------------------------
23
24    IF (is2 /= 0) THEN
25       IF (clon <= 0.) THEN
26          IF (is2 /= 1) THEN
27             xlon(:is2 - 1) = xlon(:is2 - 1) + twopi
28             xlon(:iim) = cshift(xlon(:iim), shift = is2 - 1)
29             xprimm(:iim) = cshift(xprimm(:iim), shift = is2 - 1)
30          END IF
31       else
32          xlon(is2 + 1:iim) = xlon(is2 + 1:iim) - twopi
33          xlon(:iim) = cshift(xlon(:iim), shift = is2)
34          xprimm(:iim) = cshift(xprimm(:iim), shift = is2)
35       end IF
36    end if
37
38    xlon(iim + 1) = xlon(1) + twopi
39    xprimm(iim + 1) = xprimm(1)
40
41  END SUBROUTINE  principal_cshift
42
43END MODULE principal_cshift_m
Note: See TracBrowser for help on using the repository browser.