Changeset 2326 for LMDZ5/trunk/libf/phydev
- Timestamp:
- Jul 10, 2015, 2:24:29 PM (9 years ago)
- Location:
- LMDZ5/trunk/libf/phydev
- Files:
-
- 3 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phydev/iophy.F90
r2311 r2326 46 46 is_sequential, is_south_pole 47 47 USE mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, klon_glo 48 USE print_control_mod, ONLY: lunout, prt_level 49 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat 48 50 #ifdef CPP_IOIPSL 49 51 USE ioipsl, only: flio_dom_set … … 53 55 #endif 54 56 implicit none 55 include 'dimensions.h'56 include 'iniprint.h'57 57 real,dimension(klon),intent(in) :: rlon 58 58 real,dimension(klon),intent(in) :: rlat … … 77 77 78 78 !$OMP MASTER 79 ALLOCATE(io_lat( jjm+1-1/(iim*jjm)))79 ALLOCATE(io_lat(nbp_lat)) 80 80 io_lat(1)=rlat_glo(1) 81 io_lat( jjm+1-1/(iim*jjm))=rlat_glo(klon_glo)82 IF (( iim*jjm) > 1) then83 DO i=2, jjm84 io_lat(i)=rlat_glo(2+(i-2)* iim)81 io_lat(nbp_lat)=rlat_glo(klon_glo) 82 IF ((nbp_lon*nbp_lat) > 1) then 83 DO i=2,nbp_lat-1 84 io_lat(i)=rlat_glo(2+(i-2)*nbp_lon) 85 85 ENDDO 86 86 ENDIF 87 87 88 ALLOCATE(io_lon(iim)) 89 io_lon(:)=rlon_glo(2-1/(iim*jjm):iim+1-1/(iim*jjm)) 88 ALLOCATE(io_lon(nbp_lon)) 89 IF ((nbp_lon*nbp_lat) > 1) THEN 90 io_lon(:)=rlon_glo(2:nbp_lon+1) 91 ELSE 92 io_lon(1)=rlon_glo(1) 93 ENDIF 90 94 !! (I) dtnb : total number of domains 91 95 !! (I) dnb : domain number … … 103 107 !! These names are case insensitive. 104 108 ddid=(/ 1,2 /) 105 dsg=(/ iim, jjm+1-1/(iim*jjm)/)106 dsl=(/ iim, jj_nb /)109 dsg=(/ nbp_lon, nbp_lat /) 110 dsl=(/ nbp_lon, jj_nb /) 107 111 dpf=(/ 1,jj_begin /) 108 dpl=(/ iim, jj_end /)112 dpl=(/ nbp_lon, jj_end /) 109 113 dhs=(/ ii_begin-1,0 /) 110 114 if (mpi_rank==mpi_size-1) then 111 115 dhe=(/0,0/) 112 116 else 113 dhe=(/ iim-ii_end,0 /)117 dhe=(/ nbp_lon-ii_end,0 /) 114 118 endif 115 119 … … 155 159 USE mod_phys_lmdz_para, only: is_sequential, jj_begin, jj_end, jj_nb 156 160 use ioipsl, only: histbeg 161 USE print_control_mod, ONLY: prt_level, lunout 162 USE mod_grid_phy_lmdz, ONLY: nbp_lon 157 163 implicit none 158 include 'dimensions.h'159 164 160 165 character*(*), intent(IN) :: name … … 167 172 !$OMP MASTER 168 173 if (is_sequential) then 169 call histbeg(name, iim,io_lon, jj_nb,io_lat(jj_begin:jj_end), &170 1, iim,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day)174 call histbeg(name,nbp_lon,io_lon, jj_nb,io_lat(jj_begin:jj_end), & 175 1,nbp_lon,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day) 171 176 else 172 call histbeg(name, iim,io_lon, jj_nb,io_lat(jj_begin:jj_end), &173 1, iim,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day,phys_domain_id)177 call histbeg(name,nbp_lon,io_lon, jj_nb,io_lat(jj_begin:jj_end), & 178 1,nbp_lon,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day,phys_domain_id) 174 179 endif 175 180 !$OMP END MASTER … … 186 191 use wxios, only: wxios_add_file 187 192 IMPLICIT NONE 188 include 'dimensions.h'189 193 190 194 character*(*), INTENT(IN) :: name … … 219 223 jj_nb, klon_mpi 220 224 USE ioipsl, only: histwrite 225 USE mod_grid_phy_lmdz, ONLY: nbp_lon 221 226 implicit none 222 include 'dimensions.h'223 227 224 228 integer,intent(in) :: nid … … 229 233 REAL,dimension(klon_mpi) :: buffer_omp 230 234 INTEGER, allocatable, dimension(:) :: index2d 231 REAL :: Field2d( iim,jj_nb)235 REAL :: Field2d(nbp_lon,jj_nb) 232 236 233 237 integer :: ip … … 240 244 CALL grid1Dto2D_mpi(buffer_omp,Field2d) 241 245 if(.NOT.lpoint) THEN 242 ALLOCATE(index2d( iim*jj_nb))243 ALLOCATE(fieldok( iim*jj_nb))244 CALL histwrite(nid,name,itau,Field2d, iim*jj_nb,index2d)246 ALLOCATE(index2d(nbp_lon*jj_nb)) 247 ALLOCATE(fieldok(nbp_lon*jj_nb)) 248 CALL histwrite(nid,name,itau,Field2d,nbp_lon*jj_nb,index2d) 245 249 else 246 250 ALLOCATE(fieldok(npstn)) … … 278 282 jj_nb, klon_mpi 279 283 USE ioipsl, only: histwrite 284 USE mod_grid_phy_lmdz, ONLY: nbp_lon 280 285 implicit none 281 include 'dimensions.h'282 286 283 287 integer,intent(in) :: nid … … 287 291 real,dimension(:,:),intent(in) :: field ! --> field(klon,:) 288 292 REAL,dimension(klon_mpi,size(field,2)) :: buffer_omp 289 REAL :: Field3d( iim,jj_nb,size(field,2))293 REAL :: Field3d(nbp_lon,jj_nb,size(field,2)) 290 294 INTEGER :: ip, n, nlev 291 295 INTEGER, ALLOCATABLE, dimension(:) :: index3d … … 299 303 CALL grid1Dto2D_mpi(buffer_omp,field3d) 300 304 if(.NOT.lpoint) THEN 301 ALLOCATE(index3d( iim*jj_nb*nlev))302 ALLOCATE(fieldok( iim*jj_nb,nlev))303 CALL histwrite(nid,name,itau,Field3d, iim*jj_nb*nlev,index3d)305 ALLOCATE(index3d(nbp_lon*jj_nb*nlev)) 306 ALLOCATE(fieldok(nbp_lon*jj_nb,nlev)) 307 CALL histwrite(nid,name,itau,Field3d,nbp_lon*jj_nb*nlev,index3d) 304 308 else 305 309 nlev=size(field,2) … … 341 345 jj_nb, klon_mpi 342 346 USE xios, only: xios_send_field 343 344 347 USE print_control_mod, ONLY: prt_level, lunout 348 USE mod_grid_phy_lmdz, ONLY: nbp_lon 345 349 IMPLICIT NONE 346 INCLUDE 'dimensions.h'347 INCLUDE 'iniprint.h'348 350 349 351 CHARACTER(LEN=*), INTENT(IN) :: field_name … … 351 353 352 354 REAL,DIMENSION(klon_mpi) :: buffer_omp 353 REAL :: Field2d( iim,jj_nb)355 REAL :: Field2d(nbp_lon,jj_nb) 354 356 355 357 IF (prt_level >= 10) WRITE(lunout,*)'Begin histrwrite2d_xios ',trim(field_name) … … 377 379 jj_nb, klon_mpi 378 380 USE xios, only: xios_send_field 379 381 USE print_control_mod, ONLY: prt_level,lunout 382 USE mod_grid_phy_lmdz, ONLY: nbp_lon 380 383 381 384 IMPLICIT NONE 382 INCLUDE 'dimensions.h'383 INCLUDE 'iniprint.h'384 385 385 386 CHARACTER(LEN=*), INTENT(IN) :: field_name … … 387 388 388 389 REAL,DIMENSION(klon_mpi,SIZE(field,2)) :: buffer_omp 389 REAL :: Field3d( iim,jj_nb,SIZE(field,2))390 REAL :: Field3d(nbp_lon,jj_nb,SIZE(field,2)) 390 391 INTEGER :: ip, n, nlev 391 392 -
LMDZ5/trunk/libf/phydev/physiq.F90
r2320 r2326 18 18 USE mod_phys_lmdz_para, only : jj_nb 19 19 USE phys_state_var_mod, only : phys_state_var_init 20 USE mod_grid_phy_lmdz, ONLY: nbp_lon,nbp_lat 20 21 21 22 #ifdef CPP_XIOS … … 26 27 27 28 IMPLICIT none 28 #include "dimensions.h"29 30 integer,parameter :: jjmp1=jjm+1-1/jjm31 integer,parameter :: iip1=iim+132 29 ! 33 30 ! Routine argument: … … 55 52 real,intent(out) :: d_qx(klon,klev,nqtot) ! physics tendency on tracers 56 53 real,intent(out) :: d_ps(klon) ! physics tendency on surface pressure 57 real,intent(in) :: dudyn( iim+1,jjmp1,klev) ! Not used54 real,intent(in) :: dudyn(nbp_lon+1,nbp_lat,klev) ! Not used 58 55 59 56 integer,save :: itau=0 ! counter to count number of calls to physics … … 114 111 ! define variables which will be written in "histins.nc" file 115 112 call histdef(nid_hist,'temperature','Atmospheric temperature','K', & 116 iim,jj_nb,nhori,klev,1,klev,zvertid,32, &113 nbp_lon,jj_nb,nhori,klev,1,klev,zvertid,32, & 117 114 'inst(X)',t_ops,t_wrt) 118 115 call histdef(nid_hist,'u','Eastward Zonal Wind','m/s', & 119 iim,jj_nb,nhori,klev,1,klev,zvertid,32, &116 nbp_lon,jj_nb,nhori,klev,1,klev,zvertid,32, & 120 117 'inst(X)',t_ops,t_wrt) 121 118 call histdef(nid_hist,'v','Northward Meridional Wind','m/s', & 122 iim,jj_nb,nhori,klev,1,klev,zvertid,32, &119 nbp_lon,jj_nb,nhori,klev,1,klev,zvertid,32, & 123 120 'inst(X)',t_ops,t_wrt) 124 121 call histdef(nid_hist,'ps','Surface Pressure','Pa', & 125 iim,jj_nb,nhori,1,1,1,zvertid,32, &122 nbp_lon,jj_nb,nhori,1,1,1,zvertid,32, & 126 123 'inst(X)',t_ops,t_wrt) 127 124 ! end definition sequence
Note: See TracChangeset
for help on using the changeset viewer.