Page 1 Source Listing CIRCLEVR 2022-05-02 15:46 circlevr.f 1 2 program circlevr 3 4 open (105,form='formatted') 5 read (105,*) vrlons,vrlats,rad 6 c vrlons=282.5 7 c vrlats=35.0 8 c rad=750.0 9 call circle(vrlons,vrlats,rad) 10 end ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CIRCLE Subr 9 9 CIRCLEVR Prog 2 RAD Local 5 R(4) 4 scalar 5,9 VRLATS Local 5 R(4) 4 scalar 5,9 VRLONS Local 5 R(4) 4 scalar 5,9 Page 2 Source Listing CIRCLEVR 2022-05-02 15:46 circlevr.f 11 12 subroutine circle(vrlons,vrlats,rad) 13 implicit double precision(a-h,o-q,w-z) 14 parameter(georad=6367.) 15 parameter(idim=100) 16 dimension thc(0:idim),xc(0:idim),yc(0:idim) 17 dimension psip(0:idim) 18 dimension totlon(0:idim),totlat(0:idim) 19 real rlon1,rlon2,rlat1,rlat2 20 integer vrind 21 real*4 vrx1,vrx2,vry1,vry2 22 23 c open (8,file='circle.out',form='unformatted') 24 c open (10,file='circle.in',form='unformatted') 25 26 vrind=1 27 28 if (vrind .eq. 1) then 29 30 pi=acos(-1.0) 31 vrlat=90.-vrlats 32 vrlat=vrlat*(pi/180.0) 33 c xp and zp are the coordinates of the pole relative to a coordinate 34 c system with z-axis going through center of disk. The x-axis of 35 c this system goes through the pole. 36 zp=cos(vrlat) 37 xp=sin(vrlat) 38 ac=rad/georad 39 zc=cos(ac) 40 c write(6,*) 'vrlat,zp.xp,ac,pi,zc' 41 c write(6,*) vrlat,zp,xp,ac,pi,zc 42 c write(6,*) 'thc(i),xc(i),psip(i),totlon(i),totlat(i)' 43 44 do i=0,idim 45 thc(i)=i*((2.*pi)/idim) 46 xc(i)=sin(ac)*cos(thc(i)) 47 yc(i)=sin(ac)*sin(thc(i)) 48 psip(i)=acos((xc(i)*xp+zc*zp)) 49 c Find component of vectors defining circle which is parallel to pole vector. 50 c Magnitude of component is cos(psip(i)). 51 c Direction of pole vector is (xp,zp). Hence desired component is 52 c (pcx,pcz) where, 53 pcx=cos(psip(i))*xp 54 pcz=cos(psip(i))*zp 55 c Subtract these components from vectors defining circle to 56 c find component of vectors defining circle which lie on equatorial plane 57 ecz=zc-pcz 58 ecx=xc(i)-pcx 59 ecy=yc(i) 60 c find magnitude of these vectors 61 rmag=sqrt((ecx**2+ecy**2+ecz**2)) 62 c normalise magnitude of the vectors 63 eczn=ecz/rmag 64 ecxn=ecx/rmag 65 ecyn=ecy/rmag 66 c sign of relative longitude is opposite of sin(thc) 67 if(sin(thc(i)).gt.0.0)then Page 3 Source Listing CIRCLE 2022-05-02 15:46 circlevr.f 68 sign=-1 69 else 70 sign=1 71 end if 72 c Deduce the relative longitude of the vectors defining the circle 73 c relative to a unit vector 74 c which lies on the equatorial plane and is parallel to 75 c the equatorial projection of the vector defining the center 76 c of the verification region. This vector is 77 c given by (xe,ze)=(-cos(vrlat),sin(vrlat))=(-zp,xp), hence the 78 c cosine of the angle between this vector and the equatorial projection 79 c of the vectors defining the circle is given by 80 tst2=(eczn*xp-ecxn*zp) 81 c Yucheng Song added two lines to prevent the NaNQ 82 if(tst2.gt.1.0)tst2=1.0 83 if(tst2.lt.-1.0)tst2=-1.0 84 rellon=acos(tst2) 85 rellon=rellon*(180.0/pi) 86 totlon(i)=vrlons+sign*rellon 87 totlon(i)=totlon(i) 88 totlat(i)=90.-psip(i)*(180.0/pi) 89 c write(6,*) thc(i),xc(i),psip(i),totlon(i),totlat(i) 90 c if (totlon(i) .ge. 180.0) totlon(i)=totlon(i)-360.0 91 c write(6,*) totlon(i),totlat(i) 92 c RLW 20130507 modify format to match CCS output 93 write(6,'(F12.7,F12.8)') totlon(i),totlat(i) 94 c write(63,*) vrlons,rellon,sign,totlon(i),totlat(i) 95 end do 96 npoint=idim+1 97 c call setusv('LW',4000) 98 c call curve(totlon,totlat,npoint) 99 c call setusv('LW',1000) 100 101 endif 102 103 if (vrind .eq. 2) then 104 rlon1=vrx1 105 rlon2=vrx2 106 rlat1=vry1 107 rlat2=vry2 108 c call quad(rlon1,rlon2,rlat1,rlat2) 109 endif 110 111 return 112 end Page 4 Source Listing CIRCLE 2022-05-02 15:46 Entry Points circlevr.f ENTRY POINTS Name circle_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References AC Local 38 R(8) 8 scalar 38,39,46,47 ACOS Func 30 scalar 30,48,84 CIRCLE Subr 12 COS Func 36 scalar 36,39,46,53,54 ECX Local 58 R(8) 8 scalar 58,61,64 ECXN Local 64 R(8) 8 scalar 64,80 ECY Local 59 R(8) 8 scalar 59,61,65 ECYN Local 65 R(8) 8 scalar 65 ECZ Local 57 R(8) 8 scalar 57,61,63 ECZN Local 63 R(8) 8 scalar 63,80 GEORAD Param 14 R(8) 8 scalar 38 I Local 44 I(4) 4 scalar 44,45,46,47,48,53,54,58,59,67,86,8 7,88,93 IDIM Param 15 I(4) 4 scalar 16,17,18,44,45,96 NPOINT Local 96 I(4) 4 scalar 96 PCX Local 53 R(8) 8 scalar 53,58 PCZ Local 54 R(8) 8 scalar 54,57 PI Local 30 R(8) 8 scalar 30,32,45,85,88 PSIP Local 17 R(8) 8 1 101 48,53,54,88 RAD Dummy 12 R(4) 4 scalar ARG,INOUT 38 RELLON Local 84 R(4) 4 scalar 84,85,86 RLAT1 Local 19 R(4) 4 scalar 106 RLAT2 Local 19 R(4) 4 scalar 107 RLON1 Local 19 R(4) 4 scalar 104 RLON2 Local 19 R(4) 4 scalar 105 RMAG Local 61 R(4) 4 scalar 61,63,64,65 SIGN Local 68 R(4) 4 scalar 68,70,86 SIN Func 37 scalar 37,46,47,67 SQRT Func 61 scalar 61 THC Local 16 R(4) 4 1 101 45,46,47,67 TOTLAT Local 18 R(4) 4 1 101 88,93 TOTLON Local 18 R(4) 4 1 101 86,87,93 TST2 Local 80 R(4) 4 scalar 80,82,83,84 VRIND Local 20 I(4) 4 scalar 26,28,103 VRLAT Local 31 R(4) 4 scalar 31,32,36,37 VRLATS Dummy 12 R(4) 4 scalar ARG,INOUT 31 VRLONS Dummy 12 R(4) 4 scalar ARG,INOUT 86 VRX1 Local 21 R(4) 4 scalar 104 VRX2 Local 21 R(4) 4 scalar 105 VRY1 Local 21 R(4) 4 scalar 106 VRY2 Local 21 R(4) 4 scalar 107 XC Local 16 R(8) 8 1 101 46,48,58 XP Local 37 R(8) 8 scalar 37,48,53,80 YC Local 16 R(8) 8 1 101 47,59 Page 5 Source Listing CIRCLE 2022-05-02 15:46 Symbol Table circlevr.f Name Object Declared Type Bytes Dimen Elements Attributes References ZC Local 39 R(8) 8 scalar 39,48,57 ZP Local 36 R(8) 8 scalar 36,48,54,80 Page 6 Source Listing CIRCLE 2022-05-02 15:46 Subprograms/Common Blocks circlevr.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References CIRCLE Subr 12 CIRCLEVR Prog 2 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__ Page 7 Source Listing CIRCLE 2022-05-02 15:46 circlevr.f -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__ -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 Page 8 Source Listing CIRCLE 2022-05-02 15:46 circlevr.f -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 -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 : circlevr.lst no -o COMPILER: Intel(R) Fortran 19.1-1655