SUBROUTINE wndcof(dts,u,cofdrg,cofhf,cofevp) CC virtual potential temp. diff: dts=T_vs-theta_v; u: wind; CC for drag, heat, and evaporation CC all coefs. for 10 m level real wind(6),dtdr(17),dthf(12) real drg(6,17),hf(6,12),drgcof(6),hfcof(6) data wind/2,5,10,15,20,25/ data dtdr/-20,-15,-10,-5,-4,-3,-2,-1,0, 1 1, 2, 3, 4, 5, 10, 15, 20/ data dthf/-20,-15,-10,-5,-3,-1,1,3,5,10,15,20/ data drg/0.35, 0.41, 0.52, 1.17, 1.58, 1.90, 1 0.35, 0.41, 0.79, 1.27, 1.64, 1.94, 1 0.35, 0.41, 0.89, 1.37, 1.69, 1.97, 1 0.35, 0.41, 1.09, 1.46, 1.75, 2.01, 1 0.35, 0.51, 1.13, 1.48, 1.76, 2.01, 1 0.35, 0.62, 1.17, 1.50, 1.77, 2.02, 1 0.35, 0.74, 1.21, 1.52, 1.78, 2.03, 1 0.35, 0.88, 1.26, 1.54, 1.79, 2.04, 1 0.98, 1.03, 1.30, 1.56, 1.80, 2.04, 1 1.18, 1.11, 1.33, 1.57, 1.81, 2.05, 1 1.26, 1.16, 1.35, 1.59, 1.82, 2.05, 1 1.32, 1.19, 1.37, 1.60, 1.83, 2.06, 1 1.36, 1.22, 1.39, 1.61, 1.84, 2.07, 1 1.40, 1.24, 1.41, 1.62, 1.84, 2.07, 1 1.53, 1.33, 1.47, 1.67, 1.88, 2.09, 1 1.61, 1.40, 1.52, 1.71, 1.91, 2.12, 1 1.68, 1.45, 1.57, 1.74, 1.93, 2.14/ data hf /0.34, 0.42, 0.48, 0.82, 0.92, 0.96, 1 0.34, 0.42, 0.61, 0.87, 0.94, 0.97, 1 0.34, 0.42, 0.75, 0.92, 0.96, 0.98, 1 0.34, 0.42, 0.88, 0.96, 0.98, 0.99, 1 0.34, 0.62, 0.93, 0.98, 0.99, 0.99, 1 0.34, 0.87, 0.98, 0.99, 1.00, 1.00, 1 1.30, 1.10, 1.02, 1.01, 1.00, 1.00, 1 1.50, 1.19, 1.06, 1.02, 1.01, 1.01, 1 1.63, 1.25, 1.09, 1.04, 1.02, 1.01, 1 1.82, 1.35, 1.13, 1.06, 1.03, 1.02, 1 1.96, 1.42, 1.17, 1.08, 1.05, 1.03, 1 2.07, 1.48, 1.20, 1.10, 1.06, 1.04/ dst=dts if(dst.le.dtdr(1)) dst=dtdr(1)+0.001 if(dst.ge.dtdr(17)) dst=dtdr(17)-0.001 i1=1 i=1 do while (dst.gt.dtdr(i).and.i.le.17) i1=i i=i+1 end do ttl=dtdr(i1+1)-dtdr(i1) wt1=(dtdr(i1+1)-dst)/ttl wt2=(dst - dtdr(i1))/ttl do i=1,6 drgcof(i)=drg(i,i1)*wt1+drg(i,i1+1)*wt2 end do dst=dts if(dst.le.dthf(1)) dst=dthf(1)+0.001 if(dst.ge.dthf(12)) dst=dthf(12)-0.001 i1=1 i=1 do while (dst.gt.dthf(i).and.i.le.12) i1=i i=i+1 end do ttl=dthf(i1+1)-dthf(i1) wt1=(dthf(i1+1)-dst)/ttl wt2=(dst - dthf(i1))/ttl do i=1,6 hfcof (i)= hf(i,i1)*wt1+ hf(i,i1+1)*wt2 end do uadj=u if(uadj.le.wind(1))uadj=wind(1)+0.001 if(uadj.ge.wind(6))uadj=wind(6)-0.001 i1=1 i=1 do while(uadj.gt.wind(i).and.i.le.6) i1=i i=i+1 end do ttl=wind(i1+1)-wind(i1) wt1=(wind(i1+1)-uadj)/ttl wt2=(uadj - wind(i1))/ttl cofdrg=drgcof(i1)*wt1+drgcof(i1+1)*wt2 cofhf = hfcof(i1)*wt1+ hfcof(i1+1)*wt2 cofdrg=cofdrg*1.0e-3 cofhf =cofhf *1.0e-3 cofevp=cofhf*1.2 return end