SCM surface forcing over ocean

I’m running SCM over ocean using the UM10.6. We are trying to use surface sensible heat flux, surface latent heat flux and surface temperature as the surface forcing. By setting new[‘logic’][‘l_flux_bc’]=True, the SCM will use surface fluxes only as surface forcing and when set new[‘logic’][‘l_flux_bc’] to False, the SCM will use surface temperature as surface forcing only. I’m wondering how could I use both surface fluxes and surface temperature as surface forcing?

Many thanks!
Qinuo

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) )

Hello Arnold,

Thanks for the reply.

Yes, they three are available in SCM name list. But they do not seem to be used at the meantime. Attached the SCM document, on page 9 (section 3 surface forcing), it looks like it is doable using they three together, but I’m not sure whether there’s any other logic setting I may have missed since it didn’t work as I described in the original ticket.

Best,
Qinuo
umdp_C09.pdf (1.7 MB)

1 Like

This ends up with UM 10.6 had the problem of using either surface fluxes or surface temperature as surface forcing. Versions 11.1 or later could prescribe both. Thanks

1 Like