Page 1 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 calcperts.f 1 program read_combined_perts 2 3 c$$$ program documentation block 4 c program: read_combined_perts 5 c prgmmr: Yucheng Song org: emc/ncep date: 2005-12-18 6 c 7 c abstract: This program read ensemble products from 8 c ncep, ecmwf and cmc ensemble forecast and output 9 c combined perturbations 10 c 11 c program history log: 12 c 2004-12-14 song - add more members to the calculation of ensemble 13 c perturbation 14 c 2005-12-19 song - improved the documentation block 15 c 2006-12-11 song - implement more ensemble members - major overhual 16 c 2008-07-03 song - Add CMC ensemble members 17 c input argument list: 18 c 19 c output argument list: 20 c 21 c Attributes: 22 c language: f90 23 c machine: ibm RS/6000 sp 24 c 25 c$$$ 26 real,allocatable::mrf(:,:,:,:) 27 real,allocatable::ecm(:,:,:,:) 28 real,allocatable::cmc(:,:,:,:) 29 real,allocatable::mrfmean(:,:,:) 30 real,allocatable::ecmmean(:,:,:) 31 real,allocatable::cmcmean(:,:,:) 32 real,allocatable::commean(:,:,:) 33 real,allocatable::datas(:,:,:,:) 34 35 36 c mem = number of independent perturbations 37 c memrf=84 38 c memec=51 39 c memcm=42 40 41 read(5,*)idim,jdim,mem,memrf,memec,memcm, 42 & nvar,mintint,maxtint 43 44 allocate(mrf(idim,jdim,memrf,nvar)) 45 allocate(ecm(idim,jdim,memec,nvar)) 46 if(memcm.ne.0) then 47 allocate(cmc(idim,jdim,memcm,nvar)) 48 endif 49 allocate(mrfmean(idim,jdim,nvar)) 50 allocate(ecmmean(idim,jdim,nvar)) 51 allocate(cmcmean(idim,jdim,nvar)) 52 allocate(commean(idim,jdim,nvar)) 53 allocate(datas(idim,jdim,mem,nvar)) 54 55 do 133 kkk=mintint,maxtint 56 57 c *** read in MRF ensemble *** Page 2 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 calcperts.f 58 if (memrf.ne.0) then 59 read(200+kkk) mrf 60 close(200+kkk) 61 endif 62 63 do 150 imem=1,10 64 do 150 iv=1,12 65 write(26,*) mrf(3,3,imem,iv) 66 150 continue 67 68 c *** read in ECMWF ensemble *** 69 if(memec.ne.0) then 70 read(250+kkk) ecm 71 close(250+kkk) 72 endif 73 74 do 151 iimem=1,25 75 do 151 iiv=1,12 76 write(27,*) ecm(3,3,iimem,iiv) 77 151 continue 78 79 c *** read in CMC ensemble *** 80 if(memcm.ne.0) then 81 read(300+kkk) cmc 82 close(300+kkk) 83 endif 84 85 if(memcm.ne.0) then 86 do 152 iimem=1,25 87 do 152 iiv=1,12 88 write(28,*) cmc(3,3,iimem,iiv) 89 152 continue 90 endif 91 92 93 c *** ensemble mean *** 94 do 80 iv=1,nvar 95 do 85 j=1,jdim 96 do 85 i=1,idim 97 mrfmean(i,j,iv)=0.0 98 ecmmean(i,j,iv)=0.0 99 cmcmean(i,j,iv)=0.0 100 commean(i,j,iv)=0.0 101 if(memrf.ne.0)then 102 do 90 nm=1,memrf 103 mrfmean(i,j,iv)=mrfmean(i,j,iv) + 104 & mrf(i,j,nm,iv)/float(memrf) 105 90 continue 106 endif 107 108 if(memec.ne.0)then 109 do 91 nm=1,memec 110 ecmmean(i,j,iv)=ecmmean(i,j,iv) + 111 & ecm(i,j,nm,iv)/float(memec) 112 91 continue 113 endif 114 Page 3 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 calcperts.f 115 if(memcm.ne.0)then 116 do 92 nm=1,memcm 117 cmcmean(i,j,iv)=cmcmean(i,j,iv) + 118 & cmc(i,j,nm,iv)/float(memcm) 119 92 continue 120 endif 121 122 commean(i,j,iv)=mrfmean(i,j,iv)*float(memrf)/float(mem) + 123 & ecmmean(i,j,iv)*float(memec)/float(mem) + 124 & cmcmean(i,j,iv)*float(memcm)/float(mem) 125 85 continue 126 80 continue 127 128 c ************************************************** 129 c *** perturbations about combined ensemble mean *** 130 c ************************************************** 131 132 if(memrf.ne.0)then 133 do 63 nm=1,memrf 134 do 64 iv=1,nvar 135 do 65 j=1,jdim 136 do 65 i=1,idim 137 datas(i,j,nm,iv)=mrf(i,j,nm,iv)-mrfmean(i,j,iv) 138 65 continue 139 64 continue 140 63 continue 141 endif 142 143 if(memec.ne.0)then 144 do 60 nm=1,memec 145 na=nm+memrf-1 146 do 61 iv=1,nvar 147 do 62 j=1,jdim 148 do 62 i=1,idim 149 datas(i,j,na,iv)=ecm(i,j,nm,iv)-ecmmean(i,j,iv) 150 62 continue 151 61 continue 152 60 continue 153 endif 154 155 if(memcm.ne.0)then 156 do 57 nm=1,memcm 157 na=nm+memrf+memec-1 158 do 58 iv=1,nvar 159 do 59 j=1,jdim 160 do 59 i=1,idim 161 datas(i,j,na,iv)=cmc(i,j,nm,iv)-cmcmean(i,j,iv) 162 59 continue 163 58 continue 164 57 continue 165 endif 166 167 c **************************************** 168 c *** Write out ensemble perturbations *** 169 c **************************************** 170 171 write(1500+kkk) datas Page 4 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 calcperts.f 172 close(1500+kkk) 173 174 133 continue 175 176 c 20121010 rlw return==>stop for ifort 177 c return 178 stop 179 end ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 133 Label 174 55 150 Label 66 63,64 151 Label 77 74,75 152 Label 89 86,87 57 Label 164 156 58 Label 163 158 59 Label 162 159,160 60 Label 152 144 61 Label 151 146 62 Label 150 147,148 63 Label 140 133 64 Label 139 134 65 Label 138 135,136 80 Label 126 94 85 Label 125 95,96 90 Label 105 102 91 Label 112 109 92 Label 119 116 CMC Local 28 R(4) 4 4 1 ALC 47,81,88,118,161 CMCMEAN Local 31 R(4) 4 3 1 ALC 51,99,117,124,161 COMMEAN Local 32 R(4) 4 3 1 ALC 52,100,122 DATAS Local 33 R(4) 4 4 1 ALC 53,137,149,161,171 ECM Local 27 R(4) 4 4 1 ALC 45,70,76,111,149 ECMMEAN Local 30 R(4) 4 3 1 ALC 50,98,110,123,149 FLOAT Func 104 scalar 104,111,118,122,123,124 I Local 96 I(4) 4 scalar 96,97,98,99,100,103,104,110,111,11 7,118,122,123,124,136,137,148,149, 160,161 IDIM Local 41 I(4) 4 scalar 41,44,45,47,49,50,51,52,53,96,136, 148,160 IIMEM Local 74 I(4) 4 scalar 74,76,86,88 IIV Local 75 I(4) 4 scalar 75,76,87,88 IMEM Local 63 I(4) 4 scalar 63,65 IV Local 64 I(4) 4 scalar 64,65,94,97,98,99,100,103,104,110, 111,117,118,122,123,124,134,137,14 6,149,158,161 Page 5 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 Symbol Table calcperts.f Name Object Declared Type Bytes Dimen Elements Attributes References J Local 95 I(4) 4 scalar 95,97,98,99,100,103,104,110,111,11 7,118,122,123,124,135,137,147,149, 159,161 JDIM Local 41 I(4) 4 scalar 41,44,45,47,49,50,51,52,53,95,135, 147,159 KKK Local 55 I(4) 4 scalar 55,59,60,70,71,81,82,171,172 MAXTINT Local 42 I(4) 4 scalar 42,55 MEM Local 41 I(4) 4 scalar 41,53,122,123,124 MEMCM Local 41 I(4) 4 scalar 41,46,47,80,85,115,116,118,124,155 ,156 MEMEC Local 41 I(4) 4 scalar 41,45,69,108,109,111,123,143,144,1 57 MEMRF Local 41 I(4) 4 scalar 41,44,58,101,102,104,122,132,133,1 45,157 MINTINT Local 42 I(4) 4 scalar 42,55 MRF Local 26 R(4) 4 4 1 ALC 44,59,65,104,137 MRFMEAN Local 29 R(4) 4 3 1 ALC 49,97,103,122,137 NA Local 145 I(4) 4 scalar 145,149,157,161 NM Local 102 I(4) 4 scalar 102,104,109,111,116,118,133,137,14 4,145,149,156,157,161 NVAR Local 42 I(4) 4 scalar 42,44,45,47,49,50,51,52,53,94,134, 146,158 READ_COMBINED_PERTS Prog 1 Page 6 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 Subprograms/Common Blocks calcperts.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References READ_COMBINED_PERTS Prog 1 COMPILER OPTIONS BEING USED -align noall -align nonone -align nocommons -align nodcommons -align noqcommons -align nozcommons -align records -align sequence -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__ -D __INTEL_COMPILER_BUILD_DATE=20200925 -D __INTEL_OFFLOAD Page 7 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 calcperts.f -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__ -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 -ftz -fp_model precise -fp_model nofast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -fp_modbits nofp_contract -fp_modbits nono_fp_contract -fp_modbits nofenv_access -fp_modbits nono_fenv_access -fp_modbits nocx_limited_range -fp_modbits nono_cx_limited_range -fp_modbits noprec_div -fp_modbits no_prec_div -fp_modbits noprec_sqrt -fp_modbits no_prec_sqrt -fp_modbits ftz -fp_modbits nono_ftz -fp_modbits nointrin_limited_range -fp_modbits nono_intrin_limited_range -fp_modbits notrunc_compares -fp_modbits nono_trunc_compares -fp_modbits noieee_nan_compares -fp_modbits nono_ieee_nan_compares -fp_modbits nohonor_f32_conversion -fp_modbits nono_honor_f32_conversion -fp_modbits nohonor_f64_conversion -fp_modbits nono_honor_f64_conversion -fp_modbits nono_x87_copy -fp_modbits nono_no_x87_copy -fp_modbits noexception_semantics -fp_modbits nono_exception_semantics -fp_modbits noprecise_libm_functions -fp_modbits no_precise_libm_functions -heap_arrays 0 no -threadprivate_compat -g0 -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 -O3 no -pad_source -real_size 32 no -recursive -reentrancy threaded -vec=simd -show nofullpath -show noinclude Page 8 Source Listing READ_COMBINED_PERTS 2022-05-02 15:46 calcperts.f -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 -includepath : /pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/icc/, /usr/include/,./,/opt/cray/pe/mpich/8.1.9/ofi/intel/19.0/include/,/opt/cray/pe/libsci/21.08.1.2/INTEL/19.0/x86_64/include/, /pe/intel/compilers_and_libraries_2020.4.304/linux/ipp/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/, /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/stdlib/, /pe/intel/compilers_and_libraries_2020.4.304/linux/tbb/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/intel64/, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/icc/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/, /usr/lib64/gcc/x86_64-suse-linux/7/include/,/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/,/usr/include/, /usr/include/,/usr/include/ -list filename : calcperts.lst no -o COMPILER: Intel(R) Fortran 19.1-1655