Changeset 2346 for LMDZ5/trunk/libf/phylmd/oasis.F90
- Timestamp:
- Aug 21, 2015, 5:13:46 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/oasis.F90
r2311 r2346 100 100 #endif 101 101 USE print_control_mod, ONLY: lunout 102 103 INCLUDE "dimensions.h" 102 USE mod_grid_phy_lmdz, ONLY nbp_lon, nbp_lat 104 103 105 104 ! Local variables … … 228 227 !************************************************************************************ 229 228 ig_paral(1) = 1 ! apple partition for // 230 ig_paral(2) = (jj_begin-1)* iim+ii_begin-1 ! offset231 ig_paral(3) = (jj_end* iim+ii_end) - (jj_begin*iim+ii_begin) + 1232 233 IF (mpi_rank==mpi_size-1) ig_paral(3)=ig_paral(3)+ iim-1229 ig_paral(2) = (jj_begin-1)*nbp_lon+ii_begin-1 ! offset 230 ig_paral(3) = (jj_end*nbp_lon+ii_end) - (jj_begin*nbp_lon+ii_begin) + 1 231 232 IF (mpi_rank==mpi_size-1) ig_paral(3)=ig_paral(3)+nbp_lon-1 234 233 WRITE(lunout,*) mpi_rank,'ig_paral--->',ig_paral(2),ig_paral(3) 235 234 … … 248 247 249 248 il_var_actual_shape(1) = 1 250 il_var_actual_shape(2) = iim249 il_var_actual_shape(2) = nbp_lon 251 250 il_var_actual_shape(3) = 1 252 il_var_actual_shape(4) = jjm+1251 il_var_actual_shape(4) = nbp_lat 253 252 254 253 il_var_type = PRISM_Real … … 320 319 ! 321 320 USE print_control_mod, ONLY: lunout 322 INCLUDE "dimensions.h"321 USE mod_grid_phy_lmdz, ONLY nbp_lon, nbp_lat 323 322 ! Input arguments 324 323 !************************************************************************************ … … 327 326 ! Output arguments 328 327 !************************************************************************************ 329 REAL, DIMENSION( iim, jj_nb,maxrecv), INTENT(OUT) :: tab_get328 REAL, DIMENSION(nbp_lon, jj_nb,maxrecv), INTENT(OUT) :: tab_get 330 329 331 330 ! Local variables … … 335 334 CHARACTER (len = 20) :: modname = 'fromcpl' 336 335 CHARACTER (len = 80) :: abort_message 337 REAL, DIMENSION( iim*jj_nb) :: field336 REAL, DIMENSION(nbp_lon*jj_nb) :: field 338 337 339 338 !************************************************************************************ … … 344 343 istart=ii_begin 345 344 IF (is_south_pole) THEN 346 iend=(jj_end-jj_begin)* iim+iim345 iend=(jj_end-jj_begin)*nbp_lon+nbp_lon 347 346 ELSE 348 iend=(jj_end-jj_begin)* iim+ii_end347 iend=(jj_end-jj_begin)*nbp_lon+ii_end 349 348 ENDIF 350 349 … … 353 352 field(:) = -99999. 354 353 CALL prism_get_proto(inforecv(i)%nid, ktime, field(istart:iend), ierror) 355 tab_get(:,:,i) = RESHAPE(field(:),(/ iim,jj_nb/))354 tab_get(:,:,i) = RESHAPE(field(:),(/nbp_lon,jj_nb/)) 356 355 357 356 IF (ierror .NE. PRISM_Ok .AND. ierror.NE.PRISM_Recvd .AND. & … … 382 381 ! 383 382 USE print_control_mod, ONLY: lunout 384 INCLUDE "dimensions.h"383 USE mod_grid_phy_lmdz, ONLY nbp_lon, nbp_lat 385 384 ! Input arguments 386 385 !************************************************************************************ 387 386 INTEGER, INTENT(IN) :: ktime 388 387 LOGICAL, INTENT(IN) :: last 389 REAL, DIMENSION( iim, jj_nb, maxsend), INTENT(IN) :: tab_put388 REAL, DIMENSION(nbp_lon, jj_nb, maxsend), INTENT(IN) :: tab_put 390 389 391 390 ! Local variables … … 395 394 INTEGER :: wstart,wend 396 395 INTEGER :: ierror, i 397 REAL, DIMENSION( iim*jj_nb) :: field396 REAL, DIMENSION(nbp_lon*jj_nb) :: field 398 397 CHARACTER (len = 20),PARAMETER :: modname = 'intocpl' 399 398 CHARACTER (len = 80) :: abort_message … … 410 409 istart=ii_begin 411 410 IF (is_south_pole) THEN 412 iend=(jj_end-jj_begin)* iim+iim411 iend=(jj_end-jj_begin)*nbp_lon+nbp_lon 413 412 ELSE 414 iend=(jj_end-jj_begin)* iim+ii_end413 iend=(jj_end-jj_begin)*nbp_lon+ii_end 415 414 ENDIF 416 415 … … 418 417 wstart=istart 419 418 wend=iend 420 IF (is_north_pole) wstart=istart+ iim-1421 IF (is_south_pole) wend=iend- iim+1419 IF (is_north_pole) wstart=istart+nbp_lon-1 420 IF (is_south_pole) wend=iend-nbp_lon+1 422 421 423 422 DO i = 1, maxsend 424 423 IF (infosend(i)%action) THEN 425 field = RESHAPE(tab_put(:,:,i),(/ iim*jj_nb/))424 field = RESHAPE(tab_put(:,:,i),(/nbp_lon*jj_nb/)) 426 425 CALL writefield_phy(infosend(i)%name,field(wstart:wend),1) 427 426 END IF … … 435 434 DO i = 1, maxsend 436 435 IF (infosend(i)%action .AND. infosend(i)%nid .NE. -1 ) THEN 437 field = RESHAPE(tab_put(:,:,i),(/ iim*jj_nb/))436 field = RESHAPE(tab_put(:,:,i),(/nbp_lon*jj_nb/)) 438 437 CALL prism_put_proto(infosend(i)%nid, ktime, field(istart:iend), ierror) 439 438
Note: See TracChangeset
for help on using the changeset viewer.