Changeset 2346 for LMDZ5/trunk/libf/phylmd/readaerosol.F90
- Timestamp:
- Aug 21, 2015, 5:13:46 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/readaerosol.F90
r2317 r2346 178 178 ! 3) Read field month by month 179 179 ! 4) Close file 180 ! 5) Transform the global field from 2D( iim, jjp+1) to 1D(klon_glo)180 ! 5) Transform the global field from 2D(nbp_lon,nbp_lat) to 1D(klon_glo) 181 181 ! - Also the levels and the latitudes have to be inversed 182 182 ! … … 188 188 USE netcdf 189 189 USE dimphy 190 USE mod_grid_phy_lmdz 190 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, klon_glo, & 191 grid2Dto1D_glo 191 192 USE mod_phys_lmdz_para 192 193 USE iophy, ONLY : io_lon, io_lat … … 195 196 IMPLICIT NONE 196 197 197 INCLUDE "dimensions.h"198 199 198 ! Input argumets 200 199 CHARACTER(len=7), INTENT(IN) :: varname … … 223 222 REAL, ALLOCATABLE, DIMENSION(:) :: varktmp 224 223 225 REAL, DIMENSION( iim,jjm+1,12) :: psurf_glo2D ! Surface pression for 12 months on dynamics global grid224 REAL, DIMENSION(nbp_lon,nbp_lat,12) :: psurf_glo2D ! Surface pression for 12 months on dynamics global grid 226 225 REAL, DIMENSION(klon_glo,12) :: psurf_glo1D ! -"- on physical global grid 227 REAL, DIMENSION( iim,jjm+1,12) :: load_glo2D ! Load for 12 months on dynamics global grid226 REAL, DIMENSION(nbp_lon,nbp_lat,12) :: load_glo2D ! Load for 12 months on dynamics global grid 228 227 REAL, DIMENSION(klon_glo,12) :: load_glo1D ! -"- on physical global grid 229 REAL, DIMENSION( iim,jjm+1) :: vartmp230 REAL, DIMENSION( iim) :: lon_src ! longitudes in file231 REAL, DIMENSION( jjm+1) :: lat_src, lat_src_inv ! latitudes in file228 REAL, DIMENSION(nbp_lon,nbp_lat) :: vartmp 229 REAL, DIMENSION(nbp_lon) :: lon_src ! longitudes in file 230 REAL, DIMENSION(nbp_lat) :: lat_src, lat_src_inv ! latitudes in file 232 231 LOGICAL :: new_file ! true if new file format detected 233 232 LOGICAL :: invert_lat ! true if the field has to be inverted for latitudes … … 267 266 268 267 ! Invert source latitudes 269 DO j = 1, jjm+1270 lat_src_inv(j) = lat_src( jjm+1+1 -j)268 DO j = 1, nbp_lat 269 lat_src_inv(j) = lat_src(nbp_lat +1 -j) 271 270 END DO 272 271 … … 313 312 314 313 ! Allocate variables depending on the number of vertical levels 315 ALLOCATE(varmth( iim, jjm+1, klev_src), varyear(iim, jjm+1, klev_src, 12), stat=ierr)314 ALLOCATE(varmth(nbp_lon,nbp_lat, klev_src), varyear(nbp_lon,nbp_lat, klev_src, 12), stat=ierr) 316 315 IF (ierr /= 0) CALL abort_physic('get_aero_fromfile', 'pb in allocation 1',1) 317 316 … … 435 434 436 435 437 ! 5) Transform the global field from 2D( iim, jjp+1) to 1D(klon_glo)436 ! 5) Transform the global field from 2D(nbp_lon,nbp_lat) to 1D(klon_glo) 438 437 !**************************************************************************************** 439 438 ! Test if vertical levels have to be inversed … … 448 447 varmth(:,:,:) = varyear(:,:,:,imth) ! use varmth temporarly 449 448 DO k=1, klev_src 450 DO j=1, jjm+1451 DO i=1, iim449 DO j=1, nbp_lat 450 DO i=1, nbp_lon 452 451 varyear(i,j,k,imth) = varmth(i,j,klev_src+1-k) 453 452 END DO … … 482 481 varmth(:,:,:) = varyear(:,:,:,imth) ! use varmth temporarly 483 482 DO k=1,klev_src 484 DO j=1, jjm+1485 DO i=1, iim486 varyear(i,j,k,imth) = varmth(i, jjm+1+1-j,k)483 DO j=1,nbp_lat 484 DO i=1,nbp_lon 485 varyear(i,j,k,imth) = varmth(i,nbp_lat+1-j,k) 487 486 END DO 488 487 END DO … … 491 490 ! Invert latitudes for surface pressure 492 491 vartmp(:,:) = psurf_glo2D(:,:,imth) 493 DO j=1, jjm+1494 DO i=1, iim495 psurf_glo2D(i,j,imth)= vartmp(i, jjm+1+1-j)492 DO j=1,nbp_lat 493 DO i=1,nbp_lon 494 psurf_glo2D(i,j,imth)= vartmp(i,nbp_lat+1-j) 496 495 END DO 497 496 END DO … … 499 498 ! Invert latitudes for the load 500 499 vartmp(:,:) = load_glo2D(:,:,imth) 501 DO j=1, jjm+1502 DO i=1, iim503 load_glo2D(i,j,imth)= vartmp(i, jjm+1+1-j)500 DO j=1,nbp_lat 501 DO i=1,nbp_lon 502 load_glo2D(i,j,imth)= vartmp(i,nbp_lat+1-j) 504 503 END DO 505 504 END DO … … 509 508 DO k=1, klev_src 510 509 npole=0. ! North pole, j=1 511 spole=0. ! South pole, j= jjm+1512 DO i=1, iim510 spole=0. ! South pole, j=nbp_lat 511 DO i=1,nbp_lon 513 512 npole = npole + varyear(i,1,k,imth) 514 spole = spole + varyear(i, jjm+1,k,imth)513 spole = spole + varyear(i,nbp_lat,k,imth) 515 514 END DO 516 npole = npole/REAL( iim)517 spole = spole/REAL( iim)515 npole = npole/REAL(nbp_lon) 516 spole = spole/REAL(nbp_lon) 518 517 varyear(:,1, k,imth) = npole 519 varyear(:, jjm+1,k,imth) = spole518 varyear(:,nbp_lat,k,imth) = spole 520 519 END DO 521 520 END DO ! imth
Note: See TracChangeset
for help on using the changeset viewer.