Ignore:
Timestamp:
Aug 21, 2015, 5:13:46 PM (9 years ago)
Author:
Ehouarn Millour
Message:

Physics/dynamics separation:

  • remove all references to dimensions.h from physics. nbp_lon (==iim) , nbp_lat (==jjm+1) and nbp_lev (==llm) from mod_grid_phy_lmdz should be used instead.
  • added module regular_lonlat_mod in phy_common to store information about the global (lon-lat) grid cell boundaries and centers.

EM

File:
1 edited

Legend:

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

    r1907 r2346  
    4040    use regr1_step_av_m, only: regr1_step_av
    4141    use mod_phys_lmdz_mpi_data, only: is_mpi_root
    42 
     42    use mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, nbp_lev
    4343    use mod_phys_lmdz_transfert_para, only: scatter2d
    4444    ! (pack to the LMDZ horizontal "physics" grid and scatter)
     
    6363    ! Variables local to the procedure:
    6464
    65     include "dimensions.h"
    6665    integer varid, ncerr ! for NetCDF
    6766
    68     real  v1(iim, jjm + 1, size(press_in_edg) - 1, size(name))
     67    real  v1(nbp_lon, nbp_lat, size(press_in_edg) - 1, size(name))
    6968    ! input fields at day "julien", on the global "dynamics" horizontal grid
    7069    ! First dimension is for longitude.
     
    8483    !--------------------------------------------
    8584
    86     call assert(size(v3, 1) == klon, size(v3, 2) == llm, "regr_pr_av v3 klon")
     85    call assert(size(v3, 1) == klon, size(v3, 2) == nbp_lev, "regr_pr_av v3 klon")
    8786    n_var = assert_eq(size(name), size(v3, 3), "regr_pr_av v3 n_var")
    88     call assert(shape(paprs) == (/klon, llm+1/), "regr_pr_av paprs")
     87    call assert(shape(paprs) == (/klon, nbp_lev+1/), "regr_pr_av paprs")
    8988
    9089    !$omp master
     
    102101       ! Latitudes are in ascending order in the input file while
    103102       ! "rlatu" is in descending order so we need to invert order:
    104        v1(1, :, :, :) = v1(1, jjm+1:1:-1, :, :)
     103       v1(1, :, :, :) = v1(1, nbp_lat:1:-1, :, :)
    105104
    106105       ! Duplicate on all longitudes:
    107        v1(2:, :, :, :) = spread(v1(1, :, :, :), dim=1, ncopies=iim-1)
     106       v1(2:, :, :, :) = spread(v1(1, :, :, :), dim=1, ncopies=nbp_lon-1)
    108107    end if
    109108    !$omp end master
     
    113112    ! Regrid in pressure at each horizontal position:
    114113    do i = 1, klon
    115        v3(i, llm:1:-1, :) = regr1_step_av(v2(i, :, :), press_in_edg, &
    116             paprs(i, llm+1:1:-1))
     114       v3(i, nbp_lev:1:-1, :) = regr1_step_av(v2(i, :, :), press_in_edg, &
     115            paprs(i, nbp_lev+1:1:-1))
    117116       ! (invert order of indices because "paprs" is in descending order)
    118117    end do
Note: See TracChangeset for help on using the changeset viewer.