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

Contents of /trunk/dyn3d/principal_cshift.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 254 - (show annotations)
Mon Feb 5 10:39:38 2018 UTC (6 years, 3 months ago) by guez
File size: 1113 byte(s)
Move Sources/* to root directory.
1 module principal_cshift_m
2
3 implicit none
4
5 contains
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 dimens_m, ONLY: iim
14 use dynetat0_m, only: clon
15 use nr_util, only: twopi
16
17 integer, intent(in):: is2
18 real, intent(inout):: xlon(:), xprimm(:) ! (iim + 1)
19
20 !-----------------------------------------------------
21
22 if (is2 /= 0) then
23 IF (clon <= 0.) THEN
24 IF (is2 /= 1) THEN
25 xlon(:is2 - 1) = xlon(:is2 - 1) + twopi
26 xlon(:iim) = cshift(xlon(:iim), shift = is2 - 1)
27 xprimm(:iim) = cshift(xprimm(:iim), shift = is2 - 1)
28 END IF
29 else
30 xlon(is2 + 1:iim) = xlon(is2 + 1:iim) - twopi
31 xlon(:iim) = cshift(xlon(:iim), shift = is2)
32 xprimm(:iim) = cshift(xprimm(:iim), shift = is2)
33 end IF
34 end if
35
36 xlon(iim + 1) = xlon(1) + twopi
37 xprimm(iim + 1) = xprimm(1)
38
39 end subroutine principal_cshift
40
41 end module principal_cshift_m

  ViewVC Help
Powered by ViewVC 1.1.21