16 |
real, intent(out):: alpha(:, :) ! (n_lon, n_lat) |
real, intent(out):: alpha(:, :) ! (n_lon, n_lat) |
17 |
|
|
18 |
! Local: |
! Local: |
19 |
REAL alphamin, alphamax, xi |
REAL a_min, a_max, xi |
20 |
INTEGER i, j, n_lon, n_lat |
INTEGER i, j, n_lon, n_lat |
21 |
|
|
22 |
!------------------------------------------------------------ |
!------------------------------------------------------------ |
27 |
n_lat = assert_eq(size(alpha, 2), size(dxdy, 2), size(rlat), & |
n_lat = assert_eq(size(alpha, 2), size(dxdy, 2), size(rlat), & |
28 |
"tau2alpha n_lat") |
"tau2alpha n_lat") |
29 |
|
|
30 |
alphamin = factt / taumax |
a_min = factt / taumax |
31 |
alphamax = factt / taumin |
a_max = factt / taumin |
32 |
|
|
33 |
DO j = 1, n_lat |
DO j = 1, n_lat |
34 |
IF (lat_min_guide <= rlat(j) .AND. rlat(j) <= lat_max_guide) THEN |
IF (lat_min_guide <= rlat(j) .AND. rlat(j) <= lat_max_guide) THEN |
35 |
DO i = 1, n_lon |
DO i = 1, n_lon |
36 |
xi = min(((dxdy_max - dxdy(i, j)) & |
xi = min(((dxdy_max - dxdy(i, j)) & |
37 |
/ (dxdy_max - dxdy_min))**gamma, 1.) |
/ (dxdy_max - dxdy_min))**gamma, 1.) |
38 |
alpha(i, j) = xi * alphamin + (1. - xi) * alphamax |
alpha(i, j) = 1. - exp(- xi * a_min - (1. - xi) * a_max) |
39 |
END DO |
END DO |
40 |
ELSE |
ELSE |
41 |
alpha(:, j) = 0. |
alpha(:, j) = 0. |