Page 1 Source Listing CALC_ENSEMBLE_SPREAD 2013-05-14 19:53 calcspread.f 1 program calc_ensemble_spread 2 c 3 c read in ensemble perturbation and calculate the spread 4 c programmer: Yucheng Song 5 6 real,allocatable::datas(:,:,:,:) 7 real,allocatable::var(:,:,:) 8 real,allocatable::varuv(:,:) 9 real,allocatable::varuvt(:,:) 10 real,allocatable::varsfc(:,:) 11 12 real uvsq,uv850sq,prcpsq,mslpsq,z500sq 13 real uvsd,uv850sd,prcpsd,mslpsd,z500sd 14 15 read(5,*)idim,jdim,mem,memrf,memec,memcm,nv,mintint,maxtint 16 17 allocate(datas(idim,jdim,mem,nv)) 18 allocate(var(idim,jdim,nv)) 19 allocate(varuv(idim,jdim)) 20 allocate(varuvt(idim,jdim)) 21 allocate(varsfc(idim,jdim)) 22 23 do 133 kkk=mintint,maxtint 24 25 read(1500+kkk) datas 26 close(1500+kkk) 27 28 do 10 iv=1,nv 29 do 10 i=1,idim 30 do 10 j=1,jdim 31 var(i,j,iv)=0.0 32 do 20 nm=1,mem 33 var(i,j,iv)=var(i,j,iv)+datas(i,j,nm,iv)**2 34 20 continue 35 var(i,j,iv)=var(i,j,iv)/float(mem) 36 10 continue 37 38 do 15 i=1,idim 39 do 15 j=1,jdim 40 uvsq = uvsq + var(i,j,1) + var(i,j,2) + 41 & var(i,j,3) + var(i,j,4) + 42 & var(i,j,5) + var(i,j,6) 43 uv850sq = uv850sq + var(i,j,1) + var(i,j,2) 44 prcpsq = prcpsq + var(i,j,10) 45 mslpsq = mslpsq + var(i,j,11) 46 z500sq = z500sq + var(i,j,12) 47 15 continue 48 49 uvsd = sqrt(uvsq/float(6*idim*jdim*mem)) 50 uv850sd = sqrt(uv850sq/float(2*idim*jdim*mem)) 51 prcpsd = sqrt(prcpsq/float(idim*jdim*mem)) 52 mslpsd = sqrt(mslpsq/float(idim*jdim*mem)) 53 z500sd = sqrt(z500sq/float(idim*jdim*mem)) 54 55 do 603 i=1,idim,2 56 do 603 j=1,jdim,2 57 Page 2 Source Listing CALC_ENSEMBLE_SPREAD 2013-05-14 19:53 calcspread.f 58 c *** Spread of horizontal wind cpts averaged over 3 levels *** 59 varuv(i,j)=var(i,j,1)+var(i,j,2)+var(i,j,3)+ 60 & var(i,j,4)+var(i,j,5)+var(i,j,6) 61 write(1600+kkk,666) i,j,sqrt(varuv(i,j)/3.0) 62 63 c *** Spread of kinetic energy averaged over 3 levels *** 64 varuvt(i,j)=0.5*( var(i,j,1)+var(i,j,2)+var(i,j,3)+ 65 & var(i,j,4)+var(i,j,5)+var(i,j,6) ) + 66 & 3.346*( var(i,j,7)+var(i,j,8)+var(i,j,9) ) 67 write(1620+kkk,666) i,j,sqrt(varuvt(i,j)/3.0) 68 69 c *** Spread of surface variables *** 70 varsfc(i,j)=(var(i,j,1)+var(i,j,2))/(uv850sd**2) + 71 & var(i,j,10)/(prcpsd**2)+var(i,j,12)/(mslpsd**2) 72 write(1640+kkk,666) i,j,sqrt(varsfc(i,j)) 73 74 603 continue 75 76 133 continue 77 78 666 format(2i5,f8.3) 79 80 c 20121011 rlw return ==> stop for ifort 81 c return 82 stop 83 end ENTRY POINTS Name MAIN__ Page 3 Source Listing CALC_ENSEMBLE_SPREAD 2013-05-14 19:53 Symbol Table calcspread.f SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 10 Label 36 28,29,30 133 Label 76 23 15 Label 47 38,39 20 Label 34 32 603 Label 74 55,56 666 Label 78 61,67,72 CALC_ENSEMBLE_SPREAD Prog 1 DATAS Local 6 R(4) 4 4 1 ALC 17,25,33 FLOAT Func 35 scalar 35,49,50,51,52,53 I Local 29 I(4) 4 scalar 29,31,33,35,38,40,41,42,43,44,45,4 6,55,59,60,61,64,65,66,67,70,71,72 IDIM Local 15 I(4) 4 scalar 15,17,18,19,20,21,29,38,49,50,51,5 2,53,55 IV Local 28 I(4) 4 scalar 28,31,33,35 J Local 30 I(4) 4 scalar 30,31,33,35,39,40,41,42,43,44,45,4 6,56,59,60,61,64,65,66,67,70,71,72 JDIM Local 15 I(4) 4 scalar 15,17,18,19,20,21,30,39,49,50,51,5 2,53,56 KKK Local 23 I(4) 4 scalar 23,25,26,61,67,72 MAXTINT Local 15 I(4) 4 scalar 15,23 MEM Local 15 I(4) 4 scalar 15,17,32,35,49,50,51,52,53 MEMCM Local 15 I(4) 4 scalar 15 MEMEC Local 15 I(4) 4 scalar 15 MEMRF Local 15 I(4) 4 scalar 15 MINTINT Local 15 I(4) 4 scalar 15,23 MSLPSD Local 13 R(4) 4 scalar 52,71 MSLPSQ Local 12 R(4) 4 scalar 45,52 NM Local 32 I(4) 4 scalar 32,33 NV Local 15 I(4) 4 scalar 15,17,18,28 PRCPSD Local 13 R(4) 4 scalar 51,71 PRCPSQ Local 12 R(4) 4 scalar 44,51 SQRT Func 49 scalar 49,50,51,52,53,61,67,72 UV850SD Local 13 R(4) 4 scalar 50,70 UV850SQ Local 12 R(4) 4 scalar 43,50 UVSD Local 13 R(4) 4 scalar 49 UVSQ Local 12 R(4) 4 scalar 40,49 VAR Local 7 R(4) 4 3 1 ALC 18,31,33,35,40,41,42,43,44,45,46,5 9,60,64,65,66,70,71 VARSFC Local 10 R(4) 4 2 1 ALC 21,70,72 VARUV Local 8 R(4) 4 2 1 ALC 19,59,61 VARUVT Local 9 R(4) 4 2 1 ALC 20,64,67 Z500SD Local 13 R(4) 4 scalar 53 Z500SQ Local 12 R(4) 4 scalar 46,53 Page 4 Source Listing CALC_ENSEMBLE_SPREAD 2013-05-14 19:53 Subprograms/Common Blocks calcspread.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References CALC_ENSEMBLE_SPREAD 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 5 Source Listing CALC_ENSEMBLE_SPREAD 2013-05-14 19:53 calcspread.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 -O3 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 : calcspread.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100