329 subroutine lsm_ruc_run &
330 & ( iter, me, master, delt, kdt, im, nlev,
lsm_ruc, lsm, &
331 & imp_physics, imp_physics_gfdl, imp_physics_thompson, &
332 & imp_physics_nssl, do_mynnsfclay, &
333 & exticeden, lsoil_ruc, lsoil, mosaic_lu, mosaic_soil, &
334 & isncond_opt, isncovr_opt, nlcat, nscat, &
335 & rdlai, xlat_d, xlon_d, &
336 & oro, sigma, zs, t1, q1, qc, stype, vtype, vegtype_frac, &
337 & soiltype_frac, sigmaf, laixy, &
338 & dlwflx, dswsfc, tg3, coszen, land, icy, use_lake, &
339 & rainnc, rainc, ice, snow, graupel, prsl1, zf, &
340 & wind, shdmin, shdmax, &
341 & srflag, sfalb_lnd_bck, snoalb, &
342 & isot, ivegsrc, fice, smcwlt2, smcref2, &
343 & min_lakeice, min_seaice, oceanfrac, rhonewsn1, &
345 & con_cp, con_rd, con_rv, con_g, con_pi, con_hvap, &
346 & con_hfus, con_fvirt, stbolt, rhoh2o, &
348 & semisbase, semis_lnd, semis_ice, sfalb_lnd, sfalb_ice, &
349 & sncovr1_lnd, weasd_lnd, snwdph_lnd, tskin_lnd, &
350 & sncovr1_ice, weasd_ice, snwdph_ice, tskin_ice, &
352 & smois, tsice, tslb, sh2o, keepfr, smfrkeep, &
353 & canopy, trans, tsurf_lnd, tsnow_lnd, z0rl_lnd, &
354 & sfcqc_lnd, sfcqv_lnd, &
355 & qsurf_lnd, gflux_lnd, evap_lnd, hflx_lnd, &
356 & runof, runoff, srunoff, drain, &
357 & cm_lnd, ch_lnd, evbs, evcw, stm, wetness, &
358 & snowfallac_lnd, acsnow_lnd, snowmt_lnd, snohf, &
359 & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, &
361 & sfcqc_ice, sfcqv_ice, &
362 & tsurf_ice, tsnow_ice, z0rl_ice, &
363 & qsurf_ice, gflux_ice, evap_ice, ep1d_ice, hflx_ice, &
364 & cm_ice, ch_ice, snowfallac_ice, acsnow_ice, snowmt_ice, &
365 & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, &
366 & add_fire_heat_flux, fire_heat_flux_out, &
367 & frac_grid_burned_out, &
370 & cmm_lnd, chh_lnd, cmm_ice, chh_ice, &
372 & flag_iter, flag_guess, flag_init, lsm_cold_start, &
373 & flag_cice, frac_grid, errmsg, errflg &
379 integer,
intent(in) :: me, master
380 integer,
intent(in) :: im, nlev, iter, lsoil_ruc, lsoil, kdt, isot, ivegsrc
381 integer,
intent(in) :: mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt
382 integer,
intent(in) :: nlcat, nscat
383 integer,
intent(in) ::
lsm_ruc, lsm
384 integer,
intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, &
386 real (kind_phys),
dimension(:),
intent(in) :: xlat_d, xlon_d
387 real (kind_phys),
dimension(:),
intent(in) :: oro, sigma
388 real (kind_phys),
dimension(:),
intent(in) :: sfalb_lnd_bck
389 real (kind_phys),
dimension(:),
intent(in) :: &
390 & t1, sigmaf, dlwflx, dswsfc, tg3, &
391 & coszen, prsl1, wind, shdmin, shdmax, &
392 & snoalb, zf, qc, q1, &
400 real (kind_phys),
intent(in) :: delt, min_seaice, min_lakeice
401 real (kind_phys),
intent(in) :: con_cp, con_rv, con_g, &
403 con_hvap, con_hfus, &
404 con_fvirt, stbolt, rhoh2o
406 logical,
dimension(:),
intent(in) :: flag_iter, flag_guess
407 logical,
dimension(:),
intent(in) :: land, icy
408 integer,
dimension(:),
intent(in) :: use_lake
409 logical,
dimension(:),
intent(in) :: flag_cice
410 logical,
intent(in) :: frac_grid
411 logical,
intent(in) :: do_mynnsfclay
412 logical,
intent(in) :: exticeden
414 logical,
intent(in) :: rdlai
417 integer,
dimension(:),
intent(inout) :: stype
418 integer,
dimension(:),
intent(in) :: vtype
420 real (kind_phys),
dimension(:,:),
intent(in) :: vegtype_frac
421 real (kind_phys),
dimension(:,:),
intent(in) :: soiltype_frac
423 real (kind_phys),
dimension(:),
intent(in) :: zs
424 real (kind_phys),
dimension(:),
intent(in) :: srflag
425 real (kind_phys),
dimension(:),
intent(inout) :: &
426 & laixy, tsnow_lnd, sfcqv_lnd, sfcqc_lnd, sfcqc_ice, sfcqv_ice,&
428 real (kind_phys),
dimension(:),
intent(inout) :: &
429 & canopy, trans, smcwlt2, smcref2, &
431 & weasd_lnd, snwdph_lnd, tskin_lnd, &
432 & tsurf_lnd, z0rl_lnd, &
434 & weasd_ice, snwdph_ice, tskin_ice, &
435 & tsurf_ice, z0rl_ice, fice
438 real (kind_phys),
dimension(:),
intent(in) :: &
439 & rainnc, rainc, ice, snow, graupel
440 real (kind_phys),
dimension(:),
intent(in) :: rhonewsn1
441 real (kind_phys),
dimension(:),
intent(in) :: &
442 fire_heat_flux_out, frac_grid_burned_out
443 logical,
intent(in) :: add_fire_heat_flux
446 real (kind_phys),
dimension(:,:),
intent(inout) :: &
447 & smois, tslb, sh2o, keepfr, smfrkeep
448 real (kind_phys),
dimension(:,:),
intent(inout) :: &
452 real (kind_phys),
dimension(:),
intent(inout) :: &
453 & sfalb_lnd, sfalb_ice, wetness, snowfallac_lnd, &
454 & snowfallac_ice, rhosnf
455 real (kind_phys),
dimension(:),
intent(inout) :: &
456 & runof, drain, runoff, srunoff, evbs, evcw, &
457 & stm, semisbase, semis_lnd, semis_ice, &
459 & sncovr1_lnd, qsurf_lnd, gflux_lnd, evap_lnd, &
460 & cmm_lnd, chh_lnd, hflx_lnd, sbsno, &
461 & snowmt_lnd, snohf, &
463 & sncovr1_ice, qsurf_ice, gflux_ice, evap_ice, ep1d_ice, &
464 & cmm_ice, chh_ice, hflx_ice, &
466 real (kind_phys),
dimension(:),
intent(inout) :: &
467 acsnow_lnd, acsnow_ice
468 real (kind_phys),
dimension(:),
intent( out) :: &
469 & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd
470 real (kind_phys),
dimension(:),
intent( out) :: &
471 & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice
473 logical,
intent(in) :: flag_init, lsm_cold_start
474 character(len=*),
intent(out) :: errmsg
475 integer,
intent(out) :: errflg
479 real(kind_phys),
dimension(im,nlev) :: pattern_spp
482 real (kind_phys),
dimension(im) :: rho, rhonewsn_ex, &
483 & q0, qs1, albbcksol, srunoff_old, runoff_old, &
484 & tprcp_old, srflag_old, sr_old, canopy_old, wetness_old, &
486 & weasd_lnd_old, snwdph_lnd_old, tskin_lnd_old, &
487 & tsnow_lnd_old, snowfallac_lnd_old, acsnow_lnd_old, &
488 & sfcqv_lnd_old, sfcqc_lnd_old, z0rl_lnd_old, &
489 & sncovr1_lnd_old,snowmt_lnd_old, &
491 & weasd_ice_old, snwdph_ice_old, tskin_ice_old, &
492 & tsnow_ice_old, snowfallac_ice_old, acsnow_ice_old, &
493 & sfcqv_ice_old, sfcqc_ice_old, z0rl_ice_old, &
494 & sncovr1_ice_old,snowmt_ice_old
497 real (kind_phys),
dimension(im,lsoil_ruc,1) :: pattern_spp_lsm
499 real (kind_phys),
dimension(lsoil_ruc) :: et
501 real (kind_phys),
dimension(im,lsoil_ruc,1) :: smsoil, &
502 slsoil, stsoil, smfrsoil, keepfrsoil, stsice
503 real (kind_phys),
dimension(im,lsoil_ruc,1) :: smice, &
504 slice, stice, smfrice, keepfrice
506 real (kind_phys),
dimension(im,lsoil_ruc) :: smois_old, &
507 & tsice_old, tslb_old, sh2o_old, &
508 & keepfr_old, smfrkeep_old
510 real (kind_phys),
dimension(im,nlcat,1) :: landusef
511 real (kind_phys),
dimension(im,nscat,1) :: soilctop
513 real (kind_phys),
dimension (im,1,1) :: &
514 & conflx2, sfcprs, sfctmp, q2, qcatm, rho2
515 real (kind_phys),
dimension (im,1) :: orog, stdev
516 real (kind_phys),
dimension (im,1) :: &
517 & albbck_lnd, alb_lnd, chs_lnd, flhc_lnd, flqc_lnd, &
518 & wet, wet_ice, smmax, cmc, drip, ec, edir, ett, &
519 & dew_lnd, lh_lnd, esnow_lnd, etp, qfx_lnd, acceta, &
520 & ffrozp, lwdn, prcp, xland, xland_wat, xice, xice_lnd, &
521 & graupelncv, snowncv, rainncv, raincv, &
522 & solnet_lnd, sfcexc, &
523 & runoff1, runoff2, acrunoff, semis_bck, &
524 & sfcems_lnd, hfx_lnd, shdfac, shdmin1d, shdmax1d, &
525 & fire_heat_flux1d, &
526 & sneqv_lnd, snoalb1d_lnd, snowh_lnd, snoh_lnd, tsnav_lnd, &
527 & snomlt_lnd, sncovr_lnd, soilw, soilm, ssoil_lnd, &
529 & xlai, swdn, z0_lnd, znt_lnd, rhosnfr, infiltr, &
530 & precipfr, snfallac_lnd, acsn_lnd, soilt1_lnd, chklowq, &
531 & qsfc_lnd, qsg_lnd, qvg_lnd, qcg_lnd, smcwlt, smcref
533 real (kind_phys),
dimension (im,1) :: &
534 & albbck_ice, alb_ice, chs_ice, flhc_ice, flqc_ice, &
535 & dew_ice, lh_ice, esnow_ice, qfx_ice, &
536 & solnet_ice, sfcems_ice, hfx_ice, &
537 & sneqv_ice, snoalb1d_ice, snowh_ice, snoh_ice, tsnav_ice, &
538 & snomlt_ice, sncovr_ice, ssoil_ice, soilt_ice, &
539 & z0_ice, znt_ice, snfallac_ice, acsn_ice, &
540 & qsfc_ice, qsg_ice, qvg_ice, qcg_ice, soilt1_ice
543 real (kind_phys) :: xice_threshold
544 real (kind_phys) :: fwat, qsw, evapw, hfxw
546 character(len=256) :: llanduse
550 integer :: nsoil, iswater, isice
551 integer,
dimension (1:im,1:1) :: stype_wat, vtype_wat
552 integer,
dimension (1:im,1:1) :: stype_lnd, vtype_lnd
553 integer,
dimension (1:im,1:1) :: stype_ice, vtype_ice
557 integer :: ims,ime, its,ite, jms,jme, jts,jte, kms,kme, kts,kte
558 integer :: l, k, i, j, fractional_seaice, ilst
559 real (kind_phys) :: dm, cimin(im)
560 logical :: flag(im), flag_ice(im), flag_ice_uncoupled(im)
561 logical :: myj, frpcpn
562 logical :: debug_print
565 real (kind_phys) :: testptlat, testptlon
574 testptlat = 68.6_kind_phys
575 testptlon = 298.6_kind_phys
583 flag_ice(i) = .false.
584 if (icy(i) .and. .not. flag_cice(i))
then
586 if (oceanfrac(i) > zero)
then
587 cimin(i) = min_seaice
589 cimin(i) = min_lakeice
591 if (fice(i) >= cimin(i))
then
598 flag_ice_uncoupled(i) = (flag_ice(i) .and. use_lake(i)<1)
601 flag(i) = land(i) .or. flag_ice_uncoupled(i)
605 write (0,*)
'RUC LSM run'
606 write (0,*)
'stype=',ipr,stype(ipr)
607 write (0,*)
'vtype=',ipr,vtype(ipr)
608 write (0,*)
'kdt, iter =',kdt,iter
609 write (0,*)
'flag_init =',flag_init
610 write (0,*)
'lsm_cold_start =',lsm_cold_start
635 if(spp_lsm == 0)
then
636 pattern_spp(:,:) = 0.0
646 if(ivegsrc == 1)
then
647 llanduse =
'MODI-RUC'
651 write(errmsg,
'(a,i0)')
'Logic error in sfc_drv_ruc_run: iswater/isice not configured for ivegsrc=', ivegsrc
656 fractional_seaice = 1
657 if ( fractional_seaice == 0 )
then
658 xice_threshold = 0.5_kind_phys
659 else if ( fractional_seaice == 1 )
then
660 xice_threshold = 0.15_kind_phys
666 if(.not. land(i))
then
671 elseif (kdt == 1)
then
674 smcref(i,1) = refsmc(stype(i))
675 smcwlt(i,1) = wltsmc(stype(i))
680 xlai(i,1) = laitbl(vtype(i))
684 smcref(i,1) = smcref2(i)
685 smcwlt(i,1) = smcwlt2(i)
691 if (flag(i) .and. flag_guess(i))
then
693 wetness_old(i) = wetness(i)
694 canopy_old(i) = canopy(i)
696 weasd_lnd_old(i) = weasd_lnd(i)
697 snwdph_lnd_old(i) = snwdph_lnd(i)
698 tskin_lnd_old(i) = tskin_lnd(i)
699 tsnow_lnd_old(i) = tsnow_lnd(i)
700 sfcqv_lnd_old(i) = sfcqv_lnd(i)
701 sfcqc_lnd_old(i) = sfcqc_lnd(i)
702 z0rl_lnd_old(i) = z0rl_lnd(i)
703 sncovr1_lnd_old(i) = sncovr1_lnd(i)
704 snowmt_lnd_old(i) = snowmt_lnd(i)
705 acsnow_lnd_old(i) = acsnow_lnd(i)
706 snowfallac_lnd_old(i) = snowfallac_lnd(i)
707 srunoff_old(i) = srunoff(i)
708 runoff_old(i) = runoff(i)
710 weasd_ice_old(i) = weasd_ice(i)
711 snwdph_ice_old(i) = snwdph_ice(i)
712 tskin_ice_old(i) = tskin_ice(i)
713 tsnow_ice_old(i) = tsnow_ice(i)
714 sfcqv_ice_old(i) = sfcqv_ice(i)
715 sfcqc_ice_old(i) = sfcqc_ice(i)
716 z0rl_ice_old(i) = z0rl_ice(i)
717 sncovr1_ice_old(i) = sncovr1_ice(i)
718 snowmt_ice_old(i) = snowmt_ice(i)
719 acsnow_ice_old(i) = acsnow_ice(i)
720 snowfallac_ice_old(i) = snowfallac_ice(i)
723 smois_old(i,k) = smois(i,k)
724 tslb_old(i,k) = tslb(i,k)
725 sh2o_old(i,k) = sh2o(i,k)
726 keepfr_old(i,k) = keepfr(i,k)
727 smfrkeep_old(i,k) = smfrkeep(i,k)
729 tsice_old(i,k) = tsice(i,k)
738 if (flag_iter(i) .and. flag(i))
then
746 canopy(i) = max(canopy(i), zero)
774 rhosnfr(i,j) = -1.e3_kind_phys
779 snfallac_lnd(i,j) = zero
781 snfallac_ice(i,j) = zero
783 snomlt_lnd(i,j) = zero
784 snomlt_ice(i,j) = zero
793 if (flag_iter(i) .and. flag(i))
then
794 q0(i) = max(q1(i)/(one-q1(i)), epsln)
796 rho(i) = prsl1(i) / (con_rd*t1(i)*(one+con_fvirt*q0(i)))
797 qs1(i) =
rslf(prsl1(i),t1(i))
798 q0(i) = min(qs1(i), q0(i))
815 if (imp_physics==imp_physics_gfdl .or. imp_physics==imp_physics_thompson .or. &
816 imp_physics == imp_physics_nssl)
then
825 stdev(i,j) = sigma(i)
827 landusef(i,k,j) = vegtype_frac(i,k)
830 soilctop(i,k,j) = soiltype_frac(i,k)
838 if (flag_iter(i) .and. flag(i))
then
841 ffrozp(i,j) = srflag(i)
843 ffrozp(i,j) = real(nint(srflag(i)),kind_phys)
847 conflx2(i,1,j) = zf(i) * 2._kind_phys
858 sfcprs(i,1,j) = prsl1(i)
861 qcatm(i,1,j) = max(zero, qc(i))
877 lwdn(i,j) = dlwflx(i)
878 swdn(i,j) = dswsfc(i)
887 prcp(i,j) = rhoh2o * (rainc(i)+rainnc(i))
888 raincv(i,j) = rhoh2o * rainc(i)
889 rainncv(i,j) = rhoh2o * rainnc(i)
890 graupelncv(i,j) = rhoh2o * graupel(i)
891 snowncv(i,j) = rhoh2o * snow(i)
892 rhonewsn_ex(i) = rhonewsn1(i)
893 if (debug_print)
then
895 if (abs(xlat_d(i)-testptlat).lt.0.2 .and. &
896 abs(xlon_d(i)-testptlon).lt.0.2)
then
898 print 100,
'(ruc_lsm_drv) i=',i, &
899 ' lat,lon=',xlat_d(i),xlon_d(i), &
900 'rainc',rainc(i),
'rainnc',rainnc(i), &
901 'graupel',graupel(i),
'qc',qc(i),
'sfcqv_lnd',sfcqv_lnd(i),&
902 'dlwflx',dlwflx(i),
'dswsfc',dswsfc(i), &
903 'sncovr1_lnd',sncovr1_lnd(i),
'sfalb_lnd_bck',sfalb_lnd_bck(i),&
904 'prsl1',prsl1(i),
't1',t1(i), &
905 'srflag',srflag(i),
'weasd mm ',weasd_lnd(i), &
906 'tsnow_lnd',tsnow_lnd(i),
'snwdph mm',snwdph_lnd(i), &
907 'tsurf_lnd',tsurf_lnd(i),
'tslb(i,1)',tslb(i,1)
910 100
format (
";;; ",a,i4,a,2f14.7/(4(a10,
'='es9.2)))
922 if(ivegsrc == 1)
then
926 vtype_lnd(i,j) = vtype(i)
927 stype_lnd(i,j) = stype(i)
940 elseif(flag_ice_uncoupled(i))
then
945 write (0,*)
'MODIS landuse is not available'
948 semis_bck(i,j) = semisbase(i)
950 shdfac(i,j) = sigmaf(i)*100._kind_phys
951 shdmin1d(i,j) = shdmin(i)*100._kind_phys
952 shdmax1d(i,j) = shdmax(i)*100._kind_phys
953 fire_heat_flux1d(i,j) = fire_heat_flux_out(i)
978 qvg_lnd(i,j) = sfcqv_lnd(i)
979 qsfc_lnd(i,j) = sfcqv_lnd(i)/(1.+sfcqv_lnd(i))
980 qsg_lnd(i,j) =
rslf(prsl1(i),tsurf_lnd(i))
981 qcg_lnd(i,j) = sfcqc_lnd(i)
982 sncovr_lnd(i,j) = sncovr1_lnd(i)
984 sfcems_lnd(i,j) = semisbase(i) * (one-sncovr_lnd(i,j)) + 0.99_kind_phys * sncovr_lnd(i,j)
986 sfcems_lnd(i,j) = semis_lnd(i)
989 if(coszen(i) > zero .and. weasd_lnd(i) < 1.e-4_kind_phys)
then
992 dm = (one+2._kind_phys*d(ilst))/(one+2._kind_phys*d(ilst)*coszen(i))
993 albbcksol(i) = sfalb_lnd_bck(i)*dm
995 albbcksol(i) = sfalb_lnd_bck(i)
998 snoalb1d_lnd(i,j) = snoalb(i)
999 albbck_lnd(i,j) = min(0.9_kind_phys,albbcksol(i))
1002 if (spp_lsm == 1)
then
1005 pattern_spp_lsm(i,k,j) = pattern_spp(i,k)
1009 albbck_lnd(i,j) = min(albbck_lnd(i,j) * (one + 0.4_kind_phys*pattern_spp_lsm(i,1,j)), one)
1010 sfcems_lnd(i,j) = min(sfcems_lnd(i,j) * (one + 0.1_kind_phys*pattern_spp_lsm(i,1,j)), one)
1011 shdfac(i,j) = min(0.01_kind_phys*shdfac(i,j) * (one + 0.33_kind_phys*pattern_spp_lsm(i,1,j)),one)*100._kind_phys
1015 smois(i,k) = smois(i,k)*(one+1.5_kind_phys*pattern_spp_lsm(i,k,j))
1020 alb_lnd(i,j) = albbck_lnd(i,j) * (one-sncovr_lnd(i,j)) + snoalb(i) * sncovr_lnd(i,j)
1021 solnet_lnd(i,j) = dswsfc(i)*(one-alb_lnd(i,j))
1023 IF ( add_fire_heat_flux .and. fire_heat_flux_out(i) > 0)
then
1024 if (debug_print)
then
1025 print *,
'alb_lnd before fire, xlat/xlon ', alb_lnd(i,j), xlat_d(i),xlon_d(i)
1026 print *,
'fire_heat_flux_out, frac_grid_burned_out, xlat/xlon ', &
1027 fire_heat_flux_out(i),frac_grid_burned_out(i),xlat_d(i),xlon_d(i)
1030 alb_lnd(i,j) = alb_lnd(i,j) * (one-frac_grid_burned_out(i)) + 0.08_kind_phys*frac_grid_burned_out(i)
1031 if (debug_print)
then
1032 print *,
'alb_lnd after fire, xlat/xlon ', alb_lnd(i,j), xlat_d(i),xlon_d(i)
1036 cmc(i,j) = canopy(i)
1037 soilt_lnd(i,j) = tsurf_lnd(i)
1039 if (tsnow_lnd(i) > 200._kind_phys .and. tsnow_lnd(i) < con_t0c)
then
1040 soilt1_lnd(i,j) = tsnow_lnd(i)
1042 soilt1_lnd(i,j) = tsurf_lnd(i)
1044 tsnav_lnd(i,j) = min(zero,0.5_kind_phys*(soilt_lnd(i,j) + soilt1_lnd(i,j)) - con_t0c)
1046 smsoil(i,k,j) = smois(i,k)
1047 slsoil(i,k,j) = sh2o(i,k)
1048 stsoil(i,k,j) = tslb(i,k)
1049 smfrsoil(i,k,j) = smfrkeep(i,k)
1050 keepfrsoil(i,k,j) = keepfr(i,k)
1053 if (wetness(i) > zero)
then
1054 wet(i,j) = wetness(i)
1056 wet(i,j) = max(0.0001_kind_phys,smsoil(i,1,j)/0.3_kind_phys)
1059 chs_lnd(i,j) = ch_lnd(i) * wind(i)
1060 flhc_lnd(i,j) = chs_lnd(i,j) * rho(i) * con_cp * (one+0.84_kind_phys*q2(i,1,j))
1061 flqc_lnd(i,j) = chs_lnd(i,j) * rho(i) * wet(i,j)
1064 cmm_lnd(i) = cm_lnd(i) * wind(i)
1065 chh_lnd(i) = chs_lnd(i,j) * rho(i)
1067 sneqv_lnd(i,j) = weasd_lnd(i)
1068 snowh_lnd(i,j) = snwdph_lnd(i) * 0.001_kind_phys
1072 snfallac_lnd(i,j) = snowfallac_lnd(i)
1073 acsn_lnd(i,j) = acsnow_lnd(i)
1074 snomlt_lnd(i,j) = snowmt_lnd(i)
1078 if (sneqv_lnd(i,j) /= zero .and. snowh_lnd(i,j) == zero)
then
1079 if (debug_print) print *,
'bad sneqv_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j),xlat_d(i),xlon_d(i)
1080 if(sneqv_lnd(i,j) < epsln.or.soilt_lnd(i,j)>con_t0c)
then
1081 sneqv_lnd(i,j) = zero
1082 snowh_lnd(i,j) = zero
1084 sneqv_lnd(i,j) = 300._kind_phys * snowh_lnd(i,j)
1086 if (debug_print) print *,
'fixed sneqv_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j)
1087 elseif (snowh_lnd(i,j) /= zero .and. sneqv_lnd(i,j) == zero)
then
1088 if (debug_print) print *,
'bad snowh_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j),xlat_d(i),xlon_d(i)
1089 if(snowh_lnd(i,j) < 3.e-10_kind_dbl_prec.or.soilt_lnd(i,j)>con_t0c)
then
1090 snowh_lnd(i,j) = zero
1091 sneqv_lnd(i,j) = zero
1093 snowh_lnd(i,j) = 0.003_kind_dbl_prec * sneqv_lnd(i,j)
1095 if (debug_print) print *,
'fixed snowh_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j)
1096 elseif (sneqv_lnd(i,j) > zero .and. snowh_lnd(i,j) > zero)
then
1097 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1098 abs(xlon_d(i)-testptlon).lt.0.5)
then
1099 print *,
'sneqv_lnd(i,j)/snowh_lnd(i,j)',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1101 if(sneqv_lnd(i,j)/snowh_lnd(i,j) > 500._kind_phys)
then
1102 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1103 abs(xlon_d(i)-testptlon).lt.0.5)
then
1104 print *,
'large snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1105 print *,
'large snow density lat/lon',kdt,i,j,xlat_d(i),xlon_d(i)
1107 if(soilt_lnd(i,j)>con_t0c)
then
1108 snowh_lnd(i,j) = zero
1109 sneqv_lnd(i,j) = zero
1111 snowh_lnd(i,j) = 0.002_kind_dbl_prec * sneqv_lnd(i,j)
1113 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1114 abs(xlon_d(i)-testptlon).lt.0.5)
then
1115 print *,
'fixed large snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1117 elseif(sneqv_lnd(i,j)/snowh_lnd(i,j) < 58._kind_phys)
then
1118 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1119 abs(xlon_d(i)-testptlon).lt.0.5)
then
1120 print *,
'small snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1121 print *,
'small snow density lat/lon',kdt,i,j,xlat_d(i),xlon_d(i)
1123 if(soilt_lnd(i,j)>con_t0c)
then
1124 snowh_lnd(i,j) = zero
1125 sneqv_lnd(i,j) = zero
1127 sneqv_lnd(i,j) = 58._kind_phys * snowh_lnd(i,j)
1129 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1130 abs(xlon_d(i)-testptlon).lt.0.5)
then
1131 print *,
'fixed small snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1137 z0_lnd(i,j) = z0rl_lnd(i)/100._kind_phys
1138 znt_lnd(i,j) = z0rl_lnd(i)/100._kind_phys
1147 if(abs(snowh_lnd(i,j))<1e-20_kind_phys)
then
1150 if(abs(sneqv_lnd(i,j))<1e-20_kind_phys)
then
1154 if (debug_print)
then
1157 if (abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1158 abs(xlon_d(i)-testptlon).lt.0.5)
then
1160 print 100,
'(ruc_lsm_drv before RUC land call) i=',i, &
1161 ' lat,lon=',xlat_d(i),xlon_d(i), &
1162 'rainc',rainc(i),
'rainnc',rainnc(i),
'prcp',prcp(i,j), &
1163 'graupel',graupel(i),
'qc',qc(i),
'sfcqv_lnd',sfcqv_lnd(i), &
1164 'dlwflx',dlwflx(i),
'dswsfc',dswsfc(i), &
1165 'sncovr1_lnd',sncovr1_lnd(i),
'sfalb_lnd_bck',sfalb_lnd_bck(i),&
1166 'albbcksol',albbcksol(i),
'alb_lnd',alb_lnd(i,j), &
1167 'solnet_lnd',solnet_lnd(i,j),
't1',t1(i), &
1168 'sfcems_lnd',sfcems_lnd(i,j),
'flhc_lnd',flhc_lnd(i,j), &
1169 'flqc_lnd',flqc_lnd(i,j),
'wet',wet(i,j),
'cmc',cmc(i,j), &
1170 'qcg_lnd',qcg_lnd(i,j),
'dew',dew_lnd(i,j), &
1171 'znt_lnd',znt_lnd(i,j),
'shdfac',shdfac(i,j), &
1172 'srflag',srflag(i),
'weasd_lnd',weasd_lnd(i), &
1173 'smsoil1',smsoil(i,1,j),
'slsoil',slsoil(i,1,j), &
1174 'keepfrsoil',keepfrsoil(i,1,j), &
1175 'tsurf_lnd',tsurf_lnd(i),
'tslb(i,1)',tslb(i,1)
1181 call lsmruc(xlat_d(i),xlon_d(i), &
1182 & delt, flag_init, lsm_cold_start, kdt, iter, nsoil, &
1183 & graupelncv(i,j), snowncv(i,j), rainncv(i,j), raincv(i,j), &
1184 & zs, prcp(i,j), sneqv_lnd(i,j), snowh_lnd(i,j), &
1185 & sncovr_lnd(i,j), &
1186 & ffrozp(i,j), frpcpn, &
1187 & rhosnfr(i,j), precipfr(i,j), exticeden, &
1189 & orog(i,j), stdev(i,j), &
1190 & conflx2(i,1,j), sfcprs(i,1,j),
sfctmp(i,1,j), q2(i,1,j), &
1191 & qcatm(i,1,j), rho2(i,1,j), semis_bck(i,j), lwdn(i,j), &
1192 & swdn(i,j), solnet_lnd(i,j), sfcems_lnd(i,j), chklowq(i,j), &
1193 & chs_lnd(i,j), flqc_lnd(i,j), flhc_lnd(i,j), rhonewsn_ex(i), &
1195 & mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt, &
1197 & wet(i,j), cmc(i,j), shdfac(i,j), alb_lnd(i,j), znt_lnd(i,j), &
1198 & z0_lnd(i,j), snoalb1d_lnd(i,j), albbck_lnd(i,j), &
1199 & xlai(i,j), landusef(i,:,j), nlcat, &
1200 & soilctop(i,:,j), nscat, smcwlt(i,j), smcref(i,j), &
1201 & qsfc_lnd(i,j), qsg_lnd(i,j), qvg_lnd(i,j), qcg_lnd(i,j), &
1202 & dew_lnd(i,j), soilt1_lnd(i,j), &
1203 & tsnav_lnd(i,j), tbot(i,j), vtype_lnd(i,j), stype_lnd(i,j), &
1204 & xland(i,j), iswater, isice, xice_lnd(i,j), xice_threshold, &
1206 & con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, stbolt, &
1208 & smsoil(i,:,j), slsoil(i,:,j), soilm(i,j), smmax(i,j), &
1209 & stsoil(i,:,j), soilt_lnd(i,j), &
1210 & edir(i,j), ec(i,j), ett(i,j), esnow_lnd(i,j), snoh_lnd(i,j), &
1211 & hfx_lnd(i,j), qfx_lnd(i,j), lh_lnd(i,j), &
1212 & infiltr(i,j), runoff1(i,j), runoff2(i,j), acrunoff(i,j), &
1213 & sfcexc(i,j), acceta(i,j), ssoil_lnd(i,j), &
1214 & snfallac_lnd(i,j), acsn_lnd(i,j), snomlt_lnd(i,j), &
1215 & smfrsoil(i,:,j),keepfrsoil(i,:,j), &
1216 & add_fire_heat_flux,fire_heat_flux1d(i,j), .false., &
1217 & shdmin1d(i,j), shdmax1d(i,j), rdlai, &
1218 & ims,ime, jms,jme, kms,kme, &
1219 & its,ite, jts,jte, kts,kte, errmsg, errflg )
1220 if(debug_print)
then
1221 if (abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1222 abs(xlon_d(i)-testptlon).lt.0.5)
then
1223 print 100,
'(ruc_lsm_drv after RUC land call) i=',i, &
1224 ' lat,lon=',xlat_d(i),xlon_d(i), &
1225 'sneqv(i,j) =',sneqv_lnd(i,j), &
1226 'snowh(i,j) =',snowh_lnd(i,j), &
1227 'sncovr(i,j) =',sncovr_lnd(i,j), &
1228 'vtype(i,j) =',vtype_lnd(i,j), &
1229 'stype(i,j) =',stype_lnd(i,j), &
1230 'wet(i,j) =',wet(i,j), &
1231 'cmc(i,j) =',cmc(i,j), &
1232 'qsfc(i,j) =',qsfc_lnd(i,j), &
1233 'qvg(i,j) =',qvg_lnd(i,j), &
1234 'qsg(i,j) =',qsg_lnd(i,j), &
1235 'qcg(i,j) =',qcg_lnd(i,j), &
1236 'dew(i,j) =',dew_lnd(i,j), &
1237 'soilt(i,j) =',soilt_lnd(i,j), &
1238 'tskin(i) =',tskin_lnd(i), &
1239 'soilt1(i,j) =',soilt1_lnd(i,j), &
1240 'tsnav(i,j) =',tsnav_lnd(i,j), &
1241 'smsoil(i,:,j)=',smsoil(i,:,j), &
1242 'slsoil(i,:,j)=',slsoil(i,:,j), &
1243 'stsoil(i,:,j)=',stsoil(i,:,j), &
1244 'smfrsoil(i,:,j)=',smfrsoil(i,:,j), &
1245 'keepfrsoil(i,:,j)=',keepfrsoil(i,:,j), &
1246 'soilm(i,j) =',soilm(i,j), &
1247 'smmax(i,j) =',smmax(i,j), &
1248 'hfx(i,j) =',hfx_lnd(i,j), &
1249 'lh(i,j) =',lh_lnd(i,j), &
1250 'infiltr(i,j) =',infiltr(i,j), &
1251 'runoff1(i,j) =',runoff1(i,j), &
1252 'runoff2(i,j) =',runoff2(i,j), &
1253 'ssoil(i,j) =',ssoil_lnd(i,j), &
1254 'snfallac(i,j) =',snfallac_lnd(i,j), &
1255 'acsn_lnd(i,j) =',acsn_lnd(i,j), &
1256 'snomlt(i,j) =',snomlt_lnd(i,j),
'xlai(i,j) =',xlai(i,j)
1291 evbs(i) = edir(i,j) * rhoh2o * con_hvap
1292 evcw(i) = ec(i,j) * rhoh2o * con_hvap
1293 trans(i) = ett(i,j) * rhoh2o * con_hvap
1294 sbsno(i) = esnow_lnd(i,j) * con_hfus
1295 snohf(i) = snoh_lnd(i,j)
1298 evap_lnd(i) = qfx_lnd(i,j) / rho(i)
1299 hflx_lnd(i) = hfx_lnd(i,j) / (con_cp*rho(i))
1300 gflux_lnd(i) = ssoil_lnd(i,j)
1301 qsurf_lnd(i) = qsfc_lnd(i,j)
1302 tsurf_lnd(i) = soilt_lnd(i,j)
1303 tsnow_lnd(i) = soilt1_lnd(i,j)
1304 stm(i) = soilm(i,j) * 1.e-3_kind_phys
1306 runof(i) = runoff1(i,j) * rhoh2o
1307 drain(i) = runoff2(i,j) * rhoh2o
1309 wetness(i) = wet(i,j)
1310 sfcqv_lnd(i) = qvg_lnd(i,j)
1311 sfcqc_lnd(i) = qcg_lnd(i,j)
1313 rhosnf(i) = rhosnfr(i,j)
1314 acsnow_lnd(i) = acsn_lnd(i,j)
1315 snowmt_lnd(i) = snomlt_lnd(i,j)
1318 runoff(i) = runoff(i) + (drain(i)+runof(i)) * delt
1319 srunoff(i) = srunoff(i) + runof(i) * delt
1322 snowfallac_lnd(i) = snfallac_lnd(i,j)
1324 snwdph_lnd(i) = snowh_lnd(i,j) * rhoh2o
1326 laixy(i) = xlai(i,j)
1327 smcwlt2(i) = smcwlt(i,j)
1328 smcref2(i) = smcref(i,j)
1330 canopy(i) = cmc(i,j)
1331 weasd_lnd(i) = sneqv_lnd(i,j)
1332 sncovr1_lnd(i) = sncovr_lnd(i,j)
1335 z0rl_lnd(i) = znt_lnd(i,j)*100._kind_phys
1337 semis_lnd(i) = sfcems_lnd(i,j)
1339 semisbase(i) = semis_bck(i,j)
1341 sfalb_lnd(i) = alb_lnd(i,j)
1343 albdvis_lnd(i) = sfalb_lnd(i)
1344 albdnir_lnd(i) = sfalb_lnd(i)
1345 albivis_lnd(i) = sfalb_lnd(i)
1346 albinir_lnd(i) = sfalb_lnd(i)
1349 smois(i,k) = smsoil(i,k,j)
1350 sh2o(i,k) = slsoil(i,k,j)
1351 tslb(i,k) = stsoil(i,k,j)
1352 keepfr(i,k) = keepfrsoil(i,k,j)
1353 smfrkeep(i,k) = smfrsoil(i,k,j)
1355 if(debug_print)
then
1356 write (0,*)
'LAND -i,j,stype_lnd,vtype_lnd',i,j,stype_lnd(i,j),vtype_lnd(i,j)
1357 write (0,*)
'i,j,tsurf_lnd(i)',i,j,tsurf_lnd(i)
1358 write (0,*)
'kdt,iter,stsoil(i,:,j)',kdt,iter,stsoil(i,:,j)
1359 write (0,*)
'laixy(i)',laixy(i)
1363 if (flag_ice_uncoupled(i))
then
1366 if (debug_print)
then
1367 if (abs(xlat_d(i)-testptlat).lt.0.1 .and. &
1368 abs(xlon_d(i)-testptlon).lt.0.1)
then
1370 print 101,
'(ruc_lsm_drv_ice) i=',i, &
1371 ' lat,lon=',xlat_d(i),xlon_d(i), &
1372 'sfcqv_ice',sfcqv_ice(i), &
1373 'sncovr1_ice',sncovr1_ice(i),
'sfalb_ice',sfalb_ice(i),&
1374 'sfcqc_ice',sfcqc_ice(i),
'tsnow_ice',tsnow_ice(i), &
1375 'prsl1',prsl1(i),
't1',t1(i),
'snwdph_ice ',snwdph_ice(i), &
1376 'srflag',srflag(i),
'weasd_ice',weasd_ice(i), &
1377 'tsurf_ice',tsurf_ice(i),
'tslb(i,1)',tslb(i,1)
1380 101
format (
";;; ",a,i4,a,2f14.7/(4(a10,
'='es9.2)))
1386 sncovr_ice(i,j) = sncovr1_ice(i)
1388 snoalb1d_ice(i,j) = 0.75_kind_phys
1389 albbck_ice(i,j) = 0.55_kind_phys
1390 alb_ice(i,j) = sfalb_ice(i)
1391 solnet_ice(i,j) = dswsfc(i)*(one-alb_ice(i,j))
1392 qvg_ice(i,j) = sfcqv_ice(i)
1393 qsfc_ice(i,j) = sfcqv_ice(i)/(one+sfcqv_ice(i))
1394 qsg_ice(i,j) =
rslf(prsl1(i),tsurf_ice(i))
1395 qcg_ice(i,j) = sfcqc_ice(i)
1396 semis_bck(i,j) = 0.99_kind_phys
1398 sfcems_ice(i,j) = semisbase(i) * (one-sncovr_ice(i,j)) + 0.99_kind_phys * sncovr_ice(i,j)
1400 sfcems_ice(i,j) = semis_ice(i)
1402 cmc(i,j) = canopy(i)
1403 soilt_ice(i,j) = tsurf_ice(i)
1404 if (tsnow_ice(i) > 150._kind_phys .and. tsnow_ice(i) < con_t0c)
then
1405 soilt1_ice(i,j) = tsnow_ice(i)
1407 soilt1_ice(i,j) = tsurf_ice(i)
1409 tsnav_ice(i,j) = min(zero,0.5_kind_phys*(soilt_ice(i,j) + soilt1_ice(i,j)) - con_t0c)
1411 stsice(i,k,j) = tsice(i,k)
1414 smfrice(i,k,j) = one
1415 keepfrice(i,k,j) = one
1420 chs_ice(i,j) = ch_ice(i) * wind(i)
1421 flhc_ice(i,j) = chs_ice(i,j) * rho(i) * con_cp * (one + 0.84_kind_phys*q2(i,1,j))
1422 flqc_ice(i,j) = chs_ice(i,j) * rho(i) * wet_ice(i,j)
1425 cmm_ice(i) = cm_ice(i) * wind(i)
1426 chh_ice(i) = chs_ice(i,j) * rho(i)
1429 snowh_ice(i,j) = snwdph_ice(i) * 0.001_kind_phys
1430 sneqv_ice(i,j) = weasd_ice(i)
1432 snfallac_ice(i,j) = snowfallac_ice(i)
1433 acsn_ice(i,j) = acsnow_ice(i)
1434 snomlt_ice(i,j) = snowmt_ice(i)
1438 if (sneqv_ice(i,j) /= zero .and. snowh_ice(i,j) == zero)
then
1439 snowh_ice(i,j) = 0.003_kind_phys * sneqv_ice(i,j)
1442 if (snowh_ice(i,j) /= zero .and. sneqv_ice(i,j) == zero)
then
1443 sneqv_ice(i,j) = 300._kind_phys * snowh_ice(i,j)
1446 if (sneqv_ice(i,j) > zero .and. snowh_ice(i,j) > zero)
then
1447 if(sneqv_ice(i,j)/snowh_ice(i,j) > 950._kind_phys)
then
1448 sneqv_ice(i,j) = 300._kind_phys * snowh_ice(i,j)
1452 z0_ice(i,j) = z0rl_ice(i)/100._kind_phys
1453 znt_ice(i,j) = z0rl_ice(i)/100._kind_phys
1464 if(abs(snowh_ice(i,j))<1e-20_kind_phys)
then
1467 if(abs(sneqv_ice(i,j))<1e-20_kind_phys)
then
1472 call lsmruc(xlat_d(i),xlon_d(i), &
1473 & delt, flag_init, lsm_cold_start, kdt, iter, nsoil, &
1474 & graupelncv(i,j), snowncv(i,j), rainncv(i,j), raincv(i,j), &
1475 & zs, prcp(i,j), sneqv_ice(i,j), snowh_ice(i,j), &
1476 & sncovr_ice(i,j), &
1477 & ffrozp(i,j), frpcpn, &
1478 & rhosnfr(i,j), precipfr(i,j), exticeden, &
1480 & orog(i,j), stdev(i,j), &
1481 & conflx2(i,1,j), sfcprs(i,1,j),
sfctmp(i,1,j), q2(i,1,j), &
1482 & qcatm(i,1,j), rho2(i,1,j), semis_bck(i,j), lwdn(i,j), &
1483 & swdn(i,j), solnet_ice(i,j), sfcems_ice(i,j), chklowq(i,j), &
1484 & chs_ice(i,j), flqc_ice(i,j), flhc_ice(i,j), rhonewsn_ex(i), &
1486 & mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt, &
1488 & wet_ice(i,j), cmc(i,j), shdfac(i,j), alb_ice(i,j), &
1489 & znt_ice(i,j), z0_ice(i,j), snoalb1d_ice(i,j), &
1490 & albbck_ice(i,j), xlai(i,j),landusef(i,:,j), nlcat, &
1491 & soilctop(i,:,j), nscat, smcwlt(i,j), smcref(i,j), &
1492 & qsfc_ice(i,j), qsg_ice(i,j), qvg_ice(i,j), qcg_ice(i,j), &
1493 & dew_ice(i,j), soilt1_ice(i,j), &
1494 & tsnav_ice(i,j), tbot(i,j), vtype_ice(i,j), stype_ice(i,j), &
1495 & xland(i,j), iswater, isice, xice(i,j), xice_threshold, &
1497 & con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, stbolt, &
1499 & smice(i,:,j), slice(i,:,j), soilm(i,j), smmax(i,j), &
1500 & stsice(i,:,j), soilt_ice(i,j), &
1501 & edir(i,j), ec(i,j), ett(i,j), esnow_ice(i,j), snoh_ice(i,j), &
1502 & hfx_ice(i,j), qfx_ice(i,j), lh_ice(i,j), &
1503 & infiltr(i,j), runoff1(i,j), runoff2(i,j), acrunoff(i,j), &
1504 & sfcexc(i,j), acceta(i,j), ssoil_ice(i,j), &
1505 & snfallac_ice(i,j), acsn_ice(i,j), snomlt_ice(i,j), &
1506 & smfrice(i,:,j),keepfrice(i,:,j), &
1507 & add_fire_heat_flux,fire_heat_flux1d(i,j), .false., &
1508 & shdmin1d(i,j), shdmax1d(i,j), rdlai, &
1509 & ims,ime, jms,jme, kms,kme, &
1510 & its,ite, jts,jte, kts,kte, &
1514 evap_ice(i) = qfx_ice(i,j) / rho(i)
1515 ep1d_ice(i) = qfx_ice(i,j) * con_hvap
1516 hflx_ice(i) = hfx_ice(i,j) / (con_cp*rho(i))
1517 gflux_ice(i) = ssoil_ice(i,j)
1519 qsurf_ice(i) = qsfc_ice(i,j)
1520 tsurf_ice(i) = soilt_ice(i,j)
1521 tsnow_ice(i) = soilt1_ice(i,j)
1523 sfcqv_ice(i) = qvg_ice(i,j)
1524 sfcqc_ice(i) = qcg_ice(i,j)
1526 rhosnf(i) = rhosnfr(i,j)
1527 snowfallac_ice(i) = snfallac_ice(i,j)
1528 acsnow_ice(i) = acsn_ice(i,j)
1529 snowmt_ice(i) = snomlt_ice(i,j)
1531 snwdph_ice(i) = snowh_ice(i,j) * rhoh2o
1532 weasd_ice(i) = sneqv_ice(i,j)
1533 sncovr1_ice(i) = sncovr_ice(i,j)
1534 z0rl_ice(i) = znt_ice(i,j)*100._kind_phys
1536 semis_ice(i) = sfcems_ice(i,j)
1538 sfalb_ice(i) = alb_ice(i,j)
1540 albdvis_ice(i) = sfalb_ice(i)
1541 albdnir_ice(i) = sfalb_ice(i)
1542 albivis_ice(i) = sfalb_ice(i)
1543 albinir_ice(i) = sfalb_ice(i)
1548 stm(i) = 3.e3_kind_phys
1551 tsice(i,k) = stsice(i,k,j)
1552 if(.not. frac_grid .or. .not. land(i))
then
1555 tslb(i,k) = stsice(i,k,j)
1560 if(debug_print)
then
1561 write (0,*)
'ICE - i,j,stype_ice,vtype_ice)',i,j,stype_ice(i,j),vtype_ice(i,j)
1562 write (0,*)
'i,j,tsurf_ice(i)',i,j,tsurf_ice(i)
1563 write (0,*)
'kdt,iter,stsice(i,:,j)',kdt,iter,stsice(i,:,j)
1564 write (0,*)
'laixy(i)',laixy(i)
1578 if(debug_print)
write (0,*)
'end ',i,flag_guess(i),flag_iter(i)
1579 if (flag_guess(i))
then
1580 if(debug_print)
write (0,*)
'guess run'
1582 weasd_lnd(i) = weasd_lnd_old(i)
1583 snwdph_lnd(i) = snwdph_lnd_old(i)
1584 tskin_lnd(i) = tskin_lnd_old(i)
1585 canopy(i) = canopy_old(i)
1586 tsnow_lnd(i) = tsnow_lnd_old(i)
1587 snowfallac_lnd(i) = snowfallac_lnd_old(i)
1588 acsnow_lnd(i) = acsnow_lnd_old(i)
1589 sfcqv_lnd(i) = sfcqv_lnd_old(i)
1590 sfcqc_lnd(i) = sfcqc_lnd_old(i)
1591 wetness(i) = wetness_old(i)
1592 z0rl_lnd(i) = z0rl_lnd_old(i)
1593 sncovr1_lnd(i) = sncovr1_lnd_old(i)
1594 snowmt_lnd(i) = snowmt_lnd_old(i)
1596 weasd_ice(i) = weasd_ice_old(i)
1597 snwdph_ice(i) = snwdph_ice_old(i)
1598 tskin_ice(i) = tskin_ice_old(i)
1599 tsnow_ice(i) = tsnow_ice_old(i)
1600 snowfallac_ice(i) = snowfallac_ice_old(i)
1601 acsnow_ice(i) = acsnow_ice_old(i)
1602 sfcqv_ice(i) = sfcqv_ice_old(i)
1603 sfcqc_ice(i) = sfcqc_ice_old(i)
1604 z0rl_ice(i) = z0rl_ice_old(i)
1605 sncovr1_ice(i) = sncovr1_ice_old(i)
1606 snowmt_ice(i) = snowmt_ice_old(i)
1607 srunoff(i) = srunoff_old(i)
1608 runoff(i) = runoff_old(i)
1611 smois(i,k) = smois_old(i,k)
1612 tslb(i,k) = tslb_old(i,k)
1613 tsice(i,k) = tsice_old(i,k)
1614 sh2o(i,k) = sh2o_old(i,k)
1615 keepfr(i,k) = keepfr_old(i,k)
1616 smfrkeep(i,k) = smfrkeep_old(i,k)
1619 if(debug_print)
write (0,*)
'iter run', i,j, tskin_ice(i),tsurf_ice(i)
1620 tskin_lnd(i) = tsurf_lnd(i)
1621 tskin_ice(i) = tsurf_ice(i)