Page 1 Source Listing INTERP3 2014-12-17 20:48 INTERP3.f 1 SUBROUTINE INTERP3(EGFUL,GDOUT,IMOT,JMOT) 2 C 3 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 4 C . . . 5 C SUBPROGRAM: INTERP3 BILINEAR INTERPOLATION 6 C PRGRMMR: TREADON ORG: W/NP2 DATE: 92-12-23 7 C 8 C ABSTRACT: 9 C THIS ROUTINE BILINEARLY INTERPOLATES DATA FROM A 10 C REGULAR INPUT GRID (FILLED E-GRID) TO A SPECIFIED 11 C REGULAR OUTPUT GRID. THE ROUTINE ASSUMES THE 12 C INTERPOLATION COEFFICIENTS HAVE BEEN PRECOMPUTED 13 C EITHER EARLIER IN THE POST RUN BY SUBROUTINE GENBIL 14 C OR READ IN WHILE IN SUBROUTINE READCNTRL2. 15 C . 16 C 17 C PROGRAM HISTORY LOG: 18 C ??-??-?? DAVID PLUMMER - SUBROUTINE INTERP 19 C 92-12-23 RUSS TREADON - BROKE INTERP INTO SEVERAL PIECES 20 C ONE OF WHICH BECAME THIS 21 C INTERPOLATION ROUTINE. 22 C 95-05-03 MIKE BALDWIN - ADDED BIT MAP ARRAY 23 C 24 C USAGE: CALL INTERP3(EGFUL,GDOUT,IMOT,JMOT) 25 C INPUT ARGUMENT LIST: 26 C EGFUL - DATA ON FILLED E-GRID. 27 C IMOT - FIRST DIMENSION OF OUTPUT GRID. 28 C JMOT - SECOND DIMENSION OF OUTPUT GRID. 29 C 30 C OUTPUT ARGUMENT LIST: 31 C GDOUT - DATA INTERPOLATED TO OUTPUT GRID. 32 C 33 C OUTPUT FILES: 34 C STDOUT - RUN TIME STANDARD OUT. 35 C 36 C SUBPROGRAMS CALLED: 37 C UTILITIES: 38 C EXTEND - FILLS MISSING VALUES ON OUTPUT GRID WITH 39 C EITHER AN EXTENSION OF BORDER VALUES OR 40 C THE FIELD MEAN. 41 C LIBRARY: 42 C COMMON - OPTIONS 43 C LLGRDS 44 C IOUNIT 45 C 46 C ATTRIBUTES: 47 C LANGUAGE: FORTRAN 48 C MACHINE : CRAY Y-MP 49 C$$$ 50 C 51 C 52 C INCLUDE DECLARED GRID DIMENSIONS. 53 C----------------------------------------------------------------- 54 INCLUDE "parmeta" 72 INCLUDE "parmout" 73 C----------------------------------------------------------------- 77 PARAMETER (IMT=2*IM-1,JMT=JM) Page 2 Source Listing INTERP3 2014-12-17 20:48 INTERP3.f 78 C 79 C DECLARE VARIABLES. 80 C----------------------------------------------------------------- 81 INTEGER IMOT,JMOT 82 REAL EGFUL(IMT,JMT),GDOUT(IMOT,JMOT) 83 DOUBLE PRECISION SUM 84 C----------------------------------------------------------------- 85 C 86 C INCLUDE COMMON. 87 INCLUDE "OPTIONS.comm" 91 INCLUDE "LLGRDS.comm" 105 INCLUDE "BITMAP.comm" 111 INCLUDE "IOUNIT.comm" 112 C 113 C SET TOLERANCE LIMITS. 114 C 122 DATA MXPASS,SPVC,SMALL /2,1.E20,1.E-4/ 123 C 124 C****************************************************************** 125 C START INTERP3 HERE. 126 C 127 C BILINEAR INTERPOLATION OF FILLED E-GRID TO OUTPUT GRID. 128 C THE WEIGHT ARRAYS W*(I,J) ARE PASSED THROUGH COMMON 129 C BLOCK LLGRDS. WHILE INTERPOLATING, COMPUTE FIELD 130 C AVERAGE ON OUTPUT GRID. 131 C 132 SUM = 0.0 133 NPTS=0 134 C 135 !$omp parallel do 136 DO J=1,JMOT 137 DO I=1,IMOT 138 GDOUT(I,J)=SPVC 139 ENDDO 140 ENDDO 141 C 142 !$omp parallel do 143 !$omp& private(m,n) 144 DO 120 J = 1,JMOT 145 DO 120 I = 1,IMOT 146 c GDOUT(I,J) = SPVC 147 IBMAP(I,J) = IWGT(I,J) 148 IF (IWGT(I,J).EQ.1) THEN 149 M = IEGRD(I,J) 150 N = JEGRD(I,J) 151 GDOUT(I,J) = 152 X WIJ(I,J) *EGFUL(M,N) + 153 X WIPJ(I,J) *EGFUL(M+1,N) + 154 X WIJP(I,J) *EGFUL(M,N+1) + 155 X WIPJP(I,J)*EGFUL(M+1,N+1) 156 ENDIF 157 120 CONTINUE 158 C 159 DO J=1,JMOT 160 DO I=1,IMOT 161 IF(IWGT(I,J).EQ.1)THEN 162 SUM=SUM+GDOUT(I,J) Page 3 Source Listing INTERP3 2014-12-17 20:48 INTERP3.f 163 NPTS=NPTS+1 164 ENDIF 165 ENDDO 166 ENDDO 167 C 168 IF(NPTS.EQ.0)THEN 169 WRITE(STDOUT,*)'INTERP3: OUTPUT GRID NPTS IS ZERO' 170 RETURN 171 ENDIF 172 AVG=SUM/NPTS 173 C 174 C DONE WITH INTERPOLATION. FILL MISSING VALUES WITH BOUNDARY VALUES. 175 C 176 CALL EXTEND(GDOUT,IMOT,JMOT,AVG,SPVC) 177 print*,'End of INTERP3' 178 C 179 C END OF ROUTINE. 180 C 181 RETURN 182 END ENTRY POINTS Name interp3_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 120 Label 109 96,97 AVG Local 124 R(4) 4 scalar 124,128 BITMAP Common 2 366876 EGFUL Dummy 1 R(4) 4 2 183051 ARG,INOUT 104,105,106,107 EGRDI Scalar 9 R(4) 4 2 91719 COM EGRDJ Scalar 9 R(4) 4 2 91719 COM EVLAT Scalar 8 R(4) 4 2 183051 COM EVLON Scalar 8 R(4) 4 2 183051 COM EXTEND Subr 128 128 FVTLON Scalar 7 R(4) 4 2 183051 COM GDLAT Scalar 3 R(4) 4 2 91719 COM GDLON Scalar 3 R(4) 4 2 91719 COM GDOUT Dummy 1 R(4) 4 2 0 ARG,INOUT 90,103,114,128 GDTLAT Scalar 4 R(4) 4 2 91719 COM GDTLON Scalar 4 R(4) 4 2 91719 COM HTLAT Scalar 5 R(4) 4 2 91719 COM HTLON Scalar 5 R(4) 4 2 91719 COM I Local 89 I(4) 4 scalar 89,90,97,99,100,101,102,103,104,10 5,106,107,112,113,114 IBESSL Scalar 2 I(4) 4 scalar COM IBMAP Scalar 3 I(4) 4 2 91719 COM 99 IDIM1 Param 14 I(4) 4 scalar IDIM2 Param 14 I(4) 4 scalar IEGRD Scalar 10 I(4) 4 2 91719 COM 101 Page 4 Source Listing INTERP3 2014-12-17 20:48 Symbol Table INTERP3.f Name Object Declared Type Bytes Dimen Elements Attributes References IEGRDK Scalar 6 I(4) 4 2 91719 COM IFLAG Scalar 2 I(4) 4 scalar COM IGSTL Param 9 I(4) 4 scalar 14 IGSTR Param 9 I(4) 4 scalar 14 IM Param 3 I(4) 4 scalar 3,5,6,7,11,14,57 IMOT Dummy 1 I(4) 4 scalar ARG,INOUT 62,89,97,112,128 IMT Param 57 I(4) 4 scalar 7,8,62 IMX Param 3 I(4) 4 scalar 3,4,9,10,11,12 INPES Param 6 I(4) 4 scalar 11,14 INTERP3 Subr 1 IOFFS Scalar 2 I(4) 4 scalar COM IOUNIT Common 4 20 ITAIL Param 11 I(4) 4 scalar IWGT Scalar 11 I(4) 4 2 91719 COM 99,100,113 J Local 88 I(4) 4 scalar 88,90,96,99,100,101,102,103,104,10 5,106,107,111,113,114 JDIM1 Param 15 I(4) 4 scalar JDIM2 Param 15 I(4) 4 scalar JEGRD Scalar 10 I(4) 4 2 91719 COM 102 JEGRDK Scalar 6 I(4) 4 2 91719 COM JGSTL Param 10 I(4) 4 scalar 15 JGSTR Param 10 I(4) 4 scalar 15 JM Param 3 I(4) 4 scalar 3,5,6,7,12,15,57 JMOT Dummy 1 I(4) 4 scalar ARG,INOUT 62,88,96,111,128 JMT Param 57 I(4) 4 scalar 7,8,62 JMX Param 3 I(4) 4 scalar 3,4,9,10,11,12 JNPES Param 6 I(4) 4 scalar 12,15 JTAIL Param 12 I(4) 4 scalar KSB Scalar 2 I(4) 4 scalar COM LCNTRL Scalar 5 I(4) 4 scalar COM LLGRDS Common 2 9167256 LM Param 3 I(4) 4 scalar 3 LSM Param 3 I(4) 4 scalar LUNCO Scalar 5 I(4) 4 scalar COM LUNLL Scalar 5 I(4) 4 scalar COM LUNOUT Scalar 5 I(4) 4 scalar COM M Local 101 I(4) 4 scalar 101,104,105,106,107 MXFLD Param 3 I(4) 4 scalar MXLVL Param 3 I(4) 4 scalar MXPASS Local 74 I(4) 4 scalar 74 N Local 102 I(4) 4 scalar 102,104,105,106,107 NPTS Local 85 I(4) 4 scalar 85,115,120,124 OPTIONS Common 2 24 SATDEL Scalar 2 R(4) 4 scalar COM SMALL Local 74 R(4) 4 scalar 74 SPVAL Scalar 2 R(4) 4 scalar COM SPVC Local 74 R(4) 4 scalar 74,90,128 STDOUT Scalar 2 I(4) 4 scalar COM 121 SUM Local 63 R(8) 8 scalar 84,114,124 VTLAT Scalar 7 R(4) 4 2 91719 COM VTLON Scalar 7 R(4) 4 2 91719 COM WIJ Scalar 11 R(4) 4 2 91719 COM 104 WIJP Scalar 12 R(4) 4 2 91719 COM 106 WIPJ Scalar 11 R(4) 4 2 91719 COM 105 WIPJP Scalar 12 R(4) 4 2 91719 COM 107 Page 5 Source Listing INTERP3 2014-12-17 20:48 Subprograms/Common Blocks INTERP3.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References BITMAP Common 2 366876 INTERP3 Subr 1 IOUNIT Common 4 20 LLGRDS Common 2 9167256 OPTIONS Common 2 24 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 Page 6 Source Listing INTERP3 2014-12-17 20:48 INTERP3.f -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 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 : INTERP3.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100