327 subroutine lsm_ruc_run &
328 & ( iter, me, master, delt, kdt, im, nlev,
lsm_ruc, lsm, &
329 & imp_physics, imp_physics_gfdl, imp_physics_thompson, &
330 & imp_physics_nssl, do_mynnsfclay, &
331 & exticeden, lsoil_ruc, lsoil, mosaic_lu, mosaic_soil, &
332 & isncond_opt, isncovr_opt, nlcat, nscat, &
333 & rdlai, xlat_d, xlon_d, &
334 & oro, sigma, zs, t1, q1, qc, stype, vtype, vegtype_frac, &
335 & soiltype_frac, sigmaf, laixy, &
336 & dlwflx, dswsfc, tg3, coszen, land, icy, use_lake, &
337 & rainnc, rainc, ice, snow, graupel, prsl1, zf, &
338 & wind, shdmin, shdmax, &
339 & srflag, sfalb_lnd_bck, snoalb, &
340 & isot, ivegsrc, fice, smcwlt2, smcref2, &
341 & min_lakeice, min_seaice, oceanfrac, rhonewsn1, &
343 & con_cp, con_rd, con_rv, con_g, con_pi, con_hvap, &
344 & con_hfus, con_fvirt, stbolt, rhoh2o, &
346 & semisbase, semis_lnd, semis_ice, sfalb_lnd, sfalb_ice, &
347 & sncovr1_lnd, weasd_lnd, snwdph_lnd, tskin_lnd, &
348 & sncovr1_ice, weasd_ice, snwdph_ice, tskin_ice, &
350 & smois, tsice, tslb, sh2o, keepfr, smfrkeep, &
351 & canopy, trans, tsurf_lnd, tsnow_lnd, z0rl_lnd, &
352 & sfcqc_lnd, sfcqv_lnd, &
353 & qsurf_lnd, gflux_lnd, evap_lnd, hflx_lnd, &
354 & runof, runoff, srunoff, drain, &
355 & cm_lnd, ch_lnd, evbs, evcw, stm, wetness, &
356 & snowfallac_lnd, acsnow_lnd, snowmt_lnd, snohf, &
357 & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, &
359 & sfcqc_ice, sfcqv_ice, &
360 & tsurf_ice, tsnow_ice, z0rl_ice, &
361 & qsurf_ice, gflux_ice, evap_ice, ep1d_ice, hflx_ice, &
362 & cm_ice, ch_ice, snowfallac_ice, acsnow_ice, snowmt_ice, &
363 & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, &
364 & add_fire_heat_flux, fire_heat_flux_out, &
365 & frac_grid_burned_out, &
368 & cmm_lnd, chh_lnd, cmm_ice, chh_ice, &
370 & flag_iter, flag_guess, flag_init, lsm_cold_start, &
371 & flag_cice, frac_grid, errmsg, errflg &
377 integer,
intent(in) :: me, master
378 integer,
intent(in) :: im, nlev, iter, lsoil_ruc, lsoil, kdt, isot, ivegsrc
379 integer,
intent(in) :: mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt
380 integer,
intent(in) :: nlcat, nscat
381 integer,
intent(in) ::
lsm_ruc, lsm
382 integer,
intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, &
384 real (kind_phys),
dimension(:),
intent(in) :: xlat_d, xlon_d
385 real (kind_phys),
dimension(:),
intent(in) :: oro, sigma
386 real (kind_phys),
dimension(:),
intent(in),
optional :: sfalb_lnd_bck
387 real (kind_phys),
dimension(:),
intent(in) :: &
388 & t1, sigmaf, dlwflx, dswsfc, tg3, &
389 & coszen, prsl1, wind, shdmin, shdmax, &
390 & snoalb, zf, qc, q1, &
398 real (kind_phys),
intent(in) :: delt, min_seaice, min_lakeice
399 real (kind_phys),
intent(in) :: con_cp, con_rv, con_g, &
401 con_hvap, con_hfus, &
402 con_fvirt, stbolt, rhoh2o
404 logical,
dimension(:),
intent(in) :: flag_iter, flag_guess
405 logical,
dimension(:),
intent(in) :: land, icy
406 integer,
dimension(:),
intent(in) :: use_lake
407 logical,
dimension(:),
intent(in) :: flag_cice
408 logical,
intent(in) :: frac_grid
409 logical,
intent(in) :: do_mynnsfclay
410 logical,
intent(in) :: exticeden
412 logical,
intent(in) :: rdlai
415 integer,
dimension(:),
intent(inout) :: stype
416 integer,
dimension(:),
intent(in) :: vtype
418 real (kind_phys),
dimension(:,:),
intent(in) :: vegtype_frac
419 real (kind_phys),
dimension(:,:),
intent(in) :: soiltype_frac
421 real (kind_phys),
dimension(:),
intent(in) :: zs
422 real (kind_phys),
dimension(:),
intent(in) :: srflag
423 real (kind_phys),
dimension(:),
intent(inout),
optional :: &
424 & laixy, tsnow_lnd, sfcqv_lnd, sfcqc_lnd, sfcqc_ice, sfcqv_ice,&
426 real (kind_phys),
dimension(:),
intent(inout) :: &
427 & canopy, trans, smcwlt2, smcref2, &
429 & weasd_lnd, snwdph_lnd, tskin_lnd, &
430 & tsurf_lnd, z0rl_lnd, &
432 & weasd_ice, snwdph_ice, tskin_ice, &
433 & tsurf_ice, z0rl_ice, fice
436 real (kind_phys),
dimension(:),
intent(in),
optional :: &
437 & rainnc, rainc, ice, snow, graupel
438 real (kind_phys),
dimension(:),
intent(in) :: rhonewsn1
439 real (kind_phys),
dimension(:),
intent(in),
optional :: &
440 fire_heat_flux_out, frac_grid_burned_out
441 logical,
intent(in) :: add_fire_heat_flux
444 real (kind_phys),
dimension(:,:),
intent(inout),
optional :: &
445 & smois, tslb, sh2o, keepfr, smfrkeep
446 real (kind_phys),
dimension(:,:),
intent(inout) :: &
450 real (kind_phys),
dimension(:),
intent(inout),
optional :: &
451 & sfalb_lnd, sfalb_ice, wetness, snowfallac_lnd, &
452 & snowfallac_ice, rhosnf
453 real (kind_phys),
dimension(:),
intent(inout) :: &
454 & runof, drain, runoff, srunoff, evbs, evcw, &
455 & stm, semisbase, semis_lnd, semis_ice, &
457 & sncovr1_lnd, qsurf_lnd, gflux_lnd, evap_lnd, &
458 & cmm_lnd, chh_lnd, hflx_lnd, sbsno, &
459 & acsnow_lnd, snowmt_lnd, snohf, &
461 & sncovr1_ice, qsurf_ice, gflux_ice, evap_ice, ep1d_ice, &
462 & cmm_ice, chh_ice, hflx_ice, &
463 & acsnow_ice, snowmt_ice
465 real (kind_phys),
dimension(:),
intent( out) :: &
466 & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd
467 real (kind_phys),
dimension(:),
intent( out),
optional :: &
468 & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice
470 logical,
intent(in) :: flag_init, lsm_cold_start
471 character(len=*),
intent(out) :: errmsg
472 integer,
intent(out) :: errflg
476 real(kind_phys),
dimension(im,nlev) :: pattern_spp
479 real (kind_phys),
dimension(im) :: rho, rhonewsn_ex, &
480 & q0, qs1, albbcksol, srunoff_old, runoff_old, &
481 & tprcp_old, srflag_old, sr_old, canopy_old, wetness_old, &
483 & weasd_lnd_old, snwdph_lnd_old, tskin_lnd_old, &
484 & tsnow_lnd_old, snowfallac_lnd_old, acsnow_lnd_old, &
485 & sfcqv_lnd_old, sfcqc_lnd_old, z0rl_lnd_old, &
486 & sncovr1_lnd_old,snowmt_lnd_old, &
488 & weasd_ice_old, snwdph_ice_old, tskin_ice_old, &
489 & tsnow_ice_old, snowfallac_ice_old, acsnow_ice_old, &
490 & sfcqv_ice_old, sfcqc_ice_old, z0rl_ice_old, &
491 & sncovr1_ice_old,snowmt_ice_old
494 real (kind_phys),
dimension(im,lsoil_ruc,1) :: pattern_spp_lsm
496 real (kind_phys),
dimension(lsoil_ruc) :: et
498 real (kind_phys),
dimension(im,lsoil_ruc,1) :: smsoil, &
499 slsoil, stsoil, smfrsoil, keepfrsoil, stsice
500 real (kind_phys),
dimension(im,lsoil_ruc,1) :: smice, &
501 slice, stice, smfrice, keepfrice
503 real (kind_phys),
dimension(im,lsoil_ruc) :: smois_old, &
504 & tsice_old, tslb_old, sh2o_old, &
505 & keepfr_old, smfrkeep_old
507 real (kind_phys),
dimension(im,nlcat,1) :: landusef
508 real (kind_phys),
dimension(im,nscat,1) :: soilctop
510 real (kind_phys),
dimension (im,1,1) :: &
511 & conflx2, sfcprs, sfctmp, q2, qcatm, rho2
512 real (kind_phys),
dimension (im,1) :: orog, stdev
513 real (kind_phys),
dimension (im,1) :: &
514 & albbck_lnd, alb_lnd, chs_lnd, flhc_lnd, flqc_lnd, &
515 & wet, wet_ice, smmax, cmc, drip, ec, edir, ett, &
516 & dew_lnd, lh_lnd, esnow_lnd, etp, qfx_lnd, acceta, &
517 & ffrozp, lwdn, prcp, xland, xland_wat, xice, xice_lnd, &
518 & graupelncv, snowncv, rainncv, raincv, &
519 & solnet_lnd, sfcexc, &
520 & runoff1, runoff2, acrunoff, semis_bck, &
521 & sfcems_lnd, hfx_lnd, shdfac, shdmin1d, shdmax1d, &
522 & fire_heat_flux1d, &
523 & sneqv_lnd, snoalb1d_lnd, snowh_lnd, snoh_lnd, tsnav_lnd, &
524 & snomlt_lnd, sncovr_lnd, soilw, soilm, ssoil_lnd, &
526 & xlai, swdn, z0_lnd, znt_lnd, rhosnfr, infiltr, &
527 & precipfr, snfallac_lnd, acsn_lnd, soilt1_lnd, chklowq, &
528 & qsfc_lnd, qsg_lnd, qvg_lnd, qcg_lnd, smcwlt, smcref
530 real (kind_phys),
dimension (im,1) :: &
531 & albbck_ice, alb_ice, chs_ice, flhc_ice, flqc_ice, &
532 & dew_ice, lh_ice, esnow_ice, qfx_ice, &
533 & solnet_ice, sfcems_ice, hfx_ice, &
534 & sneqv_ice, snoalb1d_ice, snowh_ice, snoh_ice, tsnav_ice, &
535 & snomlt_ice, sncovr_ice, ssoil_ice, soilt_ice, &
536 & z0_ice, znt_ice, snfallac_ice, acsn_ice, &
537 & qsfc_ice, qsg_ice, qvg_ice, qcg_ice, soilt1_ice
540 real (kind_phys) :: xice_threshold
541 real (kind_phys) :: fwat, qsw, evapw, hfxw
543 character(len=256) :: llanduse
547 integer :: nsoil, iswater, isice
548 integer,
dimension (1:im,1:1) :: stype_wat, vtype_wat
549 integer,
dimension (1:im,1:1) :: stype_lnd, vtype_lnd
550 integer,
dimension (1:im,1:1) :: stype_ice, vtype_ice
554 integer :: ims,ime, its,ite, jms,jme, jts,jte, kms,kme, kts,kte
555 integer :: l, k, i, j, fractional_seaice, ilst
556 real (kind_phys) :: dm, cimin(im)
557 logical :: flag(im), flag_ice(im), flag_ice_uncoupled(im)
558 logical :: myj, frpcpn
559 logical :: debug_print
562 real (kind_phys) :: testptlat, testptlon
571 testptlat = 68.6_kind_phys
572 testptlon = 298.6_kind_phys
580 flag_ice(i) = .false.
581 if (icy(i) .and. .not. flag_cice(i))
then
583 if (oceanfrac(i) > zero)
then
584 cimin(i) = min_seaice
586 cimin(i) = min_lakeice
588 if (fice(i) >= cimin(i))
then
595 flag_ice_uncoupled(i) = (flag_ice(i) .and. use_lake(i)<1)
598 flag(i) = land(i) .or. flag_ice_uncoupled(i)
602 write (0,*)
'RUC LSM run'
603 write (0,*)
'stype=',ipr,stype(ipr)
604 write (0,*)
'vtype=',ipr,vtype(ipr)
605 write (0,*)
'kdt, iter =',kdt,iter
606 write (0,*)
'flag_init =',flag_init
607 write (0,*)
'lsm_cold_start =',lsm_cold_start
632 if(spp_lsm == 0)
then
633 pattern_spp(:,:) = 0.0
643 if(ivegsrc == 1)
then
644 llanduse =
'MODI-RUC'
648 write(errmsg,
'(a,i0)')
'Logic error in sfc_drv_ruc_run: iswater/isice not configured for ivegsrc=', ivegsrc
653 fractional_seaice = 1
654 if ( fractional_seaice == 0 )
then
655 xice_threshold = 0.5_kind_phys
656 else if ( fractional_seaice == 1 )
then
657 xice_threshold = 0.15_kind_phys
663 if(.not. land(i))
then
668 elseif (kdt == 1)
then
671 smcref(i,1) = refsmc(stype(i))
672 smcwlt(i,1) = wltsmc(stype(i))
677 xlai(i,1) = laitbl(vtype(i))
681 smcref(i,1) = smcref2(i)
682 smcwlt(i,1) = smcwlt2(i)
688 if (flag(i) .and. flag_guess(i))
then
690 wetness_old(i) = wetness(i)
691 canopy_old(i) = canopy(i)
693 weasd_lnd_old(i) = weasd_lnd(i)
694 snwdph_lnd_old(i) = snwdph_lnd(i)
695 tskin_lnd_old(i) = tskin_lnd(i)
696 tsnow_lnd_old(i) = tsnow_lnd(i)
697 sfcqv_lnd_old(i) = sfcqv_lnd(i)
698 sfcqc_lnd_old(i) = sfcqc_lnd(i)
699 z0rl_lnd_old(i) = z0rl_lnd(i)
700 sncovr1_lnd_old(i) = sncovr1_lnd(i)
701 snowmt_lnd_old(i) = snowmt_lnd(i)
702 acsnow_lnd_old(i) = acsnow_lnd(i)
703 snowfallac_lnd_old(i) = snowfallac_lnd(i)
704 srunoff_old(i) = srunoff(i)
705 runoff_old(i) = runoff(i)
707 weasd_ice_old(i) = weasd_ice(i)
708 snwdph_ice_old(i) = snwdph_ice(i)
709 tskin_ice_old(i) = tskin_ice(i)
710 tsnow_ice_old(i) = tsnow_ice(i)
711 sfcqv_ice_old(i) = sfcqv_ice(i)
712 sfcqc_ice_old(i) = sfcqc_ice(i)
713 z0rl_ice_old(i) = z0rl_ice(i)
714 sncovr1_ice_old(i) = sncovr1_ice(i)
715 snowmt_ice_old(i) = snowmt_ice(i)
716 acsnow_ice_old(i) = acsnow_ice(i)
717 snowfallac_ice_old(i) = snowfallac_ice(i)
720 smois_old(i,k) = smois(i,k)
721 tslb_old(i,k) = tslb(i,k)
722 sh2o_old(i,k) = sh2o(i,k)
723 keepfr_old(i,k) = keepfr(i,k)
724 smfrkeep_old(i,k) = smfrkeep(i,k)
726 tsice_old(i,k) = tsice(i,k)
735 if (flag_iter(i) .and. flag(i))
then
743 canopy(i) = max(canopy(i), zero)
771 rhosnfr(i,j) = -1.e3_kind_phys
776 snfallac_lnd(i,j) = zero
778 snfallac_ice(i,j) = zero
780 snomlt_lnd(i,j) = zero
781 snomlt_ice(i,j) = zero
790 if (flag_iter(i) .and. flag(i))
then
791 q0(i) = max(q1(i)/(one-q1(i)), epsln)
793 rho(i) = prsl1(i) / (con_rd*t1(i)*(one+con_fvirt*q0(i)))
794 qs1(i) =
rslf(prsl1(i),t1(i))
795 q0(i) = min(qs1(i), q0(i))
812 if (imp_physics==imp_physics_gfdl .or. imp_physics==imp_physics_thompson .or. &
813 imp_physics == imp_physics_nssl)
then
822 stdev(i,j) = sigma(i)
824 landusef(i,k,j) = vegtype_frac(i,k)
827 soilctop(i,k,j) = soiltype_frac(i,k)
835 if (flag_iter(i) .and. flag(i))
then
838 ffrozp(i,j) = srflag(i)
840 ffrozp(i,j) = real(nint(srflag(i)),kind_phys)
844 conflx2(i,1,j) = zf(i) * 2._kind_phys
855 sfcprs(i,1,j) = prsl1(i)
858 qcatm(i,1,j) = max(zero, qc(i))
874 lwdn(i,j) = dlwflx(i)
875 swdn(i,j) = dswsfc(i)
884 prcp(i,j) = rhoh2o * (rainc(i)+rainnc(i))
885 raincv(i,j) = rhoh2o * rainc(i)
886 rainncv(i,j) = rhoh2o * rainnc(i)
887 graupelncv(i,j) = rhoh2o * graupel(i)
888 snowncv(i,j) = rhoh2o * snow(i)
889 rhonewsn_ex(i) = rhonewsn1(i)
890 if (debug_print)
then
892 if (abs(xlat_d(i)-testptlat).lt.0.2 .and. &
893 abs(xlon_d(i)-testptlon).lt.0.2)
then
895 print 100,
'(ruc_lsm_drv) i=',i, &
896 ' lat,lon=',xlat_d(i),xlon_d(i), &
897 'rainc',rainc(i),
'rainnc',rainnc(i), &
898 'graupel',graupel(i),
'qc',qc(i),
'sfcqv_lnd',sfcqv_lnd(i),&
899 'dlwflx',dlwflx(i),
'dswsfc',dswsfc(i), &
900 'sncovr1_lnd',sncovr1_lnd(i),
'sfalb_lnd_bck',sfalb_lnd_bck(i),&
901 'prsl1',prsl1(i),
't1',t1(i), &
902 'srflag',srflag(i),
'weasd mm ',weasd_lnd(i), &
903 'tsnow_lnd',tsnow_lnd(i),
'snwdph mm',snwdph_lnd(i), &
904 'tsurf_lnd',tsurf_lnd(i),
'tslb(i,1)',tslb(i,1)
907 100
format (
";;; ",a,i4,a,2f14.7/(4(a10,
'='es9.2)))
919 if(ivegsrc == 1)
then
923 vtype_lnd(i,j) = vtype(i)
924 stype_lnd(i,j) = stype(i)
937 elseif(flag_ice_uncoupled(i))
then
942 write (0,*)
'MODIS landuse is not available'
945 semis_bck(i,j) = semisbase(i)
947 shdfac(i,j) = sigmaf(i)*100._kind_phys
948 shdmin1d(i,j) = shdmin(i)*100._kind_phys
949 shdmax1d(i,j) = shdmax(i)*100._kind_phys
950 fire_heat_flux1d(i,j) = fire_heat_flux_out(i)
975 qvg_lnd(i,j) = sfcqv_lnd(i)
976 qsfc_lnd(i,j) = sfcqv_lnd(i)/(1.+sfcqv_lnd(i))
977 qsg_lnd(i,j) =
rslf(prsl1(i),tsurf_lnd(i))
978 qcg_lnd(i,j) = sfcqc_lnd(i)
979 sncovr_lnd(i,j) = sncovr1_lnd(i)
981 sfcems_lnd(i,j) = semisbase(i) * (one-sncovr_lnd(i,j)) + 0.99_kind_phys * sncovr_lnd(i,j)
983 sfcems_lnd(i,j) = semis_lnd(i)
986 if(coszen(i) > zero .and. weasd_lnd(i) < 1.e-4_kind_phys)
then
989 dm = (one+2._kind_phys*d(ilst))/(one+2._kind_phys*d(ilst)*coszen(i))
990 albbcksol(i) = sfalb_lnd_bck(i)*dm
992 albbcksol(i) = sfalb_lnd_bck(i)
995 snoalb1d_lnd(i,j) = snoalb(i)
996 albbck_lnd(i,j) = min(0.9_kind_phys,albbcksol(i))
999 if (spp_lsm == 1)
then
1002 pattern_spp_lsm(i,k,j) = pattern_spp(i,k)
1006 albbck_lnd(i,j) = min(albbck_lnd(i,j) * (one + 0.4_kind_phys*pattern_spp_lsm(i,1,j)), one)
1007 sfcems_lnd(i,j) = min(sfcems_lnd(i,j) * (one + 0.1_kind_phys*pattern_spp_lsm(i,1,j)), one)
1008 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
1012 smois(i,k) = smois(i,k)*(one+1.5_kind_phys*pattern_spp_lsm(i,k,j))
1017 alb_lnd(i,j) = albbck_lnd(i,j) * (one-sncovr_lnd(i,j)) + snoalb(i) * sncovr_lnd(i,j)
1018 solnet_lnd(i,j) = dswsfc(i)*(one-alb_lnd(i,j))
1020 IF ( add_fire_heat_flux .and. fire_heat_flux_out(i) > 0)
then
1021 if (debug_print)
then
1022 print *,
'alb_lnd before fire, xlat/xlon ', alb_lnd(i,j), xlat_d(i),xlon_d(i)
1023 print *,
'fire_heat_flux_out, frac_grid_burned_out, xlat/xlon ', &
1024 fire_heat_flux_out(i),frac_grid_burned_out(i),xlat_d(i),xlon_d(i)
1027 alb_lnd(i,j) = alb_lnd(i,j) * (one-frac_grid_burned_out(i)) + 0.08_kind_phys*frac_grid_burned_out(i)
1028 if (debug_print)
then
1029 print *,
'alb_lnd after fire, xlat/xlon ', alb_lnd(i,j), xlat_d(i),xlon_d(i)
1033 cmc(i,j) = canopy(i)
1034 soilt_lnd(i,j) = tsurf_lnd(i)
1036 if (tsnow_lnd(i) > 200._kind_phys .and. tsnow_lnd(i) < con_t0c)
then
1037 soilt1_lnd(i,j) = tsnow_lnd(i)
1039 soilt1_lnd(i,j) = tsurf_lnd(i)
1041 tsnav_lnd(i,j) = min(zero,0.5_kind_phys*(soilt_lnd(i,j) + soilt1_lnd(i,j)) - con_t0c)
1043 smsoil(i,k,j) = smois(i,k)
1044 slsoil(i,k,j) = sh2o(i,k)
1045 stsoil(i,k,j) = tslb(i,k)
1046 smfrsoil(i,k,j) = smfrkeep(i,k)
1047 keepfrsoil(i,k,j) = keepfr(i,k)
1050 if (wetness(i) > zero)
then
1051 wet(i,j) = wetness(i)
1053 wet(i,j) = max(0.0001_kind_phys,smsoil(i,1,j)/0.3_kind_phys)
1056 chs_lnd(i,j) = ch_lnd(i) * wind(i)
1057 flhc_lnd(i,j) = chs_lnd(i,j) * rho(i) * con_cp * (one+0.84_kind_phys*q2(i,1,j))
1058 flqc_lnd(i,j) = chs_lnd(i,j) * rho(i) * wet(i,j)
1061 cmm_lnd(i) = cm_lnd(i) * wind(i)
1062 chh_lnd(i) = chs_lnd(i,j) * rho(i)
1064 sneqv_lnd(i,j) = weasd_lnd(i)
1065 snowh_lnd(i,j) = snwdph_lnd(i) * 0.001_kind_phys
1069 snfallac_lnd(i,j) = snowfallac_lnd(i)
1070 acsn_lnd(i,j) = acsnow_lnd(i)
1071 snomlt_lnd(i,j) = snowmt_lnd(i)
1075 if (sneqv_lnd(i,j) /= zero .and. snowh_lnd(i,j) == zero)
then
1076 if (debug_print) print *,
'bad sneqv_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j),xlat_d(i),xlon_d(i)
1077 if(sneqv_lnd(i,j) < epsln.or.soilt_lnd(i,j)>con_t0c)
then
1078 sneqv_lnd(i,j) = zero
1079 snowh_lnd(i,j) = zero
1081 sneqv_lnd(i,j) = 300._kind_phys * snowh_lnd(i,j)
1083 if (debug_print) print *,
'fixed sneqv_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j)
1084 elseif (snowh_lnd(i,j) /= zero .and. sneqv_lnd(i,j) == zero)
then
1085 if (debug_print) print *,
'bad snowh_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j),xlat_d(i),xlon_d(i)
1086 if(snowh_lnd(i,j) < 3.e-10_kind_dbl_prec.or.soilt_lnd(i,j)>con_t0c)
then
1087 snowh_lnd(i,j) = zero
1088 sneqv_lnd(i,j) = zero
1090 snowh_lnd(i,j) = 0.003_kind_dbl_prec * sneqv_lnd(i,j)
1092 if (debug_print) print *,
'fixed snowh_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j)
1093 elseif (sneqv_lnd(i,j) > zero .and. snowh_lnd(i,j) > zero)
then
1094 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1095 abs(xlon_d(i)-testptlon).lt.0.5)
then
1096 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)
1098 if(sneqv_lnd(i,j)/snowh_lnd(i,j) > 500._kind_phys)
then
1099 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1100 abs(xlon_d(i)-testptlon).lt.0.5)
then
1101 print *,
'large snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1102 print *,
'large snow density lat/lon',kdt,i,j,xlat_d(i),xlon_d(i)
1104 if(soilt_lnd(i,j)>con_t0c)
then
1105 snowh_lnd(i,j) = zero
1106 sneqv_lnd(i,j) = zero
1108 snowh_lnd(i,j) = 0.002_kind_dbl_prec * sneqv_lnd(i,j)
1110 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1111 abs(xlon_d(i)-testptlon).lt.0.5)
then
1112 print *,
'fixed large snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1114 elseif(sneqv_lnd(i,j)/snowh_lnd(i,j) < 58._kind_phys)
then
1115 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1116 abs(xlon_d(i)-testptlon).lt.0.5)
then
1117 print *,
'small snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1118 print *,
'small snow density lat/lon',kdt,i,j,xlat_d(i),xlon_d(i)
1120 if(soilt_lnd(i,j)>con_t0c)
then
1121 snowh_lnd(i,j) = zero
1122 sneqv_lnd(i,j) = zero
1124 sneqv_lnd(i,j) = 58._kind_phys * snowh_lnd(i,j)
1126 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1127 abs(xlon_d(i)-testptlon).lt.0.5)
then
1128 print *,
'fixed small snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1134 z0_lnd(i,j) = z0rl_lnd(i)/100._kind_phys
1135 znt_lnd(i,j) = z0rl_lnd(i)/100._kind_phys
1144 if(abs(snowh_lnd(i,j))<1e-20_kind_phys)
then
1147 if(abs(sneqv_lnd(i,j))<1e-20_kind_phys)
then
1151 if (debug_print)
then
1154 if (abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1155 abs(xlon_d(i)-testptlon).lt.0.5)
then
1157 print 100,
'(ruc_lsm_drv before RUC land call) i=',i, &
1158 ' lat,lon=',xlat_d(i),xlon_d(i), &
1159 'rainc',rainc(i),
'rainnc',rainnc(i),
'prcp',prcp(i,j), &
1160 'graupel',graupel(i),
'qc',qc(i),
'sfcqv_lnd',sfcqv_lnd(i), &
1161 'dlwflx',dlwflx(i),
'dswsfc',dswsfc(i), &
1162 'sncovr1_lnd',sncovr1_lnd(i),
'sfalb_lnd_bck',sfalb_lnd_bck(i),&
1163 'albbcksol',albbcksol(i),
'alb_lnd',alb_lnd(i,j), &
1164 'solnet_lnd',solnet_lnd(i,j),
't1',t1(i), &
1165 'sfcems_lnd',sfcems_lnd(i,j),
'flhc_lnd',flhc_lnd(i,j), &
1166 'flqc_lnd',flqc_lnd(i,j),
'wet',wet(i,j),
'cmc',cmc(i,j), &
1167 'qcg_lnd',qcg_lnd(i,j),
'dew',dew_lnd(i,j), &
1168 'znt_lnd',znt_lnd(i,j),
'shdfac',shdfac(i,j), &
1169 'srflag',srflag(i),
'weasd_lnd',weasd_lnd(i), &
1170 'smsoil1',smsoil(i,1,j),
'slsoil',slsoil(i,1,j), &
1171 'keepfrsoil',keepfrsoil(i,1,j), &
1172 'tsurf_lnd',tsurf_lnd(i),
'tslb(i,1)',tslb(i,1)
1178 call lsmruc(xlat_d(i),xlon_d(i), &
1179 & delt, flag_init, lsm_cold_start, kdt, iter, nsoil, &
1180 & graupelncv(i,j), snowncv(i,j), rainncv(i,j), raincv(i,j), &
1181 & zs, prcp(i,j), sneqv_lnd(i,j), snowh_lnd(i,j), &
1182 & sncovr_lnd(i,j), &
1183 & ffrozp(i,j), frpcpn, &
1184 & rhosnfr(i,j), precipfr(i,j), exticeden, &
1186 & orog(i,j), stdev(i,j), &
1187 & conflx2(i,1,j), sfcprs(i,1,j),
sfctmp(i,1,j), q2(i,1,j), &
1188 & qcatm(i,1,j), rho2(i,1,j), semis_bck(i,j), lwdn(i,j), &
1189 & swdn(i,j), solnet_lnd(i,j), sfcems_lnd(i,j), chklowq(i,j), &
1190 & chs_lnd(i,j), flqc_lnd(i,j), flhc_lnd(i,j), rhonewsn_ex(i), &
1192 & mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt, &
1194 & wet(i,j), cmc(i,j), shdfac(i,j), alb_lnd(i,j), znt_lnd(i,j), &
1195 & z0_lnd(i,j), snoalb1d_lnd(i,j), albbck_lnd(i,j), &
1196 & xlai(i,j), landusef(i,:,j), nlcat, &
1197 & soilctop(i,:,j), nscat, smcwlt(i,j), smcref(i,j), &
1198 & qsfc_lnd(i,j), qsg_lnd(i,j), qvg_lnd(i,j), qcg_lnd(i,j), &
1199 & dew_lnd(i,j), soilt1_lnd(i,j), &
1200 & tsnav_lnd(i,j), tbot(i,j), vtype_lnd(i,j), stype_lnd(i,j), &
1201 & xland(i,j), iswater, isice, xice_lnd(i,j), xice_threshold, &
1203 & con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, stbolt, &
1205 & smsoil(i,:,j), slsoil(i,:,j), soilm(i,j), smmax(i,j), &
1206 & stsoil(i,:,j), soilt_lnd(i,j), &
1207 & edir(i,j), ec(i,j), ett(i,j), esnow_lnd(i,j), snoh_lnd(i,j), &
1208 & hfx_lnd(i,j), qfx_lnd(i,j), lh_lnd(i,j), &
1209 & infiltr(i,j), runoff1(i,j), runoff2(i,j), acrunoff(i,j), &
1210 & sfcexc(i,j), acceta(i,j), ssoil_lnd(i,j), &
1211 & snfallac_lnd(i,j), acsn_lnd(i,j), snomlt_lnd(i,j), &
1212 & smfrsoil(i,:,j),keepfrsoil(i,:,j), &
1213 & add_fire_heat_flux,fire_heat_flux1d(i,j), .false., &
1214 & shdmin1d(i,j), shdmax1d(i,j), rdlai, &
1215 & ims,ime, jms,jme, kms,kme, &
1216 & its,ite, jts,jte, kts,kte, errmsg, errflg )
1217 if(debug_print)
then
1218 if (abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1219 abs(xlon_d(i)-testptlon).lt.0.5)
then
1220 print 100,
'(ruc_lsm_drv after RUC land call) i=',i, &
1221 ' lat,lon=',xlat_d(i),xlon_d(i), &
1222 'sneqv(i,j) =',sneqv_lnd(i,j), &
1223 'snowh(i,j) =',snowh_lnd(i,j), &
1224 'sncovr(i,j) =',sncovr_lnd(i,j), &
1225 'vtype(i,j) =',vtype_lnd(i,j), &
1226 'stype(i,j) =',stype_lnd(i,j), &
1227 'wet(i,j) =',wet(i,j), &
1228 'cmc(i,j) =',cmc(i,j), &
1229 'qsfc(i,j) =',qsfc_lnd(i,j), &
1230 'qvg(i,j) =',qvg_lnd(i,j), &
1231 'qsg(i,j) =',qsg_lnd(i,j), &
1232 'qcg(i,j) =',qcg_lnd(i,j), &
1233 'dew(i,j) =',dew_lnd(i,j), &
1234 'soilt(i,j) =',soilt_lnd(i,j), &
1235 'tskin(i) =',tskin_lnd(i), &
1236 'soilt1(i,j) =',soilt1_lnd(i,j), &
1237 'tsnav(i,j) =',tsnav_lnd(i,j), &
1238 'smsoil(i,:,j)=',smsoil(i,:,j), &
1239 'slsoil(i,:,j)=',slsoil(i,:,j), &
1240 'stsoil(i,:,j)=',stsoil(i,:,j), &
1241 'smfrsoil(i,:,j)=',smfrsoil(i,:,j), &
1242 'keepfrsoil(i,:,j)=',keepfrsoil(i,:,j), &
1243 'soilm(i,j) =',soilm(i,j), &
1244 'smmax(i,j) =',smmax(i,j), &
1245 'hfx(i,j) =',hfx_lnd(i,j), &
1246 'lh(i,j) =',lh_lnd(i,j), &
1247 'infiltr(i,j) =',infiltr(i,j), &
1248 'runoff1(i,j) =',runoff1(i,j), &
1249 'runoff2(i,j) =',runoff2(i,j), &
1250 'ssoil(i,j) =',ssoil_lnd(i,j), &
1251 'snfallac(i,j) =',snfallac_lnd(i,j), &
1252 'acsn_lnd(i,j) =',acsn_lnd(i,j), &
1253 'snomlt(i,j) =',snomlt_lnd(i,j),
'xlai(i,j) =',xlai(i,j)
1288 evbs(i) = edir(i,j) * rhoh2o * con_hvap
1289 evcw(i) = ec(i,j) * rhoh2o * con_hvap
1290 trans(i) = ett(i,j) * rhoh2o * con_hvap
1291 sbsno(i) = esnow_lnd(i,j) * con_hfus
1292 snohf(i) = snoh_lnd(i,j)
1295 evap_lnd(i) = qfx_lnd(i,j) / rho(i)
1296 hflx_lnd(i) = hfx_lnd(i,j) / (con_cp*rho(i))
1297 gflux_lnd(i) = ssoil_lnd(i,j)
1298 qsurf_lnd(i) = qsfc_lnd(i,j)
1299 tsurf_lnd(i) = soilt_lnd(i,j)
1300 tsnow_lnd(i) = soilt1_lnd(i,j)
1301 stm(i) = soilm(i,j) * 1.e-3_kind_phys
1303 runof(i) = runoff1(i,j) * rhoh2o
1304 drain(i) = runoff2(i,j) * rhoh2o
1306 wetness(i) = wet(i,j)
1307 sfcqv_lnd(i) = qvg_lnd(i,j)
1308 sfcqc_lnd(i) = qcg_lnd(i,j)
1310 rhosnf(i) = rhosnfr(i,j)
1311 acsnow_lnd(i) = acsn_lnd(i,j)
1312 snowmt_lnd(i) = snomlt_lnd(i,j)
1315 runoff(i) = runoff(i) + (drain(i)+runof(i)) * delt
1317 srunoff(i) = acrunoff(i,j)
1320 snowfallac_lnd(i) = snfallac_lnd(i,j)
1322 snwdph_lnd(i) = snowh_lnd(i,j) * rhoh2o
1324 laixy(i) = xlai(i,j)
1325 smcwlt2(i) = smcwlt(i,j)
1326 smcref2(i) = smcref(i,j)
1328 canopy(i) = cmc(i,j)
1329 weasd_lnd(i) = sneqv_lnd(i,j)
1330 sncovr1_lnd(i) = sncovr_lnd(i,j)
1333 z0rl_lnd(i) = znt_lnd(i,j)*100._kind_phys
1335 semis_lnd(i) = sfcems_lnd(i,j)
1337 semisbase(i) = semis_bck(i,j)
1339 sfalb_lnd(i) = alb_lnd(i,j)
1341 albdvis_lnd(i) = sfalb_lnd(i)
1342 albdnir_lnd(i) = sfalb_lnd(i)
1343 albivis_lnd(i) = sfalb_lnd(i)
1344 albinir_lnd(i) = sfalb_lnd(i)
1347 smois(i,k) = smsoil(i,k,j)
1348 sh2o(i,k) = slsoil(i,k,j)
1349 tslb(i,k) = stsoil(i,k,j)
1350 keepfr(i,k) = keepfrsoil(i,k,j)
1351 smfrkeep(i,k) = smfrsoil(i,k,j)
1353 if(debug_print)
then
1354 write (0,*)
'LAND -i,j,stype_lnd,vtype_lnd',i,j,stype_lnd(i,j),vtype_lnd(i,j)
1355 write (0,*)
'i,j,tsurf_lnd(i)',i,j,tsurf_lnd(i)
1356 write (0,*)
'kdt,iter,stsoil(i,:,j)',kdt,iter,stsoil(i,:,j)
1357 write (0,*)
'laixy(i)',laixy(i)
1361 if (flag_ice_uncoupled(i))
then
1364 if (debug_print)
then
1365 if (abs(xlat_d(i)-testptlat).lt.0.1 .and. &
1366 abs(xlon_d(i)-testptlon).lt.0.1)
then
1368 print 101,
'(ruc_lsm_drv_ice) i=',i, &
1369 ' lat,lon=',xlat_d(i),xlon_d(i), &
1370 'sfcqv_ice',sfcqv_ice(i), &
1371 'sncovr1_ice',sncovr1_ice(i),
'sfalb_ice',sfalb_ice(i),&
1372 'sfcqc_ice',sfcqc_ice(i),
'tsnow_ice',tsnow_ice(i), &
1373 'prsl1',prsl1(i),
't1',t1(i),
'snwdph_ice ',snwdph_ice(i), &
1374 'srflag',srflag(i),
'weasd_ice',weasd_ice(i), &
1375 'tsurf_ice',tsurf_ice(i),
'tslb(i,1)',tslb(i,1)
1378 101
format (
";;; ",a,i4,a,2f14.7/(4(a10,
'='es9.2)))
1384 sncovr_ice(i,j) = sncovr1_ice(i)
1386 snoalb1d_ice(i,j) = 0.75_kind_phys
1387 albbck_ice(i,j) = 0.55_kind_phys
1388 alb_ice(i,j) = sfalb_ice(i)
1389 solnet_ice(i,j) = dswsfc(i)*(one-alb_ice(i,j))
1390 qvg_ice(i,j) = sfcqv_ice(i)
1391 qsfc_ice(i,j) = sfcqv_ice(i)/(one+sfcqv_ice(i))
1392 qsg_ice(i,j) =
rslf(prsl1(i),tsurf_ice(i))
1393 qcg_ice(i,j) = sfcqc_ice(i)
1394 semis_bck(i,j) = 0.99_kind_phys
1396 sfcems_ice(i,j) = semisbase(i) * (one-sncovr_ice(i,j)) + 0.99_kind_phys * sncovr_ice(i,j)
1398 sfcems_ice(i,j) = semis_ice(i)
1400 cmc(i,j) = canopy(i)
1401 soilt_ice(i,j) = tsurf_ice(i)
1402 if (tsnow_ice(i) > 150._kind_phys .and. tsnow_ice(i) < con_t0c)
then
1403 soilt1_ice(i,j) = tsnow_ice(i)
1405 soilt1_ice(i,j) = tsurf_ice(i)
1407 tsnav_ice(i,j) = min(zero,0.5_kind_phys*(soilt_ice(i,j) + soilt1_ice(i,j)) - con_t0c)
1409 stsice(i,k,j) = tsice(i,k)
1412 smfrice(i,k,j) = one
1413 keepfrice(i,k,j) = one
1418 chs_ice(i,j) = ch_ice(i) * wind(i)
1419 flhc_ice(i,j) = chs_ice(i,j) * rho(i) * con_cp * (one + 0.84_kind_phys*q2(i,1,j))
1420 flqc_ice(i,j) = chs_ice(i,j) * rho(i) * wet_ice(i,j)
1423 cmm_ice(i) = cm_ice(i) * wind(i)
1424 chh_ice(i) = chs_ice(i,j) * rho(i)
1427 snowh_ice(i,j) = snwdph_ice(i) * 0.001_kind_phys
1428 sneqv_ice(i,j) = weasd_ice(i)
1430 snfallac_ice(i,j) = snowfallac_ice(i)
1431 acsn_ice(i,j) = acsnow_ice(i)
1432 snomlt_ice(i,j) = snowmt_ice(i)
1436 if (sneqv_ice(i,j) /= zero .and. snowh_ice(i,j) == zero)
then
1437 snowh_ice(i,j) = 0.003_kind_phys * sneqv_ice(i,j)
1440 if (snowh_ice(i,j) /= zero .and. sneqv_ice(i,j) == zero)
then
1441 sneqv_ice(i,j) = 300._kind_phys * snowh_ice(i,j)
1444 if (sneqv_ice(i,j) > zero .and. snowh_ice(i,j) > zero)
then
1445 if(sneqv_ice(i,j)/snowh_ice(i,j) > 950._kind_phys)
then
1446 sneqv_ice(i,j) = 300._kind_phys * snowh_ice(i,j)
1450 z0_ice(i,j) = z0rl_ice(i)/100._kind_phys
1451 znt_ice(i,j) = z0rl_ice(i)/100._kind_phys
1462 if(abs(snowh_ice(i,j))<1e-20_kind_phys)
then
1465 if(abs(sneqv_ice(i,j))<1e-20_kind_phys)
then
1470 call lsmruc(xlat_d(i),xlon_d(i), &
1471 & delt, flag_init, lsm_cold_start, kdt, iter, nsoil, &
1472 & graupelncv(i,j), snowncv(i,j), rainncv(i,j), raincv(i,j), &
1473 & zs, prcp(i,j), sneqv_ice(i,j), snowh_ice(i,j), &
1474 & sncovr_ice(i,j), &
1475 & ffrozp(i,j), frpcpn, &
1476 & rhosnfr(i,j), precipfr(i,j), exticeden, &
1478 & orog(i,j), stdev(i,j), &
1479 & conflx2(i,1,j), sfcprs(i,1,j),
sfctmp(i,1,j), q2(i,1,j), &
1480 & qcatm(i,1,j), rho2(i,1,j), semis_bck(i,j), lwdn(i,j), &
1481 & swdn(i,j), solnet_ice(i,j), sfcems_ice(i,j), chklowq(i,j), &
1482 & chs_ice(i,j), flqc_ice(i,j), flhc_ice(i,j), rhonewsn_ex(i), &
1484 & mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt, &
1486 & wet_ice(i,j), cmc(i,j), shdfac(i,j), alb_ice(i,j), &
1487 & znt_ice(i,j), z0_ice(i,j), snoalb1d_ice(i,j), &
1488 & albbck_ice(i,j), xlai(i,j),landusef(i,:,j), nlcat, &
1489 & soilctop(i,:,j), nscat, smcwlt(i,j), smcref(i,j), &
1490 & qsfc_ice(i,j), qsg_ice(i,j), qvg_ice(i,j), qcg_ice(i,j), &
1491 & dew_ice(i,j), soilt1_ice(i,j), &
1492 & tsnav_ice(i,j), tbot(i,j), vtype_ice(i,j), stype_ice(i,j), &
1493 & xland(i,j), iswater, isice, xice(i,j), xice_threshold, &
1495 & con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, stbolt, &
1497 & smice(i,:,j), slice(i,:,j), soilm(i,j), smmax(i,j), &
1498 & stsice(i,:,j), soilt_ice(i,j), &
1499 & edir(i,j), ec(i,j), ett(i,j), esnow_ice(i,j), snoh_ice(i,j), &
1500 & hfx_ice(i,j), qfx_ice(i,j), lh_ice(i,j), &
1501 & infiltr(i,j), runoff1(i,j), runoff2(i,j), acrunoff(i,j), &
1502 & sfcexc(i,j), acceta(i,j), ssoil_ice(i,j), &
1503 & snfallac_ice(i,j), acsn_ice(i,j), snomlt_ice(i,j), &
1504 & smfrice(i,:,j),keepfrice(i,:,j), &
1505 & add_fire_heat_flux,fire_heat_flux1d(i,j), .false., &
1506 & shdmin1d(i,j), shdmax1d(i,j), rdlai, &
1507 & ims,ime, jms,jme, kms,kme, &
1508 & its,ite, jts,jte, kts,kte, &
1512 evap_ice(i) = qfx_ice(i,j) / rho(i)
1513 ep1d_ice(i) = qfx_ice(i,j) * con_hvap
1514 hflx_ice(i) = hfx_ice(i,j) / (con_cp*rho(i))
1515 gflux_ice(i) = ssoil_ice(i,j)
1517 qsurf_ice(i) = qsfc_ice(i,j)
1518 tsurf_ice(i) = soilt_ice(i,j)
1519 tsnow_ice(i) = soilt1_ice(i,j)
1521 sfcqv_ice(i) = qvg_ice(i,j)
1522 sfcqc_ice(i) = qcg_ice(i,j)
1524 rhosnf(i) = rhosnfr(i,j)
1525 snowfallac_ice(i) = snfallac_ice(i,j)
1526 acsnow_ice(i) = acsn_ice(i,j)
1527 snowmt_ice(i) = snomlt_ice(i,j)
1529 snwdph_ice(i) = snowh_ice(i,j) * rhoh2o
1530 weasd_ice(i) = sneqv_ice(i,j)
1531 sncovr1_ice(i) = sncovr_ice(i,j)
1532 z0rl_ice(i) = znt_ice(i,j)*100._kind_phys
1534 semis_ice(i) = sfcems_ice(i,j)
1536 sfalb_ice(i) = alb_ice(i,j)
1538 albdvis_ice(i) = sfalb_ice(i)
1539 albdnir_ice(i) = sfalb_ice(i)
1540 albivis_ice(i) = sfalb_ice(i)
1541 albinir_ice(i) = sfalb_ice(i)
1546 stm(i) = 3.e3_kind_phys
1549 tsice(i,k) = stsice(i,k,j)
1550 if(.not. frac_grid .or. .not. land(i))
then
1553 tslb(i,k) = stsice(i,k,j)
1558 if(debug_print)
then
1559 write (0,*)
'ICE - i,j,stype_ice,vtype_ice)',i,j,stype_ice(i,j),vtype_ice(i,j)
1560 write (0,*)
'i,j,tsurf_ice(i)',i,j,tsurf_ice(i)
1561 write (0,*)
'kdt,iter,stsice(i,:,j)',kdt,iter,stsice(i,:,j)
1562 write (0,*)
'laixy(i)',laixy(i)
1576 if(debug_print)
write (0,*)
'end ',i,flag_guess(i),flag_iter(i)
1577 if (flag_guess(i))
then
1578 if(debug_print)
write (0,*)
'guess run'
1580 weasd_lnd(i) = weasd_lnd_old(i)
1581 snwdph_lnd(i) = snwdph_lnd_old(i)
1582 tskin_lnd(i) = tskin_lnd_old(i)
1583 canopy(i) = canopy_old(i)
1584 tsnow_lnd(i) = tsnow_lnd_old(i)
1585 snowfallac_lnd(i) = snowfallac_lnd_old(i)
1586 acsnow_lnd(i) = acsnow_lnd_old(i)
1587 sfcqv_lnd(i) = sfcqv_lnd_old(i)
1588 sfcqc_lnd(i) = sfcqc_lnd_old(i)
1589 wetness(i) = wetness_old(i)
1590 z0rl_lnd(i) = z0rl_lnd_old(i)
1591 sncovr1_lnd(i) = sncovr1_lnd_old(i)
1592 snowmt_lnd(i) = snowmt_lnd_old(i)
1594 weasd_ice(i) = weasd_ice_old(i)
1595 snwdph_ice(i) = snwdph_ice_old(i)
1596 tskin_ice(i) = tskin_ice_old(i)
1597 tsnow_ice(i) = tsnow_ice_old(i)
1598 snowfallac_ice(i) = snowfallac_ice_old(i)
1599 acsnow_ice(i) = acsnow_ice_old(i)
1600 sfcqv_ice(i) = sfcqv_ice_old(i)
1601 sfcqc_ice(i) = sfcqc_ice_old(i)
1602 z0rl_ice(i) = z0rl_ice_old(i)
1603 sncovr1_ice(i) = sncovr1_ice_old(i)
1604 snowmt_ice(i) = snowmt_ice_old(i)
1605 srunoff(i) = srunoff_old(i)
1606 runoff(i) = runoff_old(i)
1609 smois(i,k) = smois_old(i,k)
1610 tslb(i,k) = tslb_old(i,k)
1611 tsice(i,k) = tsice_old(i,k)
1612 sh2o(i,k) = sh2o_old(i,k)
1613 keepfr(i,k) = keepfr_old(i,k)
1614 smfrkeep(i,k) = smfrkeep_old(i,k)
1617 if(debug_print)
write (0,*)
'iter run', i,j, tskin_ice(i),tsurf_ice(i)
1618 tskin_lnd(i) = tsurf_lnd(i)
1619 tskin_ice(i) = tsurf_ice(i)