41 |
! (d) |
! (d) |
42 |
|
|
43 |
use dimens_m, only: iim, jjm |
use dimens_m, only: iim, jjm |
44 |
use comconst, only: pi |
use nr_util, only: assert, pi |
|
use numer_rec, only: assert |
|
45 |
|
|
46 |
REAL, intent(in):: xdata(:), ydata(:) ! coordinates of input field |
REAL, intent(in):: xdata(:), ydata(:) ! coordinates of input field |
47 |
REAL, intent(in):: zdata(:, :) ! input field |
REAL, intent(in):: zdata(:, :) ! input field |
58 |
REAL, intent(out):: zpic(:, :) ! Maximum altitude |
REAL, intent(out):: zpic(:, :) ! Maximum altitude |
59 |
real, intent(out):: zval(:, :) ! Minimum altitude |
real, intent(out):: zval(:, :) ! Minimum altitude |
60 |
|
|
61 |
real, intent(out):: mask(:, :) |
real, intent(out):: mask(:, :) ! fraction of land |
62 |
|
|
63 |
! Variables local to the procedure: |
! Variables local to the procedure: |
64 |
|
|
140 |
zusn(i, jusn+2)=zusn(i+iusn/2, jusn+1) |
zusn(i, jusn+2)=zusn(i+iusn/2, jusn+1) |
141 |
zusn(i+iusn/2+iext, jusn+2)=zusn(i, jusn+1) |
zusn(i+iusn/2+iext, jusn+2)=zusn(i, jusn+1) |
142 |
ENDDO |
ENDDO |
143 |
! |
|
144 |
! COMPUTE LIMITS OF MODEL GRIDPOINT AREA |
! COMPUTE LIMITS OF MODEL GRIDPOINT AREA |
145 |
! ( REGULAR GRID) |
! ( REGULAR GRID) |
146 |
|
|
189 |
ENDDO |
ENDDO |
190 |
|
|
191 |
! SUMMATION OVER GRIDPOINT AREA |
! SUMMATION OVER GRIDPOINT AREA |
192 |
! |
|
193 |
zleny=pi/real(jusn)*rad |
zleny=pi/real(jusn)*rad |
194 |
xincr=pi/2./real(jusn) |
xincr=pi/2./real(jusn) |
195 |
DO ii = 1, iim+1 |
DO ii = 1, iim+1 |
254 |
zxtzy(ii, jj)=zxtzy(ii, jj)/weight(ii, jj) |
zxtzy(ii, jj)=zxtzy(ii, jj)/weight(ii, jj) |
255 |
ztz(ii, jj) =ztz(ii, jj)/weight(ii, jj) |
ztz(ii, jj) =ztz(ii, jj)/weight(ii, jj) |
256 |
! Standard deviation: |
! Standard deviation: |
257 |
zstd(ii, jj)=sqrt(AMAX1(0., ztz(ii, jj)-zmea(ii, jj)**2)) |
zstd(ii, jj)=sqrt(MAX(0., ztz(ii, jj) - zmea(ii, jj)**2)) |
258 |
ENDDO |
ENDDO |
259 |
ENDDO |
ENDDO |
260 |
|
|
323 |
zllmval=AMAX1(zval(ii, jj), zllmval) |
zllmval=AMAX1(zval(ii, jj), zllmval) |
324 |
ENDDO |
ENDDO |
325 |
ENDDO |
ENDDO |
326 |
print *, ' MEAN ORO:', zllmmea |
print *, 'MEAN ORO: ', zllmmea |
327 |
print *, ' ST. DEV.:', zllmstd |
print *, 'ST. DEV.: ', zllmstd |
328 |
print *, ' PENTE:', zllmsig |
print *, 'PENTE: ', zllmsig |
329 |
print *, ' ANISOTROP:', zllmgam |
print *, 'ANISOTROP: ', zllmgam |
330 |
print *, ' ANGLE:', zminthe, zllmthe |
print *, 'ANGLE: ', zminthe, zllmthe |
331 |
print *, ' pic:', zllmpic |
print *, 'pic: ', zllmpic |
332 |
print *, ' val:', zllmval |
print *, 'val: ', zllmval |
333 |
|
|
334 |
! gamma and theta a 1. and 0. at poles |
! gamma and theta a 1. and 0. at poles |
335 |
zmea(iim+1, :)=zmea(1, :) |
zmea(iim+1, :)=zmea(1, :) |
409 |
integer, PARAMETER:: ISMo=300, JSMo=200 |
integer, PARAMETER:: ISMo=300, JSMo=200 |
410 |
real XF(ISMo, JSMo) |
real XF(ISMo, JSMo) |
411 |
real WEIGHTpb(-1:1, -1:1) |
real WEIGHTpb(-1:1, -1:1) |
412 |
real sum |
real my_sum |
413 |
integer i, is, js, j |
integer i, is, js, j |
414 |
|
|
415 |
if(imar>ismo) stop 'surdimensionner ismo dans mva9 (grid_noro)' |
if(imar>ismo) stop 'surdimensionner ismo dans mva9 (grid_noro)' |
416 |
if(jmar>jsmo) stop 'surdimensionner jsmo dans mva9 (grid_noro)' |
if(jmar>jsmo) stop 'surdimensionner jsmo dans mva9 (grid_noro)' |
417 |
|
|
418 |
SUM=0. |
MY_SUM=0. |
419 |
DO IS=-1, 1 |
DO IS=-1, 1 |
420 |
DO JS=-1, 1 |
DO JS=-1, 1 |
421 |
WEIGHTpb(IS, JS)=1./FLOAT((1+IS**2)*(1+JS**2)) |
WEIGHTpb(IS, JS)=1./FLOAT((1+IS**2)*(1+JS**2)) |
422 |
SUM=SUM+WEIGHTpb(IS, JS) |
MY_SUM=MY_SUM+WEIGHTpb(IS, JS) |
423 |
ENDDO |
ENDDO |
424 |
ENDDO |
ENDDO |
425 |
|
|
426 |
DO IS=-1, 1 |
DO IS=-1, 1 |
427 |
DO JS=-1, 1 |
DO JS=-1, 1 |
428 |
WEIGHTpb(IS, JS)=WEIGHTpb(IS, JS)/SUM |
WEIGHTpb(IS, JS)=WEIGHTpb(IS, JS)/MY_SUM |
429 |
ENDDO |
ENDDO |
430 |
ENDDO |
ENDDO |
431 |
|
|