Page 1 Source Listing P2FILT 2025-03-12 18:23 P2FILT.f 1 SUBROUTINE P2FILT(MKOUNT,HBM2,FIELD) 2 CFPP$ NOCONCUR R 3 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 4 C . . . 5 C SUBPROGRAM: P2FILT 4-TH ORDER SMOOTHER FOR MASS PTS 6 C PRGRMMR: TREADON ORG: W/NP2 DATE: 93-03-02 7 C 8 C ABSTRACT: 9 C THIS ROUTINE WILL APPLY A FOURTH OTHER FILTER (SMOOTHER) 10 C OF A CONTINOUS FIELD AT MASS POINTS ON THE STAGGERED 11 C E-GRID. MULTIPLE APPLICATIONS OF THIS FILTER MAY BE 12 C MADE. 13 C 14 C IN THIS VERSION, EACH MPI TASK WORKS ON ITS OWN DATA. 15 C . 16 C 17 C PROGRAM HISTORY LOG: 18 C ??-??-?? ??? - SUBROUTINE P2FILT IN ETA MODEL. 19 C 93-03-02 RUSS TREADON - ADDED DOCBLOC 20 C 98-06-04 BLACK - CONVERSION TO 2-D 21 C 00-01-04 JIM TUCCILLO - MPI VERSION 22 C 23 C USAGE: CALL P2FILT(MKOUNT,HBM2,FIELD) 24 C INPUT ARGUMENT LIST: 25 C MKOUNT - NUMBER OF APPLICATIONS OF THE SMOOTHER. 26 C HBM2 - MASS POINT BOUNDARY MASK. 27 C FIELD - MASS POINT FIELD TO BE SMOOTHED. 28 C 29 C OUTPUT ARGUMENT LIST: 30 C FIELD - SMOOTHED MASS POINT FIELD. 31 C 32 C OUTPUT FILES: 33 C NONE 34 C 35 C SUBPROGRAMS CALLED: 36 C UTILITIES: 37 C NONE 38 C LIBRARY: 39 C NONE 40 C 41 C ATTRIBUTES: 42 C LANGUAGE: FORTRAN 43 C MACHINE : CRAY C-90 44 C$$$ 45 C 46 C 47 C INCLUDE GLOBAL PARAMETERS. SET DEPENDENT VARIABLES. 48 C 49 C----------------------------------------------------------------------- 50 INCLUDE "parmeta" 51 C----------------------------------------------------------------------- 69 INCLUDE "INDX.comm" 75 INCLUDE "CTLBLK.comm" 76 C----------------------------------------------------------------------- 91 D I M E N S I O N 92 1 HBM2(IM,JM),FIELD(IM,JM),WFIELD(IM,JM),FNE(IM,JM),FSE(IM,JM) 93 C Page 2 Source Listing P2FILT 2025-03-12 18:23 P2FILT.f 94 C*********************************************************************** 95 C START P2FILT HERE. 96 C 97 C IF NUMBER OF PASSES IS LESS THAN 1, EXIT ROUTINE. 98 C 99 IF(MKOUNT.LT.1) RETURN 100 C 101 C OTHERWISE, APPLY SMOOTHER MKOUNT TIMES. 102 C 103 DO 400 KOUNT=1,MKOUNT 104 C 105 C FILTERING STARTS 106 C 107 !$omp parallel do 108 DO J=JSTA,JEND 109 DO I=1,IM 110 FNE (I,J)=0.0 111 FSE (I,J)=0.0 112 WFIELD(I,J)=0.0 113 ENDDO 114 ENDDO 115 C 116 C 2-ND ORDER DIAGONAL CONTRIBUTIONS 117 C 118 CALL EXCH(FIELD) 119 C 120 !$omp parallel do 121 DO J=JSTA,JEND_M 122 DO I=1,IM-1 123 FNE(I,J)=FIELD(I+IHE(J),J+1)-FIELD(I,J) 124 ENDDO 125 ENDDO 126 C 127 !$omp parallel do 128 DO J=JSTA_M,JEND 129 DO I=1,IM-1 130 FSE(I,J)=FIELD(I+IHE(J),J-1)-FIELD(I,J) 131 ENDDO 132 ENDDO 133 C 134 CALL EXCH(FNE) 135 CALL EXCH(FSE) 136 C 137 !$omp parallel do 138 DO J=JSTA_M2,JEND_M2 139 DO I=2,IM-1 140 WFIELD(I,J)=(FNE(I,J)-FNE(I+IHW(J),J-1) 141 1 +FSE(I,J)-FSE(I+IHW(J),J+1))*HBM2(I,J)*0.125 142 ENDDO 143 ENDDO 144 C 145 C 4-TH ORDER DIAGONAL CONTRIBUTIONS 146 C 147 CALL EXCH(WFIELD) 148 C 149 !$omp parallel do 150 DO J=JSTA,JEND_M Page 3 Source Listing P2FILT 2025-03-12 18:23 P2FILT.f 151 DO I=1,IM-1 152 FNE(I,J)=WFIELD(I+IHE(J),J+1)-WFIELD(I,J) 153 ENDDO 154 ENDDO 155 C 156 !$omp parallel do 157 DO J=JSTA_M,JEND 158 DO I=1,IM-1 159 FSE(I,J)=WFIELD(I+IHE(J),J-1)-WFIELD(I,J) 160 ENDDO 161 ENDDO 162 C 163 CALL EXCH(FNE) 164 CALL EXCH(FSE) 165 C 166 !$omp parallel do 167 DO J=JSTA_M2,JEND_M2 168 DO I=2,IM-1 169 FIELD(I,J)=FIELD(I,J)-(FNE(I,J)-FNE(I+IHW(J),J-1) 170 1 +FSE(I,J)-FSE(I+IHW(J),J+1)) 171 2 *HBM2(I,J)*0.125 172 ENDDO 173 ENDDO 174 C 175 400 CONTINUE 176 C 177 CALL EXCH(FIELD) 178 C 179 C END OF ROUTINE 180 RETURN 181 END Page 4 Source Listing P2FILT 2025-03-12 18:23 Entry Points P2FILT.f ENTRY POINTS Name p2filt_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 400 Label 175 103 CTLBLK Common 78 96 SAVE EXCH Subr 118 118,134,135,147,163,164,177 FIELD Dummy 1 R(4) 4 2 91719 ARG,INOUT 118,123,130,169,177 FNE Local 92 R(4) 4 2 91719 110,123,134,140,152,163,169 FSE Local 92 R(4) 4 2 91719 111,130,135,141,159,164,170 HBM2 Dummy 1 R(4) 4 2 91719 ARG,INOUT 141,171 I Local 109 I(4) 4 scalar 109,110,111,112,122,123,129,130,13 9,140,141,151,152,158,159,168,169, 170,171 IDIM1 Param 65 I(4) 4 scalar IDIM2 Param 65 I(4) 4 scalar IGSTL Param 60 I(4) 4 scalar 65 IGSTR Param 60 I(4) 4 scalar 65 IM Param 54 I(4) 4 scalar 62,65,92,109,122,129,139,151,158,1 68 INDX Common 71 6192 SAVE INPES Param 57 I(4) 4 scalar 62,65 ITAIL Param 62 I(4) 4 scalar J Local 108 I(4) 4 scalar 108,110,111,112,121,123,128,130,13 8,140,141,150,152,157,159,167,169, 170,171 JDIM1 Param 66 I(4) 4 scalar JDIM2 Param 66 I(4) 4 scalar JGSTL Param 61 I(4) 4 scalar 66 JGSTR Param 61 I(4) 4 scalar 66 JM Param 54 I(4) 4 scalar 63,66,72,92 JNPES Param 57 I(4) 4 scalar 63,66 JTAIL Param 63 I(4) 4 scalar KOUNT Local 103 I(4) 4 scalar 103 LM Param 54 I(4) 4 scalar LSM Param 54 I(4) 4 scalar MKOUNT Dummy 1 I(4) 4 scalar ARG,INOUT 99,103 P2FILT Subr 1 PARALLEL Common 85 8240 WFIELD Local 92 R(4) 4 2 91719 112,140,147,152,159 Page 5 Source Listing P2FILT 2025-03-12 18:23 Symbol Table P2FILT.f 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 IDAT I(4) 4 8 1 3 COM IDN I(4) 4 36 scalar COM IDSP I(4) 4 4136 1 1024 COM IDTAD I(4) 4 68 scalar COM IHE I(4) 4 0 1 387 COM 123,130,152,159 IHRST I(4) 4 20 scalar COM IHW I(4) 4 1548 1 387 COM 140,141,169,170 IOUT I(4) 4 44 scalar COM IUP I(4) 4 32 scalar COM IVE I(4) 4 3096 1 387 COM IVW I(4) 4 4644 1 387 COM JEND I(4) 4 12 scalar COM 108,128,157 JEND_2U I(4) 4 8236 scalar COM JEND_M I(4) 4 20 scalar COM 121,150 JEND_M2 I(4) 4 28 scalar COM 138,167 JSTA I(4) 4 8 scalar COM 108,121,150 JSTA_2L I(4) 4 8232 scalar COM JSTA_M I(4) 4 16 scalar COM 128,157 JSTA_M2 I(4) 4 24 scalar COM 138,167 LIST I(4) 4 40 scalar COM ME I(4) 4 4 scalar 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 RESTRT R(4) 4 28 scalar COM RUN R(4) 4 4 scalar COM SIGMA R(4) 4 0 scalar COM Page 6 Source Listing P2FILT 2025-03-12 18:23 Subprograms/Common Blocks P2FILT.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References CTLBLK Common 78 96 SAVE INDX Common 71 6192 SAVE P2FILT Subr 1 PARALLEL Common 85 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 7 Source Listing P2FILT 2025-03-12 18:23 P2FILT.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 8 Source Listing P2FILT 2025-03-12 18:23 P2FILT.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 : P2FILT.lst no -o COMPILER: Intel(R) Fortran 19.1-1655