Changeset 1848 for trunk/MESOSCALE


Ignore:
Timestamp:
Dec 10, 2017, 10:07:25 PM (7 years ago)
Author:
aslmd
Message:

idealized mesoscale, implemented the Wee et al. 2012 bias correction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_quarter_ss.F

    r1765 r1848  
    101101!****Mars
    102102   INTEGER, PARAMETER :: nl_max = 1000
    103    REAL, DIMENSION(nl_max) :: zk, p_in, theta, rho, u, v, qv, pd_in
     103   REAL, DIMENSION(nl_max) :: zk, p_in, theta, tk, rho, u, v, qv, pd_in
    104104   INTEGER :: nl_in
    105105
     
    354354  write(6,*) ' getting dry sounding for base state '
    355355
    356   CALL get_sounding( zk, p_in, pd_in, theta, rho, u, v, qv, dry_sounding, nl_max, nl_in, &
     356  CALL get_sounding( zk, p_in, pd_in, theta, tk, rho, u, v, qv, dry_sounding, nl_max, nl_in, &
    357357                        mulu, mulv, addu, addv )
    358358  ENDIF
     
    361361  CALL wrf_dm_bcast_real( pd_in , nl_max )
    362362  CALL wrf_dm_bcast_real( theta , nl_max )
     363  CALL wrf_dm_bcast_real( tk , nl_max )
    363364  CALL wrf_dm_bcast_real( rho , nl_max )
    364365  CALL wrf_dm_bcast_real( u , nl_max )
     
    538539      p_level = grid%em_znu(k)*(p_surf - grid%p_top) + grid%p_top
    539540      grid%em_pb(i,k,j) = p_level
    540       grid%em_t_init(i,k,j) = interp_0( theta, p_in, p_level, nl_in ) - t0
     541
     542! OLD METHOD
     543!      grid%em_t_init(i,k,j) = interp_0( theta, p_in, p_level, nl_in ) - t0
     544! NEW METHOD: Wee et al. 2012
     545! interpolate temperature. then convert to potential temperature.
     546      grid%em_t_init(i,k,j) = interp_0( tk, p_in, p_level, nl_in )
     547      !! l un ou l autre pareil
     548      grid%em_t_init(i,k,j) = - t0 + (grid%em_t_init(i,k,j) * ((p1000mb/p_level)**rcp))
     549      !grid%em_t_init(i,k,j) = - t0 + (grid%em_t_init(i,k,j) * ((610./p_level)**(1.0/3.9)))
    541550      grid%em_alb(i,k,j) = (r_d/p1000mb)*(grid%em_t_init(i,k,j)+t0)*(grid%em_pb(i,k,j)/p1000mb)**cvpm
    542551    ENDDO
     
    574583!  dry_sounding = .false.
    575584  dry_sounding = .true.
    576   CALL get_sounding( zk, p_in, pd_in, theta, rho, u, v, qv, dry_sounding, nl_max, nl_in, &
     585  CALL get_sounding( zk, p_in, pd_in, theta, tk, rho, u, v, qv, dry_sounding, nl_max, nl_in, &
    577586                              mulu, mulv, addu, addv )
    578587
     
    922931!---------------------------------------------------------------------------
    923932
    924       subroutine get_sounding( zk, p, p_dry, theta, rho, &
     933      subroutine get_sounding( zk, p, p_dry, theta, tk, rho, &
    925934                               u, v, qv, dry, nl_max, nl_in, &
    926935                               mulu, mulv, addu, addv )
     
    928937
    929938      integer nl_max, nl_in
    930       real zk(nl_max), p(nl_max), theta(nl_max), rho(nl_max), &
     939      real zk(nl_max), p(nl_max), theta(nl_max), tk(nl_max), rho(nl_max), &
    931940           u(nl_max), v(nl_max), qv(nl_max), p_dry(nl_max)
    932941      logical dry
     
    10951104          p_dry(k) = p_input(k)
    10961105          theta(k) = th_input(k)
     1106          tk(k) = t_input(k)
    10971107          rho(k) = rho_input(k)
    10981108          u(k) = mulu*u_input(k) + addu
Note: See TracChangeset for help on using the changeset viewer.