| subroutine __noahmpdrv_f90__::noahmpdrv_run  | 
          ( | 
          integer, intent(in) |           im,  | 
         
        
           | 
           | 
          integer, intent(in) |           km,  | 
         
        
           | 
           | 
          integer, intent(in) |           lsnowl,  | 
         
        
           | 
           | 
          integer, intent(in) |           itime,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           ps,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           u1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           v1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           t1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           q1,  | 
         
        
           | 
           | 
          integer, dimension(:), intent(in) |           soiltyp,  | 
         
        
           | 
           | 
          integer, dimension(:), intent(in) |           soilcol,  | 
         
        
           | 
           | 
          integer, dimension(:), intent(in) |           vegtype,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           sigmaf,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           dlwflx,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           dswsfc,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           snet,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           delt,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           tg3,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           cm,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           ch,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           prsl1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           prslk1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           prslki,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           prsik1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           zf,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           pblh,  | 
         
        
           | 
           | 
          logical, dimension(:), intent(in) |           dry,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           wind,  | 
         
        
           | 
           | 
          integer, dimension(:), intent(in) |           slopetyp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           shdmin,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           shdmax,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           snoalb,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           sfalb,  | 
         
        
           | 
           | 
          logical, dimension(:), intent(in) |           flag_iter,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_g,  | 
         
        
           | 
           | 
          integer, intent(in) |           idveg,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_crs,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_btr,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_run,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_sfc,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_frz,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_inf,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_rad,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_alb,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_snf,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_tbot,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_stc,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_trs,  | 
         
        
           | 
           | 
          integer, intent(in) |           iopt_diag,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           xlatin,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           xcoszin,  | 
         
        
           | 
           | 
          integer, intent(in) |           iyrlen,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           julian,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           garea,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           rainn_mp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           rainc_mp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           snow_mp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           graupel_mp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           ice_mp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(in) |           rhonewsn1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_hvap,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_cp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_jcal,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           rhoh2o,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_eps,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_epsm1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_fvirt,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_rd,  | 
         
        
           | 
           | 
          real(kind=kind_phys), intent(in) |           con_hfus,  | 
         
        
           | 
           | 
          logical, intent(in) |           thsfc_loc,  | 
         
        
           | 
           | 
          logical, intent(in) |           cpllnd,  | 
         
        
           | 
           | 
          logical, intent(in) |           cpllnd2atm,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           weasd,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           snwdph,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           tskin,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           tprcp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           srflag,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,:), intent(inout) |           smc,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,:), intent(inout) |           stc,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,:), intent(inout) |           slc,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           canopy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           trans,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           tsurf,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           zorl,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           rb1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           fm1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           fh1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           ustar1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           stress1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           fm101,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           fh21,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           rmol1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           flhc1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           flqc1,  | 
         
        
           | 
           | 
          logical, intent(in) |           do_mynnsfclay,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           snowxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           tvxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           tgxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           canicexy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           canliqxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           eahxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           tahxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           cmxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           chxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           fwetxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           sneqvoxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           alboldxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           qsnowxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           wslakexy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           zwtxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           waxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           wtxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) |           tsnoxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) |           zsnsoxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) |           snicexy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) |           snliqxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           lfmassxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           rtmassxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           stmassxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           woodxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           stblcpxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           fastcpxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           xlaixy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           xsaixy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           taussxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,:), intent(inout) |           smoiseq,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           smcwtdxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           deeprechxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(inout) |           rechxy,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           albdvis,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           albdnir,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           albivis,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           albinir,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           emiss,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           sncovr1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           qsurf,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           gflux,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           drain,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           evap,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           hflx,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           ep,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           runoff,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           cmm,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           chh,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           evbs,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           evcw,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           sbsno,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           pah,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           ecan,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           etran,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           edir,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           snowc,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           stm,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           snohf,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           smcwlt2,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           smcref2,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           wet1,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           t2mmp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           q2mp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           zvfun,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           ztmax,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out) |           rca,  | 
         
        
           | 
           | 
          character(len=*), intent(out) |           errmsg,  | 
         
        
           | 
           | 
          integer, intent(out) |           errflg,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           canopy_heat_storage_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           rainfall_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sw_absorbed_total_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sw_reflected_total_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           lw_absorbed_total_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           temperature_bare_grd_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           temperature_veg_grd_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           temperature_veg_2m_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           temperature_bare_2m_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           spec_humidity_veg_2m_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           spec_humidity_bare_2m_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sw_absorbed_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sw_absorbed_ground_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           snowmelt_out_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           snowmelt_shallow_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,:), intent(out), optional |           albedo_direct_snow_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:,:), intent(out), optional |           albedo_diffuse_snow_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ch_vegetated_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ch_bare_ground_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sensible_heat_grd_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sensible_heat_leaf_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           sensible_heat_grd_bar_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           latent_heat_grd_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           latent_heat_grd_bare_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ground_heat_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ground_heat_bare_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           lw_absorbed_grd_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           lw_absorbed_leaf_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           lw_absorbed_grd_bare_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           latent_heat_trans_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           latent_heat_leaf_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ch_leaf_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ch_below_canopy_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ch_vegetated_2m_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           ch_bare_ground_2m_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           precip_adv_heat_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           precip_adv_heat_grd_v_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           precip_adv_heat_grd_b_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           spec_humid_sfc_veg_ccpp,  | 
         
        
           | 
           | 
          real(kind=kind_phys), dimension(:), intent(out), optional |           spec_humid_sfc_bare_ccpp ) | 
         
       
   | 
  
private   |