Page 1 Source Listing SETUP_SERVERS 2014-12-17 20:47 /tmpnwprd/ifortjC95Zw.i 1 # 1 "SETUP_SERVERS.F" 2 SUBROUTINE SETUP_SERVERS(NPES_MOD, 3 * MYPE, 4 * NPES, 5 * IQUILT_GROUP, 6 * INUMQ, 7 * MPI_COMM_COMP, 8 * MPI_COMM_INTER, 9 * MPI_COMM_INTER_ARRAY ) 10 C 11 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 12 C . . . 13 C SUBROUTINE: SETUP_SERVERS SETUP I/O SERVERS 14 C PRGRMMR: TUCCILLO ORG: IBM DATE: 00-03-20 15 C 16 C ABSTRACT: SETUP I/O SERVERS 17 C 18 C PROGRAM HISTORY LOG: 19 C 00-03-11 TUCCILLO - ORIGINATOR 20 C 21 C USAGE: CALL SETUP_SERVERS(NPES_MOD, 22 C * MYPE, 23 C * NPES, 24 C * IQUILT_GROUP, 25 C * INUMQ, 26 C * MPI_COMM_COMP, 27 C * MPI_COMM_INTER, 28 C * MPI_COMM_INTER_ARRAY ) 29 30 C 31 C INPUT ARGUMENT LIST: 32 C NPES_MOD - NUMBER OF MPI TASKS FOR MODEL INTEGRATION FROM INPES AND JNPES 33 C THIS IS THE NUMBER OF MPI TASKS THE EXECUTABLE HAS BEEN BUILT FOR. 34 C NPES, RETURNED FROM MPI_COMM_SIZE, MUST BE AT LEAST THIS SIZE 35 C OTHERWISE THE INTEGRATION CANNOT PROCEED. THE DIFFERENCE BETWEEN 36 C NPES_MOD AND NPES IS THE NUMBER OF MPI TASKS THAT ARE AVAILABLE 37 C FOR I/O SERVING. THIS CAN BE ZERO, IN WHICH CASE CHKOUT WILL 38 C WRITE A DIRECT ACCESS FILE THAT CAN BE SEPARTELY "QUILTED". 39 C IN ORDER TO SKIP THE SEPARATE QUILTING STEP, MAKE SURE THAT 40 C THE NUMBER OF MPI TASKS THAT THE CODE IS INITIATED WITH IS AT 41 C LEAST ONE GREATER THAN NPES_MOD. 42 C 43 C OUTPUT ARGUMENT LIST: 44 C NPES - NUMBER OF MPI TASKS FOR MODEL INTEGRATION 45 C MYPE - MY RANK 46 C IQUILT_GROUP - NUMBER OF I/O SERVER GROUPS 47 C INUMQ - ARRAY THAT HOLDS THE NUMBER OF SERVERS IN EACH GROUP 48 C NPES - NUMBER OF MPI TASKS FOR MODEL INTEGRATION 49 C MPI_COMM_COMP - THE NEW INTRACOMMUNICATOR FOR ALL TASKS 50 C MPI_COMM_INTER - THE INTERCOMMUNICATOR FOR THE I/O SERVERS 51 C MPI_COMM_INTER_ARRAY - THE ARRAY OF INTERCOMMUNICATORS FOR THE INTEGRATION TASKS 52 C 53 C INPUT FILES: NONE 54 C 55 C OUTPUT FILES: 56 C NONE BUT THE CODE DOES ATTEMPT TO READ THE ENVIRONMENT VARIABLE "SERVER_GROUPS". 57 C THIS IS THE NUMBER OF INDEPENDENT GROUPS OF SERVER TASKS. THE DEFAULT IS ONE Page 2 Source Listing SETUP_SERVERS 2014-12-17 20:47 SETUP_SERVERS.F 58 C AND SHOULD BE OK FOR MOST APPLICATIONS OF THE ETA CODE. IF ONE SET OF I/O 59 C SERVERS CAN NOT COMPLETE BEFORE THE NEXT OUPUT TIME THEN ADDITIONAL I/O SERVER 60 C GROUPS WOULD BE USEFUL. 61 C 62 C SUBPROGRAMS CALLED: 63 C UNIQUE: 64 C PARA_RANGE 65 C MPI_INIT 66 C MPI_COMM_RANK 67 C MPI_COMM_SIZE 68 C MPI_COMM_DUP 69 C MPI_COMM_SPLIT 70 C MPI_COMM_GROUP 71 C MPI_GROUP_EXCL 72 C MPI_COMM_CREATE 73 C MPI_GROUP_FREE 74 C MPI_INTERCOMM_CREATE 75 C MPI_BARRIER 76 C 77 C EXIT STATES: 78 C COND = 0 - NORMAL EXIT 79 C 80 C ATTRIBUTES: 81 C LANGUAGE: FORTRAN 90 82 C MACHINE : IBM SP 83 C 84 C$$$ 85 86 include 'mpif.h' 603 integer comdup 604 integer, allocatable :: irank ( : ) 605 integer MPI_COMM_INTER_ARRAY(*), INUMQ(*) 606 logical yes 607 character*4 get 608 C----------------------------------------------------------------------- 609 C 610 C INITIALIZE MPI 611 C RETRIEVE THE NUMBER OF TOTAL MPI TASKS AND MY RANK 612 C 613 call mpi_init(ierr) 614 call mpi_comm_rank(MPI_COMM_WORLD,mype,ierr) 615 call mpi_comm_size(MPI_COMM_WORLD,npes,ierr) 616 C 617 C AT THIS POINT NPES IS THE TOTAL NUMBER OF MPI TASKS. WE WILL 618 C RESET THIS AT THE END OF THE SUBROUTINE TO THE NUMBER OF MPI 619 C TASKS THAT ARE WORKING ON THE MODEL INTGRATION. 620 C 621 C FIRST, HOWEVER, WE NEED TO MAKE SURE THAT A SUFFICIENT NUMBER 622 C OF MPI TASKS HAVE BEEN INITIATED. IF NOT, WE WILL STOP. 623 C 624 IF ( NPES .LT. NPES_MOD ) THEN 625 PRINT *, ' ***********************************************' 626 PRINT *, ' ***********************************************' 627 PRINT *, ' *************MAJOR PROBLEM*********************' 628 PRINT *, ' *************MAJOR PROBLEM*********************' 629 PRINT *, ' *************MAJOR PROBLEM*********************' 630 PRINT *, ' *************MAJOR PROBLEM*********************' Page 3 Source Listing SETUP_SERVERS 2014-12-17 20:47 SETUP_SERVERS.F 631 PRINT * 632 PRINT *, ' THERE ARE INSUFFICIENT MPI TASKS TO CONTINUE' 633 PRINT *, ' YOU MUST SPECIFY AT LEAST ',NPES_MOD,' TASKS' 634 PRINT *, ' STOPPING NOW' 635 PRINT *, ' HASTA LA VISTA BABY' 636 PRINT * 637 PRINT *, ' *************MAJOR PROBLEM*********************' 638 PRINT *, ' *************MAJOR PROBLEM*********************' 639 PRINT *, ' *************MAJOR PROBLEM*********************' 640 PRINT *, ' *************MAJOR PROBLEM*********************' 641 PRINT *, ' ***********************************************' 642 PRINT *, ' ***********************************************' 643 CALL MPI_ABORT(MPI_COMM_WORLD,1,IERR) 644 END IF 645 C 646 C OK, WE HAVE A SUFFICIENT NUMBER OF MPI TASKS TO CONTINUE 647 C 648 C HOW MANY GROUPS OF SERVERS ? THE DEFAULT IS 1 GROUP 649 C THE ENVIRONMENT VARIABLE, SERVER_GROUPS, CAN BE USED TO 650 C SPECIFY MORE SERVER GROUPS 651 C 652 get = '1' 653 call get_environment_variable('SERVER_GROUPS',get) 654 read(get,fmt='(i4)') iquilt_group 655 iquilt_group = max(iquilt_group,1) 656 C 657 C ERROR CHECK NUMBER OF GROUPS - THE MAXIMUM IS 100 - THIS IS A LOT 658 C 659 if ( iquilt_group .gt. 100 ) then 660 print *, ' ***** IQUILT_GROUP IS GREATER THAN 100' 661 print *, ' ***** DO YOU REALLY WANT THIS ?' 662 print *, ' ***** IF SO THEN INCREASE SIZE IN mpp.h' 663 print *, ' ***** ALSO, CHANGE IF CHECK IN SETUP_SERVERS' 664 print *, ' ***** RESETTING THE NUMBER OF SERVER GROUPS TO 100' 665 print *, ' ***** WE ARE CONTINUING .... ' 666 iquilt_group = 100 667 end if 668 if ( mype .eq. 0 ) then 669 print *, ' we will try to run with ',iquilt_group,' server groups' 670 end if 671 C 672 C COMPUTE THE NUMBER OF SERVERS PER GROUP 673 C ALL MPI TASKS BEYOND NPES_MOD WILL BE SERVERS 674 C IF THE NUMBER OF SERVERS IS NOT EQUALLY DIVISIBLE BY 675 C THE NUMBER OF GROUPS OF SERVERS THEN SOME GROUPS MAY HAVE 676 C MORE SERVERS THEN OTHERS - THIS IS FINE 677 C NOTE THAT WE REQUIRE AT LEAST ONE SERVER PER GROUP 678 C WE MAY NEED TO REDUCE THE NUMBER OF SERVER GROUPS IF 679 C IT EXCEEDS THE NUMBER OF SERVERS 680 C 681 iqserver = NPES - NPES_MOD 682 if ( iqserver .eq. 0 ) then 683 if ( mype .eq. 0 ) then 684 print *, ' *** you specified 0 I/O servers ' 685 print *, ' CHKOUT will write a file' 686 end if 687 iquilt_group = 0 Page 4 Source Listing SETUP_SERVERS 2014-12-17 20:47 SETUP_SERVERS.F 688 end if 689 if ( iquilt_group .gt. iqserver ) then 690 iquilt_group = iqserver 691 print *, ' ***** NOT ENOUGH SERVERS' 692 print *, ' ***** WE NEED TO REDUCE THE NUMB OF SERVER GROUPS' 693 print *, ' ***** NUMB OF SERVER GROUPS IS ', iquilt_group 694 end if 695 do i = 0, iquilt_group - 1 696 call para_range(1,iqserver,iquilt_group,i,istaq,iendq) 697 inumq(i+1) = iendq-istaq+1 698 if ( mype .eq. 0 ) print *, ' i, inumq = ',i+1,inumq(i+1) 699 end do 700 C 701 C SETUP THE "COLOR" FOR MPI_COMM_SPLIT 702 C THOSE TASKS WHICH WILL DO MODEL INTEGRATION WILL BE COLOR 0 703 C THE SERVER TASKS WILL HAVE THE COLOR OF THE GROUP NUMBER THAT 704 C THEY WILL BELONG 705 C 706 if ( mype .lt. NPES_MOD ) then 707 icolor = 0 708 else 709 istaxx = NPES_MOD 710 do i = 1, iquilt_group 711 iendxx = istaxx + inumq(i) - 1 712 if ( mype .ge. istaxx .and. mype .le. iendxx ) then 713 icolor = i 714 end if 715 istaxx = iendxx + 1 716 end do 717 end if 718 C 719 C SPLIT THE COMMUNICATOR - THE NEW INTRACOMMUNICATOR FOR ALL TASKS 720 C IS MPI_COMM_COMP. MPI_COMM_WORLD IS STILL AVAILABLE BUT IT DOES 721 C REFER TO ALL THE MPI TASKS ( MODEL INTEGRATION AND I/O SERVING ) 722 C 723 call mpi_comm_dup(MPI_COMM_WORLD,comdup,ierr) 724 call mpi_comm_split(comdup,icolor,mype,mpi_comm_comp,ierr) 725 C 726 C AT THIS POINT WE HAVE A NEW COMMUNICATOR, MPI_COMM_COMP, 727 C THAT CAN BE USED BY THE FORECASTS TASKS AND THE I/O SERVER TASKS 728 C FOR THEIR INTERNAL COMMUNICATIONS. ONTO THE INTERCOMMUNICATORS ... 729 C 730 C NOW WE MUST CREATE THE INTERCOMMUNICATORS FOR USE BETWEEN THE MPI 731 C TASKS DOING THE MODEL INTEGRATION AND THE MPI TASKS FOR EACH 732 C SERVER GROUP. THE FIRST STEP IS TO EXCLUDE THE TASKS THAT DONT 733 C BELONG. WE WILL DO THIS FOR EACH SERVER GROUP BY EXCLUDING THE TASKS 734 C FROM ALL OF THE OTHER SERVER GROUPS. 735 C 736 allocate ( irank ( iqserver ) ) 737 ixx = NPES_MOD 738 do i = 1, iquilt_group 739 yes = .true. 740 if ( mype .lt. NPES_MOD ) then 741 irlr = ixx 742 else 743 irlr = 0 744 end if Page 5 Source Listing SETUP_SERVERS 2014-12-17 20:47 SETUP_SERVERS.F 745 icc = 0 746 iss = NPES_MOD 747 C THIS IS THE FIRST POSSIBLE TASK ID THAT COULD BE EXCLUDED 748 do jj = 1, iquilt_group 749 if ( jj .ne. i ) then 750 issl = iss 751 do kk = 1, inumq(jj) 752 icc = icc + 1 753 irank(icc)= issl 754 if ( mype .eq. issl ) yes = .false. 755 issl = issl + 1 756 end do 757 end if 758 iss = iss + inumq(jj) 759 end do 760 C 761 C AT THIS POINT WE HAVE AN ARRAY, IRANK, WITH TASK IDS TO EXCLUDE 762 C THERE ARE ICC OF THEM. 763 C CREATE A NEW GROUP WITH THE TASKS FROM THE OTHER SERVER GROUPS 764 C EXCLUDED AND THEN CREATE A NEW COMMUNICATOR ( IWORLD_MINUS ) THAT 765 C CONTAINS ONLY THE MPI TASKS DOING THE MODEL INTEGRATION AND THE 766 C TASKS THAT BLONG TO THE SERVER GROUP WE ARE CONSIDERING. 767 C 768 iworld = MPI_COMM_WORLD 769 call mpi_comm_group(iworld,igroup,ierr) 770 call mpi_group_excl(igroup,icc,irank,igroup_x,ierr) 771 call mpi_comm_create(iworld,igroup_x,iworld_minus,ierr) 772 call mpi_group_free(igroup,ierr) 773 call mpi_group_free(igroup_x,ierr) 774 C 775 C AT THIS POINT WE HAVE A COMMUNICATOR THAT EXCLUDES THE TASKS WE DONT WANT. 776 C CREATE AN INTERCOMMUNICATOR FOR USE BETWEEN THE MPI TASKS DOING THE MODEL 777 C INTEGRATION AND THE I/O SERVER GROUP WE ARE CONSIDERING. THIS PROCESS IS 778 C A COLLECTIVE ROUTINE SO IT CAN ONLY BE DONE BY THE TASKS THAT HAVE NOT 779 C BEEN EXCLUDED. SAVE THIS NEW COMMUNICATOR IN MPI_COMM_INTER FOR USE BY 780 C THE TASKS THAT BELONG TO THE SERVER GROUP THAT WE ARE CONSIDERING. THE 781 C TASKS THAT ARE PERFORMING THE MODEL INTEGRATION WILL REFERENCE 782 C MPI_COMM_INTER_ARRAY() SINCE WE WILL NEED TO SELECT WHICH SERVER 783 C GROUP WE WISH TO COMMUNICATE WITH. 784 c 785 if ( yes ) then 786 call mpi_intercomm_create(mpi_comm_comp,0,iworld_minus,irlr,0, 787 * mpi_comm_inter_array(i),ierr) 788 mpi_comm_inter = mpi_comm_inter_array(i) 789 end if 790 C 791 call mpi_barrier(MPI_COMM_WORLD,ierr) 792 C 793 end do ! end do for loop over the number of server groups 794 C 795 C*** 796 C*** NPES IS REALLY THE NUMBER OF TASKS WORKING ON THE MODEL INTEGRATION 797 C*** 798 NPES = NPES - IQSERVER 799 C 800 IF(MYPE.EQ.0) THEN 801 print *, ' The Model integration is using ',npes,' MPI task' Page 6 Source Listing SETUP_SERVERS 2014-12-17 20:47 SETUP_SERVERS.F 802 print *, ' There are ',iqserver,' I/O servers' 803 END IF 804 C*** 805 deallocate ( irank ) 806 C 807 END ENTRY POINTS Name setup_servers_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References COMDUP Local 86 I(4) 4 scalar 206,207 GET Local 90 CHAR 4 scalar 135,136,137 GET_ENVIRONMENT_VARIABLE Intrin 136 136 I Local 178 I(4) 4 scalar 178,179,180,181,193,194,196,221,23 2,270,271 ICC Local 228 I(4) 4 scalar 228,235,236,253 ICOLOR Local 190 I(4) 4 scalar 190,196,207 IENDQ Local 179 I(4) 4 scalar 179,180 IENDXX Local 194 I(4) 4 scalar 194,195,198 IERR Local 96 I(4) 4 scalar 96,97,98,126,206,207,252,253,254,2 55,256,270,274 IGROUP Local 252 I(4) 4 scalar 252,253,255 IGROUP_X Local 253 I(4) 4 scalar 253,254,256 INUMQ Dummy 5 I(4) 4 1 0 ARG,INOUT 180,181,194,234,241 IQSERVER Local 164 I(4) 4 scalar 164,165,172,173,179,219,281,285 IQUILT_GROUP Dummy 4 I(4) 4 scalar ARG,INOUT 137,138,142,149,152,170,172,173,17 6,178,179,193,221,231 IRANK Local 87 I(4) 4 1 1 ALC 219,236,253,288 IRLR Local 224 I(4) 4 scalar 224,226,269 ISS Local 229 I(4) 4 scalar 229,233,241 ISSL Local 233 I(4) 4 scalar 233,236,237,238 ISTAQ Local 179 I(4) 4 scalar 179,180 ISTAXX Local 192 I(4) 4 scalar 192,194,195,198 IWORLD Local 251 I(4) 4 scalar 251,252,254 IWORLD_MINUS Local 254 I(4) 4 scalar 254,269 IXX Local 220 I(4) 4 scalar 220,224 JJ Local 231 I(4) 4 scalar 231,232,234,241 KK Local 234 I(4) 4 scalar 234 MAX Func 138 scalar 138 MPIFCMB1 Common 506 20 MPIFCMB2 Common 507 20 MPIFCMB3 Common 508 4 MPIFCMB4 Common 509 4 MPIFCMB5 Common 510 4 MPIFCMB6 Common 511 4 MPIFCMB7 Common 512 4 MPIFCMB8 Common 513 4 MPIX_COMBINER_HINDEXED_BLO Page 7 Source Listing SETUP_SERVERS 2014-12-17 20:47 Symbol Table SETUP_SERVERS.F Name Object Declared Type Bytes Dimen Elements Attributes References CK Param 420 I(4) 4 scalar MPIX_COMM_TYPE_SHARED Param 438 I(4) 4 scalar MPIX_MESSAGE_NO_PROC Param 442 I(4) 4 scalar MPIX_MESSAGE_NULL Param 440 I(4) 4 scalar MPI_2COMPLEX Param 266 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 272 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 268 I(4) 4 scalar MPI_2INT Param 350 I(4) 4 scalar MPI_2INTEGER Param 264 I(4) 4 scalar MPI_2REAL Param 270 I(4) 4 scalar MPI_ABORT Subr 126 126 MPI_ADDRESS_KIND Param 306 I(4) 4 scalar MPI_AINT Param 380 I(4) 4 scalar MPI_ANY_SOURCE Param 232 I(4) 4 scalar MPI_ANY_TAG Param 234 I(4) 4 scalar MPI_APPNUM Param 202 I(4) 4 scalar MPI_ARGVS_NULL Scalar 16 CHAR 1 2 1 COM MPI_ARGV_NULL Scalar 17 CHAR 1 1 1 COM MPI_BAND Param 150 I(4) 4 scalar MPI_BARRIER Subr 274 274 MPI_BOR Param 154 I(4) 4 scalar MPI_BOTTOM Scalar 490 I(4) 4 scalar COM MPI_BSEND_OVERHEAD Param 228 I(4) 4 scalar MPI_BXOR Param 158 I(4) 4 scalar MPI_BYTE Param 276 I(4) 4 scalar MPI_CART Param 240 I(4) 4 scalar MPI_CHAR Param 310 I(4) 4 scalar MPI_CHARACTER Param 274 I(4) 4 scalar MPI_COMBINER_CONTIGUOUS Param 388 I(4) 4 scalar MPI_COMBINER_DARRAY Param 410 I(4) 4 scalar MPI_COMBINER_DUP Param 386 I(4) 4 scalar MPI_COMBINER_F90_COMPLEX Param 414 I(4) 4 scalar MPI_COMBINER_F90_INTEGER Param 416 I(4) 4 scalar MPI_COMBINER_F90_REAL Param 412 I(4) 4 scalar MPI_COMBINER_HINDEXED Param 400 I(4) 4 scalar MPI_COMBINER_HINDEXED_INTE GER Param 398 I(4) 4 scalar MPI_COMBINER_HVECTOR Param 394 I(4) 4 scalar MPI_COMBINER_HVECTOR_INTEG ER Param 392 I(4) 4 scalar MPI_COMBINER_INDEXED Param 396 I(4) 4 scalar MPI_COMBINER_INDEXED_BLOCK Param 402 I(4) 4 scalar MPI_COMBINER_NAMED Param 384 I(4) 4 scalar MPI_COMBINER_RESIZED Param 418 I(4) 4 scalar MPI_COMBINER_STRUCT Param 406 I(4) 4 scalar MPI_COMBINER_STRUCT_INTEGE R Param 404 I(4) 4 scalar MPI_COMBINER_SUBARRAY Param 408 I(4) 4 scalar MPI_COMBINER_VECTOR Param 390 I(4) 4 scalar MPI_COMM_COMP Dummy 6 I(4) 4 scalar ARG,INOUT 207,269 MPI_COMM_CREATE Subr 254 254 MPI_COMM_DUP Subr 206 206 MPI_COMM_DUP_FN Subr 494 scalar MPI_COMM_GROUP Subr 252 252 MPI_COMM_INTER Dummy 7 I(4) 4 scalar ARG,INOUT 271 Page 8 Source Listing SETUP_SERVERS 2014-12-17 20:47 Symbol Table SETUP_SERVERS.F Name Object Declared Type Bytes Dimen Elements Attributes References MPI_COMM_INTER_ARRAY Dummy 8 I(4) 4 1 0 ARG,INOUT 270,271 MPI_COMM_NULL Param 172 I(4) 4 scalar MPI_COMM_NULL_COPY_FN Subr 495 scalar MPI_COMM_NULL_DELETE_FN Subr 494 scalar MPI_COMM_RANK Subr 97 97 MPI_COMM_SELF Param 168 I(4) 4 scalar MPI_COMM_SIZE Subr 98 98 MPI_COMM_SPLIT Subr 207 207 MPI_COMM_WORLD Param 166 I(4) 4 scalar 97,98,126,206,251,274 MPI_COMPLEX Param 252 I(4) 4 scalar MPI_COMPLEX16 Param 302 I(4) 4 scalar MPI_COMPLEX32 Param 304 I(4) 4 scalar MPI_COMPLEX8 Param 300 I(4) 4 scalar MPI_CONGRUENT Param 134 I(4) 4 scalar MPI_CONVERSION_FN_NULL Subr 500 scalar MPI_C_BOOL Param 370 I(4) 4 scalar MPI_C_COMPLEX Param 374 I(4) 4 scalar MPI_C_DOUBLE_COMPLEX Param 376 I(4) 4 scalar MPI_C_FLOAT_COMPLEX Param 372 I(4) 4 scalar MPI_C_LONG_DOUBLE_COMPLEX Param 378 I(4) 4 scalar MPI_DATATYPE_NULL Param 182 I(4) 4 scalar 293 MPI_DISPLACEMENT_CURRENT Param 488 I(8) 8 scalar MPI_DISTRIBUTE_BLOCK Param 480 I(4) 4 scalar MPI_DISTRIBUTE_CYCLIC Param 482 I(4) 4 scalar MPI_DISTRIBUTE_DFLT_DARG Param 486 I(4) 4 scalar MPI_DISTRIBUTE_NONE Param 484 I(4) 4 scalar MPI_DIST_GRAPH Param 242 I(4) 4 scalar MPI_DOUBLE Param 332 I(4) 4 scalar MPI_DOUBLE_COMPLEX Param 254 I(4) 4 scalar MPI_DOUBLE_INT Param 344 I(4) 4 scalar MPI_DOUBLE_PRECISION Param 260 I(4) 4 scalar MPI_DUP_FN Subr 491 scalar MPI_ERRCODES_IGNORE Scalar 15 I(4) 4 1 1 COM MPI_ERRHANDLER_NULL Param 186 I(4) 4 scalar MPI_ERROR Param 9 I(4) 4 scalar MPI_ERRORS_ARE_FATAL Param 128 I(4) 4 scalar MPI_ERRORS_RETURN Param 130 I(4) 4 scalar MPI_ERR_ACCESS Param 70 I(4) 4 scalar MPI_ERR_AMODE Param 118 I(4) 4 scalar MPI_ERR_ARG Param 88 I(4) 4 scalar MPI_ERR_ASSERT Param 38 I(4) 4 scalar MPI_ERR_BAD_FILE Param 60 I(4) 4 scalar MPI_ERR_BASE Param 80 I(4) 4 scalar MPI_ERR_BUFFER Param 94 I(4) 4 scalar MPI_ERR_COMM Param 44 I(4) 4 scalar MPI_ERR_CONVERSION Param 74 I(4) 4 scalar MPI_ERR_COUNT Param 22 I(4) 4 scalar MPI_ERR_DIMS Param 122 I(4) 4 scalar MPI_ERR_DISP Param 98 I(4) 4 scalar MPI_ERR_DUP_DATAREP Param 30 I(4) 4 scalar MPI_ERR_FILE Param 78 I(4) 4 scalar MPI_ERR_FILE_EXISTS Param 40 I(4) 4 scalar MPI_ERR_FILE_IN_USE Param 114 I(4) 4 scalar MPI_ERR_GROUP Param 102 I(4) 4 scalar MPI_ERR_INFO Param 110 I(4) 4 scalar Page 9 Source Listing SETUP_SERVERS 2014-12-17 20:47 Symbol Table SETUP_SERVERS.F Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_INFO_KEY Param 86 I(4) 4 scalar MPI_ERR_INFO_NOKEY Param 36 I(4) 4 scalar MPI_ERR_INFO_VALUE Param 54 I(4) 4 scalar MPI_ERR_INTERN Param 126 I(4) 4 scalar MPI_ERR_IN_STATUS Param 82 I(4) 4 scalar MPI_ERR_IO Param 68 I(4) 4 scalar MPI_ERR_KEYVAL Param 46 I(4) 4 scalar MPI_ERR_LASTCODE Param 96 I(4) 4 scalar MPI_ERR_LOCKTYPE Param 26 I(4) 4 scalar MPI_ERR_NAME Param 48 I(4) 4 scalar MPI_ERR_NOT_SAME Param 108 I(4) 4 scalar MPI_ERR_NO_MEM Param 58 I(4) 4 scalar MPI_ERR_NO_SPACE Param 72 I(4) 4 scalar MPI_ERR_NO_SUCH_FILE Param 124 I(4) 4 scalar MPI_ERR_OP Param 28 I(4) 4 scalar MPI_ERR_OTHER Param 20 I(4) 4 scalar MPI_ERR_PENDING Param 42 I(4) 4 scalar MPI_ERR_PORT Param 100 I(4) 4 scalar MPI_ERR_QUOTA Param 62 I(4) 4 scalar MPI_ERR_RANK Param 120 I(4) 4 scalar MPI_ERR_READ_ONLY Param 90 I(4) 4 scalar MPI_ERR_REQUEST Param 50 I(4) 4 scalar MPI_ERR_RMA_CONFLICT Param 84 I(4) 4 scalar MPI_ERR_RMA_SYNC Param 56 I(4) 4 scalar MPI_ERR_ROOT Param 64 I(4) 4 scalar MPI_ERR_SERVICE Param 66 I(4) 4 scalar MPI_ERR_SIZE Param 92 I(4) 4 scalar MPI_ERR_SPAWN Param 24 I(4) 4 scalar MPI_ERR_TAG Param 106 I(4) 4 scalar MPI_ERR_TOPOLOGY Param 104 I(4) 4 scalar MPI_ERR_TRUNCATE Param 34 I(4) 4 scalar MPI_ERR_TYPE Param 52 I(4) 4 scalar MPI_ERR_UNKNOWN Param 112 I(4) 4 scalar MPI_ERR_UNSUPPORTED_DATARE P Param 32 I(4) 4 scalar MPI_ERR_UNSUPPORTED_OPERAT ION Param 116 I(4) 4 scalar MPI_ERR_WIN Param 76 I(4) 4 scalar MPI_FILE_NULL Param 176 I(4) 4 scalar MPI_FLOAT Param 330 I(4) 4 scalar MPI_FLOAT_INT Param 342 I(4) 4 scalar MPI_GRAPH Param 238 I(4) 4 scalar MPI_GROUP_EMPTY Param 170 I(4) 4 scalar MPI_GROUP_EXCL Subr 253 253 MPI_GROUP_FREE Subr 255 255,256 MPI_GROUP_NULL Param 178 I(4) 4 scalar MPI_HOST Param 192 I(4) 4 scalar MPI_IDENT Param 132 I(4) 4 scalar MPI_INFO_NULL Param 188 I(4) 4 scalar MPI_INIT Subr 96 96 MPI_INT Param 322 I(4) 4 scalar MPI_INT16_T Param 356 I(4) 4 scalar MPI_INT32_T Param 358 I(4) 4 scalar MPI_INT64_T Param 360 I(4) 4 scalar MPI_INT8_T Param 354 I(4) 4 scalar Page 10 Source Listing SETUP_SERVERS 2014-12-17 20:47 Symbol Table SETUP_SERVERS.F Name Object Declared Type Bytes Dimen Elements Attributes References MPI_INTEGER Param 262 I(4) 4 scalar MPI_INTEGER1 Param 284 I(4) 4 scalar MPI_INTEGER16 Param 292 I(4) 4 scalar MPI_INTEGER2 Param 286 I(4) 4 scalar MPI_INTEGER4 Param 288 I(4) 4 scalar MPI_INTEGER8 Param 290 I(4) 4 scalar MPI_INTEGER_KIND Param 306 I(4) 4 scalar MPI_INTERCOMM_CREATE Subr 269 269 MPI_IN_PLACE Scalar 490 I(4) 4 scalar COM MPI_IO Param 194 I(4) 4 scalar MPI_KEYVAL_INVALID Param 226 I(4) 4 scalar MPI_LAND Param 148 I(4) 4 scalar MPI_LASTUSEDCODE Param 200 I(4) 4 scalar MPI_LB Param 280 I(4) 4 scalar MPI_LOCK_EXCLUSIVE Param 248 I(4) 4 scalar MPI_LOCK_SHARED Param 250 I(4) 4 scalar MPI_LOGICAL Param 256 I(4) 4 scalar MPI_LONG Param 326 I(4) 4 scalar MPI_LONG_DOUBLE Param 334 I(4) 4 scalar MPI_LONG_DOUBLE_INT Param 352 I(4) 4 scalar MPI_LONG_INT Param 346 I(4) 4 scalar MPI_LONG_LONG Param 340 I(4) 4 scalar MPI_LONG_LONG_INT Param 336 I(4) 4 scalar MPI_LOR Param 152 I(4) 4 scalar MPI_LXOR Param 156 I(4) 4 scalar MPI_MAX Param 140 I(4) 4 scalar MPI_MAXLOC Param 162 I(4) 4 scalar MPI_MAX_DATAREP_STRING Param 222 I(4) 4 scalar MPI_MAX_ERROR_STRING Param 210 I(4) 4 scalar MPI_MAX_INFO_KEY Param 216 I(4) 4 scalar MPI_MAX_INFO_VAL Param 218 I(4) 4 scalar MPI_MAX_OBJECT_NAME Param 214 I(4) 4 scalar MPI_MAX_PORT_NAME Param 212 I(4) 4 scalar MPI_MAX_PROCESSOR_NAME Param 220 I(4) 4 scalar MPI_MIN Param 142 I(4) 4 scalar MPI_MINLOC Param 160 I(4) 4 scalar MPI_MODE_APPEND Param 466 I(4) 4 scalar MPI_MODE_CREATE Param 462 I(4) 4 scalar MPI_MODE_DELETE_ON_CLOSE Param 458 I(4) 4 scalar MPI_MODE_EXCL Param 464 I(4) 4 scalar MPI_MODE_NOCHECK Param 428 I(4) 4 scalar MPI_MODE_NOPRECEDE Param 434 I(4) 4 scalar MPI_MODE_NOPUT Param 432 I(4) 4 scalar MPI_MODE_NOSTORE Param 430 I(4) 4 scalar MPI_MODE_NOSUCCEED Param 436 I(4) 4 scalar MPI_MODE_RDONLY Param 452 I(4) 4 scalar MPI_MODE_RDWR Param 454 I(4) 4 scalar MPI_MODE_SEQUENTIAL Param 468 I(4) 4 scalar MPI_MODE_UNIQUE_OPEN Param 460 I(4) 4 scalar MPI_MODE_WRONLY Param 456 I(4) 4 scalar MPI_NULL_COPY_FN Subr 491 scalar MPI_NULL_DELETE_FN Subr 491 scalar MPI_OFFSET Param 382 I(4) 4 scalar MPI_OFFSET_KIND Param 306 I(4) 4 scalar MPI_OP_NULL Param 180 I(4) 4 scalar Page 11 Source Listing SETUP_SERVERS 2014-12-17 20:47 Symbol Table SETUP_SERVERS.F Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ORDER_C Param 476 I(4) 4 scalar MPI_ORDER_FORTRAN Param 478 I(4) 4 scalar MPI_PACKED Param 282 I(4) 4 scalar MPI_PROC_NULL Param 230 I(4) 4 scalar MPI_PROD Param 146 I(4) 4 scalar MPI_REAL Param 258 I(4) 4 scalar MPI_REAL16 Param 298 I(4) 4 scalar MPI_REAL4 Param 294 I(4) 4 scalar MPI_REAL8 Param 296 I(4) 4 scalar MPI_REPLACE Param 164 I(4) 4 scalar MPI_REQUEST_NULL Param 184 I(4) 4 scalar 441 MPI_ROOT Param 236 I(4) 4 scalar MPI_SEEK_CUR Param 472 I(4) 4 scalar MPI_SEEK_END Param 474 I(4) 4 scalar MPI_SEEK_SET Param 470 I(4) 4 scalar MPI_SHORT Param 318 I(4) 4 scalar MPI_SHORT_INT Param 348 I(4) 4 scalar MPI_SIGNED_CHAR Param 312 I(4) 4 scalar MPI_SIMILAR Param 136 I(4) 4 scalar MPI_SOURCE Param 9 I(4) 4 scalar MPI_STATUSES_IGNORE Scalar 14 I(4) 4 2 5 COM MPI_STATUS_IGNORE Scalar 13 I(4) 4 1 5 COM MPI_STATUS_SIZE Param 11 I(4) 4 scalar 13,14 MPI_SUBVERSION Param 246 I(4) 4 scalar MPI_SUCCESS Param 18 I(4) 4 scalar MPI_SUM Param 144 I(4) 4 scalar MPI_TAG Param 9 I(4) 4 scalar MPI_TAG_UB Param 190 I(4) 4 scalar MPI_THREAD_FUNNELED Param 446 I(4) 4 scalar MPI_THREAD_MULTIPLE Param 450 I(4) 4 scalar MPI_THREAD_SERIALIZED Param 448 I(4) 4 scalar MPI_THREAD_SINGLE Param 444 I(4) 4 scalar MPI_TYPECLASS_COMPLEX Param 426 I(4) 4 scalar MPI_TYPECLASS_INTEGER Param 424 I(4) 4 scalar MPI_TYPECLASS_REAL Param 422 I(4) 4 scalar MPI_TYPE_DUP_FN Subr 498 scalar MPI_TYPE_NULL_COPY_FN Subr 499 scalar MPI_TYPE_NULL_DELETE_FN Subr 498 scalar MPI_UB Param 278 I(4) 4 scalar MPI_UINT16_T Param 364 I(4) 4 scalar MPI_UINT32_T Param 366 I(4) 4 scalar MPI_UINT64_T Param 368 I(4) 4 scalar MPI_UINT8_T Param 362 I(4) 4 scalar MPI_UNDEFINED Param 224 I(4) 4 scalar MPI_UNEQUAL Param 138 I(4) 4 scalar MPI_UNIVERSE_SIZE Param 198 I(4) 4 scalar MPI_UNSIGNED Param 324 I(4) 4 scalar MPI_UNSIGNED_CHAR Param 314 I(4) 4 scalar MPI_UNSIGNED_LONG Param 328 I(4) 4 scalar MPI_UNSIGNED_LONG_LONG Param 338 I(4) 4 scalar MPI_UNSIGNED_SHORT Param 320 I(4) 4 scalar MPI_UNWEIGHTED Scalar 490 I(4) 4 scalar COM MPI_VERSION Param 244 I(4) 4 scalar MPI_WCHAR Param 316 I(4) 4 scalar MPI_WIN_BASE Param 204 I(4) 4 scalar Page 12 Source Listing SETUP_SERVERS 2014-12-17 20:47 Symbol Table SETUP_SERVERS.F Name Object Declared Type Bytes Dimen Elements Attributes References MPI_WIN_DISP_UNIT Param 208 I(4) 4 scalar MPI_WIN_DUP_FN Subr 496 scalar MPI_WIN_NULL Param 174 I(4) 4 scalar MPI_WIN_NULL_COPY_FN Subr 497 scalar MPI_WIN_NULL_DELETE_FN Subr 496 scalar MPI_WIN_SIZE Param 206 I(4) 4 scalar MPI_WTICK Func 492 R(8) 8 scalar MPI_WTIME Func 492 R(8) 8 scalar MPI_WTIME_IS_GLOBAL Param 196 I(4) 4 scalar MYPE Dummy 2 I(4) 4 scalar ARG,INOUT 97,151,166,181,189,195,207,223,237 ,283 NPES Dummy 3 I(4) 4 scalar ARG,INOUT 98,107,164,281,284 NPES_MOD Dummy 1 I(4) 4 scalar ARG,INOUT 107,116,164,189,192,220,223,229 PADS_A Scalar 505 CHAR 1 1 3 COM PADS_B Scalar 505 CHAR 1 1 3 COM PARA_RANGE Subr 179 179 PMPI_WTICK Func 493 R(8) 8 scalar PMPI_WTIME Func 493 R(8) 8 scalar SETUP_SERVERS Subr 1 YES Local 89 L(4) 4 scalar 222,237,268 Page 13 Source Listing SETUP_SERVERS 2014-12-17 20:47 Subprograms/Common Blocks SETUP_SERVERS.F SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References MPIFCMB1 Common 506 20 MPIFCMB2 Common 507 20 MPIFCMB3 Common 508 4 MPIFCMB4 Common 509 4 MPIFCMB5 Common 510 4 MPIFCMB6 Common 511 4 MPIFCMB7 Common 512 4 MPIFCMB8 Common 513 4 SETUP_SERVERS Subr 1 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume nocc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores no -auto -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D __i686 -D __i686__ -D __pentiumpro -D __pentiumpro__ -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE__ -D __MMX__ Page 14 Source Listing SETUP_SERVERS 2014-12-17 20:47 SETUP_SERVERS.F -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals -fixed no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model precise -fp_model nofast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -fp_modbits nofp_contract -fp_modbits nono_fp_contract -fp_modbits nofenv_access -fp_modbits nono_fenv_access -fp_modbits nocx_limited_range -fp_modbits nono_cx_limited_range -fp_modbits noprec_div -fp_modbits nono_prec_div -fp_modbits noprec_sqrt -fp_modbits nono_prec_sqrt -fp_modbits noftz -fp_modbits no_ftz -fp_modbits nointrin_limited_range -fp_modbits nono_intrin_limited_range -fp_modbits notrunc_compares -fp_modbits nono_trunc_compares -fp_modbits noieee_nan_compares -fp_modbits nono_ieee_nan_compares -fp_modbits nohonor_f32_conversion -fp_modbits nono_honor_f32_conversion -fp_modbits nohonor_f64_conversion -fp_modbits nono_honor_f64_conversion -fp_modbits nono_x87_copy -fp_modbits nono_no_x87_copy -fp_modbits noexception_semantics -fp_modbits nono_exception_semantics -fp_modbits noprecise_libm_functions -fp_modbits nono_precise_libm_functions -heap_arrays 0 no -threadprivate_compat -g2 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude -O2 no -pad_source -real_size 32 no -recursive -reentrancy none no -sharable_localsaves -vec=simd -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w noargument_checking -w nodeclarations -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage -includepath : /usrx/local/intel/composerxe/tbb/include/,/usr/include/,./,/opt/ibmhpc/pe1308/mpich2/intel/include64/, /opt/ibmhpc/pe1308/base/include64/,/usrx/local/intel/composerxe/mkl/include/,/usrx/local/intel/composerxe/tbb/include/, /gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/,/gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/, /usr/local/include/,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/,/usr/include/,/usr/include/ -list filename : SETUP_SERVERS.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100