| Directory: | ./ |
|---|---|
| File: | phys/albsno.f90 |
| Date: | 2022-01-11 19:19:34 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 15 | 17 | 88.2% |
| Branches: | 15 | 18 | 83.3% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | ! | ||
| 2 | ! $Header$ | ||
| 3 | ! | ||
| 4 | 1440 | SUBROUTINE albsno(klon, knon, dtime, agesno, alb_neig_grid, precip_snow) | |
| 5 | |||
| 6 | IMPLICIT NONE | ||
| 7 | |||
| 8 | INCLUDE "clesphys.h" | ||
| 9 | |||
| 10 | ! Input arguments | ||
| 11 | !**************************************************************************************** | ||
| 12 | INTEGER, INTENT(IN) :: klon, knon | ||
| 13 | REAL, INTENT(IN) :: dtime | ||
| 14 | REAL, DIMENSION(klon), INTENT(IN) :: precip_snow | ||
| 15 | |||
| 16 | ! In/Output arguments | ||
| 17 | !**************************************************************************************** | ||
| 18 | REAL, DIMENSION(klon), INTENT(INOUT) :: agesno | ||
| 19 | |||
| 20 | ! Output arguments | ||
| 21 | !**************************************************************************************** | ||
| 22 | REAL, DIMENSION(klon), INTENT(OUT) :: alb_neig_grid | ||
| 23 | |||
| 24 | ! Local variables | ||
| 25 | !**************************************************************************************** | ||
| 26 | INTEGER :: i, nv | ||
| 27 | INTEGER, PARAMETER :: nvm = 8 | ||
| 28 | REAL :: as | ||
| 29 | 2880 | REAL, DIMENSION(klon,nvm) :: veget | |
| 30 | REAL, DIMENSION(nvm),SAVE :: init, decay | ||
| 31 | !$OMP THREADPRIVATE(init, decay) | ||
| 32 | |||
| 33 | DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./ | ||
| 34 | DATA decay/0.30, 0.67, 0.63, 0.45, 0.40, 0.14, 0.06, 1./ | ||
| 35 | !**************************************************************************************** | ||
| 36 | |||
| 37 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1440 times.
|
1440 | if (albsno0>=0.) then |
| 38 | ✗ | init(:)=albsno0 | |
| 39 | ✗ | decay(:)=0. | |
| 40 | endif | ||
| 41 | |||
| 42 |
4/4✓ Branch 0 taken 11520 times.
✓ Branch 1 taken 1440 times.
✓ Branch 2 taken 11450880 times.
✓ Branch 3 taken 11520 times.
|
11463840 | veget = 0. |
| 43 |
2/2✓ Branch 0 taken 1431360 times.
✓ Branch 1 taken 1440 times.
|
1432800 | veget(:,1) = 1. ! desert partout |
| 44 |
2/2✓ Branch 0 taken 425475 times.
✓ Branch 1 taken 1440 times.
|
426915 | DO i = 1, knon |
| 45 | 426915 | alb_neig_grid(i) = 0.0 | |
| 46 | ENDDO | ||
| 47 |
2/2✓ Branch 0 taken 11520 times.
✓ Branch 1 taken 1440 times.
|
12960 | DO nv = 1, nvm |
| 48 |
2/2✓ Branch 0 taken 3403800 times.
✓ Branch 1 taken 11520 times.
|
3416760 | DO i = 1, knon |
| 49 | 3403800 | as = init(nv)+decay(nv)*EXP(-agesno(i)/5.) | |
| 50 | 3415320 | alb_neig_grid(i) = alb_neig_grid(i) + veget(i,nv)*as | |
| 51 | ENDDO | ||
| 52 | ENDDO | ||
| 53 | |||
| 54 | |||
| 55 | ! modilation en fonction de l'age de la neige | ||
| 56 |
2/2✓ Branch 0 taken 425475 times.
✓ Branch 1 taken 1440 times.
|
426915 | DO i = 1, knon |
| 57 | agesno(i) = (agesno(i) + (1.-agesno(i)/50.)*dtime/86400.)& | ||
| 58 | 425475 | & * EXP(-1.*MAX(0.0,precip_snow(i))*dtime/0.3) | |
| 59 | 426915 | agesno(i) = MAX(agesno(i),0.0) | |
| 60 | ENDDO | ||
| 61 | |||
| 62 | 1440 | END SUBROUTINE albsno | |
| 63 |