29 |
real, protected:: taux, tauy |
real, protected:: taux, tauy |
30 |
! raideur de la transition de l'int\'erieur \`a l'ext\'erieur du zoom |
! raideur de la transition de l'int\'erieur \`a l'ext\'erieur du zoom |
31 |
|
|
32 |
real rlatu(jjm + 1) |
real, protected:: rlatu(jjm + 1) |
33 |
! latitudes of points of the "scalar" and "u" grid, in rad |
! latitudes of points of the "scalar" and "u" grid, in rad |
34 |
|
|
35 |
real rlatv(jjm) |
real, protected:: rlatv(jjm) |
36 |
! latitudes of points of the "v" grid, in rad, in decreasing order |
! latitudes of points of the "v" grid, in rad, in decreasing order |
37 |
|
|
38 |
real rlonu(iim + 1) ! longitudes of points of the "u" grid, in rad |
real, protected:: rlonu(iim + 1) |
39 |
|
! longitudes of points of the "u" grid, in rad |
40 |
|
|
41 |
real rlonv(iim + 1) |
real, protected:: rlonv(iim + 1) |
42 |
! longitudes of points of the "scalar" and "v" grid, in rad |
! longitudes of points of the "scalar" and "v" grid, in rad |
43 |
|
|
44 |
real, protected:: xprimu(iim + 1), xprimv(iim + 1) |
real, protected:: xprimu(iim + 1), xprimv(iim + 1) |
594 |
! Le premier point scalaire pour une grille regulière (grossismx = |
! Le premier point scalaire pour une grille regulière (grossismx = |
595 |
! 1) avec clon = 0 est à - 180 degrés. |
! 1) avec clon = 0 est à - 180 degrés. |
596 |
|
|
597 |
|
use nr_util, only: pi, pi_d, twopi, twopi_d, arth, assert, rad_to_deg |
598 |
|
|
599 |
USE dimensions, ONLY: iim |
USE dimensions, ONLY: iim |
|
use nr_util, only: pi, pi_d, twopi, twopi_d, arth |
|
600 |
use tanh_cautious_m, only: tanh_cautious |
use tanh_cautious_m, only: tanh_cautious |
601 |
|
|
602 |
! Local: |
! Local: |
682 |
is2 = is2 + 1 |
is2 = is2 + 1 |
683 |
end do |
end do |
684 |
|
|
685 |
if (rlonm025(is2) < - pi) then |
call assert(rlonm025(is2) >= - pi, & |
686 |
print *, 'Rlonm025 plus petit que - pi !' |
"fxhyp -- rlonm025 should be >= - pi") |
|
STOP 1 |
|
|
end if |
|
687 |
ELSE |
ELSE |
688 |
is2 = iim |
is2 = iim |
689 |
|
|
704 |
call principal_cshift(is2, rlonp025, xprimp025) |
call principal_cshift(is2, rlonp025, xprimp025) |
705 |
|
|
706 |
forall (i = 1: iim) d_rlonv(i) = rlonv(i + 1) - rlonv(i) |
forall (i = 1: iim) d_rlonv(i) = rlonv(i + 1) - rlonv(i) |
707 |
print *, "Minimum longitude step:", MINval(d_rlonv) * 180. / pi, "degrees" |
print *, "Minimum longitude step:", MINval(d_rlonv) * rad_to_deg, "degrees" |
708 |
print *, "Maximum longitude step:", MAXval(d_rlonv) * 180. / pi, "degrees" |
print *, "Maximum longitude step:", MAXval(d_rlonv) * rad_to_deg, "degrees" |
709 |
|
|
710 |
! Check that rlonm025 <= rlonv <= rlonp025 <= rlonu: |
! Check that rlonm025 <= rlonv <= rlonp025 <= rlonu: |
711 |
DO i = 1, iim + 1 |
DO i = 1, iim + 1 |
738 |
! so that xlon is in ascending order. Make the same cshift on |
! so that xlon is in ascending order. Make the same cshift on |
739 |
! xprimm. Use clon. |
! xprimm. Use clon. |
740 |
|
|
|
USE dimensions, ONLY: iim |
|
741 |
use nr_util, only: twopi |
use nr_util, only: twopi |
742 |
|
|
743 |
|
USE dimensions, ONLY: iim |
744 |
|
|
745 |
integer, intent(in):: is2 |
integer, intent(in):: is2 |
746 |
real, intent(inout):: xlon(:), xprimm(:) ! (iim + 1) |
real, intent(inout):: xlon(:), xprimm(:) ! (iim + 1) |
747 |
|
|