34 |
|
|
35 |
! The modes are filtered from modfrst to modemax. |
! The modes are filtered from modfrst to modemax. |
36 |
|
|
|
USE dimens_m, ONLY : iim, jjm |
|
|
USE logic, ONLY : fxyhypb, ysinus |
|
|
USE comgeom, ONLY : rlatu, rlatv, xprimu |
|
|
use nr_util, only: pi |
|
|
USE serre, ONLY : alphax |
|
37 |
USE coefils, ONLY : coefilu, coefilu2, coefilv, coefilv2, eignfnu, & |
USE coefils, ONLY : coefilu, coefilu2, coefilv, coefilv2, eignfnu, & |
38 |
eignfnv, modfrstu, modfrstv |
eignfnv, modfrstu, modfrstv |
39 |
|
USE comgeom, ONLY : rlatu, rlatv, xprimu |
40 |
|
USE dimens_m, ONLY : iim, jjm |
41 |
|
use inifgn_m, only: inifgn |
42 |
|
use nr_util, only: pi |
43 |
|
USE serre, ONLY : grossismx |
44 |
|
|
45 |
! Local: |
! Local: |
46 |
REAL dlonu(iim), dlatu(jjm) |
REAL dlonu(iim), dlatu(jjm) |
50 |
INTEGER i, j, modemax, imx, k, kf |
INTEGER i, j, modemax, imx, k, kf |
51 |
REAL dymin, dxmin, colat0 |
REAL dymin, dxmin, colat0 |
52 |
REAL eignft(iim, iim), coff |
REAL eignft(iim, iim), coff |
|
EXTERNAL inifgn |
|
53 |
|
|
54 |
!----------------------------------------------------------- |
!----------------------------------------------------------- |
55 |
|
|
89 |
|
|
90 |
colat0 = min(0.5, dymin/dxmin) |
colat0 = min(0.5, dymin/dxmin) |
91 |
|
|
|
IF (.NOT. fxyhypb .AND. ysinus) THEN |
|
|
colat0 = 0.6 |
|
|
! À revoir pour ysinus |
|
|
alphax = 0. |
|
|
END IF |
|
|
|
|
92 |
PRINT *, 'colat0 = ', colat0 |
PRINT *, 'colat0 = ', colat0 |
|
PRINT *, 'alphax = ', alphax |
|
|
|
|
|
IF (alphax == 1.) THEN |
|
|
PRINT *, 'alphax doit etre < a 1. Corriger ' |
|
|
STOP 1 |
|
|
END IF |
|
93 |
|
|
94 |
lamdamax = iim / (pi * colat0 * (1. - alphax)) |
lamdamax = iim / (pi * colat0 / grossismx) |
95 |
rlamda = lamdamax / sqrt(abs(eignvl(2: iim))) |
rlamda = lamdamax / sqrt(abs(eignvl(2: iim))) |
96 |
|
|
97 |
DO j = 1, jjm |
DO j = 1, jjm |