Page 1 Source Listing EXTEND 2025-03-12 18:23 EXTEND.f 1 SUBROUTINE EXTEND(GRID,IDIM,JDIM,AVG,SPVC) 2 C 3 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 4 C . . . 5 C SUBPROGRAM: EXTEND FILL MISSING BOUNDARY VALUES. 6 C PRGRMMR: TREADON ORG: W/NP2 DATE: 93-02-03 7 C 8 C ABSTRACT: 9 C THIS SUBROUTINE EXTENDS KNOW BOUNDARY VALUES TO FILL 10 C MISSING VALUES TAGGED BY THE VALUE SPVC. MULTIPLE 11 C FILLING PASSES MAY BE MADE. WE OPTED TO MAKE ONE 12 C PASS AND REPLACE ANY REMAINING SPVC VALUES BY THE 13 C FIELD MEAN. 14 C . 15 C 16 C PROGRAM HISTORY LOG: 17 C ??-??-?? DAVID PLUMMER - SOURCE IN ETAPACKC 18 C 93-02-26 RUSS TREADON - GENERALIZED ETAPACKC SOURCE 19 C AND ADDED COMMENTS. 20 C 93-06-23 RUSS TREADON - COMPLETE REWRITE. 21 C 22 C USAGE: CALL EXTEND(GRID,IDIM,JDIM,AVG,SPVC) 23 C INPUT ARGUMENT LIST: 24 C GRID - GRID TO BE FILLED. 25 C IDIM - FIRST DIMENSION OF GRID. 26 C JDIM - SECOND DIENSION OF GRID. 27 C AVG - VALUE TO REPLACE SPVC VALUES WITH AFTER 28 C MXPASS FILLING PASSES OVER THE GRID. 29 C SPVC - THE MISSING DATA FLAG. 30 C 31 C OUTPUT ARGUMENT LIST: 32 C GRID - GRID WITH SPVC VALUES REPLACED BY EXTENDED 33 C BORDER VALUES OR PASSED VALUE OF AVG. 34 C 35 C OUTPUT FILES: 36 C STDOUT - RUN TIME STANDARD OUT. 37 C 38 C SUBPROGRAMS CALLED: 39 C UTILITIES: 40 C NONE 41 C LIBRARY: 42 C COMMON - IOUNIT 43 C 44 C ATTRIBUTES: 45 C LANGUAGE: FORTRAN 46 C MACHINE : CRAY C-90 47 C$$$ 48 C 49 C 50 C 51 C SET PARAMETERS 52 PARAMETER (MXPASS=1) 53 C 54 C DECLARE VARIABLES. 55 REAL GRID(IDIM,JDIM) 56 C 57 C INCLUDE COMMON BLOCK Page 2 Source Listing EXTEND 2025-03-12 18:23 EXTEND.f 58 INCLUDE "IOUNIT.comm" 59 C 60 C************************************************************************** 61 C START EXTEND HERE. 62 C 70 print *,'EXTENDD ',idim,jdim 71 IJDIM = IDIM*JDIM 72 C 73 C FILL MISSING VALUES WITH BOUNDARY VALUES. WE ALLOW 74 C UP TO MXPASS EXTENSION PASSES TO ACCOMPLISH THIS. THE 75 C COMMENTS BELOW ASSUME GRID(1,1) IS IN THE SOUTHWEST OR 76 C LOWER LEFT CORNER AND GRID(IDIM,JDIM) IS IN THE NORTHEAST 77 C OR UPPER RIGHT CORNER. 78 C 79 80 IPASS = 0 81 10 CONTINUE 82 IPASS = IPASS + 1 83 C 84 C EXTEND SOUTHERN AND NORTHERN BOUNDARIES. 85 DO 70 I = 1,IDIM 86 C 87 C EXTEND SOUTHERN BOUNDARY. 88 DO 30 J = 1,JDIM 89 IF (GRID(I,J).NE.SPVC) THEN 90 DO 20 JJ = J,1,-1 91 GRID(I,JJ) = GRID(I,J) 92 20 CONTINUE 93 GOTO 40 94 ENDIF 95 30 CONTINUE 96 C 97 C EXTEND NORTHERN BOUNDARY 98 40 CONTINUE 99 DO 60 J = JDIM,1,-1 100 IF (GRID(I,J).NE.SPVC) THEN 101 DO 50 JJ = J,JDIM 102 GRID(I,JJ) = GRID(I,J) 103 50 CONTINUE 104 GOTO 70 105 ENDIF 106 60 CONTINUE 107 C 108 C REPEAT FOR NEXT COLUMN. 109 70 CONTINUE 110 C 111 C EXTEND WESTERN AND EASTERN BOUNDARIES 112 DO 170 J = 1,JDIM 113 C 114 C EXTEND WESTERN BOUNDARY 115 DO 130 I = 1,IDIM 116 IF (GRID(I,J).NE.SPVC) THEN 117 DO 120 II = I,1,-1 118 GRID(II,J) = GRID(I,J) 119 120 CONTINUE 120 GOTO 140 121 ENDIF Page 3 Source Listing EXTEND 2025-03-12 18:23 EXTEND.f 122 130 CONTINUE 123 C 124 C EXTEND EASTERN BOUNDARY 125 140 CONTINUE 126 DO 160 I = IDIM,1,-1 127 IF (GRID(I,J).NE.SPVC) THEN 128 DO 150 II = I,IDIM 129 GRID(II,J) = GRID(I,J) 130 150 CONTINUE 131 GOTO 170 132 ENDIF 133 160 CONTINUE 134 C 135 C REPEAT FOR NEXT ROW 136 170 CONTINUE 137 C 138 C SEE IF WE NEED TO MAKE ANOTHER PASS. 139 C 140 CALL MINMAX(GRID,IDIM,JDIM,FMIN,FMAX) 141 IF (FMAX.GE.SPVC) THEN 142 CX WRITE(STDOUT,*)'EXTEND: BOUNDARY FILL: ',IPASS,FMIN,FMAX 143 IF (IPASS.LT.MXPASS) GOTO 10 144 ENDIF 145 C 146 C IF WE STILL CAN'T FILL THE GRID AFTER MXPASS PASSES, 147 C FILL MISSING VALUES WITH FIELD MEAN. 148 C 149 IF ((FMAX.GE.SPVC).AND.(IPASS.GE.MXPASS)) THEN 150 CX WRITE(STDOUT,*)'EXTEND: FILLING WITH AVG=',AVG 151 !$omp parallel do 152 DO 180 J = 1,JDIM 153 DO 180 I = 1,IDIM 154 IF (GRID(I,J).GE.SPVC) GRID(I,J) = AVG 155 180 CONTINUE 156 ENDIF 157 print*,'At the end of EXTEND' 158 C 159 C END OF ROUTINE. 160 C 161 RETURN 162 END Page 4 Source Listing EXTEND 2025-03-12 18:23 Entry Points EXTEND.f ENTRY POINTS Name extend_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 10 Label 81 143 120 Label 119 117 130 Label 122 115 140 Label 125 120 150 Label 130 128 160 Label 133 126 170 Label 136 112,131 180 Label 155 152,153 20 Label 92 90 30 Label 95 88 40 Label 98 93 50 Label 103 101 60 Label 106 99 70 Label 109 85,104 AVG Dummy 1 R(4) 4 scalar ARG,INOUT 154 EXTEND Subr 1 FMAX Local 140 R(4) 4 scalar 140,141,149 FMIN Local 140 R(4) 4 scalar 140 GRID Dummy 1 R(4) 4 2 0 ARG,INOUT 89,91,100,102,116,118,127,129,140, 154 I Local 85 I(4) 4 scalar 85,89,91,100,102,115,116,117,118,1 26,127,128,129,153,154 IDIM Dummy 1 I(4) 4 scalar ARG,INOUT 55,70,71,85,115,126,128,140,153 II Local 117 I(4) 4 scalar 117,118,128,129 IJDIM Local 71 I(4) 4 scalar 71 IOUNIT Common 66 20 SAVE IPASS Local 80 I(4) 4 scalar 80,82,143,149 J Local 88 I(4) 4 scalar 88,89,90,91,99,100,101,102,112,116 ,118,127,129,152,154 JDIM Dummy 1 I(4) 4 scalar ARG,INOUT 55,70,71,88,99,101,112,140,152 JJ Local 90 I(4) 4 scalar 90,91,101,102 MINMAX Subr 140 140 MXPASS Param 52 I(4) 4 scalar 143,149 SPVC Dummy 1 R(4) 4 scalar ARG,INOUT 89,100,116,127,141,149,154 Page 5 Source Listing EXTEND 2025-03-12 18:23 Symbol Table EXTEND.f TYPE COMPONENTS/COMMON VARIABLES Name Type Bytes Offset Dimen Elements Attributes References LCNTRL I(4) 4 4 scalar COM LUNCO I(4) 4 8 scalar COM LUNLL I(4) 4 12 scalar COM LUNOUT I(4) 4 16 scalar COM STDOUT I(4) 4 0 scalar COM Page 6 Source Listing EXTEND 2025-03-12 18:23 Subprograms/Common Blocks EXTEND.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References EXTEND Subr 1 IOUNIT Common 66 20 SAVE 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__ -D __x86_64 -D __x86_64__ -D __amd64 -D __amd64__ Page 7 Source Listing EXTEND 2025-03-12 18:23 EXTEND.f -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 -w usage no -wrap-margins Page 8 Source Listing EXTEND 2025-03-12 18:23 EXTEND.f -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 : EXTEND.lst no -o COMPILER: Intel(R) Fortran 19.1-1655