| 1 | |
|---|
| 2 | ! $Header$ |
|---|
| 3 | |
|---|
| 4 | SUBROUTINE histo_o500_pctau(nbreg, pct_ocean, w, histo, histow, nhisto) |
|---|
| 5 | USE dimphy |
|---|
| 6 | IMPLICIT NONE |
|---|
| 7 | |
|---|
| 8 | INTEGER :: ij, k, l, nw |
|---|
| 9 | INTEGER :: nreg, nbreg |
|---|
| 10 | INTEGER, PARAMETER :: kmax = 8, lmax = 8 |
|---|
| 11 | INTEGER, PARAMETER :: kmaxm1 = kmax - 1, lmaxm1 = lmax - 1 |
|---|
| 12 | INTEGER, PARAMETER :: iwmax = 40 |
|---|
| 13 | |
|---|
| 14 | INTEGER, DIMENSION (klon) :: iw |
|---|
| 15 | REAL, DIMENSION (klon) :: w |
|---|
| 16 | REAL, PARAMETER :: wmin = -200., pas_w = 10. |
|---|
| 17 | REAL, DIMENSION (kmaxm1, lmaxm1, iwmax, nbreg) :: histow, nhisto |
|---|
| 18 | REAL, DIMENSION (klon, kmaxm1, lmaxm1) :: histo |
|---|
| 19 | |
|---|
| 20 | ! LOGICAL, dimension(klon,nbreg) :: pct_ocean |
|---|
| 21 | INTEGER, DIMENSION (klon, nbreg) :: pct_ocean |
|---|
| 22 | |
|---|
| 23 | ! initialisation |
|---|
| 24 | histow(:, :, :, :) = 0. |
|---|
| 25 | nhisto(:, :, :, :) = 0. |
|---|
| 26 | |
|---|
| 27 | ! calcul de l'histogramme de chaque regime dynamique |
|---|
| 28 | DO nreg = 1, nbreg |
|---|
| 29 | DO ij = 1, klon |
|---|
| 30 | iw(ij) = int((w(ij)-wmin)/pas_w) + 1 |
|---|
| 31 | ! IF(pct_ocean(ij,nreg)) THEN |
|---|
| 32 | ! IF(pct_ocean(ij,nreg).EQ.1) THEN |
|---|
| 33 | IF (iw(ij)>=1 .AND. iw(ij)<=iwmax) THEN |
|---|
| 34 | DO l = 1, lmaxm1 |
|---|
| 35 | DO k = 1, kmaxm1 |
|---|
| 36 | IF (histo(ij,k,l)>0.) THEN |
|---|
| 37 | histow(k, l, iw(ij), nreg) = histow(k, l, iw(ij), nreg) + & |
|---|
| 38 | histo(ij, k, l)*pct_ocean(ij, nreg) |
|---|
| 39 | nhisto(k, l, iw(ij), nreg) = nhisto(k, l, iw(ij), nreg) + & |
|---|
| 40 | pct_ocean(ij, nreg) |
|---|
| 41 | END IF |
|---|
| 42 | END DO !k |
|---|
| 43 | END DO !l |
|---|
| 44 | ! ELSE IF (iw(ij).LE.0.OR.iw(ij).GT.iwmax) THEN !iw |
|---|
| 45 | ! PRINT*,'ij,iw=',ij,iw(ij) |
|---|
| 46 | END IF !iw |
|---|
| 47 | ! ENDIF !pct_ocean |
|---|
| 48 | END DO !ij |
|---|
| 49 | ! normalisation |
|---|
| 50 | DO nw = 1, iwmax |
|---|
| 51 | DO l = 1, lmaxm1 |
|---|
| 52 | DO k = 1, kmaxm1 |
|---|
| 53 | IF (nhisto(k,l,nw,nreg)/=0.) THEN |
|---|
| 54 | histow(k, l, nw, nreg) = 100.*histow(k, l, nw, nreg)/ & |
|---|
| 55 | nhisto(k, l, nw, nreg) |
|---|
| 56 | ! PRINT*,'k,l,nw,nreg,histoW',k,l,nw,nreg, |
|---|
| 57 | ! & histoW(k,l,nw,nreg) |
|---|
| 58 | END IF |
|---|
| 59 | END DO !k |
|---|
| 60 | END DO !l |
|---|
| 61 | END DO !nw |
|---|
| 62 | END DO !nreg |
|---|
| 63 | |
|---|
| 64 | RETURN |
|---|
| 65 | END SUBROUTINE histo_o500_pctau |
|---|