Page 1 Source Listing MPI_FIRST 2025-03-12 18:23 MPI_FIRST.f 1 SUBROUTINE MPI_FIRST 2 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 3 C . . . 4 C SUBPROGRAM: MPI_FIRST SET UP MESSGAE PASSING INFO 5 C PRGRMMR: TUCCILLO ORG: IBM 6 C 7 C ABSTRACT: 8 C SETS UP MESSAGE PASSING INFO 9 C . 10 C 11 C PROGRAM HISTORY LOG: 12 C 00-01-06 TUCCILLO - ORIGINAL 13 C 14 C USAGE: CALL MPI_FIRST 15 C INPUT ARGUMENT LIST: 16 C 17 C OUTPUT ARGUMENT LIST: 18 C 19 C OUTPUT FILES: 20 C STDOUT - RUN TIME STANDARD OUT. 21 C 22 C SUBPROGRAMS CALLED: 23 C MPI_INIT 24 C MPI_COMM_SIZE 25 C MPI_COMM_RANK 26 C PARA_RANGE 27 C UTILITIES: 28 C NONE 29 C LIBRARY: 30 C COMMON - CTLBLK.comm 31 C 32 C ATTRIBUTES: 33 C LANGUAGE: FORTRAN 34 C MACHINE : IBM RS/6000 SP 35 C$$$ 36 c 37 include "CTLBLK.comm" 52 include "parmeta" 70 include 'mpif.h' 71 c 289 integer ierr 290 c 291 call mpi_init(ierr) 292 call mpi_comm_size(MPI_COMM_WORLD,NUM_PROCS, ierr ) 293 call mpi_comm_rank(MPI_COMM_WORLD,ME, ierr ) 294 c 295 if ( me .eq. 0 ) then 296 c print *, ' NUM_PROCS = ',num_procs 297 end if 298 299 if ( num_procs .gt. 1024 ) then 300 print *, ' too many MPI tasks, max is 1024, stopping' 301 call mpi_last 302 stop 303 end if 304 c 305 c error check Page 2 Source Listing MPI_FIRST 2025-03-12 18:23 MPI_FIRST.f 306 c 307 if ( num_procs .gt. JM/2 ) then 308 print *, ' too many MPI tasks, max is ',jm/2,' stopping' 309 call mpi_last 310 stop 311 end if 312 c 313 c global loop ranges 314 c 315 call para_range(1,jm,num_procs,me,jsta,jend) 316 jsta_m = jsta 317 jsta_m2 = jsta 318 jend_m = jend 319 jend_m2 = jend 320 if ( me .eq. 0 ) then 321 jsta_m = 2 322 jsta_m2 = 3 323 end if 324 if ( me .eq. num_procs - 1 ) then 325 jend_m = jm - 1 326 jend_m2 = jm - 2 327 end if 328 c 329 c neighbors 330 c 331 iup = me + 1 332 idn = me - 1 333 if ( me .eq. 0 ) then 334 idn = MPI_PROC_NULL 335 end if 336 if ( me .eq. num_procs - 1 ) then 337 iup = MPI_PROC_NULL 338 end if 339 C 340 c print *, ' ME, NUM_PROCS = ',me,num_procs 341 c print *, ' ME, JSTA, JSTA_M, JSTA_M2 = ',me,jsta,jsta_m,jsta_m2 342 c print *, ' ME, JEND, JEND_M, JEND_M2 = ',me,jend,jend_m,jend_m2 343 c print *, ' ME, IUP, IDN = ',me,iup,idn 344 c 345 c counts, disps for gatherv and scatterv 346 c 347 do i = 0, num_procs - 1 348 call para_range(1,jm,num_procs,i,jsx,jex) 349 icnt(i) = (jex-jsx+1)*im 350 idsp(i) = (jsx-1)*im 351 if ( me .eq. 0 ) then 352 c print *, ' i, icnt(i),idsp(i) = ',i,icnt(i),idsp(i) 353 end if 354 end do 355 c 356 c extraction limits 357 c 358 jsta_2l = max(jsta - 1, 1 ) 359 jend_2u = min(jend + 1, jm ) 360 c print *, ' me, jsta_2l, jend_2u = ',me,jsta_2l, jend_2u 361 c 362 end Page 3 Source Listing MPI_FIRST 2025-03-12 18:23 Entry Points MPI_FIRST.f ENTRY POINTS Name mpi_first_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CTLBLK Common 39 96 SAVE I Local 347 I(4) 4 scalar 347,348,349,350 IDIM1 Param 66 I(4) 4 scalar IDIM2 Param 66 I(4) 4 scalar IERR Local 289 I(4) 4 scalar 291,292,293 IGSTL Param 61 I(4) 4 scalar 66 IGSTR Param 61 I(4) 4 scalar 66 IM Param 55 I(4) 4 scalar 63,66,349,350 INPES Param 58 I(4) 4 scalar 63,66 ITAIL Param 63 I(4) 4 scalar JDIM1 Param 67 I(4) 4 scalar JDIM2 Param 67 I(4) 4 scalar JEX Local 348 I(4) 4 scalar 348,349 JGSTL Param 62 I(4) 4 scalar 67 JGSTR Param 62 I(4) 4 scalar 67 JM Param 55 I(4) 4 scalar 64,67,307,308,315,325,326,348,359 JNPES Param 58 I(4) 4 scalar 64,67 JSX Local 348 I(4) 4 scalar 348,349,350 JTAIL Param 64 I(4) 4 scalar LM Param 55 I(4) 4 scalar LSM Param 55 I(4) 4 scalar MAX Func 358 scalar 358 MIN Func 359 scalar 359 MPIPRIV Common 280 36 SAVE MPI_2COMPLEX Param 181 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 181 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 181 I(4) 4 scalar MPI_2INTEGER Param 180 I(4) 4 scalar MPI_2REAL Param 180 I(4) 4 scalar MPI_ADDRESS_KIND Param 260 I(4) 4 scalar MPI_ANY_SOURCE Param 251 I(4) 4 scalar MPI_ANY_TAG Param 253 I(4) 4 scalar MPI_BAND Param 185 I(4) 4 scalar MPI_BOR Param 186 I(4) 4 scalar MPI_BSEND_OVERHEAD Param 126 I(4) 4 scalar MPI_BXOR Param 186 I(4) 4 scalar MPI_BYTE Param 180 I(4) 4 scalar MPI_CART Param 121 I(4) 4 scalar MPI_CHARACTER Param 180 I(4) 4 scalar MPI_COMM_NULL Param 139 I(4) 4 scalar MPI_COMM_RANK Subr 293 293 MPI_COMM_SELF Param 184 I(4) 4 scalar MPI_COMM_SIZE Subr 292 292 MPI_COMM_WORLD Param 184 I(4) 4 scalar 292,293 Page 4 Source Listing MPI_FIRST 2025-03-12 18:23 Symbol Table MPI_FIRST.f Name Object Declared Type Bytes Dimen Elements Attributes References MPI_COMPLEX Param 179 I(4) 4 scalar MPI_COMPLEX16 Param 218 I(4) 4 scalar MPI_COMPLEX32 Param 218 I(4) 4 scalar MPI_COMPLEX8 Param 218 I(4) 4 scalar MPI_CONGRUENT Param 157 I(4) 4 scalar MPI_DATATYPE_NULL Param 142 I(4) 4 scalar MPI_DISTRIBUTE_BLOCK Param 202 I(4) 4 scalar MPI_DISTRIBUTE_CYCLIC Param 202 I(4) 4 scalar MPI_DISTRIBUTE_DFLT_DARG Param 203 I(4) 4 scalar MPI_DISTRIBUTE_NONE Param 203 I(4) 4 scalar MPI_DOUBLE_COMPLEX Param 179 I(4) 4 scalar MPI_DOUBLE_PRECISION Param 178 I(4) 4 scalar MPI_ERRHANDLER_NULL Param 145 I(4) 4 scalar MPI_ERROR Param 129 I(4) 4 scalar MPI_ERRORS_ARE_FATAL Param 189 I(4) 4 scalar MPI_ERRORS_RETURN Param 189 I(4) 4 scalar MPI_ERR_ARG Param 104 I(4) 4 scalar MPI_ERR_BUFFER Param 101 I(4) 4 scalar MPI_ERR_COMM Param 102 I(4) 4 scalar MPI_ERR_COUNT Param 101 I(4) 4 scalar MPI_ERR_DIMS Param 104 I(4) 4 scalar MPI_ERR_GROUP Param 103 I(4) 4 scalar MPI_ERR_INTERN Param 106 I(4) 4 scalar MPI_ERR_IN_STATUS Param 106 I(4) 4 scalar MPI_ERR_LASTCODE Param 107 I(4) 4 scalar MPI_ERR_OP Param 104 I(4) 4 scalar MPI_ERR_OTHER Param 105 I(4) 4 scalar MPI_ERR_PENDING Param 106 I(4) 4 scalar MPI_ERR_RANK Param 102 I(4) 4 scalar MPI_ERR_REQUEST Param 107 I(4) 4 scalar MPI_ERR_ROOT Param 102 I(4) 4 scalar MPI_ERR_TAG Param 102 I(4) 4 scalar MPI_ERR_TOPOLOGY Param 104 I(4) 4 scalar MPI_ERR_TRUNCATE Param 105 I(4) 4 scalar MPI_ERR_TYPE Param 101 I(4) 4 scalar MPI_ERR_UNKNOWN Param 105 I(4) 4 scalar MPI_FIRST Subr 1 MPI_GRAPH Param 121 I(4) 4 scalar MPI_GROUP_EMPTY Param 184 I(4) 4 scalar MPI_GROUP_NULL Param 148 I(4) 4 scalar MPI_HOST Param 174 I(4) 4 scalar MPI_IDENT Param 157 I(4) 4 scalar MPI_INFO_NULL Param 209 I(4) 4 scalar MPI_INIT Subr 291 291 MPI_INTEGER Param 178 I(4) 4 scalar MPI_INTEGER1 Param 215 I(4) 4 scalar MPI_INTEGER16 Param 216 I(4) 4 scalar MPI_INTEGER2 Param 215 I(4) 4 scalar MPI_INTEGER4 Param 215 I(4) 4 scalar MPI_INTEGER8 Param 215 I(4) 4 scalar MPI_IO Param 174 I(4) 4 scalar MPI_KEYVAL_INVALID Param 151 I(4) 4 scalar MPI_LAND Param 185 I(4) 4 scalar MPI_LAST Subr 301 301,309 MPI_LB Param 182 I(4) 4 scalar Page 5 Source Listing MPI_FIRST 2025-03-12 18:23 Symbol Table MPI_FIRST.f Name Object Declared Type Bytes Dimen Elements Attributes References MPI_LOGICAL Param 179 I(4) 4 scalar MPI_LOR Param 186 I(4) 4 scalar MPI_LXOR Param 186 I(4) 4 scalar MPI_MAX Param 185 I(4) 4 scalar MPI_MAXLOC Param 187 I(4) 4 scalar MPI_MAX_ERROR_STRING Param 133 I(4) 4 scalar MPI_MAX_INFO_KEY Param 207 I(4) 4 scalar MPI_MAX_INFO_VAL Param 207 I(4) 4 scalar MPI_MAX_NAME_STRING Param 136 I(4) 4 scalar MPI_MAX_PROCESSOR_NAME Param 133 I(4) 4 scalar MPI_MIN Param 185 I(4) 4 scalar MPI_MINLOC Param 186 I(4) 4 scalar MPI_OFFSET_KIND Param 260 I(4) 4 scalar MPI_OP_NULL Param 188 I(4) 4 scalar MPI_ORDER_C Param 200 I(4) 4 scalar MPI_ORDER_FORTRAN Param 200 I(4) 4 scalar MPI_PACKED Param 183 I(4) 4 scalar MPI_PROC_NULL Param 123 I(4) 4 scalar 334,337 MPI_PROD Param 185 I(4) 4 scalar MPI_REAL Param 178 I(4) 4 scalar MPI_REAL16 Param 217 I(4) 4 scalar MPI_REAL4 Param 217 I(4) 4 scalar MPI_REAL8 Param 217 I(4) 4 scalar MPI_REQUEST_NULL Param 154 I(4) 4 scalar MPI_SIMILAR Param 157 I(4) 4 scalar MPI_SOURCE Param 129 I(4) 4 scalar MPI_STATUS_SIZE Param 131 I(4) 4 scalar 176,177 MPI_SUBVERSION Param 256 I(4) 4 scalar MPI_SUCCESS Param 101 I(4) 4 scalar MPI_SUM Param 185 I(4) 4 scalar MPI_TAG Param 129 I(4) 4 scalar MPI_TAG_UB Param 174 I(4) 4 scalar MPI_UB Param 182 I(4) 4 scalar MPI_UNDEFINED Param 118 I(4) 4 scalar MPI_UNEQUAL Param 157 I(4) 4 scalar MPI_VERSION Param 256 I(4) 4 scalar MPI_WTIME_IS_GLOBAL Param 183 I(4) 4 scalar PARALLEL Common 46 8240 PARA_RANGE Subr 315 315,348 TYPE COMPONENTS/COMMON VARIABLES Name Type Bytes Offset Dimen Elements Attributes References DT R(4) 4 48 scalar COM FIRST R(4) 4 24 scalar COM ICNT I(4) 4 40 1 1024 COM 349 IDAT I(4) 4 8 1 3 COM IDN I(4) 4 36 scalar COM 332,334 IDSP I(4) 4 4136 1 1024 COM 350 IDTAD I(4) 4 68 scalar COM IHRST I(4) 4 20 scalar COM IOUT I(4) 4 44 scalar COM IUP I(4) 4 32 scalar COM 331,337 Page 6 Source Listing MPI_FIRST 2025-03-12 18:23 Symbol Table MPI_FIRST.f Name Type Bytes Offset Dimen Elements Attributes References JEND I(4) 4 12 scalar COM 315,318,319,359 JEND_2U I(4) 4 8236 scalar COM 359 JEND_M I(4) 4 20 scalar COM 318,325 JEND_M2 I(4) 4 28 scalar COM 319,326 JSTA I(4) 4 8 scalar COM 315,316,317,358 JSTA_2L I(4) 4 8232 scalar COM 358 JSTA_M I(4) 4 16 scalar COM 316,321 JSTA_M2 I(4) 4 24 scalar COM 317,322 LIST I(4) 4 40 scalar COM ME I(4) 4 4 scalar COM 293,295,315,320,324,331,332,333,33 6,351 MPI_BOTTOM I(4) 4 0 scalar COM MPI_STATUSES_IGNORE I(4) 4 20 1 4 COM MPI_STATUS_IGNORE I(4) 4 4 1 4 COM NBC I(4) 4 36 scalar COM NBOCO I(4) 4 72 scalar COM NCP I(4) 4 80 scalar COM NDDAMP I(4) 4 60 scalar COM NFCST I(4) 4 32 scalar COM NPHS I(4) 4 84 scalar COM NPREC I(4) 4 64 scalar COM NRADL I(4) 4 92 scalar COM NRADS I(4) 4 88 scalar COM NSHDE I(4) 4 76 scalar COM NTSD I(4) 4 52 scalar COM NTSTM I(4) 4 56 scalar COM NUM_PROCS I(4) 4 0 scalar COM 292,299,307,315,324,336,347,348 RESTRT R(4) 4 28 scalar COM RUN R(4) 4 4 scalar COM SIGMA R(4) 4 0 scalar COM Page 7 Source Listing MPI_FIRST 2025-03-12 18:23 Subprograms/Common Blocks MPI_FIRST.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References CTLBLK Common 39 96 SAVE MPIPRIV Common 280 36 SAVE MPI_FIRST Subr 1 PARALLEL Common 46 8240 COMPILER OPTIONS BEING USED -align noall -align nonone -align nocommons -align nodcommons -align noqcommons -align nozcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -align norec32byte -align norec64byte -align noarray8byte -align noarray16byte -align noarray32byte -align noarray64byte -align noarray128byte -align noarray256byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume nobuffered_stdout -assume byterecl -assume nocontiguous_assumed_shape -assume nocontiguous_pointer -assume nocc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_complex_align -assume old_unit_star -assume old_inquire_recl -assume old_ldout_format -assume old_ldout_zero -assume noold_logical_assign -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume noprotect_allocates -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume std_minus0_rounding -assume nostd_mod_proc_name -assume std_value -assume realloc_lhs -assume underscore -assume no2underscores -assume norecursion no -auto -auto_scalar no -bintext -ccdefault default -check noarg_temp_created -check noassume -check nobounds -check nocontiguous -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check noshape -check nostack -check nouninitialized -check noudio_iostat -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1910 -D __INTEL_COMPILER_UPDATE=3 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ Page 8 Source Listing MPI_FIRST 2025-03-12 18:23 MPI_FIRST.f -D __x86_64 -D __x86_64__ -D __amd64 -D __amd64__ -D __INTEL_COMPILER_BUILD_DATE=20200925 -D __INTEL_OFFLOAD -D __MMX__ -D __SSE__ -D __SSE_MATH__ -D __SSE2__ -D __SSE2_MATH__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __POPCNT__ -D __PCLMUL__ -D __AES__ -D __AVX__ -D __F16C__ -D __AVX_I__ -D __RDRND__ -D __FMA__ -D __FP_FAST_FMA -D __FP_FAST_FMAF -D __BMI__ -D __LZCNT__ -D __AVX2__ -D __haswell -D __haswell__ -D __tune_haswell__ -D __core_avx2 -D __core_avx2__ -D __tune_core_avx2__ -D __CRAY_X86_ROME -D __CRAYXT_COMPUTE_LINUX_TARGET -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 noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -g2 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg -init noarrays -init nohuge -init noinfinity -init nominus_huge -init nominus_infinity -init nominus_tiny -init nonan -init nosnan -init notiny -init nozero no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude no -o -offload-build=host -openmp-simd -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded -vec=simd -show nofullpath -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w nodeclarations -w noexternals -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w noshape -w notruncated_source -w uncalled -w uninitialized -w nounused Page 9 Source Listing MPI_FIRST 2025-03-12 18:23 MPI_FIRST.f -w usage no -wrap-margins -includepath : /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/, .f90,./.f90,/opt/cray/pe/mpich/8.1.12/ofi/intel/19.0/include/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/ipp/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/stdlib/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/tbb/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/intel64/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/icc/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/.f90,/usr/lib64/gcc/x86_64-suse-linux/7/include/.f90, /usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/.f90,/usr/include/.f90,/usr/include/.f90,/usr/include/.f90 -list filename : MPI_FIRST.lst no -o COMPILER: Intel(R) Fortran 19.1-1655