Page 1 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 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 allocate(cmc(idim,jdim,memcm,nvar)) 47 allocate(mrfmean(idim,jdim,nvar)) 48 allocate(ecmmean(idim,jdim,nvar)) 49 allocate(cmcmean(idim,jdim,nvar)) 50 allocate(commean(idim,jdim,nvar)) 51 allocate(datas(idim,jdim,mem,nvar)) 52 53 do 133 kkk=mintint,maxtint 54 55 c *** read in MRF ensemble *** 56 if (memrf.ne.0) then 57 read(200+kkk) mrf Page 2 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 calcperts.f 58 close(200+kkk) 59 endif 60 61 do 150 imem=1,10 62 do 150 iv=1,12 63 write(26,*) mrf(3,3,imem,iv) 64 150 continue 65 66 c *** read in ECMWF ensemble *** 67 if(memec.ne.0) then 68 read(250+kkk) ecm 69 close(250+kkk) 70 endif 71 72 do 151 iimem=1,25 73 do 151 iiv=1,12 74 write(27,*) ecm(3,3,iimem,iiv) 75 151 continue 76 77 c *** read in CMC ensemble *** 78 if(memcm.ne.0) then 79 read(300+kkk) cmc 80 close(300+kkk) 81 endif 82 83 do 152 iimem=1,25 84 do 152 iiv=1,12 85 write(28,*) cmc(3,3,iimem,iiv) 86 152 continue 87 88 89 c *** ensemble mean *** 90 do 80 iv=1,nvar 91 do 85 j=1,jdim 92 do 85 i=1,idim 93 mrfmean(i,j,iv)=0.0 94 ecmmean(i,j,iv)=0.0 95 cmcmean(i,j,iv)=0.0 96 commean(i,j,iv)=0.0 97 if(memrf.ne.0)then 98 do 90 nm=1,memrf 99 mrfmean(i,j,iv)=mrfmean(i,j,iv) + 100 & mrf(i,j,nm,iv)/float(memrf) 101 90 continue 102 endif 103 104 if(memec.ne.0)then 105 do 91 nm=1,memec 106 ecmmean(i,j,iv)=ecmmean(i,j,iv) + 107 & ecm(i,j,nm,iv)/float(memec) 108 91 continue 109 endif 110 111 if(memcm.ne.0)then 112 do 92 nm=1,memcm 113 cmcmean(i,j,iv)=cmcmean(i,j,iv) + 114 & cmc(i,j,nm,iv)/float(memcm) Page 3 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 calcperts.f 115 92 continue 116 endif 117 118 commean(i,j,iv)=mrfmean(i,j,iv)*float(memrf)/float(mem) + 119 & ecmmean(i,j,iv)*float(memec)/float(mem) + 120 & cmcmean(i,j,iv)*float(memcm)/float(mem) 121 85 continue 122 80 continue 123 124 c ************************************************** 125 c *** perturbations about combined ensemble mean *** 126 c ************************************************** 127 128 if(memrf.ne.0)then 129 do 63 nm=1,memrf 130 do 64 iv=1,nvar 131 do 65 j=1,jdim 132 do 65 i=1,idim 133 datas(i,j,nm,iv)=mrf(i,j,nm,iv)-mrfmean(i,j,iv) 134 65 continue 135 64 continue 136 63 continue 137 endif 138 139 if(memec.ne.0)then 140 do 60 nm=1,memec 141 na=nm+memrf-1 142 do 61 iv=1,nvar 143 do 62 j=1,jdim 144 do 62 i=1,idim 145 datas(i,j,na,iv)=ecm(i,j,nm,iv)-ecmmean(i,j,iv) 146 62 continue 147 61 continue 148 60 continue 149 endif 150 151 if(memcm.ne.0)then 152 do 57 nm=1,memcm 153 na=nm+memrf+memec-1 154 do 58 iv=1,nvar 155 do 59 j=1,jdim 156 do 59 i=1,idim 157 datas(i,j,na,iv)=cmc(i,j,nm,iv)-cmcmean(i,j,iv) 158 59 continue 159 58 continue 160 57 continue 161 endif 162 163 c **************************************** 164 c *** Write out ensemble perturbations *** 165 c **************************************** 166 167 write(1500+kkk) datas 168 close(1500+kkk) 169 170 133 continue 171 Page 4 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 calcperts.f 172 c 20121010 rlw return==>stop for ifort 173 c return 174 stop 175 end ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 133 Label 170 53 150 Label 64 61,62 151 Label 75 72,73 152 Label 86 83,84 57 Label 160 152 58 Label 159 154 59 Label 158 155,156 60 Label 148 140 61 Label 147 142 62 Label 146 143,144 63 Label 136 129 64 Label 135 130 65 Label 134 131,132 80 Label 122 90 85 Label 121 91,92 90 Label 101 98 91 Label 108 105 92 Label 115 112 CMC Local 28 R(4) 4 4 1 ALC 46,79,85,114,157 CMCMEAN Local 31 R(4) 4 3 1 ALC 49,95,113,120,157 COMMEAN Local 32 R(4) 4 3 1 ALC 50,96,118 DATAS Local 33 R(4) 4 4 1 ALC 51,133,145,157,167 ECM Local 27 R(4) 4 4 1 ALC 45,68,74,107,145 ECMMEAN Local 30 R(4) 4 3 1 ALC 48,94,106,119,145 FLOAT Func 100 scalar 100,107,114,118,119,120 I Local 92 I(4) 4 scalar 92,93,94,95,96,99,100,106,107,113, 114,118,119,120,132,133,144,145,15 6,157 IDIM Local 41 I(4) 4 scalar 41,44,45,46,47,48,49,50,51,92,132, 144,156 IIMEM Local 72 I(4) 4 scalar 72,74,83,85 IIV Local 73 I(4) 4 scalar 73,74,84,85 IMEM Local 61 I(4) 4 scalar 61,63 IV Local 62 I(4) 4 scalar 62,63,90,93,94,95,96,99,100,106,10 7,113,114,118,119,120,130,133,142, 145,154,157 J Local 91 I(4) 4 scalar 91,93,94,95,96,99,100,106,107,113, 114,118,119,120,131,133,143,145,15 5,157 JDIM Local 41 I(4) 4 scalar 41,44,45,46,47,48,49,50,51,91,131, Page 5 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 Symbol Table calcperts.f Name Object Declared Type Bytes Dimen Elements Attributes References 143,155 KKK Local 53 I(4) 4 scalar 53,57,58,68,69,79,80,167,168 MAXTINT Local 42 I(4) 4 scalar 42,53 MEM Local 41 I(4) 4 scalar 41,51,118,119,120 MEMCM Local 41 I(4) 4 scalar 41,46,78,111,112,114,120,151,152 MEMEC Local 41 I(4) 4 scalar 41,45,67,104,105,107,119,139,140,1 53 MEMRF Local 41 I(4) 4 scalar 41,44,56,97,98,100,118,128,129,141 ,153 MINTINT Local 42 I(4) 4 scalar 42,53 MRF Local 26 R(4) 4 4 1 ALC 44,57,63,100,133 MRFMEAN Local 29 R(4) 4 3 1 ALC 47,93,99,118,133 NA Local 141 I(4) 4 scalar 141,145,153,157 NM Local 98 I(4) 4 scalar 98,100,105,107,112,114,129,133,140 ,141,145,152,153,157 NVAR Local 42 I(4) 4 scalar 42,44,45,46,47,48,49,50,51,90,130, 142,154 READ_COMBINED_PERTS Prog 1 Page 6 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 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 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 -fpe3 -fprm nearest Page 7 Source Listing READ_COMBINED_PERTS 2013-05-14 19:53 calcperts.f 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 -g0 -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/gp2/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/gp2/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/.f, /gpfs/gp2/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.6/include/.f, /usr/include/.f,/usr/include/.f -list filename : calcperts.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100