150     &                              LBi, UBi, LBj, UBj,                 &
 
  151     &                              IminS, ImaxS, JminS, JmaxS,         &
 
  154     &                              rmask, umask, vmask,                &
 
  157     &                              rmask_wet, umask_wet, vmask_wet,    &
 
  161     &                              rho, tl_rho, t, tl_t,               &
 
  162     &                              Hair, Pair, Tair,                   &
 
  167# ifdef BBL_MODEL_NOT_YET
 
  175     &                              stflux, tl_stflux,                  &
 
  194      integer, 
intent(in) :: ng, tile
 
  195      integer, 
intent(in) :: LBi, UBi, LBj, UBj
 
  196      integer, 
intent(in) :: IminS, ImaxS, JminS, JmaxS
 
  197      integer, 
intent(in) :: nrhs
 
  201      real(r8), 
intent(in) :: rmask(LBi:,LBj:)
 
  202      real(r8), 
intent(in) :: umask(LBi:,LBj:)
 
  203      real(r8), 
intent(in) :: vmask(LBi:,LBj:)
 
  206      real(r8), 
intent(in) :: rmask_wet(LBi:,LBj:)
 
  207      real(r8), 
intent(in) :: umask_wet(LBi:,LBj:)
 
  208      real(r8), 
intent(in) :: vmask_wet(LBi:,LBj:)
 
  210      real(r8), 
intent(in) :: alpha(LBi:,LBj:)
 
  211      real(r8), 
intent(in) :: beta(LBi:,LBj:)
 
  212      real(r8), 
intent(in) :: rho(LBi:,LBj:,:)
 
  213      real(r8), 
intent(in) :: t(LBi:,LBj:,:,:,:)
 
  214      real(r8), 
intent(in) :: Hair(LBi:,LBj:)
 
  215      real(r8), 
intent(in) :: Pair(LBi:,LBj:)
 
  216      real(r8), 
intent(in) :: Tair(LBi:,LBj:)
 
  217      real(r8), 
intent(in) :: Uwind(LBi:,LBj:)
 
  218      real(r8), 
intent(in) :: Vwind(LBi:,LBj:)
 
  219      real(r8), 
intent(in) :: tl_alpha(LBi:,LBj:)
 
  220      real(r8), 
intent(in) :: tl_beta(LBi:,LBj:)
 
  221      real(r8), 
intent(in) :: tl_rho(LBi:,LBj:,:)
 
  222      real(r8), 
intent(in) :: tl_t(LBi:,LBj:,:,:,:)
 
  224      real(r8), 
intent(in) :: cloud(LBi:,LBj:)
 
  226#  ifdef BBL_MODEL_NOT_YET 
  227      real(r8), 
intent(in) :: Awave(LBi:,LBj:)
 
  228      real(r8), 
intent(in) :: Pwave(LBi:,LBj:)
 
  230      real(r8), 
intent(in) :: rain(LBi:,LBj:)
 
  231      real(r8), 
intent(in) :: stflux(LBi:,LBj:,:)
 
  233      real(r8), 
intent(inout) :: lhflx(LBi:,LBj:)
 
  234      real(r8), 
intent(inout) :: lrflx(LBi:,LBj:)
 
  235      real(r8), 
intent(inout) :: shflx(LBi:,LBj:)
 
  236      real(r8), 
intent(inout) :: srflx(LBi:,LBj:)
 
  237      real(r8), 
intent(inout) :: tl_lhflx(LBi:,LBj:)
 
  238      real(r8), 
intent(inout) :: tl_lrflx(LBi:,LBj:)
 
  239      real(r8), 
intent(inout) :: tl_shflx(LBi:,LBj:)
 
  240      real(r8), 
intent(inout) :: tl_stflux(LBi:,LBj:,:)
 
  243      real(r8), 
intent(out) :: evap(LBi:,LBj:)
 
  244      real(r8), 
intent(out) :: tl_evap(LBi:,LBj:)
 
  246      real(r8), 
intent(out) :: sustr(LBi:,LBj:)
 
  247      real(r8), 
intent(out) :: svstr(LBi:,LBj:)
 
  248      real(r8), 
intent(out) :: tl_sustr(LBi:,LBj:)
 
  249      real(r8), 
intent(out) :: tl_svstr(LBi:,LBj:)
 
  252      real(r8), 
intent(in) :: rmask(LBi:UBi,LBj:UBj)
 
  253      real(r8), 
intent(in) :: umask(LBi:UBi,LBj:UBj)
 
  254      real(r8), 
intent(in) :: vmask(LBi:UBi,LBj:UBj)
 
  257      real(r8), 
intent(in) :: rmask_wet(LBi:UBi,LBj:UBj)
 
  258      real(r8), 
intent(in) :: umask_wet(LBi:UBi,LBj:UBj)
 
  259      real(r8), 
intent(in) :: vmask_wet(LBi:UBi,LBj:UBj)
 
  261      real(r8), 
intent(in) :: alpha(LBi:UBi,LBj:UBj)
 
  262      real(r8), 
intent(in) :: beta(LBi:UBi,LBj:UBj)
 
  263      real(r8), 
intent(in) :: rho(LBi:UBi,LBj:UBj,N(ng))
 
  264      real(r8), 
intent(in) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
 
  265      real(r8), 
intent(in) :: Hair(LBi:UBi,LBj:UBj)
 
  266      real(r8), 
intent(in) :: Pair(LBi:UBi,LBj:UBj)
 
  267      real(r8), 
intent(in) :: Tair(LBi:UBi,LBj:UBj)
 
  268      real(r8), 
intent(in) :: Uwind(LBi:UBi,LBj:UBj)
 
  269      real(r8), 
intent(in) :: Vwind(LBi:UBi,LBj:UBj)
 
  270      real(r8), 
intent(in) :: alpha(LBi:UBi,LBj:UBj)
 
  271      real(r8), 
intent(in) :: beta(LBi:UBi,LBj:UBj)
 
  272      real(r8), 
