- Timestamp:
- Jun 21, 2001, 9:47:51 AM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90
r235 r236 184 184 logical, save :: first_call = .true. 185 185 integer, save :: error 186 integer :: ii 186 integer :: ii, index 187 187 logical,save :: check = .true. 188 188 real, dimension(klon):: cal, beta, dif_grnd, capsol … … 303 303 & klon, nisurf, knon, knindex, debut, & 304 304 & alb_new, z0_new) 305 ! 306 ! 307 DO ii = 1, knon 308 alb_neig(ii) = alb_neig_grid(knindex(ii)) 309 enddo 310 zfra = MAX(0.0,MIN(1.0,snow/(snow+10.0))) 311 alb_new = alb_neig*zfra + alb_new*(1.0-zfra) 312 z0_new = SQRT(z0_new**2+rugoro**2) 313 ! 314 CALL albsno(klon,agesno,alb_neig_grid) 315 305 ! 316 306 ! calcul snow et qsol, hydrol adapté 317 307 ! 308 CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd) 309 318 310 IF (soil_model) THEN 319 CALL soil(dtime, nisurf, snow, tsurf, tsoil,soilcap, soilflux) 320 cal = RCPD / soilcap 321 radsol = radsol + soilflux 311 CALL soil(dtime, nisurf, knon,snow, tsurf, tsoil,soilcap, soilflux) 312 cal(1:knon) = RCPD / soilcap(1:knon) 313 radsol(1:knon) = radsol(1:knon) + soilflux(1:knon) 314 !!$ WRITE(*,*) 'radsol' 315 !!$ WRITE(*,*) radsol(1 : knon) 316 !!$ WRITE(*,*) 'soilflux' 317 !!$ WRITE(*,*) soilflux(1 : knon) 322 318 ELSE 323 CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd)324 319 ! if (check) write(*,*)'Sortie calbeta' 325 320 ! if (check) write(*,*)'RCPD = ',RCPD,' capsol = ' … … 341 336 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 342 337 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 338 339 DO ii = 1, knon 340 index = knindex(ii) 341 alb_neig(ii) = alb_neig_grid(index) 342 agesno(index) = (agesno(index) + (1.-agesno(index)/50.)*dtime/86400.)& 343 & * EXP(-1.*MAX(0.0,precip_snow(ii))*dtime/0.3) 344 agesno(index) = MAX(agesno(index),0.0) 345 IF(snow(ii) .LT. 0.0001) agesno(index) = 0. 346 ENDDO 347 zfra = MAX(0.0,MIN(1.0,snow/(snow+10.0))) 348 alb_new = alb_neig*zfra + alb_new*(1.0-zfra) 349 z0_new = SQRT(z0_new**2+rugoro**2) 343 350 344 351 else … … 544 551 ! calcul albedo 545 552 ! 546 zfra = MAX(0.0,MIN(1.0,snow/(snow+10.0))) 547 DO ii = 1, knon 548 alb_neig(ii) = alb_neig_grid(knindex(ii)) 549 enddo 550 alb_new = alb_neig*zfra + 0.6 * (1.0-zfra) 551 552 z0_new = 0.001 553 ! 554 zfra = MAX(0.0,MIN(1.0,snow/(snow+10.0))) 555 DO ii = 1, knon 556 index = knindex(ii) 557 alb_neig(ii) = alb_neig_grid(index) 558 ENDDO 559 alb_new = alb_neig*zfra + 0.6 * (1.0-zfra) 560 561 z0_new = 0.001 553 562 554 563 else if (nisurf == is_lic) then … … 594 603 zfra = MAX(0.0,MIN(1.0,snow/(snow+10.0))) 595 604 DO ii = 1, knon 596 alb_neig(ii) = alb_neig_grid(knindex(ii)) 597 enddo 605 index = knindex(ii) 606 alb_neig(ii) = alb_neig_grid(index) 607 agesno(index) = (agesno(index) + (1.-agesno(index)/50.)*dtime/86400.)& 608 & * EXP(-1.*MAX(0.0,precip_snow(ii))*dtime/0.3) 609 agesno(index) = MAX(agesno(index),0.0) 610 IF(snow(ii) .LT. 0.0001) agesno(index) = 0. 611 ENDDO 598 612 alb_new = alb_neig*zfra + 0.6 * (1.0-zfra) 599 613 !
Note: See TracChangeset
for help on using the changeset viewer.