6 |
|
|
7 |
contains |
contains |
8 |
|
|
9 |
SUBROUTINE init_tau2alpha(dxdys, dxdyu, dxdyv) |
SUBROUTINE init_tau2alpha(dxdys) |
10 |
|
|
11 |
USE comgeom, ONLY: cu_2d, cv_2d |
USE comgeom, ONLY: cu_2d, cv_2d |
|
use conf_guide_m, only: guide_u, guide_v |
|
12 |
use coordij_m, only: coordij |
use coordij_m, only: coordij |
13 |
USE dimens_m, ONLY: iim, jjm |
USE dimens_m, ONLY: jjm |
14 |
USE dynetat0_m, ONLY: clat, clon, grossismx, grossismy, rlatu |
USE dynetat0_m, ONLY: clat, clon, grossismx, grossismy, rlatu |
15 |
USE paramet_m, ONLY: iip1, jjp1 |
USE paramet_m, ONLY: iip1, jjp1 |
16 |
use writefield_m, only: writefield |
use writefield_m, only: writefield |
17 |
|
|
18 |
REAL, intent(out):: dxdys(iip1, jjp1), dxdyu(iip1, jjp1), dxdyv(iip1, jjm) |
REAL, intent(out):: dxdys(iip1, jjp1) |
19 |
|
|
20 |
! Local: |
! Local: |
21 |
INTEGER i, j, ilon, ilat |
INTEGER i, j, ilon, ilat |
50 |
END DO |
END DO |
51 |
CALL writefield("dxdys", dxdys) |
CALL writefield("dxdys", dxdys) |
52 |
|
|
|
if (guide_u) then |
|
|
DO j = 1, jjp1 |
|
|
DO i = 1, iim |
|
|
dxdyu(i, j) = 0.5 * (dxdys(i, j) + dxdys(i + 1, j)) |
|
|
END DO |
|
|
dxdyu(iip1, j) = dxdyu(1, j) |
|
|
END DO |
|
|
end if |
|
|
|
|
|
if (guide_v) then |
|
|
DO j = 1, jjm |
|
|
DO i = 1, iip1 |
|
|
dxdyv(i, j) = 0.5 * (dxdys(i, j) + dxdys(i, j + 1)) |
|
|
END DO |
|
|
END DO |
|
|
end if |
|
|
|
|
53 |
! coordonnees du centre du zoom |
! coordonnees du centre du zoom |
54 |
CALL coordij(clon, clat, ilon, ilat) |
CALL coordij(clon, clat, ilon, ilat) |
55 |
! aire de la maille au centre du zoom |
! aire de la maille au centre du zoom |
56 |
dxdy_min = dxdys(ilon, ilat) |
dxdy_min = dxdys(ilon, ilat) |
57 |
|
print *, "dxdy_min = ", dxdy_min |
58 |
|
|
59 |
! dxdy maximal de la maille : |
! dxdy maximal de la maille : |
60 |
dxdy_max = 0. |
dxdy_max = maxval(dxdys) |
61 |
DO j = 1, jjp1 |
print *, "dxdy_max = ", dxdy_max |
|
DO i = 1, iip1 |
|
|
dxdy_max = max(dxdy_max, dxdys(i, j)) |
|
|
END DO |
|
|
END DO |
|
62 |
|
|
63 |
IF (abs(grossismx - 1.) < 0.1 .OR. abs(grossismy - 1.) < 0.1) THEN |
IF (abs(grossismx - 1.) < 0.1 .OR. abs(grossismy - 1.) < 0.1) THEN |
64 |
PRINT *, 'Attention : modèle peu zoomé.' |
PRINT *, 'Attention : modèle peu zoomé.' |