intent(in) :: rho(LBi:UBi,LBj:UBj,N(ng))
 
  273      real(r8), 
intent(in) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
 
  274      real(r8), 
intent(in) :: tl_alpha(LBi:UBi,LBj:UBj)
 
  275      real(r8), 
intent(in) :: tl_beta(LBi:UBi,LBj:UBj)
 
  276      real(r8), 
intent(in) :: tl_rho(LBi:UBi,LBj:UBj,N(ng))
 
  277      real(r8), 
intent(in) :: tl_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
 
  279      real(r8), 
intent(in) :: cloud(LBi:UBi,LBj:UBj)
 
  281#  ifdef BBL_MODEL_NOT_YET 
  282      real(r8), 
intent(in) :: Awave(LBi:UBi,LBj:UBj)
 
  283      real(r8), 
intent(in) :: Pwave(LBi:UBi,LBj:UBj)
 
  285      real(r8), 
intent(in) :: rain(LBi:UBi,LBj:UBj)
 
  286      real(r8), 
intent(in) :: stflx(LBi:UBi,LBj:UBj,NT(ng))
 
  288      real(r8), 
intent(in) :: lhflx(LBi:UBi,LBj:UBj)
 
  289      real(r8), 
intent(in) :: lrflx(LBi:UBi,LBj:UBj)
 
  290      real(r8), 
intent(in) :: shflx(LBi:UBi,LBj:UBj)
 
  291      real(r8), 
intent(in) :: srflx(LBi:UBi,LBj:UBj)
 
  292      real(r8), 
intent(in) :: stflx(LBi:UBi,LBj:UBj,NT(ng))
 
  293      real(r8), 
intent(inout) :: tl_lhflx(LBi:UBi,LBj:UBj)
 
  294      real(r8), 
intent(inout) :: tl_lrflx(LBi:UBi,LBj:UBj)
 
  295      real(r8), 
intent(inout) :: tl_shflx(LBi:UBi,LBj:UBj)
 
  296      real(r8), 
intent(inout) :: tl_stflux(LBi:UBi,LBj:UBj,NT(ng))
 
  299      real(r8), 
intent(out) :: evap(LBi:UBi,LBj:UBj)
 
  300      real(r8), 
intent(out) :: tl_evap(LBi:UBi,LBj:UBj)
 
  302      real(r8), 
intent(out) :: sustr(LBi:UBi,LBj:UBj)
 
  303      real(r8), 
intent(out) :: svstr(LBi:UBi,LBj:UBj)
 
  304      real(r8), 
intent(out) :: tl_sustr(LBi:UBi,LBj:UBj)
 
  305      real(r8), 
intent(out) :: tl_svstr(LBi:UBi,LBj:UBj)
 
  310      integer :: Iter, i, j, k
 
  311      integer, 
parameter :: IterMax = 3
 
  313      real(r8), 
parameter :: eps = 1.0e-20_r8
 
  314      real(r8), 
parameter :: r3 = 1.0_r8/3.0_r8
 
  316      real(r8) :: Bf, Cd, Hl, Hlw, Hscale, Hs, Hsr, IER
 
  317      real(r8) :: tl_Bf, tl_Cd, tl_Hl, tl_Hlw, tl_Hsr, tl_Hs
 
  318      real(r8) :: PairM,  RH, Taur
 
  319      real(r8) :: Wspeed, ZQoL, ZToL
 
  321      real(r8) :: cff, cff1, cff2, diffh, diffw, oL, upvel
 
  322      real(r8) :: twopi_inv, wet_bulb
 
  323      real(r8) :: tl_wet_bulb, tl_Wspeed, tl_upvel
 
  324      real(r8) :: fac, tl_fac, fac1, tl_fac1, fac2, tl_fac2
 
  325      real(r8) :: fac3, tl_fac3, tl_cff, ad_upvel
 
  326      real(r8) :: adfac, adfac1, adfac2
 
  328      real(r8) :: e_sat, vap_p
 
  331      real(r8) :: Clam, Fc, Hcool, Hsb, Hlb, Qbouy, Qcool, lambd
 
  332      real(r8) :: tl_Clam,  tl_Hcool, tl_Hsb, tl_Hlb
 
  333      real(r8) :: tl_Qbouy, tl_Qcool, tl_lambd
 
  336      real(r8), 
dimension(IminS:ImaxS) :: CC
 
  337      real(r8), 
dimension(IminS:ImaxS) :: Cd10
 
  338      real(r8), 
dimension(IminS:ImaxS) :: Ch10
 
  339      real(r8), 
dimension(IminS:ImaxS) :: Ct10
 
  340      real(r8), 
dimension(IminS:ImaxS) :: charn
 
  341      real(r8), 
dimension(IminS:ImaxS) :: Ct
 
  342      real(r8), 
dimension(IminS:ImaxS) :: Cwave
 
  343      real(r8), 
dimension(IminS:ImaxS) :: Cwet
 
  344      real(r8), 
dimension(IminS:ImaxS) :: delQ
 
  345      real(r8), 
dimension(IminS:ImaxS) :: delQc
 
  346      real(r8), 
dimension(IminS:ImaxS) :: delT
 
  347      real(r8), 
dimension(IminS:ImaxS) :: delTc
 
  348      real(r8), 
dimension(IminS:ImaxS) :: delW
 
  349      real(r8), 
dimension(IminS:ImaxS) :: L
 
  350      real(r8), 
dimension(IminS:ImaxS) :: L10
 
  351      real(r8), 
dimension(IminS:ImaxS) :: Lwave
 
  352      real(r8), 
dimension(IminS:ImaxS) :: Q
 
  353      real(r8), 
dimension(IminS:ImaxS) :: Qair
 
  354      real(r8), 
dimension(IminS:ImaxS) :: Qpsi
 
  355      real(r8), 
dimension(IminS:ImaxS) :: Qsea
 
  356      real(r8), 
dimension(IminS:ImaxS) :: Qstar
 
  357      real(r8), 
dimension(IminS:ImaxS) :: rhoAir
 
  358      real(r8), 
