Ignore:
Timestamp:
Feb 9, 2016, 3:45:31 PM (8 years ago)
Author:
lguez
Message:

For read_climoz = 1 or 2, replaced first order conservative regridding
of ozone by second order conservative regridding, with Van Leer
slope-limiting. The replacement is done for both latitude and pressure
regridding. The replacement is beneficial if the resolution of the
input data is coarser than the resolution of LMDZ. If the resolution
of the input data is finer, then the replacement is neutral, it does
not change much.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/regr_pr_av_m.F90

    r2346 r2440  
    2626
    2727    ! The target vertical LMDZ grid is the grid of layer boundaries.
    28     ! Regridding in pressure is done by averaging a step function of pressure.
     28    ! Regridding in pressure is conservative, second order.
    2929
    3030    ! All the fields are regridded as a single multi-dimensional array
     
    3838    use assert_m, only: assert
    3939    use assert_eq_m, only: assert_eq
    40     use regr1_step_av_m, only: regr1_step_av
     40    use regr1_conserv_m, only: regr1_conserv
     41    use slopes_m, only: slopes
    4142    use mod_phys_lmdz_mpi_data, only: is_mpi_root
    4243    use mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, nbp_lev
     
    8384    !--------------------------------------------
    8485
    85     call assert(size(v3, 1) == klon, size(v3, 2) == nbp_lev, "regr_pr_av v3 klon")
     86    call assert(size(v3, 1) == klon, size(v3, 2) == nbp_lev, &
     87         "regr_pr_av v3 klon")
    8688    n_var = assert_eq(size(name), size(v3, 3), "regr_pr_av v3 n_var")
    8789    call assert(shape(paprs) == (/klon, nbp_lev+1/), "regr_pr_av paprs")
     
    112114    ! Regrid in pressure at each horizontal position:
    113115    do i = 1, klon
    114        v3(i, nbp_lev:1:-1, :) = regr1_step_av(v2(i, :, :), press_in_edg, &
    115             paprs(i, nbp_lev+1:1:-1))
     116       call regr1_conserv(v2(i, :, :), press_in_edg, &
     117            paprs(i, nbp_lev + 1:1:-1), v3(i, nbp_lev:1:-1, :), &
     118            slopes(v2(i, :, :), press_in_edg))
    116119       ! (invert order of indices because "paprs" is in descending order)
    117120    end do
Note: See TracChangeset for help on using the changeset viewer.