Changeset 274 for palm/trunk/SOURCE/init_pegrid.f90
- Timestamp:
- Mar 26, 2009 3:11:21 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/init_pegrid.f90
r254 r274 122 122 !-- must be equal to the number of PEs available to the job 123 123 IF ( ( npex * npey ) /= numprocs ) THEN 124 WRITE( message_string, * ) 'number of PEs of the prescribed topology (', &125 npex*npey,') does not match & the number of ',&126 124 WRITE( message_string, * ) 'number of PEs of the prescribed ', & 125 'topology (', npex*npey,') does not match & the number of ', & 126 'PEs available to the job (', numprocs, ')' 127 127 CALL message( 'init_pegrid', 'PA0221', 1, 2, 0, 6, 0 ) 128 128 ENDIF … … 134 134 !-- If the processor topology is prescribed by the user, the number of 135 135 !-- PEs must be given in both directions 136 message_string = 'if the processor topology is prescribed by the user, ' //&137 '& both values of "npex" and "npey" must be given in the ' //&138 '&NAMELIST-parameter file'136 message_string = 'if the processor topology is prescribed by the, ' // & 137 ' user& both values of "npex" and "npey" must be given ' // & 138 'in the &NAMELIST-parameter file' 139 139 CALL message( 'init_pegrid', 'PA0222', 1, 2, 0, 6, 0 ) 140 140 … … 235 235 236 236 IF ( MOD( nxa+1 , pdims(1) ) /= 0 ) THEN 237 WRITE( message_string, * ) 'x-direction: gridpoint number (',nx+1,') is not an',&238 '& integral divisor of the number of proces',&239 'sors (', pdims(1),')'237 WRITE( message_string, * ) 'x-direction: gridpoint number (',nx+1,') ',& 238 'is not an& integral divisor of the number ', & 239 'processors (', pdims(1),')' 240 240 CALL message( 'init_pegrid', 'PA0225', 1, 2, 0, 6, 0 ) 241 241 ELSE 242 242 nnx = ( nxa + 1 ) / pdims(1) 243 243 IF ( nnx*pdims(1) - ( nx + 1) > nnx ) THEN 244 WRITE( message_string, * ) 'x-direction: nx does not match the', & 245 'requirements given by the number of PEs', & 246 '& used',& 247 '& please use nx = ', nx - ( pdims(1) - ( nnx*pdims(1) & 248 - ( nx + 1 ) ) ), ' instead of nx =', nx 244 WRITE( message_string, * ) 'x-direction: nx does not match the', & 245 'requirements given by the number of PEs &used', & 246 '& please use nx = ', nx - ( pdims(1) - ( nnx*pdims(1) & 247 - ( nx + 1 ) ) ), ' instead of nx =', nx 249 248 CALL message( 'init_pegrid', 'PA0226', 1, 2, 0, 6, 0 ) 250 249 ENDIF … … 262 261 !-- Calculate array bounds in y-direction for every PE. 263 262 IF ( MOD( nya+1 , pdims(2) ) /= 0 ) THEN 264 WRITE( message_string, * ) 'y-direction: gridpoint number (',ny+1,') is not an', &265 '& integral divisor of the number of proces',&266 'sors (', pdims(2),')'263 WRITE( message_string, * ) 'y-direction: gridpoint number (',ny+1,') ', & 264 'is not an& integral divisor of the number of', & 265 'processors (', pdims(2),')' 267 266 CALL message( 'init_pegrid', 'PA0227', 1, 2, 0, 6, 0 ) 268 267 ELSE 269 268 nny = ( nya + 1 ) / pdims(2) 270 269 IF ( nny*pdims(2) - ( ny + 1) > nny ) THEN 271 WRITE( message_string, * ) 'y-direction: ny does not match the',& 272 'requirements given by the number of PEs', & 273 '& used', & 274 '& please use ny = ', ny - ( pdims(2) - ( nnx*pdims(2) & 270 WRITE( message_string, * ) 'y-direction: ny does not match the', & 271 'requirements given by the number of PEs &used ', & 272 '& please use ny = ', ny - ( pdims(2) - ( nnx*pdims(2) & 275 273 - ( ny + 1 ) ) ), ' instead of ny =', ny 276 274 CALL message( 'init_pegrid', 'PA0228', 1, 2, 0, 6, 0 ) … … 324 322 nny_x = nny 325 323 IF ( MOD( nza , pdims(1) ) /= 0 ) THEN 326 WRITE( message_string, * ) 'transposition z --> x:', &327 328 pdims(1)324 WRITE( message_string, * ) 'transposition z --> x:', & 325 '&nz=',nz,' is not an integral divisior of pdims(1)=', & 326 pdims(1) 329 327 CALL message( 'init_pegrid', 'PA0230', 1, 2, 0, 6, 0 ) 330 328 ENDIF … … 356 354 nzt_y = nzt_x 357 355 IF ( MOD( nxa+1 , pdims(2) ) /= 0 ) THEN 358 WRITE( message_string, * ) 'transposition x --> y:', &359 360 356 WRITE( message_string, * ) 'transposition x --> y:', & 357 '&nx+1=',nx+1,' is not an integral divisor of ',& 358 'pdims(2)=',pdims(2) 361 359 CALL message( 'init_pegrid', 'PA0231', 1, 2, 0, 6, 0 ) 362 360 ENDIF … … 382 380 nxr_z = nxr_y 383 381 IF ( MOD( nya+1 , pdims(1) ) /= 0 ) THEN 384 WRITE( message_string, * ) 'transposition y --> z:', &385 386 382 WRITE( message_string, * ) 'transposition y --> z:', & 383 '& ny+1=',ny+1,' is not an integral divisor of ',& 384 'pdims(1)=',pdims(1) 387 385 CALL message( 'init_pegrid', 'PA0232', 1, 2, 0, 6, 0 ) 388 386 ENDIF … … 398 396 !-- x --> y. This condition must be fulfilled for a 1D-decomposition along x 399 397 IF ( MOD( nya+1 , pdims(1) ) /= 0 ) THEN 400 WRITE( message_string, * ) 'transposition x --> y:', &401 402 398 WRITE( message_string, * ) 'transposition x --> y:', & 399 '& ny+1=',ny+1,' is not an integral divisor of ',& 400 'pdims(1)=',pdims(1) 403 401 CALL message( 'init_pegrid', 'PA0233', 1, 2, 0, 6, 0 ) 404 402 ENDIF … … 410 408 IF ( dt_dosp /= 9999999.9 ) THEN 411 409 IF ( MOD( nza, pdims(2) ) /= 0 ) THEN 412 WRITE( message_string, * ) 'direct transposition z --> y (needed for spectra):', &413 '& nz=',nz,' is not an integral divisor of ',&414 410 WRITE( message_string, * ) 'direct transposition z --> y (needed ', & 411 'for spectra):& nz=',nz,' is not an integral divisor of ',& 412 'pdims(2)=',pdims(2) 415 413 CALL message( 'init_pegrid', 'PA0234', 1, 2, 0, 6, 0 ) 416 414 ELSE
Note: See TracChangeset
for help on using the changeset viewer.