dimension(IminS:ImaxS) :: rhoSea
 
  359      real(r8), 
dimension(IminS:ImaxS) :: Ri
 
  360      real(r8), 
dimension(IminS:ImaxS) :: Ribcu
 
  361      real(r8), 
dimension(IminS:ImaxS) :: Rr
 
  362      real(r8), 
dimension(IminS:ImaxS) :: Scff
 
  363      real(r8), 
dimension(IminS:ImaxS) :: TairC
 
  364      real(r8), 
dimension(IminS:ImaxS) :: TairK
 
  365      real(r8), 
dimension(IminS:ImaxS) :: Tcff
 
  366      real(r8), 
dimension(IminS:ImaxS) :: Tpsi
 
  367      real(r8), 
dimension(IminS:ImaxS) :: TseaC
 
  368      real(r8), 
dimension(IminS:ImaxS) :: TseaK
 
  369      real(r8), 
dimension(IminS:ImaxS) :: Tstar
 
  370      real(r8), 
dimension(IminS:ImaxS) :: u10
 
  371      real(r8), 
dimension(IminS:ImaxS) :: VisAir
 
  372      real(r8), 
dimension(IminS:ImaxS) :: Wgus
 
  373      real(r8), 
dimension(IminS:ImaxS) :: Wmag
 
  374      real(r8), 
dimension(IminS:ImaxS) :: Wpsi
 
  375      real(r8), 
dimension(IminS:ImaxS) :: Wstar
 
  376      real(r8), 
dimension(IminS:ImaxS) :: Zetu
 
  377      real(r8), 
dimension(IminS:ImaxS) :: Zo10
 
  378      real(r8), 
dimension(IminS:ImaxS) :: ZoT10
 
  379      real(r8), 
dimension(IminS:ImaxS) :: ZoL
 
  380      real(r8), 
dimension(IminS:ImaxS) :: ZoQ
 
  381      real(r8), 
dimension(IminS:ImaxS) :: ZoT
 
  382      real(r8), 
dimension(IminS:ImaxS) :: ZoW
 
  383      real(r8), 
dimension(IminS:ImaxS) :: ZWoL
 
  385      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: Hlv
 
  386      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: LHeat
 
  387      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: LRad
 
  388      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: SHeat
 
  389      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: SRad
 
  390      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: Taux
 
  391      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: Tauy
 
  393      real(r8), 
dimension(IminS:ImaxS) :: tl_CC
 
  394      real(r8), 
dimension(IminS:ImaxS) :: tl_charn
 
  395      real(r8), 
dimension(IminS:ImaxS) :: tl_Ct
 
  396      real(r8), 
dimension(IminS:ImaxS) :: tl_Cd10
 
  397      real(r8), 
dimension(IminS:ImaxS) :: tl_Ct10
 
  398      real(r8), 
dimension(IminS:ImaxS) :: tl_Cwet
 
  399      real(r8), 
dimension(IminS:ImaxS) :: tl_delQ
 
  400      real(r8), 
dimension(IminS:ImaxS) :: tl_delQc
 
  401      real(r8), 
dimension(IminS:ImaxS) :: tl_delT
 
  402      real(r8), 
dimension(IminS:ImaxS) :: tl_delTc
 
  403      real(r8), 
dimension(IminS:ImaxS) :: tl_delW
 
  404      real(r8), 
dimension(IminS:ImaxS) :: tl_L
 
  405      real(r8), 
dimension(IminS:ImaxS) :: tl_L10
 
  406      real(r8), 
dimension(IminS:ImaxS) :: tl_Q
 
  407      real(r8), 
dimension(IminS:ImaxS) :: tl_Qpsi
 
  408      real(r8), 
dimension(IminS:ImaxS) :: tl_Qsea
 
  409      real(r8), 
dimension(IminS:ImaxS) :: tl_Qstar
 
  410      real(r8), 
dimension(IminS:ImaxS) :: tl_rhoSea
 
  411      real(r8), 
dimension(IminS:ImaxS) :: tl_Ri
 
  412      real(r8), 
dimension(IminS:ImaxS) :: tl_Rr
 
  413      real(r8), 
dimension(IminS:ImaxS) :: tl_Scff
 
  414      real(r8), 
dimension(IminS:ImaxS) :: tl_Tcff
 
  415      real(r8), 
dimension(IminS:ImaxS) :: tl_Tpsi
 
  416      real(r8), 
dimension(IminS:ImaxS) :: tl_TseaC
 
  417      real(r8), 
dimension(IminS:ImaxS) :: tl_TseaK
 
  418      real(r8), 
dimension(IminS:ImaxS) :: tl_Tstar
 
  419      real(r8), 
dimension(IminS:ImaxS) :: tl_u10
 
  420      real(r8), 
dimension(IminS:ImaxS) :: tl_Wgus
 
  421      real(r8), 
dimension(IminS:ImaxS) :: tl_Wpsi
 
  422      real(r8), 
dimension(IminS:ImaxS) :: tl_Wstar
 
  423      real(r8), 
dimension(IminS:ImaxS) :: tl_Zetu
 
  424      real(r8), 
dimension(IminS:ImaxS) :: tl_Zo10
 
  425      real(r8), 
dimension(IminS:ImaxS) :: tl_ZoT10
 
  426      real(r8), 
dimension(IminS:ImaxS) :: tl_ZoL
 
  427      real(r8), 
dimension(IminS:ImaxS) :: tl_ZoQ
 
  428      real(r8), 
dimension(IminS:ImaxS) :: tl_ZoT
 
  429      real(r8), 
dimension(IminS:ImaxS) :: tl_ZoW
 
  430      real(r8), 
