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, use_cdeps_data, mask_dat, &
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) :: use_cdeps_data
413 logical,
intent(in) :: exticeden
415 logical,
intent(in) :: rdlai
418 integer,
dimension(:),
intent(inout) :: stype
419 integer,
dimension(:),
intent(in) :: vtype
421 real (kind_phys),
dimension(:,:),
intent(in) :: vegtype_frac
422 real (kind_phys),
dimension(:,:),
intent(in) :: soiltype_frac
424 real (kind_phys),
dimension(:),
intent(in) :: zs
425 real (kind_phys),
dimension(:),
intent(in) :: srflag
426 real (kind_phys),
dimension(:),
intent(in),
optional :: mask_dat
427 real (kind_phys),
dimension(:),
intent(inout) :: &
428 & laixy, tsnow_lnd, sfcqv_lnd, sfcqc_lnd, sfcqc_ice, sfcqv_ice,&
430 real (kind_phys),
dimension(:),
intent(inout) :: &
431 & canopy, trans, smcwlt2, smcref2, &
433 & weasd_lnd, snwdph_lnd, tskin_lnd, &
434 & tsurf_lnd, z0rl_lnd, &
436 & weasd_ice, snwdph_ice, tskin_ice, &
437 & tsurf_ice, z0rl_ice, fice
440 real (kind_phys),
dimension(:),
intent(in) :: &
441 & rainnc, rainc, ice, snow, graupel
442 real (kind_phys),
dimension(:),
intent(in) :: rhonewsn1
443 real (kind_phys),
dimension(:),
intent(in) :: &
444 fire_heat_flux_out, frac_grid_burned_out
445 logical,
intent(in) :: add_fire_heat_flux
448 real (kind_phys),
dimension(:,:),
intent(inout) :: &
449 & smois, tslb, sh2o, keepfr, smfrkeep
450 real (kind_phys),
dimension(:,:),
intent(inout) :: &
454 real (kind_phys),
dimension(:),
intent(inout) :: &
455 & sfalb_lnd, sfalb_ice, wetness, snowfallac_lnd, &
456 & snowfallac_ice, rhosnf
457 real (kind_phys),
dimension(:),
intent(inout) :: &
458 & runof, drain, runoff, srunoff, evbs, evcw, &
459 & stm, semisbase, semis_lnd, semis_ice, &
461 & sncovr1_lnd, qsurf_lnd, gflux_lnd, evap_lnd, &
462 & cmm_lnd, chh_lnd, hflx_lnd, sbsno, &
463 & snowmt_lnd, snohf, &
465 & sncovr1_ice, qsurf_ice, gflux_ice, evap_ice, ep1d_ice, &
466 & cmm_ice, chh_ice, hflx_ice, &
468 real (kind_phys),
dimension(:),
intent(inout) :: &
469 acsnow_lnd, acsnow_ice
470 real (kind_phys),
dimension(:),
intent( out) :: &
471 & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd
472 real (kind_phys),
dimension(:),
intent( out) :: &
473 & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice
475 logical,
intent(in) :: flag_init, lsm_cold_start
476 character(len=*),
intent(out) :: errmsg
477 integer,
intent(out) :: errflg
481 real(kind_phys),
dimension(im,nlev) :: pattern_spp
484 real (kind_phys),
dimension(im) :: rho, rhonewsn_ex, &
485 & q0, qs1, albbcksol, srunoff_old, runoff_old, &
486 & tprcp_old, srflag_old, sr_old, canopy_old, wetness_old, &
488 & weasd_lnd_old, snwdph_lnd_old, tskin_lnd_old, &
489 & tsnow_lnd_old, snowfallac_lnd_old, acsnow_lnd_old, &
490 & sfcqv_lnd_old, sfcqc_lnd_old, z0rl_lnd_old, &
491 & sncovr1_lnd_old,snowmt_lnd_old, &
493 & weasd_ice_old, snwdph_ice_old, tskin_ice_old, &
494 & tsnow_ice_old, snowfallac_ice_old, acsnow_ice_old, &
495 & sfcqv_ice_old, sfcqc_ice_old, z0rl_ice_old, &
496 & sncovr1_ice_old,snowmt_ice_old
499 real (kind_phys),
dimension(im,lsoil_ruc,1) :: pattern_spp_lsm
501 real (kind_phys),
dimension(lsoil_ruc) :: et
503 real (kind_phys),
dimension(im,lsoil_ruc,1) :: smsoil, &
504 slsoil, stsoil, smfrsoil, keepfrsoil, stsice
505 real (kind_phys),
dimension(im,lsoil_ruc,1) :: smice, &
506 slice, stice, smfrice, keepfrice
508 real (kind_phys),
dimension(im,lsoil_ruc) :: smois_old, &
509 & tsice_old, tslb_old, sh2o_old, &
510 & keepfr_old, smfrkeep_old
512 real (kind_phys),
dimension(im,nlcat,1) :: landusef
513 real (kind_phys),
dimension(im,nscat,1) :: soilctop
515 real (kind_phys),
dimension (im,1,1) :: &
516 & conflx2, sfcprs, sfctmp, q2, qcatm, rho2
517 real (kind_phys),
dimension (im,1) :: orog, stdev
518 real (kind_phys),
dimension (im,1) :: &
519 & albbck_lnd, alb_lnd, chs_lnd, flhc_lnd, flqc_lnd, &
520 & wet, wet_ice, smmax, cmc, drip, ec, edir, ett, &
521 & dew_lnd, lh_lnd, esnow_lnd, etp, qfx_lnd, acceta, &
522 & ffrozp, lwdn, prcp, xland, xland_wat, xice, xice_lnd, &
523 & graupelncv, snowncv, rainncv, raincv, &
524 & solnet_lnd, sfcexc, &
525 & runoff1, runoff2, acrunoff, semis_bck, &
526 & sfcems_lnd, hfx_lnd, shdfac, shdmin1d, shdmax1d, &
527 & fire_heat_flux1d, &
528 & sneqv_lnd, snoalb1d_lnd, snowh_lnd, snoh_lnd, tsnav_lnd, &
529 & snomlt_lnd, sncovr_lnd, soilw, soilm, ssoil_lnd, &
531 & xlai, swdn, z0_lnd, znt_lnd, rhosnfr, infiltr, &
532 & precipfr, snfallac_lnd, acsn_lnd, soilt1_lnd, chklowq, &
533 & qsfc_lnd, qsg_lnd, qvg_lnd, qcg_lnd, smcwlt, smcref
535 real (kind_phys),
dimension (im,1) :: &
536 & albbck_ice, alb_ice, chs_ice, flhc_ice, flqc_ice, &
537 & dew_ice, lh_ice, esnow_ice, qfx_ice, &
538 & solnet_ice, sfcems_ice, hfx_ice, &
539 & sneqv_ice, snoalb1d_ice, snowh_ice, snoh_ice, tsnav_ice, &
540 & snomlt_ice, sncovr_ice, ssoil_ice, soilt_ice, &
541 & z0_ice, znt_ice, snfallac_ice, acsn_ice, &
542 & qsfc_ice, qsg_ice, qvg_ice, qcg_ice, soilt1_ice
545 real (kind_phys) :: xice_threshold
546 real (kind_phys) :: fwat, qsw, evapw, hfxw
548 character(len=256) :: llanduse
552 integer :: nsoil, iswater, isice
553 integer,
dimension (1:im,1:1) :: stype_wat, vtype_wat
554 integer,
dimension (1:im,1:1) :: stype_lnd, vtype_lnd
555 integer,
dimension (1:im,1:1) :: stype_ice, vtype_ice
559 integer :: ims,ime, its,ite, jms,jme, jts,jte, kms,kme, kts,kte
560 integer :: l, k, i, j, fractional_seaice, ilst
561 real (kind_phys) :: dm, cimin(im)
562 logical :: flag(im), flag_ice(im), flag_ice_uncoupled(im)
563 logical :: myj, frpcpn
564 logical :: debug_print
567 real (kind_phys) :: testptlat, testptlon
576 testptlat = 68.6_kind_phys
577 testptlon = 298.6_kind_phys
585 flag_ice(i) = .false.
586 if (icy(i) .and. .not. flag_cice(i))
then
588 if (oceanfrac(i) > zero)
then
589 cimin(i) = min_seaice
591 cimin(i) = min_lakeice
593 if (fice(i) >= cimin(i))
then
600 flag_ice_uncoupled(i) = (flag_ice(i) .and. use_lake(i)<1)
603 flag(i) = land(i) .or. flag_ice_uncoupled(i)
607 write (0,*)
'RUC LSM run'
608 write (0,*)
'stype=',ipr,stype(ipr)
609 write (0,*)
'vtype=',ipr,vtype(ipr)
610 write (0,*)
'kdt, iter =',kdt,iter
611 write (0,*)
'flag_init =',flag_init
612 write (0,*)
'lsm_cold_start =',lsm_cold_start
637 if(spp_lsm == 0)
then
638 pattern_spp(:,:) = 0.0
648 if(ivegsrc == 1)
then
649 llanduse =
'MODI-RUC'
653 write(errmsg,
'(a,i0)')
'Logic error in sfc_drv_ruc_run: iswater/isice not configured for ivegsrc=', ivegsrc
658 fractional_seaice = 1
659 if ( fractional_seaice == 0 )
then
660 xice_threshold = 0.5_kind_phys
661 else if ( fractional_seaice == 1 )
then
662 xice_threshold = 0.15_kind_phys
668 if(.not. land(i))
then
673 elseif (kdt == 1)
then
676 smcref(i,1) = refsmc(stype(i))
677 smcwlt(i,1) = wltsmc(stype(i))
682 xlai(i,1) = laitbl(vtype(i))
686 smcref(i,1) = smcref2(i)
687 smcwlt(i,1) = smcwlt2(i)
693 if (flag(i) .and. flag_guess(i))
then
695 wetness_old(i) = wetness(i)
696 canopy_old(i) = canopy(i)
698 weasd_lnd_old(i) = weasd_lnd(i)
699 snwdph_lnd_old(i) = snwdph_lnd(i)
700 tskin_lnd_old(i) = tskin_lnd(i)
701 tsnow_lnd_old(i) = tsnow_lnd(i)
702 sfcqv_lnd_old(i) = sfcqv_lnd(i)
703 sfcqc_lnd_old(i) = sfcqc_lnd(i)
704 z0rl_lnd_old(i) = z0rl_lnd(i)
705 sncovr1_lnd_old(i) = sncovr1_lnd(i)
706 snowmt_lnd_old(i) = snowmt_lnd(i)
707 acsnow_lnd_old(i) = acsnow_lnd(i)
708 snowfallac_lnd_old(i) = snowfallac_lnd(i)
709 srunoff_old(i) = srunoff(i)
710 runoff_old(i) = runoff(i)
712 weasd_ice_old(i) = weasd_ice(i)
713 snwdph_ice_old(i) = snwdph_ice(i)
714 tskin_ice_old(i) = tskin_ice(i)
715 tsnow_ice_old(i) = tsnow_ice(i)
716 sfcqv_ice_old(i) = sfcqv_ice(i)
717 sfcqc_ice_old(i) = sfcqc_ice(i)
718 z0rl_ice_old(i) = z0rl_ice(i)
719 sncovr1_ice_old(i) = sncovr1_ice(i)
720 snowmt_ice_old(i) = snowmt_ice(i)
721 acsnow_ice_old(i) = acsnow_ice(i)
722 snowfallac_ice_old(i) = snowfallac_ice(i)
725 smois_old(i,k) = smois(i,k)
726 tslb_old(i,k) = tslb(i,k)
727 sh2o_old(i,k) = sh2o(i,k)
728 keepfr_old(i,k) = keepfr(i,k)
729 smfrkeep_old(i,k) = smfrkeep(i,k)
731 tsice_old(i,k) = tsice(i,k)
740 if (flag_iter(i) .and. flag(i))
then
748 canopy(i) = max(canopy(i), zero)
776 rhosnfr(i,j) = -1.e3_kind_phys
781 snfallac_lnd(i,j) = zero
783 snfallac_ice(i,j) = zero
785 snomlt_lnd(i,j) = zero
786 snomlt_ice(i,j) = zero
795 if (flag_iter(i) .and. flag(i))
then
796 q0(i) = max(q1(i)/(one-q1(i)), epsln)
798 rho(i) = prsl1(i) / (con_rd*t1(i)*(one+con_fvirt*q0(i)))
799 qs1(i) =
rslf(prsl1(i),t1(i))
800 q0(i) = min(qs1(i), q0(i))
817 if (imp_physics==imp_physics_gfdl .or. imp_physics==imp_physics_thompson .or. &
818 imp_physics == imp_physics_nssl)
then
827 stdev(i,j) = sigma(i)
829 landusef(i,k,j) = vegtype_frac(i,k)
832 soilctop(i,k,j) = soiltype_frac(i,k)
840 if (flag_iter(i) .and. flag(i))
then
843 ffrozp(i,j) = srflag(i)
845 ffrozp(i,j) = real(nint(srflag(i)),kind_phys)
849 conflx2(i,1,j) = zf(i) * 2._kind_phys
860 sfcprs(i,1,j) = prsl1(i)
861 sfctmp(i,1,j) = t1(i)
863 qcatm(i,1,j) = max(zero, qc(i))
879 lwdn(i,j) = dlwflx(i)
880 swdn(i,j) = dswsfc(i)
889 prcp(i,j) = rhoh2o * (rainc(i)+rainnc(i))
890 raincv(i,j) = rhoh2o * rainc(i)
891 rainncv(i,j) = rhoh2o * rainnc(i)
892 graupelncv(i,j) = rhoh2o * graupel(i)
893 snowncv(i,j) = rhoh2o * snow(i)
894 rhonewsn_ex(i) = rhonewsn1(i)
895 if (debug_print)
then
897 if (abs(xlat_d(i)-testptlat).lt.0.2 .and. &
898 abs(xlon_d(i)-testptlon).lt.0.2)
then
900 print 100,
'(ruc_lsm_drv) i=',i, &
901 ' lat,lon=',xlat_d(i),xlon_d(i), &
902 'rainc',rainc(i),
'rainnc',rainnc(i), &
903 'graupel',graupel(i),
'qc',qc(i),
'sfcqv_lnd',sfcqv_lnd(i),&
904 'dlwflx',dlwflx(i),
'dswsfc',dswsfc(i), &
905 'sncovr1_lnd',sncovr1_lnd(i),
'sfalb_lnd_bck',sfalb_lnd_bck(i),&
906 'prsl1',prsl1(i),
't1',t1(i), &
907 'srflag',srflag(i),
'weasd mm ',weasd_lnd(i), &
908 'tsnow_lnd',tsnow_lnd(i),
'snwdph mm',snwdph_lnd(i), &
909 'tsurf_lnd',tsurf_lnd(i),
'tslb(i,1)',tslb(i,1)
912 100
format (
";;; ",a,i4,a,2f14.7/(4(a10,
'='es9.2)))
924 if(ivegsrc == 1)
then
928 vtype_lnd(i,j) = vtype(i)
929 stype_lnd(i,j) = stype(i)
942 elseif(flag_ice_uncoupled(i))
then
947 write (0,*)
'MODIS landuse is not available'
950 semis_bck(i,j) = semisbase(i)
952 shdfac(i,j) = sigmaf(i)*100._kind_phys
953 shdmin1d(i,j) = shdmin(i)*100._kind_phys
954 shdmax1d(i,j) = shdmax(i)*100._kind_phys
955 fire_heat_flux1d(i,j) = fire_heat_flux_out(i)
980 qvg_lnd(i,j) = sfcqv_lnd(i)
981 qsfc_lnd(i,j) = sfcqv_lnd(i)/(1.+sfcqv_lnd(i))
982 qsg_lnd(i,j) =
rslf(prsl1(i),tsurf_lnd(i))
983 qcg_lnd(i,j) = sfcqc_lnd(i)
984 sncovr_lnd(i,j) = sncovr1_lnd(i)
986 sfcems_lnd(i,j) = semisbase(i) * (one-sncovr_lnd(i,j)) + 0.99_kind_phys * sncovr_lnd(i,j)
988 sfcems_lnd(i,j) = semis_lnd(i)
991 if(coszen(i) > zero .and. weasd_lnd(i) < 1.e-4_kind_phys)
then
994 dm = (one+2._kind_phys*d(ilst))/(one+2._kind_phys*d(ilst)*coszen(i))
995 albbcksol(i) = sfalb_lnd_bck(i)*dm
997 albbcksol(i) = sfalb_lnd_bck(i)
1000 snoalb1d_lnd(i,j) = snoalb(i)
1001 albbck_lnd(i,j) = min(0.9_kind_phys,albbcksol(i))
1004 if (spp_lsm == 1)
then
1007 pattern_spp_lsm(i,k,j) = pattern_spp(i,k)
1011 albbck_lnd(i,j) = min(albbck_lnd(i,j) * (one + 0.4_kind_phys*pattern_spp_lsm(i,1,j)), one)
1012 sfcems_lnd(i,j) = min(sfcems_lnd(i,j) * (one + 0.1_kind_phys*pattern_spp_lsm(i,1,j)), one)
1013 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
1017 smois(i,k) = smois(i,k)*(one+1.5_kind_phys*pattern_spp_lsm(i,k,j))
1022 alb_lnd(i,j) = albbck_lnd(i,j) * (one-sncovr_lnd(i,j)) + snoalb(i) * sncovr_lnd(i,j)
1023 solnet_lnd(i,j) = dswsfc(i)*(one-alb_lnd(i,j))
1025 IF ( add_fire_heat_flux .and. fire_heat_flux_out(i) > 0)
then
1026 if (debug_print)
then
1027 print *,
'alb_lnd before fire, xlat/xlon ', alb_lnd(i,j), xlat_d(i),xlon_d(i)
1028 print *,
'fire_heat_flux_out, frac_grid_burned_out, xlat/xlon ', &
1029 fire_heat_flux_out(i),frac_grid_burned_out(i),xlat_d(i),xlon_d(i)
1032 alb_lnd(i,j) = alb_lnd(i,j) * (one-frac_grid_burned_out(i)) + 0.08_kind_phys*frac_grid_burned_out(i)
1033 if (debug_print)
then
1034 print *,
'alb_lnd after fire, xlat/xlon ', alb_lnd(i,j), xlat_d(i),xlon_d(i)
1038 cmc(i,j) = canopy(i)
1039 soilt_lnd(i,j) = tsurf_lnd(i)
1041 if (tsnow_lnd(i) > 200._kind_phys .and. tsnow_lnd(i) < con_t0c)
then
1042 soilt1_lnd(i,j) = tsnow_lnd(i)
1044 soilt1_lnd(i,j) = tsurf_lnd(i)
1046 tsnav_lnd(i,j) = min(zero,0.5_kind_phys*(soilt_lnd(i,j) + soilt1_lnd(i,j)) - con_t0c)
1048 smsoil(i,k,j) = smois(i,k)
1049 slsoil(i,k,j) = sh2o(i,k)
1050 stsoil(i,k,j) = tslb(i,k)
1051 smfrsoil(i,k,j) = smfrkeep(i,k)
1052 keepfrsoil(i,k,j) = keepfr(i,k)
1055 if (wetness(i) > zero)
then
1056 wet(i,j) = wetness(i)
1058 wet(i,j) = max(0.0001_kind_phys,smsoil(i,1,j)/0.3_kind_phys)
1061 chs_lnd(i,j) = ch_lnd(i) * wind(i)
1062 flhc_lnd(i,j) = chs_lnd(i,j) * rho(i) * con_cp * (one+0.84_kind_phys*q2(i,1,j))
1063 flqc_lnd(i,j) = chs_lnd(i,j) * rho(i) * wet(i,j)
1066 cmm_lnd(i) = cm_lnd(i) * wind(i)
1067 chh_lnd(i) = chs_lnd(i,j) * rho(i)
1069 sneqv_lnd(i,j) = weasd_lnd(i)
1070 snowh_lnd(i,j) = snwdph_lnd(i) * 0.001_kind_phys
1074 snfallac_lnd(i,j) = snowfallac_lnd(i)
1075 acsn_lnd(i,j) = acsnow_lnd(i)
1076 snomlt_lnd(i,j) = snowmt_lnd(i)
1080 if (sneqv_lnd(i,j) /= zero .and. snowh_lnd(i,j) == zero)
then
1081 if (debug_print) print *,
'bad sneqv_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j),xlat_d(i),xlon_d(i)
1082 if(sneqv_lnd(i,j) < epsln.or.soilt_lnd(i,j)>con_t0c)
then
1083 sneqv_lnd(i,j) = zero
1084 snowh_lnd(i,j) = zero
1086 sneqv_lnd(i,j) = 300._kind_phys * snowh_lnd(i,j)
1088 if (debug_print) print *,
'fixed sneqv_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j)
1089 elseif (snowh_lnd(i,j) /= zero .and. sneqv_lnd(i,j) == zero)
then
1090 if (debug_print) print *,
'bad snowh_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j),xlat_d(i),xlon_d(i)
1091 if(snowh_lnd(i,j) < 3.e-10_kind_dbl_prec.or.soilt_lnd(i,j)>con_t0c)
then
1092 snowh_lnd(i,j) = zero
1093 sneqv_lnd(i,j) = zero
1095 snowh_lnd(i,j) = 0.003_kind_dbl_prec * sneqv_lnd(i,j)
1097 if (debug_print) print *,
'fixed snowh_lnd',kdt,i,j,sneqv_lnd(i,j),snowh_lnd(i,j)
1098 elseif (sneqv_lnd(i,j) > zero .and. snowh_lnd(i,j) > zero)
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 *,
'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)
1103 if(sneqv_lnd(i,j)/snowh_lnd(i,j) > 500._kind_phys)
then
1104 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1105 abs(xlon_d(i)-testptlon).lt.0.5)
then
1106 print *,
'large snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1107 print *,
'large snow density lat/lon',kdt,i,j,xlat_d(i),xlon_d(i)
1109 if(soilt_lnd(i,j)>con_t0c)
then
1110 snowh_lnd(i,j) = zero
1111 sneqv_lnd(i,j) = zero
1113 snowh_lnd(i,j) = 0.002_kind_dbl_prec * sneqv_lnd(i,j)
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 *,
'fixed large snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1119 elseif(sneqv_lnd(i,j)/snowh_lnd(i,j) < 58._kind_phys)
then
1120 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1121 abs(xlon_d(i)-testptlon).lt.0.5)
then
1122 print *,
'small snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1123 print *,
'small snow density lat/lon',kdt,i,j,xlat_d(i),xlon_d(i)
1125 if(soilt_lnd(i,j)>con_t0c)
then
1126 snowh_lnd(i,j) = zero
1127 sneqv_lnd(i,j) = zero
1129 sneqv_lnd(i,j) = 58._kind_phys * snowh_lnd(i,j)
1131 if (debug_print .and. abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1132 abs(xlon_d(i)-testptlon).lt.0.5)
then
1133 print *,
'fixed small snow density',kdt,i,j,sneqv_lnd(i,j)/snowh_lnd(i,j),sneqv_lnd(i,j),snowh_lnd(i,j)
1139 z0_lnd(i,j) = z0rl_lnd(i)/100._kind_phys
1140 znt_lnd(i,j) = z0rl_lnd(i)/100._kind_phys
1149 if(abs(snowh_lnd(i,j))<1e-20_kind_phys)
then
1152 if(abs(sneqv_lnd(i,j))<1e-20_kind_phys)
then
1156 if (debug_print)
then
1159 if (abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1160 abs(xlon_d(i)-testptlon).lt.0.5)
then
1162 print 100,
'(ruc_lsm_drv before RUC land call) i=',i, &
1163 ' lat,lon=',xlat_d(i),xlon_d(i), &
1164 'rainc',rainc(i),
'rainnc',rainnc(i),
'prcp',prcp(i,j), &
1165 'graupel',graupel(i),
'qc',qc(i),
'sfcqv_lnd',sfcqv_lnd(i), &
1166 'dlwflx',dlwflx(i),
'dswsfc',dswsfc(i), &
1167 'sncovr1_lnd',sncovr1_lnd(i),
'sfalb_lnd_bck',sfalb_lnd_bck(i),&
1168 'albbcksol',albbcksol(i),
'alb_lnd',alb_lnd(i,j), &
1169 'solnet_lnd',solnet_lnd(i,j),
't1',t1(i), &
1170 'sfcems_lnd',sfcems_lnd(i,j),
'flhc_lnd',flhc_lnd(i,j), &
1171 'flqc_lnd',flqc_lnd(i,j),
'wet',wet(i,j),
'cmc',cmc(i,j), &
1172 'qcg_lnd',qcg_lnd(i,j),
'dew',dew_lnd(i,j), &
1173 'znt_lnd',znt_lnd(i,j),
'shdfac',shdfac(i,j), &
1174 'srflag',srflag(i),
'weasd_lnd',weasd_lnd(i), &
1175 'smsoil1',smsoil(i,1,j),
'slsoil',slsoil(i,1,j), &
1176 'keepfrsoil',keepfrsoil(i,1,j), &
1177 'tsurf_lnd',tsurf_lnd(i),
'tslb(i,1)',tslb(i,1)
1183 call lsmruc(xlat_d(i),xlon_d(i), &
1184 & delt, flag_init, lsm_cold_start, kdt, iter, nsoil, &
1185 & graupelncv(i,j), snowncv(i,j), rainncv(i,j), raincv(i,j), &
1186 & zs, prcp(i,j), sneqv_lnd(i,j), snowh_lnd(i,j), &
1187 & sncovr_lnd(i,j), &
1188 & ffrozp(i,j), frpcpn, &
1189 & rhosnfr(i,j), precipfr(i,j), exticeden, &
1191 & orog(i,j), stdev(i,j), &
1192 & conflx2(i,1,j), sfcprs(i,1,j), sfctmp(i,1,j), q2(i,1,j), &
1193 & qcatm(i,1,j), rho2(i,1,j), semis_bck(i,j), lwdn(i,j), &
1194 & swdn(i,j), solnet_lnd(i,j), sfcems_lnd(i,j), chklowq(i,j), &
1195 & chs_lnd(i,j), flqc_lnd(i,j), flhc_lnd(i,j), rhonewsn_ex(i), &
1197 & mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt, &
1199 & wet(i,j), cmc(i,j), shdfac(i,j), alb_lnd(i,j), znt_lnd(i,j), &
1200 & z0_lnd(i,j), snoalb1d_lnd(i,j), albbck_lnd(i,j), &
1201 & xlai(i,j), landusef(i,:,j), nlcat, &
1202 & soilctop(i,:,j), nscat, smcwlt(i,j), smcref(i,j), &
1203 & qsfc_lnd(i,j), qsg_lnd(i,j), qvg_lnd(i,j), qcg_lnd(i,j), &
1204 & dew_lnd(i,j), soilt1_lnd(i,j), &
1205 & tsnav_lnd(i,j), tbot(i,j), vtype_lnd(i,j), stype_lnd(i,j), &
1206 & xland(i,j), iswater, isice, xice_lnd(i,j), xice_threshold, &
1208 & con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, stbolt, &
1210 & smsoil(i,:,j), slsoil(i,:,j), soilm(i,j), smmax(i,j), &
1211 & stsoil(i,:,j), soilt_lnd(i,j), &
1212 & edir(i,j), ec(i,j), ett(i,j), esnow_lnd(i,j), snoh_lnd(i,j), &
1213 & hfx_lnd(i,j), qfx_lnd(i,j), lh_lnd(i,j), &
1214 & infiltr(i,j), runoff1(i,j), runoff2(i,j), acrunoff(i,j), &
1215 & sfcexc(i,j), acceta(i,j), ssoil_lnd(i,j), &
1216 & snfallac_lnd(i,j), acsn_lnd(i,j), snomlt_lnd(i,j), &
1217 & smfrsoil(i,:,j),keepfrsoil(i,:,j), &
1218 & add_fire_heat_flux,fire_heat_flux1d(i,j), .false., &
1219 & shdmin1d(i,j), shdmax1d(i,j), rdlai, &
1220 & ims,ime, jms,jme, kms,kme, &
1221 & its,ite, jts,jte, kts,kte, errmsg, errflg )
1222 if(debug_print)
then
1223 if (abs(xlat_d(i)-testptlat).lt.0.5 .and. &
1224 abs(xlon_d(i)-testptlon).lt.0.5)
then
1225 print 100,
'(ruc_lsm_drv after RUC land call) i=',i, &
1226 ' lat,lon=',xlat_d(i),xlon_d(i), &
1227 'sneqv(i,j) =',sneqv_lnd(i,j), &
1228 'snowh(i,j) =',snowh_lnd(i,j), &
1229 'sncovr(i,j) =',sncovr_lnd(i,j), &
1230 'vtype(i,j) =',vtype_lnd(i,j), &
1231 'stype(i,j) =',stype_lnd(i,j), &
1232 'wet(i,j) =',wet(i,j), &
1233 'cmc(i,j) =',cmc(i,j), &
1234 'qsfc(i,j) =',qsfc_lnd(i,j), &
1235 'qvg(i,j) =',qvg_lnd(i,j), &
1236 'qsg(i,j) =',qsg_lnd(i,j), &
1237 'qcg(i,j) =',qcg_lnd(i,j), &
1238 'dew(i,j) =',dew_lnd(i,j), &
1239 'soilt(i,j) =',soilt_lnd(i,j), &
1240 'tskin(i) =',tskin_lnd(i), &
1241 'soilt1(i,j) =',soilt1_lnd(i,j), &
1242 'tsnav(i,j) =',tsnav_lnd(i,j), &
1243 'smsoil(i,:,j)=',smsoil(i,:,j), &
1244 'slsoil(i,:,j)=',slsoil(i,:,j), &
1245 'stsoil(i,:,j)=',stsoil(i,:,j), &
1246 'smfrsoil(i,:,j)=',smfrsoil(i,:,j), &
1247 'keepfrsoil(i,:,j)=',keepfrsoil(i,:,j), &
1248 'soilm(i,j) =',soilm(i,j), &
1249 'smmax(i,j) =',smmax(i,j), &
1250 'hfx(i,j) =',hfx_lnd(i,j), &
1251 'lh(i,j) =',lh_lnd(i,j), &
1252 'infiltr(i,j) =',infiltr(i,j), &
1253 'runoff1(i,j) =',runoff1(i,j), &
1254 'runoff2(i,j) =',runoff2(i,j), &
1255 'ssoil(i,j) =',ssoil_lnd(i,j), &
1256 'snfallac(i,j) =',snfallac_lnd(i,j), &
1257 'acsn_lnd(i,j) =',acsn_lnd(i,j), &
1258 'snomlt(i,j) =',snomlt_lnd(i,j),
'xlai(i,j) =',xlai(i,j)
1293 evbs(i) = edir(i,j) * rhoh2o * con_hvap
1294 evcw(i) = ec(i,j) * rhoh2o * con_hvap
1295 trans(i) = ett(i,j) * rhoh2o * con_hvap
1296 sbsno(i) = esnow_lnd(i,j) * con_hfus
1297 snohf(i) = snoh_lnd(i,j)
1300 evap_lnd(i) = qfx_lnd(i,j) / rho(i)
1301 hflx_lnd(i) = hfx_lnd(i,j) / (con_cp*rho(i))
1302 gflux_lnd(i) = ssoil_lnd(i,j)
1303 qsurf_lnd(i) = qsfc_lnd(i,j)
1304 tsurf_lnd(i) = soilt_lnd(i,j)
1305 tsnow_lnd(i) = soilt1_lnd(i,j)
1306 stm(i) = soilm(i,j) * 1.e-3_kind_phys
1308 runof(i) = runoff1(i,j) * rhoh2o
1309 drain(i) = runoff2(i,j) * rhoh2o
1311 wetness(i) = wet(i,j)
1312 sfcqv_lnd(i) = qvg_lnd(i,j)
1313 sfcqc_lnd(i) = qcg_lnd(i,j)
1315 rhosnf(i) = rhosnfr(i,j)
1316 acsnow_lnd(i) = acsn_lnd(i,j)
1317 snowmt_lnd(i) = snomlt_lnd(i,j)
1320 runoff(i) = runoff(i) + (drain(i)+runof(i)) * delt
1321 srunoff(i) = srunoff(i) + runof(i) * delt
1324 snowfallac_lnd(i) = snfallac_lnd(i,j)
1326 snwdph_lnd(i) = snowh_lnd(i,j) * rhoh2o
1328 laixy(i) = xlai(i,j)
1329 smcwlt2(i) = smcwlt(i,j)
1330 smcref2(i) = smcref(i,j)
1332 canopy(i) = cmc(i,j)
1333 weasd_lnd(i) = sneqv_lnd(i,j)
1334 sncovr1_lnd(i) = sncovr_lnd(i,j)
1337 z0rl_lnd(i) = znt_lnd(i,j)*100._kind_phys
1339 semis_lnd(i) = sfcems_lnd(i,j)
1341 semisbase(i) = semis_bck(i,j)
1343 sfalb_lnd(i) = alb_lnd(i,j)
1345 albdvis_lnd(i) = sfalb_lnd(i)
1346 albdnir_lnd(i) = sfalb_lnd(i)
1347 albivis_lnd(i) = sfalb_lnd(i)
1348 albinir_lnd(i) = sfalb_lnd(i)
1351 smois(i,k) = smsoil(i,k,j)
1352 sh2o(i,k) = slsoil(i,k,j)
1353 tslb(i,k) = stsoil(i,k,j)
1354 keepfr(i,k) = keepfrsoil(i,k,j)
1355 smfrkeep(i,k) = smfrsoil(i,k,j)
1357 if(debug_print)
then
1358 write (0,*)
'LAND -i,j,stype_lnd,vtype_lnd',i,j,stype_lnd(i,j),vtype_lnd(i,j)
1359 write (0,*)
'i,j,tsurf_lnd(i)',i,j,tsurf_lnd(i)
1360 write (0,*)
'kdt,iter,stsoil(i,:,j)',kdt,iter,stsoil(i,:,j)
1361 write (0,*)
'laixy(i)',laixy(i)
1365 if (flag_ice_uncoupled(i))
then
1368 if (debug_print)
then
1369 if (abs(xlat_d(i)-testptlat).lt.0.1 .and. &
1370 abs(xlon_d(i)-testptlon).lt.0.1)
then
1372 print 101,
'(ruc_lsm_drv_ice) i=',i, &
1373 ' lat,lon=',xlat_d(i),xlon_d(i), &
1374 'sfcqv_ice',sfcqv_ice(i), &
1375 'sncovr1_ice',sncovr1_ice(i),
'sfalb_ice',sfalb_ice(i),&
1376 'sfcqc_ice',sfcqc_ice(i),
'tsnow_ice',tsnow_ice(i), &
1377 'prsl1',prsl1(i),
't1',t1(i),
'snwdph_ice ',snwdph_ice(i), &
1378 'srflag',srflag(i),
'weasd_ice',weasd_ice(i), &
1379 'tsurf_ice',tsurf_ice(i),
'tslb(i,1)',tslb(i,1)
1382 101
format (
";;; ",a,i4,a,2f14.7/(4(a10,
'='es9.2)))
1388 sncovr_ice(i,j) = sncovr1_ice(i)
1390 snoalb1d_ice(i,j) = 0.75_kind_phys
1391 albbck_ice(i,j) = 0.55_kind_phys
1392 alb_ice(i,j) = sfalb_ice(i)
1393 solnet_ice(i,j) = dswsfc(i)*(one-alb_ice(i,j))
1394 qvg_ice(i,j) = sfcqv_ice(i)
1395 qsfc_ice(i,j) = sfcqv_ice(i)/(one+sfcqv_ice(i))
1396 qsg_ice(i,j) =
rslf(prsl1(i),tsurf_ice(i))
1397 qcg_ice(i,j) = sfcqc_ice(i)
1398 semis_bck(i,j) = 0.99_kind_phys
1400 sfcems_ice(i,j) = semisbase(i) * (one-sncovr_ice(i,j)) + 0.99_kind_phys * sncovr_ice(i,j)
1402 sfcems_ice(i,j) = semis_ice(i)
1404 cmc(i,j) = canopy(i)
1405 soilt_ice(i,j) = tsurf_ice(i)
1406 if (tsnow_ice(i) > 150._kind_phys .and. tsnow_ice(i) < con_t0c)
then
1407 soilt1_ice(i,j) = tsnow_ice(i)
1409 soilt1_ice(i,j) = tsurf_ice(i)
1411 tsnav_ice(i,j) = min(zero,0.5_kind_phys*(soilt_ice(i,j) + soilt1_ice(i,j)) - con_t0c)
1413 stsice(i,k,j) = tsice(i,k)
1416 smfrice(i,k,j) = one
1417 keepfrice(i,k,j) = one
1422 chs_ice(i,j) = ch_ice(i) * wind(i)
1423 flhc_ice(i,j) = chs_ice(i,j) * rho(i) * con_cp * (one + 0.84_kind_phys*q2(i,1,j))
1424 flqc_ice(i,j) = chs_ice(i,j) * rho(i) * wet_ice(i,j)
1427 cmm_ice(i) = cm_ice(i) * wind(i)
1428 chh_ice(i) = chs_ice(i,j) * rho(i)
1431 snowh_ice(i,j) = snwdph_ice(i) * 0.001_kind_phys
1432 sneqv_ice(i,j) = weasd_ice(i)
1434 snfallac_ice(i,j) = snowfallac_ice(i)
1435 acsn_ice(i,j) = acsnow_ice(i)
1436 snomlt_ice(i,j) = snowmt_ice(i)
1440 if (sneqv_ice(i,j) /= zero .and. snowh_ice(i,j) == zero)
then
1441 snowh_ice(i,j) = 0.003_kind_phys * sneqv_ice(i,j)
1444 if (snowh_ice(i,j) /= zero .and. sneqv_ice(i,j) == zero)
then
1445 sneqv_ice(i,j) = 300._kind_phys * snowh_ice(i,j)
1448 if (sneqv_ice(i,j) > zero .and. snowh_ice(i,j) > zero)
then
1449 if(sneqv_ice(i,j)/snowh_ice(i,j) > 950._kind_phys)
then
1450 sneqv_ice(i,j) = 300._kind_phys * snowh_ice(i,j)
1454 z0_ice(i,j) = z0rl_ice(i)/100._kind_phys
1455 znt_ice(i,j) = z0rl_ice(i)/100._kind_phys
1466 if(abs(snowh_ice(i,j))<1e-20_kind_phys)
then
1469 if(abs(sneqv_ice(i,j))<1e-20_kind_phys)
then
1474 call lsmruc(xlat_d(i),xlon_d(i), &
1475 & delt, flag_init, lsm_cold_start, kdt, iter, nsoil, &
1476 & graupelncv(i,j), snowncv(i,j), rainncv(i,j), raincv(i,j), &
1477 & zs, prcp(i,j), sneqv_ice(i,j), snowh_ice(i,j), &
1478 & sncovr_ice(i,j), &
1479 & ffrozp(i,j), frpcpn, &
1480 & rhosnfr(i,j), precipfr(i,j), exticeden, &
1482 & orog(i,j), stdev(i,j), &
1483 & conflx2(i,1,j), sfcprs(i,1,j), sfctmp(i,1,j), q2(i,1,j), &
1484 & qcatm(i,1,j), rho2(i,1,j), semis_bck(i,j), lwdn(i,j), &
1485 & swdn(i,j), solnet_ice(i,j), sfcems_ice(i,j), chklowq(i,j), &
1486 & chs_ice(i,j), flqc_ice(i,j), flhc_ice(i,j), rhonewsn_ex(i), &
1488 & mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt, &
1490 & wet_ice(i,j), cmc(i,j), shdfac(i,j), alb_ice(i,j), &
1491 & znt_ice(i,j), z0_ice(i,j), snoalb1d_ice(i,j), &
1492 & albbck_ice(i,j), xlai(i,j),landusef(i,:,j), nlcat, &
1493 & soilctop(i,:,j), nscat, smcwlt(i,j), smcref(i,j), &
1494 & qsfc_ice(i,j), qsg_ice(i,j), qvg_ice(i,j), qcg_ice(i,j), &
1495 & dew_ice(i,j), soilt1_ice(i,j), &
1496 & tsnav_ice(i,j), tbot(i,j), vtype_ice(i,j), stype_ice(i,j), &
1497 & xland(i,j), iswater, isice, xice(i,j), xice_threshold, &
1499 & con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, stbolt, &
1501 & smice(i,:,j), slice(i,:,j), soilm(i,j), smmax(i,j), &
1502 & stsice(i,:,j), soilt_ice(i,j), &
1503 & edir(i,j), ec(i,j), ett(i,j), esnow_ice(i,j), snoh_ice(i,j), &
1504 & hfx_ice(i,j), qfx_ice(i,j), lh_ice(i,j), &
1505 & infiltr(i,j), runoff1(i,j), runoff2(i,j), acrunoff(i,j), &
1506 & sfcexc(i,j), acceta(i,j), ssoil_ice(i,j), &
1507 & snfallac_ice(i,j), acsn_ice(i,j), snomlt_ice(i,j), &
1508 & smfrice(i,:,j),keepfrice(i,:,j), &
1509 & add_fire_heat_flux,fire_heat_flux1d(i,j), .false., &
1510 & shdmin1d(i,j), shdmax1d(i,j), rdlai, &
1511 & ims,ime, jms,jme, kms,kme, &
1512 & its,ite, jts,jte, kts,kte, &
1516 evap_ice(i) = qfx_ice(i,j) / rho(i)
1517 ep1d_ice(i) = qfx_ice(i,j) * con_hvap
1518 hflx_ice(i) = hfx_ice(i,j) / (con_cp*rho(i))
1519 gflux_ice(i) = ssoil_ice(i,j)
1521 qsurf_ice(i) = qsfc_ice(i,j)
1522 tsurf_ice(i) = soilt_ice(i,j)
1523 tsnow_ice(i) = soilt1_ice(i,j)
1525 sfcqv_ice(i) = qvg_ice(i,j)
1526 sfcqc_ice(i) = qcg_ice(i,j)
1528 rhosnf(i) = rhosnfr(i,j)
1529 snowfallac_ice(i) = snfallac_ice(i,j)
1530 acsnow_ice(i) = acsn_ice(i,j)
1531 snowmt_ice(i) = snomlt_ice(i,j)
1533 snwdph_ice(i) = snowh_ice(i,j) * rhoh2o
1534 weasd_ice(i) = sneqv_ice(i,j)
1535 sncovr1_ice(i) = sncovr_ice(i,j)
1536 z0rl_ice(i) = znt_ice(i,j)*100._kind_phys
1538 semis_ice(i) = sfcems_ice(i,j)
1540 sfalb_ice(i) = alb_ice(i,j)
1542 albdvis_ice(i) = sfalb_ice(i)
1543 albdnir_ice(i) = sfalb_ice(i)
1544 albivis_ice(i) = sfalb_ice(i)
1545 albinir_ice(i) = sfalb_ice(i)
1550 stm(i) = 3.e3_kind_phys
1553 tsice(i,k) = stsice(i,k,j)
1554 if(.not. frac_grid .or. .not. land(i))
then
1557 tslb(i,k) = stsice(i,k,j)
1562 if(debug_print)
then
1563 write (0,*)
'ICE - i,j,stype_ice,vtype_ice)',i,j,stype_ice(i,j),vtype_ice(i,j)
1564 write (0,*)
'i,j,tsurf_ice(i)',i,j,tsurf_ice(i)
1565 write (0,*)
'kdt,iter,stsice(i,:,j)',kdt,iter,stsice(i,:,j)
1566 write (0,*)
'laixy(i)',laixy(i)
1580 if(debug_print)
write (0,*)
'end ',i,flag_guess(i),flag_iter(i)
1581 if (flag_guess(i))
then
1582 if(debug_print)
write (0,*)
'guess run'
1584 weasd_lnd(i) = weasd_lnd_old(i)
1585 snwdph_lnd(i) = snwdph_lnd_old(i)
1586 tskin_lnd(i) = tskin_lnd_old(i)
1587 canopy(i) = canopy_old(i)
1588 tsnow_lnd(i) = tsnow_lnd_old(i)
1589 snowfallac_lnd(i) = snowfallac_lnd_old(i)
1590 acsnow_lnd(i) = acsnow_lnd_old(i)
1591 sfcqv_lnd(i) = sfcqv_lnd_old(i)
1592 sfcqc_lnd(i) = sfcqc_lnd_old(i)
1593 wetness(i) = wetness_old(i)
1594 z0rl_lnd(i) = z0rl_lnd_old(i)
1595 sncovr1_lnd(i) = sncovr1_lnd_old(i)
1596 snowmt_lnd(i) = snowmt_lnd_old(i)
1598 weasd_ice(i) = weasd_ice_old(i)
1599 snwdph_ice(i) = snwdph_ice_old(i)
1600 tskin_ice(i) = tskin_ice_old(i)
1601 tsnow_ice(i) = tsnow_ice_old(i)
1602 snowfallac_ice(i) = snowfallac_ice_old(i)
1603 acsnow_ice(i) = acsnow_ice_old(i)
1604 sfcqv_ice(i) = sfcqv_ice_old(i)
1605 sfcqc_ice(i) = sfcqc_ice_old(i)
1606 z0rl_ice(i) = z0rl_ice_old(i)
1607 sncovr1_ice(i) = sncovr1_ice_old(i)
1608 snowmt_ice(i) = snowmt_ice_old(i)
1609 srunoff(i) = srunoff_old(i)
1610 runoff(i) = runoff_old(i)
1613 smois(i,k) = smois_old(i,k)
1614 tslb(i,k) = tslb_old(i,k)
1615 tsice(i,k) = tsice_old(i,k)
1616 sh2o(i,k) = sh2o_old(i,k)
1617 keepfr(i,k) = keepfr_old(i,k)
1618 smfrkeep(i,k) = smfrkeep_old(i,k)
1621 if(debug_print)
write (0,*)
'iter run', i,j, tskin_ice(i),tsurf_ice(i)
1622 tskin_lnd(i) = tsurf_lnd(i)
1624 if (use_cdeps_data)
then
1625 if (mask_dat(i) <= 0.0)
then
1626 tskin_ice(i) = tsurf_ice(i)
1629 tskin_ice(i) = tsurf_ice(i)