Changeset 3045 for palm/trunk/SOURCE/init_pegrid.f90
 Timestamp:
 May 28, 2018 7:55:41 AM (3 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

palm/trunk/SOURCE/init_pegrid.f90
r2938 r3045 25 25 !  26 26 ! $Id$ 27 ! Error messages revised 28 ! 29 ! 2938 20180327 15:52:42Z suehring 27 30 !  No checks for domain decomposition in case of turbulence generator 28 31 ! (is done in stg module) … … 341 344 ! must be equal to the number of PEs available to the job 342 345 IF ( ( npex * npey ) /= numprocs ) THEN 343 WRITE( message_string, * ) 'number of PEs of the prescribed ', &344 'topology (', npex*npey,') does not match & the number of ',&346 WRITE( message_string, * ) 'number of PEs of the prescribed ', & 347 'topology (', npex*npey,') does not match the number of ', & 345 348 'PEs available to the job (', numprocs, ')' 346 349 CALL message( 'init_pegrid', 'PA0221', 1, 2, 0, 6, 0 ) … … 353 356 ! If the processor topology is prescribed by the user, the number of 354 357 ! PEs must be given in both directions 355 message_string = 'if the processor topology is prescribed by th' // &356 'e user & both values of "npex" and "npey" must be given' //&358 message_string = 'if the processor topology is prescribed by th' // & 359 'e user both values of "npex" and "npey" must be given' // & 357 360 ' in the &NAMELISTparameter file' 358 361 CALL message( 'init_pegrid', 'PA0222', 1, 2, 0, 6, 0 ) … … 450 453 ! 451 454 ! Calculate array bounds along xdirection for every PE. 452 ALLOCATE( nxlf(0:pdims(1)1), nxrf(0:pdims(1)1), nynf(0:pdims(2)1), &455 ALLOCATE( nxlf(0:pdims(1)1), nxrf(0:pdims(1)1), nynf(0:pdims(2)1), & 453 456 nysf(0:pdims(2)1) ) 454 457 455 458 IF ( MOD( nx+1 , pdims(1) ) /= 0 ) THEN 456 WRITE( message_string, * ) 'xdirection: gridpoint number (',nx+1,') ', &457 'is not an & integral divisor of the number ',&458 ' processors (', pdims(1),')'459 WRITE( message_string, * ) 'xdirection: gridpoint number (',nx+1,') ', & 460 'is not an integral divisor of the number ', & 461 'of processors (', pdims(1),')' 459 462 CALL message( 'init_pegrid', 'PA0225', 1, 2, 0, 6, 0 ) 460 463 ELSE 461 464 nnx = ( nx + 1 ) / pdims(1) 462 IF ( nnx*pdims(1)  ( nx + 1) > nnx ) THEN463 WRITE( message_string, * ) 'xdirection: nx does not match the', &464 'requirements given by the number of PEs &used', &465 '& please use nx = ', nx  ( pdims(1)  ( nnx*pdims(1) &466  ( nx + 1 ) ) ), ' instead of nx =', nx467 CALL message( 'init_pegrid', 'PA0226', 1, 2, 0, 6, 0 )468 ENDIF469 465 ENDIF 470 466 … … 480 476 IF ( MOD( ny+1 , pdims(2) ) /= 0 ) THEN 481 477 WRITE( message_string, * ) 'ydirection: gridpoint number (',ny+1,') ', & 482 'is not an & integral divisor of the number of',&478 'is not an integral divisor of the number of', & 483 479 'processors (', pdims(2),')' 484 480 CALL message( 'init_pegrid', 'PA0227', 1, 2, 0, 6, 0 ) 485 481 ELSE 486 482 nny = ( ny + 1 ) / pdims(2) 487 IF ( nny*pdims(2)  ( ny + 1) > nny ) THEN488 WRITE( message_string, * ) 'ydirection: ny does not match the', &489 'requirements given by the number of PEs &used ', &490 '& please use ny = ', ny  ( pdims(2)  ( nnx*pdims(2) &491  ( ny + 1 ) ) ), ' instead of ny =', ny492 CALL message( 'init_pegrid', 'PA0228', 1, 2, 0, 6, 0 )493 ENDIF494 483 ENDIF 495 484 … … 533 522 IF ( MOD( nz , pdims(1) ) /= 0 ) THEN 534 523 WRITE( message_string, * ) 'transposition z > x:', & 535 ' &nz=',nz,' is not an integral divisior of pdims(1)=', &524 ' nz=',nz,' is not an integral divisior of pdims(1)=', & 536 525 pdims(1) 537 526 CALL message( 'init_pegrid', 'PA0230', 1, 2, 0, 6, 0 ) … … 555 544 IF ( MOD( nx+1 , pdims(2) ) /= 0 ) THEN 556 545 WRITE( message_string, * ) 'transposition x > y:', & 557 ' &nx+1=',nx+1,' is not an integral divisor of ', &546 ' nx+1=',nx+1,' is not an integral divisor of ', & 558 547 'pdims(2)=',pdims(2) 559 548 CALL message( 'init_pegrid', 'PA0231', 1, 2, 0, 6, 0 ) … … 584 573 IF ( MOD( ny+1 , pdims(1) ) /= 0 ) THEN 585 574 WRITE( message_string, * ) 'transposition y > z:', & 586 ' & ny+1=',ny+1,' is not an integral divisor of',&575 ' ny+1=',ny+1,' is not an integral divisor of', & 587 576 ' pdims(1)=',pdims(1) 588 577 CALL message( 'init_pegrid', 'PA0232', 1, 2, 0, 6, 0 ) … … 595 584 IF ( MOD( ny+1 , pdims(1) ) /= 0 ) THEN 596 585 WRITE( message_string, * ) 'transposition x > y:', & 597 ' & ny+1=',ny+1,' is not an integral divisor of',&586 ' ny+1=',ny+1,' is not an integral divisor of', & 598 587 ' pdims(1)=',pdims(1) 599 588 CALL message( 'init_pegrid', 'PA0233', 1, 2, 0, 6, 0 ) … … 609 598 IF ( MOD( nz, pdims(2) ) /= 0 ) THEN 610 599 WRITE( message_string, * ) 'direct transposition z > y (needed ', & 611 'for spectra): & nz=',nz,' is not an integral divisor of ',&600 'for spectra): nz=',nz,' is not an integral divisor of ', & 612 601 'pdims(2)=',pdims(2) 613 602 CALL message( 'init_pegrid', 'PA0234', 1, 2, 0, 6, 0 ) … … 974 963 ! 975 964 ! Check predefined value and reset to default, if neccessary 976 IF ( mg_switch_to_pe0_level < mg_switch_to_pe0_level_l .OR. &965 IF ( mg_switch_to_pe0_level < mg_switch_to_pe0_level_l .OR. & 977 966 mg_switch_to_pe0_level >= maximum_grid_level_l ) THEN 978 message_string = 'mg_switch_to_pe0_level ' // &967 message_string = 'mg_switch_to_pe0_level ' // & 979 968 'out of range and reset to 0' 980 969 CALL message( 'init_pegrid', 'PA0235', 0, 1, 0, 6, 0 ) … … 1038 1027 subdomain_size = ( nxr  nxl + 2 * nbgp + 1 ) * & 1039 1028 ( nyn  nys + 2 * nbgp + 1 ) * ( nzt  nzb + 2 ) 1040 gathered_size = ( nxr_l  nxl_l + 3 ) * ( nyn_l  nys_l + 3 ) * &1029 gathered_size = ( nxr_l  nxl_l + 3 ) * ( nyn_l  nys_l + 3 ) * & 1041 1030 ( nzt_l  nzb + 2 ) 1042 1031 1043 1032 #else 1044 message_string = 'multigrid gather/scatter impossible ' // &1033 message_string = 'multigrid gather/scatter impossible ' // & 1045 1034 'in non parallel mode' 1046 1035 CALL message( 'init_pegrid', 'PA0237', 1, 2, 0, 6, 0 ) … … 1063 1052 1064 1053 ! 1065 ! Temporary problem: Currently calculation of maxerror i in routine poismg crashes1054 ! Temporary problem: Currently calculation of maxerror in routine poismg crashes 1066 1055 ! if grid data are collected on PE0 already on the finest grid level. 1067 1056 ! To be solved later.
Note: See TracChangeset
for help on using the changeset viewer.