dimension(IminS:ImaxS) :: tl_ZWoL
 
  432      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Hlv
 
  433      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_LHeat
 
  434      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_LRad
 
  435      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_SHeat
 
  436      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Taux
 
  437      real(r8), 
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Tauy
 
  439# include "set_bounds.h" 
  452          wmag(i)=sqrt(uwind(i,j)*uwind(i,j)+vwind(i,j)*vwind(i,j))
 
  455          tairk(i)=tairc(i)+273.16_r8
 
  456          tseac(i)=t(i,j,n(ng),nrhs,
itemp)
 
  457          tl_tseac(i)=tl_t(i,j,n(ng),nrhs,
itemp)
 
  458          tseak(i)=tseac(i)+273.16_r8
 
  459          tl_tseak(i)=tl_tseac(i)
 
  460          rhosea(i)=rho(i,j,n(ng))+1000.0_r8
 
  461          tl_rhosea(i)=tl_rho(i,j,n(ng))
 
  463          srad(i,j)=srflx(i,j)*hscale
 
  465          tl_tcff(i)=tl_alpha(i,j)
 
  467          tl_scff(i)=tl_beta(i,j)
 
  475          lheat(i,j)=lhflx(i,j)*hscale
 
  476          tl_lheat(i,j)=tl_lhflx(i,j)*hscale
 
  477          sheat(i,j)=shflx(i,j)*hscale
 
  478          tl_sheat(i,j)=tl_shflx(i,j)*hscale
 
  497          cff=(0.7859_r8+0.03477_r8*tairc(i))/                          &
 
  498     &        (1.0_r8+0.00412_r8*tairc(i))
 
  501          cff2=tairk(i)*tairk(i)*tairk(i)
 
  504     &              (cff1*(0.39_r8-0.05_r8*sqrt(vap_p))*                &
 
  505     &                    (1.0_r8-0.6823_r8*cloud(i,j)*cloud(i,j))+     &
 
  506     &               cff2*4.0_r8*(tseak(i)-tairk(i)))
 
  509# elif defined LONGWAVE_OUT 
  514          lrad(i,j)=lrflx(i,j)*hscale-                                  &
 
  516          tl_lrad(i,j)=tl_lrflx(i,j)*hscale-                            &
 
  518     &                 tl_tseak(i)*tseak(i)*tseak(i)*tseak(i)
 
  520          lrad(i,j)=lrflx(i,j)*hscale
 
  521          tl_lrad(i,j)=tl_lrflx(i,j)*hscale
 
  524          lrad(i,j)=lrad(i,j)*rmask(i,j)
 
  525          tl_lrad(i,j)=tl_lrad(i,j)*rmask(i,j)
 
  528          lrad(i,j)=lrad(i,j)*rmask_wet(i,j)
 
  529          tl_lrad(i,j)=tl_lrad(i,j)*rmask_wet(i,j)
 
  564          cff=(1.0007_r8+3.46e-6_r8*pairm)*6.1121_r8*                   &
 
  565     &        exp(17.502_r8*tairc(i)/(240.97_r8+tairc(i)))
 
  569          qair(i)=0.62197_r8*(cff/(pairm-0.378_r8*cff))
 
  573          IF (rh.lt.2.0_r8) 
THEN                        
  575            q(i)=0.62197_r8*(cff/(pairm-0.378_r8*cff)) 
 
  582          fac=17.502_r8*tseac(i)/(240.97_r8+tseac(i))
 
  583          tl_fac=17.502_r8*tl_tseac(i)/(240.97_r8+tseac(i))-            &
 
  584     &           tl_tseac(i)*fac/(240.97_r8+tseac(i))
 
  587          cff=(1.0007_r8+3.46e-6_r8*pairm)*6.1121_r8*                   &
 
  588     &            exp(17.502_r8*tseac(i)/(240.97_r8+tseac(i)))
 
  594          tl_cff=tl_cff*0.98_r8
 
  598          qsea(i)=0.62197_r8*(cff/(pairm-0.378_r8*cff))
 
  599          tl_fac=0.62197_r8*(tl_cff/(pairm-0.378_r8*cff))
 
  600          tl_qsea(i)=tl_fac*(1.0_r8+0.378_r8*cff/((pairm-0.378_r8*cff)))
 
  609          rhoair(i)=pairm*100.0_r8/(
blk_rgas*tairk(i)*                  &
 
  610     &                              (1.0_r8+0.61_r8*q(i)))
 
  614          visair(i)=1.326e-5_r8*                                        &
 
  615     &              (1.0_r8+tairc(i)*(6.542e-3_r8+tairc(i)*             &
 
  616     &               (8.301e-6_r8-4.84e-9_r8*tairc(i))))
 
  620          hlv(i,j)=(2.501_r8-0.00237_r8*tseac(i))*1.0e+6_r8
 
  621          tl_hlv(i,j)=-0.00237_r8*tl_tseac(i)*1.0e+6_r8
 
  631          delw(i)=sqrt(wmag(i)*wmag(i)+wgus(i)*wgus(i))
 
  634          tl_delq(i)=tl_qsea(i)
 
  635          delt(i)=tseac(i)-tairc(i)
 
  636          tl_delt(i)=tl_tseac(i)
 
  642          u10(i)=delw(i)*log(10.0_r8/zow(i))/log(
blk_zw(ng)/zow(i))
 
  647          wstar(i)=0.035_r8*u10(i)
 
  648          tl_wstar(i)=0.035_r8*tl_u10(i)
 
  649          zo10(i)=0.011_r8*wstar(i)*wstar(i)/
g+                         &
 
  650     &            0.11_r8*visair(i)/wstar(i)
 
  651          tl_zo10(i)=0.022_r8*tl_wstar(i)*wstar(i)/
