- Timestamp:
- Apr 22, 2015, 6:28:50 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/regr_pr_av_m.F90
r3809 r3819 33 33 ! NetCDF variable. 34 34 35 use dimphy, only: klon 35 use dimphy, only: klon, klev 36 use mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat 36 37 use netcdf95, only: nf95_inq_varid, handle_err 37 38 use netcdf, only: nf90_get_var … … 52 53 ! ascending order 53 54 54 real, intent(in):: paprs(:, :) ! (klon, llm+ 1)55 real, intent(in):: paprs(:, :) ! (klon, klev + 1) 55 56 ! (pression pour chaque inter-couche, en Pa) 56 57 57 real, intent(out):: v3(:, :, :) ! (klon, llm, size(name))58 real, intent(out):: v3(:, :, :) ! (klon, klev, size(name)) 58 59 ! regridded fields on the partial "physics" grid 59 60 ! "v3(i, k, l)" is at longitude "xlon(i)", latitude … … 63 64 ! Variables local to the procedure: 64 65 65 include "dimensions.h"66 66 integer varid, ncerr ! for NetCDF 67 67 68 real v1( iim, jjm + 1, size(press_in_edg) - 1, size(name))68 real v1(nbp_lon, nbp_lat, size(press_in_edg) - 1, size(name)) 69 69 ! input fields at day "julien", on the global "dynamics" horizontal grid 70 70 ! First dimension is for longitude. … … 84 84 !-------------------------------------------- 85 85 86 call assert(size(v3, 1) == klon, size(v3, 2) == llm, "regr_pr_av v3 klon")86 call assert(size(v3, 1) == klon, size(v3, 2) == klev, "regr_pr_av v3 klon") 87 87 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")88 call assert(shape(paprs) == (/klon, klev+1/), "regr_pr_av paprs") 89 89 90 90 !$omp master … … 102 102 ! Latitudes are in ascending order in the input file while 103 103 ! "rlatu" is in descending order so we need to invert order: 104 v1(1, :, :, :) = v1(1, jjm+1:1:-1, :, :)104 v1(1, :, :, :) = v1(1, nbp_lat:1:-1, :, :) 105 105 106 106 ! Duplicate on all longitudes: 107 v1(2:, :, :, :) = spread(v1(1, :, :, :), dim=1, ncopies= iim-1)107 v1(2:, :, :, :) = spread(v1(1, :, :, :), dim=1, ncopies=nbp_lon-1) 108 108 end if 109 109 !$omp end master … … 113 113 ! Regrid in pressure at each horizontal position: 114 114 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))115 v3(i, klev:1:-1, :) = regr1_step_av(v2(i, :, :), press_in_edg, & 116 paprs(i, klev+1:1:-1)) 117 117 ! (invert order of indices because "paprs" is in descending order) 118 118 end do
Note: See TracChangeset
for help on using the changeset viewer.