Page 1 Source Listing EXTEND 2014-12-17 20:47 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 2014-12-17 20:47 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 2014-12-17 20:47 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 2014-12-17 20:47 Entry Points EXTEND.f ENTRY POINTS Name extend_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 10 Label 74 136 120 Label 112 110 130 Label 115 108 140 Label 118 113 150 Label 123 121 160 Label 126 119 170 Label 129 105,124 180 Label 148 145,146 20 Label 85 83 30 Label 88 81 40 Label 91 86 50 Label 96 94 60 Label 99 92 70 Label 102 78,97 AVG Dummy 1 R(4) 4 scalar ARG,INOUT 147 EXTEND Subr 1 FMAX Local 133 R(4) 4 scalar 133,134,142 FMIN Local 133 R(4) 4 scalar 133 GRID Dummy 1 R(4) 4 2 0 ARG,INOUT 82,84,93,95,109,111,120,122,133,14 7 I Local 78 I(4) 4 scalar 78,82,84,93,95,108,109,110,111,119 ,120,121,122,146,147 IDIM Dummy 1 I(4) 4 scalar ARG,INOUT 55,63,64,78,108,119,121,133,146 II Local 110 I(4) 4 scalar 110,111,121,122 IJDIM Local 64 I(4) 4 scalar 64 IOUNIT Common 4 20 IPASS Local 73 I(4) 4 scalar 73,75,136,142 J Local 81 I(4) 4 scalar 81,82,83,84,92,93,94,95,105,109,11 1,120,122,145,147 JDIM Dummy 1 I(4) 4 scalar ARG,INOUT 55,63,64,81,92,94,105,133,145 JJ Local 83 I(4) 4 scalar 83,84,94,95 LCNTRL Scalar 5 I(4) 4 scalar COM LUNCO Scalar 5 I(4) 4 scalar COM LUNLL Scalar 5 I(4) 4 scalar COM LUNOUT Scalar 5 I(4) 4 scalar COM MINMAX Subr 133 133 MXPASS Param 52 I(4) 4 scalar 136,142 SPVC Dummy 1 R(4) 4 scalar ARG,INOUT 82,93,109,120,134,142,147 STDOUT Scalar 2 I(4) 4 scalar COM Page 5 Source Listing EXTEND 2014-12-17 20:47 Subprograms/Common Blocks EXTEND.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References EXTEND Subr 1 IOUNIT Common 4 20 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__ -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 Page 6 Source Listing EXTEND 2014-12-17 20:47 EXTEND.f -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 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 : /gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/,.f,./.f,/usrx/local/intel/composerxe/mkl/include/.f, /usrx/local/intel/composerxe/tbb/include/.f,/gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/.f, /gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/.f,/usr/local/include/.f,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/.f, /usr/include/.f,/usr/include/.f -list filename : EXTEND.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100