g-                   &
 
  652     &               tl_wstar(i)*0.11_r8*visair(i)/(wstar(i)*wstar(i))
 
  653          fac=log(10.0_r8/zo10(i))
 
  654          tl_fac=-tl_zo10(i)/zo10(i)
 
  657          cd10(i)=(
vonkar/log(10.0_r8/zo10(i)))**2
 
  658          tl_cd10(i)=-2.0_r8*tl_fac*cd10(i)/fac
 
  660          ct10(i)=ch10(i)/sqrt(cd10(i))
 
  661          tl_ct10(i)=-0.5_r8*tl_cd10(i)*ct10(i)/cd10(i)
 
  663          tl_fac=-tl_ct10(i)*fac/ct10(i)
 
  666          zot10(i)=10.0_r8/exp(
vonkar/ct10(i))
 
  667          tl_zot10(i)=-tl_fac*zot10(i)
 
  668          fac=log(
blk_zw(ng)/zo10(i))
 
  669          tl_fac=-tl_zo10(i)/zo10(i)
 
  673          tl_cd=-2.0_r8*tl_fac*cd/fac
 
  677          fac=log(
blk_zt(ng)/zot10(i))
 
  678          tl_fac=-tl_zot10(i)/zot10(i)
 
  682          tl_ct(i)=-tl_fac*ct(i)/fac            
 
  684          tl_cc(i)=
vonkar*tl_ct(i)/cd-tl_cd*cc(i)/cd
 
  692          fac=1.0/(tairk(i)*delw(i)*delw(i))
 
  699          ri(i)=-
g*
blk_zw(ng)*((delt(i)-deltc(i))+                      &
 
  700     &                          0.61_r8*tairk(i)*delq(i))/              &
 
  701     &          (tairk(i)*delw(i)*delw(i))
 
  702          tl_ri(i)=-fac*
g*
blk_zw(ng)*((tl_delt(i)-tl_deltc(i))+         &
 
  703     &                                 0.61_r8*tairk(i)*tl_delq(i))
 
  704          IF (ri(i).lt.0.0_r8) 
THEN 
  705            zetu(i)=cc(i)*ri(i)/(1.0_r8+ri(i)/ribcu(i))       
 
  706            tl_zetu(i)=(tl_cc(i)*ri(i)+cc(i)*tl_ri(i))/                 &
 
  707     &                                 (1.0_r8+ri(i)/ribcu(i))-         &
 
  708     &                 (tl_ri(i)/ribcu(i))*                             &
 
  709     &                 zetu(i)/(1.0_r8+ri(i)/ribcu(i))
 
  711            fac=3.0_r8*ri(i)/cc(i)
 
  712            tl_fac=3.0_r8*tl_ri(i)/cc(i)-tl_cc(i)*fac/cc(i)
 
  715            zetu(i)=cc(i)*ri(i)/(1.0_r8+3.0_r8*ri(i)/cc(i))   
 
  716            tl_zetu(i)=(tl_cc(i)*ri(i)+cc(i)*tl_ri(i))/(1.0_r8+fac)-    &
 
  717     &                 tl_fac*zetu(i)/(1.0_r8+fac)
 
  720          tl_l10(i)=-l10(i)*l10(i)*tl_zetu(i)/
