| 1 | !! Diagnostics: low / mid / high cloud fraction |
|---|
| 2 | !! Code originally from MM5toGrADS |
|---|
| 3 | |
|---|
| 4 | MODULE module_calc_clfr |
|---|
| 5 | |
|---|
| 6 | CONTAINS |
|---|
| 7 | SUBROUTINE calc_clfr(SCR4, cname, cdesc, cunits, RH_in) |
|---|
| 8 | |
|---|
| 9 | USE module_model_basics |
|---|
| 10 | |
|---|
| 11 | IMPLICIT NONE |
|---|
| 12 | |
|---|
| 13 | !Arguments |
|---|
| 14 | real, allocatable, dimension(:,:,:,:) :: SCR4 |
|---|
| 15 | real, pointer, dimension(:,:,:) :: RH_in |
|---|
| 16 | character (len=128) :: cname, cdesc, cunits |
|---|
| 17 | |
|---|
| 18 | ! Local variables |
|---|
| 19 | integer :: i, j, k, kclo, kcmi, kchi |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | SCR4 = 0.0 |
|---|
| 23 | |
|---|
| 24 | DO j = 1,south_north_dim |
|---|
| 25 | DO i = 1,west_east_dim |
|---|
| 26 | DO k = 1,bottom_top_dim |
|---|
| 27 | IF ( PRES(i,j,k) .gt. 97000. ) kclo=k |
|---|
| 28 | IF ( PRES(i,j,k) .gt. 80000. ) kcmi=k |
|---|
| 29 | IF ( PRES(i,j,k) .gt. 45000. ) kchi=k |
|---|
| 30 | END DO |
|---|
| 31 | DO k = 1,bottom_top_dim |
|---|
| 32 | IF ( k .ge. kclo .AND. k .lt. kcmi ) & !! low cloud |
|---|
| 33 | SCR4(i,j,1,1) = AMAX1(RH_in(i,j,k),SCR4(i,j,1,1)) |
|---|
| 34 | IF ( k .ge. kcmi .AND. k .lt. kchi ) & !! mid cloud |
|---|
| 35 | SCR4(i,j,1,2) = AMAX1(RH_in(i,j,k),SCR4(i,j,1,2)) |
|---|
| 36 | IF ( k .ge. kchi ) & !! high cloud |
|---|
| 37 | SCR4(i,j,1,3) = AMAX1(RH_in(i,j,k),SCR4(i,j,1,3)) |
|---|
| 38 | END DO |
|---|
| 39 | |
|---|
| 40 | SCR4(i,j,1,1)=4.0*SCR4(i,j,1,1)/100.-3.0 |
|---|
| 41 | SCR4(i,j,1,2)=4.0*SCR4(i,j,1,2)/100.-3.0 |
|---|
| 42 | SCR4(i,j,1,3)=2.5*SCR4(i,j,1,3)/100.-1.5 |
|---|
| 43 | |
|---|
| 44 | SCR4(i,j,1,1)=amin1(SCR4(i,j,1,1),1.0) |
|---|
| 45 | SCR4(i,j,1,1)=amax1(SCR4(i,j,1,1),0.0) |
|---|
| 46 | SCR4(i,j,1,2)=amin1(SCR4(i,j,1,2),1.0) |
|---|
| 47 | SCR4(i,j,1,2)=amax1(SCR4(i,j,1,2),0.0) |
|---|
| 48 | SCR4(i,j,1,3)=amin1(SCR4(i,j,1,3),1.0) |
|---|
| 49 | SCR4(i,j,1,3)=amax1(SCR4(i,j,1,3),0.0) |
|---|
| 50 | |
|---|
| 51 | END DO |
|---|
| 52 | END DO |
|---|
| 53 | |
|---|
| 54 | |
|---|
| 55 | cname = " " |
|---|
| 56 | cdesc = " " |
|---|
| 57 | cunits = "%" |
|---|
| 58 | |
|---|
| 59 | |
|---|
| 60 | END SUBROUTINE calc_clfr |
|---|
| 61 | |
|---|
| 62 | END MODULE module_calc_clfr |
|---|