I have a quick look: Any thoughts?? Both are still in the SCM option.
/scratch/w40/qh5472/cylc-run/u-cy071/share/fcm_make/extract/um/src/atmosphere/convection/conv_surf_flux.F90
flux_e(row_length,rows) & ! Specified surface
! latent heat flux (W/m^2)
flux_h(row_length,rows) & ! Specified surface
! sensible heat fluxes (in W/m2)
tstar(row_length,rows) & ! Surface temperature
! (= top soil layer temperature) (K).
ELSE ! if l_flux_bc (used by some SCM runs)
!-----------------------------------------------------------
! Code for specified surface flux boundary condition.
! Assumes a saturated surface (ie. only appropriate for sea)
!-----------------------------------------------------------
ii=0
DO j=1, rows
DO i=1, row_length
! For taylor expansion about T0=SL(K=1)
tstar(i,j) = theta(i,j,1)*exner_theta_levels(i,j,1)+ &
gamma_dry*z_full(i,j,1)
END DO
END DO
! DEPENDS ON: qsat_mix
CALL qsat_mix(qs_star,tstar,pstar,row_length*rows,l_mixing_ratio)
DO j=1, rows
DO i=1, row_length
dqsdt(i,j) = (repsilon * lc * qs_star(i,j)) &
/ ( r * tstar(i,j) * tstar(i,j) )
END DO
END DO
ii=0
DO j=1,rows
DO i=1,row_length
ushear = u_p(i,j) - u_0_p(i,j)
vshear = v_p(i,j) - v_0_p(i,j)
! Need to have a higher minimum wind speed limit with
! specified fluxes in order not to generate huge tstar
wshr2 = MAX (0.1, ushear*ushear + vshear*vshear)
wshr1 = SQRT(wshr2)
! Calculate wthv from namelist flux_h and flux_e (in W/m2)
!
wthvbar = (( flux_h(i,j)/cp)+0.61*( flux_e(i,j)/lc)) &
* ((100000.0/pstar(i,j))**kappa)
cd = 1.5 * ( vkman/LOG(z_full(i,j,1)/z0(i,j)) )**2
theta1 = theta(i,j,1)
! Taylor expansion for qsat(T*) about SL(k=1)
!
tstar(i,j) = ( theta1 + (wthvbar/(wshr1*cd)) &
- 0.61*theta1 &
* (qs_star(i,j)-q(i,j,1)-dqsdt(i,j)*tstar(i,j))) &
/ ( (100000.0/pstar(i,j))**kappa + &
0.61*theta1*dqsdt(i,j) )