blk_zw(ng)
 
  725          tl_fac1=-tl_l10(i)*fac1/l10(i)
 
  726          fac2=log(
blk_zw(ng)/zo10(i))
 
  727          tl_fac2=-tl_zo10(i)/zo10(i)
 
  735          tl_wstar(i)=-(tl_fac2-                                        &
 
  739          tl_fac1=-tl_l10(i)*fac1/l10(i)
 
  740          fac2=log(
blk_zt(ng)/zot10(i))
 
  741          tl_fac2=-tl_zot10(i)/zot10(i)
 
  745          tstar(i)=-(delt(i)-deltc(i))*
vonkar/                          &
 
  746     &             (log(
blk_zt(ng)/zot10(i))-                           &
 
  748          tl_tstar(i)=-(tl_delt(i)-tl_deltc(i))*
vonkar/                 &
 
  753          tl_fac1=-tl_l10(i)*fac1/l10(i)
 
  754          fac2=log(
blk_zq(ng)/zot10(i))
 
  755          tl_fac2=-tl_zot10(i)/zot10(i)
 
  758          qstar(i)=-(delq(i)-delqc(i))*
vonkar/                          &
 
  759     &             (log(
blk_zq(ng)/zot10(i))-                           &
 
  761          tl_qstar(i)=-(tl_delq(i)-tl_delqc(i))*
vonkar/                 &
 
  769          IF (delw(i).gt.18.0_r8) 
THEN 
  772          ELSE IF ((10.0_r8.lt.delw(i)).and.(delw(i).le.18.0_r8)) 
THEN 
  774     &               0.125_r8*(0.018_r8-0.011_r8)*(delw(i)-10._r8)
 
  783# ifdef BBL_MODEL_NOT_YET 
  784          cwave(i)=
g*pwave(i,j)*twopi_inv
 
  785          lwave(i)=cwave(i)*pwave(i,j)
 
  793# ifdef BBL_MODEL_NOT_YET 
  798            zow(i)=(25.0_r8/
pi)*lwave(i)*(wstar(i)/cwave(i))**4.5+      &
 
  799     &             0.11_r8*visair(i)/(wstar(i)+eps)
 
  800            tl_zow(i)=(25.0_r8/
pi)*lwave(i)*4.5_r8*tl_wstar(i)*         &
 
  801     &                (wstar(i)/cwave(i))**3.5/cwave(i)-                &
 
  802     &                tl_wstar(i)*0.11_r8*visair(i)/                    &
 
  803     &                ((wstar(i)+eps)*(wstar(i)+eps))
 
  805            zow(i)=1200._r8*awave(i,j)*(awave(i,j)/lwave(i))**4.5+      &
 
  806     &             0.11_r8*visair(i)/(wstar(i)+eps)
 
  807            tl_zow(i)=-tl_wstar(i)*0.11_r8*visair(i)/                   &
 
  808     &                ((wstar(i)+eps)*(wstar(i)+eps))
 
  811            zow(i)=charn(i)*wstar(i)*wstar(i)/
g+                        &
 
  812     &             0.11_r8*visair(i)/(wstar(i)+eps)
 
  813            tl_zow(i)=2.0_r8*charn(i)*tl_wstar(i)*wstar(i)/
g-           &
 
  814     &                tl_wstar(i)*0.11_r8*visair(i)/                    &
 
  815     &                ((wstar(i)+eps)*(wstar(i)+eps))
 
  817            rr(i)=zow(i)*wstar(i)/visair(i)
 
  818            tl_rr(i)=(tl_zow(i)*wstar(i)+zow(i)*tl_wstar(i))/visair(i)
 
  822            zoq(i)=min(1.15e-4_r8,5.5e-5_r8/rr(i)**0.6)
 
  824     &         -(0.5_r8-sign(0.5_r8,5.5e-5_r8/rr(i)**0.6-1.15e-4_r8))   &
 
  825     &          *0.6_r8*5.5e-5_r8*tl_rr(i)/rr(i)**1.6
 
  829     &             (tstar(i)*(1.0_r8+0.61_r8*q(i))+                     &
 
  830     &                        0.61_r8*tairk(i)*qstar(i))/               &
 
  831     &             (tairk(i)*wstar(i)*wstar(i)*                         &
 
  832     &             (1.0_r8+0.61_r8*q(i))+eps)
 
  834     &             (tl_tstar(i)*(1.0_r8+0.61_r8*q(i))+                  &
 
  835     &                        0.61_r8*tairk(i)*tl_qstar(i))/            &
 
  836     &             (tairk(i)*wstar(i)*wstar(i)*                         &
 
  837     &             (1.0_r8+0.61_r8*q(i))+eps)-                          &
 
  838     &             2.0_r8*tairk(i)*tl_wstar(i)*wstar(i)*                &
 
  839     &             (1.0_r8+0.61_r8*q(i))*zol(i)/                        &
 
  840     &             (tairk(i)*wstar(i)*wstar(i)*                         &
 
  841     &             (1.0_r8+0.61_r8*q(i))+eps)
 
  842            l(i)=
blk_zw(ng)/(zol(i)+eps)
 
  843            tl_l(i)=-tl_zol(i)*l(i)/(zol(i)+eps)
 
  850            tl_fac=-tl_l(i)*fac/l(i)
 
  856            tl_fac=-tl_l(i)*fac/l(i)
 
  862            cwet(i)=0.622_r8*hlv(i,j)*qsea(i)/                          &
 
  864            tl_cwet(i)=0.622_r8*(tl_hlv(i,j)*qsea(i)+                   &
 
  865     &                           hlv(i,j)*tl_qsea(i))/                  &
 
  867     &                 2.0_r8*
blk_rgas*tl_tseak(i)*tseak(i)*cwet(i)/    &
 
  869            delqc(i)=cwet(i)*deltc(i)
 
  870            tl_delqc(i)=tl_cwet(i)*deltc(i)+cwet(i)*tl_deltc(i)
 
  876            tl_fac1=-tl_zow(i)*fac1/zow(i)
 
  879            fac3=delw(i)*
vonkar/(fac2-wpsi(i))
 
  880            tl_fac3=tl_delw(i)*
vonkar/(fac2-wpsi(i))-                   &
 
  881     &             (tl_fac2-tl_wpsi(i))*fac3/(fac2-wpsi(i))
 
  884            wstar(i)=max(eps,delw(i)*
vonkar/                            &
 
  885     &               (log(
blk_zw(ng)/zow(i))-wpsi(i)))
 
  886            tl_wstar(i)=(0.5_r8-sign(0.5_r8,eps-fac3))*tl_fac3
 
  888            tl_fac1=-tl_zot(i)*fac1/zot(i)
 
  893            tstar(i)=-(delt(i)-deltc(i))*
vonkar/                        &
 
  894     &               (log(
blk_zt(ng)/zot(i))-tpsi(i))
 
  895            tl_tstar(i)=-(tl_delt(i)-tl_deltc(i))*
vonkar/(fac2-tpsi(i))-&
 
  896     &                  (tl_fac2-tl_tpsi(i))*tstar(i)/(fac2-tpsi(i))
 
  898            tl_fac1=-tl_zoq(i)*fac1/zoq(i)
 
  903            qstar(i)=-(delq(i)-delqc(i))*
vonkar/                        &
 
  904     &               (log(
blk_zq(ng)/zoq(i))-qpsi(i))
 
  905            tl_qstar(i)=-(tl_delq(i)-tl_delqc(i))*
vonkar/(fac2-qpsi(i))-&
 
  906     &                    (tl_fac2-tl_qpsi(i))*qstar(i)/(fac2-qpsi(i))
 
  912     &         wstar(i)*(tstar(i)+0.61_r8*tairk(i)*qstar(i))
 
  914     &            (tl_wstar(i)*(tstar(i)+0.61_r8*tairk(i)*qstar(i))+    &
 
  915     &             wstar(i)*(tl_tstar(i)+0.61_r8*tairk(i)*tl_qstar(i)))
 
  916            IF (bf.gt.0.0_r8) 
THEN 
  924            delw(i)=sqrt(wmag(i)*wmag(i)+wgus(i)*wgus(i))
 
  925            IF (delw(i).ne.0.0_r8)
THEN 
  926               tl_delw(i)=tl_wgus(i)*wgus(i)/delw(i)
 
  952            hsb=-rhoair(i)*
blk_cpa*wstar(i)*tstar(i)
 
  953            tl_hsb=-rhoair(i)*
blk_cpa*(tl_wstar(i)*tstar(i)+            &
 
  954     &                                 wstar(i)*tl_tstar(i))
 
  955            hlb=-rhoair(i)*hlv(i,j)*wstar(i)*qstar(i)
 
  956            tl_hlb=-rhoair(i)*(tl_hlv(i,j)*wstar(i)*qstar(i)+           &
 
  957     &                         hlv(i,j)*(tl_wstar(i)*qstar(i)+          &
 
  958     &                                 wstar(i)*tl_qstar(i)))
 
  962            fc=0.065_r8+11.0_r8*hcool-                                  &
 
  963     &         (1.0_r8-exp(-hcool*1250.0_r8))*6.6e-5_r8/hcool
 
  967            qcool=lrad(i,j)+hsb+hlb-srad(i,j)*fc
 
  968            tl_qcool=tl_lrad(i,j)+tl_hsb+tl_hlb
 
  969            qbouy=tcff(i)*qcool+scff(i)*hlb*
blk_cpw/hlv(i,j)
 
  970            tl_qbouy=tl_tcff(i)*qcool+tcff(i)*tl_qcool+                 &
 
  972     &                scff(i)*tl_hlb*
blk_cpw)/hlv(i,j)-                 &
 
  973     &               tl_hlv(i,j)*scff(i)*hlb*
blk_cpw/                   &
 
  974     &               (hlv(i,j)*hlv(i,j))
 
  978            IF ((qcool.gt.0.0_r8).and.(qbouy.gt.0.0_r8)) 
THEN 
  979              fac1=(wstar(i)+eps)**4
 
  980              tl_fac1=4.0_r8*tl_wstar(i)*(wstar(i)+eps)**3
 
  982              tl_fac2=tl_clam*qbouy+clam*tl_qbouy
 
  983              fac3=(fac2/fac1)**0.75_r8
 
  984              tl_fac3=0.75_r8*(fac2/fac1)**(0.75_r8-1.0_r8)*            &
 
  985     &                (tl_fac2/fac1-tl_fac1*fac2/(fac1*fac1))
 
  989     &              (1.0_r8+(clam*qbouy/(wstar(i)+eps)**4)**0.75_r8)**r3
 
  990              tl_lambd=-r3*6.0_r8*tl_fac3/(1.0_r8+fac3)**(r3+1.0_r8)
 
  991              fac1=sqrt(rhoair(i)/rhosea(i))
 
  992              IF (fac1.ne.0.0_r8) 
THEN 
  993                tl_fac1=-0.5_r8*tl_rhosea(i)*fac1/rhosea(i)
 
  997              fac2=fac1*wstar(i)+eps
 
  998              tl_fac2=tl_fac1*wstar(i)+fac1*tl_wstar(i)
 
 1001              hcool=lambd*
blk_visw/(sqrt(rhoair(i)/rhosea(i))*          &
 
 1003              tl_hcool=tl_lambd*
blk_visw/fac2-tl_fac2*hcool/fac2
 
 1005              tl_deltc(i)=(tl_qcool*hcool+qcool*tl_hcool)/
blk_tcw 
 1010            delqc(i)=cwet(i)*deltc(i)
 
 1011            tl_delqc(i)=tl_cwet(i)*deltc(i)+cwet(i)*tl_deltc(i)
 
 1024          wspeed=sqrt(wmag(i)*wmag(i)+wgus(i)*wgus(i))
 
 1025          IF (wspeed.ne.0.0_r8) 
THEN 
 1026            tl_wspeed=tl_wgus(i)*wgus(i)/wspeed
 
 1030          cd=wstar(i)*wstar(i)/(wspeed*wspeed+eps)
 
 1031          tl_cd=2.0_r8*(tl_wstar(i)*wstar(i)/(wspeed*wspeed+eps)-       &
 
 1032     &          tl_wspeed*wspeed*cd/(wspeed*wspeed+eps))
 
 1036            hs=-
blk_cpa*rhoair(i)*wstar(i)*tstar(i)
 
 1037            tl_hs=-
blk_cpa*rhoair(i)*(tl_wstar(i)*tstar(i)+             &
 
 1038     &                                wstar(i)*tl_tstar(i))
 
 1042            diffw=2.11e-5_r8*(tairk(i)/273.16_r8)**1.94_r8
 
 1043            diffh=0.02411_r8*(1.0_r8+tairc(i)*                          &
 
 1044     &                        (3.309e-3_r8-1.44e-6_r8*tairc(i)))/       &
 
 1046            cff=qair(i)*hlv(i,j)/(
blk_rgas*tairk(i)*tairk(i))
 
 1047            tl_cff=qair(i)*tl_hlv(i,j)/(
blk_rgas*tairk(i)*tairk(i))
 
 1048            fac=0.622_r8*(cff*hlv(i,j)*diffw)/(
blk_cpa*diffh)
 
 1049            tl_fac=0.622_r8*diffw*(tl_cff*hlv(i,j)+cff*tl_hlv(i,j))/    &
 
 1053            wet_bulb=1.0_r8/(1.0_r8+0.622_r8*(cff*hlv(i,j)*diffw)/      &
 
 1055            tl_wet_bulb=-tl_fac*wet_bulb*wet_bulb
 
 1056            hsr=rain(i,j)*wet_bulb*
blk_cpw*                             &
 
 1057     &          ((tseac(i)-tairc(i))+(qsea(i)-q(i))*hlv(i,j)/
blk_cpa)
 
 1058            tl_hsr=hsr*tl_wet_bulb/wet_bulb+                            &
 
 1059     &             rain(i,j)*wet_bulb*
blk_cpw*                          &
 
 1060     &             (tl_tseac(i)+tl_qsea(i)*hlv(i,j)/
blk_cpa+            &
 
 1061     &              (qsea(i)-q(i))*tl_hlv(i,j)/
blk_cpa)
 
 1063            tl_sheat(i,j)=(tl_hs+tl_hsr)
 
 1065            sheat(i,j)=sheat(i,j)*rmask(i,j)
 
 1066            tl_sheat(i,j)=tl_sheat(i,j)*rmask(i,j)
 
 1069            sheat(i,j)=sheat(i,j)*rmask_wet(i,j)
 
 1070            tl_sheat(i,j)=tl_sheat(i,j)*rmask_wet(i,j)
 
 1075            hl=-hlv(i,j)*rhoair(i)*wstar(i)*qstar(i)
 
 1076            tl_hl=-tl_hlv(i,j)*rhoair(i)*wstar(i)*qstar(i)-             &
 
 1077     &             hlv(i,j)*rhoair(i)*(tl_wstar(i)*qstar(i)+            &
 
 1078     &                                 wstar(i)*tl_qstar(i) )
 
 1082            upvel=-1.61_r8*wstar(i)*qstar(i)-                           &
 
 1083     &            (1.0_r8+1.61_r8*q(i))*wstar(i)*tstar(i)/tairk(i)
 
 1084            tl_upvel=-1.61_r8*                                          &
 
 1085     &               (tl_wstar(i)*qstar(i)+wstar(i)*tl_qstar(i))-       &
 
 1086     &               (1.0_r8+1.61_r8*q(i))*(tl_wstar(i)*tstar(i)+       &
 
 1087     &                                      wstar(i)*tl_tstar(i))/      &
 
 1089            hlw=rhoair(i)*hlv(i,j)*upvel*q(i)
 
 1090            tl_hlw=rhoair(i)*q(i)*(tl_hlv(i,j)*upvel+                   &
 
 1091     &                             hlv(i,j)*tl_upvel)
 
 1093            tl_lheat(i,j)=(tl_hl+tl_hlw)
 
 1095            lheat(i,j)=lheat(i,j)*rmask(i,j)
 
 1096            tl_lheat(i,j)=tl_lheat(i,j)*rmask(i,j)
 
 1099            lheat(i,j)=lheat(i,j)*rmask_wet(i,j)
 
 1100            tl_lheat(i,j)=tl_lheat(i,j)*rmask_wet(i,j)
 
 1105            taur=0.85_r8*rain(i,j)*wmag(i)
 
 1109            cff=rhoair(i)*cd*wspeed
 
 1110            tl_cff=rhoair(i)*(tl_cd*wspeed+cd*tl_wspeed)
 
 1111            taux(i,j)=(cff*uwind(i,j)+taur*sign(1.0_r8,uwind(i,j)))
 
 1112            tl_taux(i,j)=tl_cff*uwind(i,j)
 
 1114            taux(i,j)=taux(i,j)*rmask(i,j)
 
 1115            tl_taux(i,j)=tl_taux(i,j)*rmask(i,j)
 
 1118            taux(i,j)=taux(i,j)*rmask_wet(i,j)
 
 1119            tl_taux(i,j)=tl_taux(i,j)*rmask_wet(i,j)
 
 1121            tauy(i,j)=(cff*vwind(i,j)+taur*sign(1.0_r8,vwind(i,j)))
 
 1122            tl_tauy(i,j)=tl_cff*vwind(i,j)
 
 1124            tauy(i,j)=tauy(i,j)*rmask(i,j)
 
 1125            tl_tauy(i,j)=tl_tauy(i,j)*rmask(i,j)
 
 1128            tauy(i,j)=tauy(i,j)*rmask_wet(i,j)
 
 1129            tl_tauy(i,j)=tl_tauy(i,j)*rmask_wet(i,j)
 
 1168          tl_lrflx(i,j)=tl_lrad(i,j)*hscale
 
 1171          tl_lhflx(i,j)=-tl_lheat(i,j)*hscale
 
 1174          tl_shflx(i,j)=-tl_sheat(i,j)*hscale
 
 1178          tl_stflux(i,j,
itemp)=(tl_lrflx(i,j)+                          &
 
 1179     &                          tl_lhflx(i,j)+tl_shflx(i,j))
 
 1183          tl_stflx(i,j,
itemp)=tl_stflx(i,j,
itemp)*rmask(i,j)
 
 1188          tl_stflux(i,j,
itemp)=tl_stflx(i,j,
itemp)*rmask_wet(i,j)
 
 1191          evap(i,j)=lheat(i,j)/hlv(i,j)
 
 1192          tl_evap(i,j)=tl_lheat(i,j)/hlv(i,j)-                          &
 
 1193     &                 tl_hlv(i,j)*evap(i,j)/hlv(i,j)
 
 1196          tl_stflx(i,j,
isalt)=cff*tl_evap(i,j)
 
 1198          evap(i,j)=evap(i,j)*rmask(i,j)
 
 1199          tl_evap(i,j)=tl_evap(i,j)*rmask(i,j)
 
 1202          tl_stflux(i,j,
isalt)=tl_stflx(i,j,
isalt)*rmask(i,j)
 
 1205          evap(i,j)=evap(i,j)*rmask_wet(i,j)
 
 1206          tl_evap(i,j)=tl_evap(i,j)*rmask_wet(i,j)
 
 1209          tl_stflux(i,j,
isalt)=tl_stflx(i,j,
isalt)*rmask_wet(i,j)
 
 1222          tl_sustr(i,j)=cff*(tl_taux(i-1,j)+tl_taux(i,j))
 
 1226          tl_sustr(i,j)=tl_sustr(i,j)*umask(i,j)
 
 1231          tl_sustr(i,j)=tl_sustr(i,j)*umask_wet(i,j)
 
 1239          tl_svstr(i,j)=cff*(tl_tauy(i,j-1)+tl_tauy(i,j))
 
 1243          tl_svstr(i,j)=tl_svstr(i,j)*vmask(i,j)
 
 1248          tl_svstr(i,j)=tl_svstr(i,j)*vmask_wet(i,j)
 
 1263     &                          lbi, ubi, lbj, ubj,                     &
 
 1270     &                          lbi, ubi, lbj, ubj,                     &
 
 1277     &                          lbi, ubi, lbj, ubj,                     &
 
 1284     &                          lbi, ubi, lbj, ubj,                     &
 
 1285     &                          tl_stflux(:,:,
itemp))
 
 1292     &                          lbi, ubi, lbj, ubj,                     &
 
 1293     &                          tl_stflux(:,:,
isalt))
 
 1299     &                          lbi, ubi, lbj, ubj,                     &
 
 1307     &                          lbi, ubi, lbj, ubj,                     &
 
 1314     &                          lbi, ubi, lbj, ubj,                     &
 
 1327     &                    lbi, ubi, lbj, ubj,                           &
 
 1330     &                    tl_lrflx, tl_lhflx, tl_shflx,                 &
 
 1331     &                    tl_stflux(:,:,
itemp))
 
 1341     &                    lbi, ubi, lbj, ubj,                           &
 
 1345     &                    tl_stflux(:,:,
isalt))
 
 1354     &                    lbi, ubi, lbj, ubj,                           &
 
 1357     &                    tl_sustr, tl_svstr)