My Project
Public Member Functions | List of all members
mod_spherical::arcx_back Interface Reference

Public Member Functions

subroutine arcx_back_flt (XX1, YY1, XX2, YY2, ARCX1)
 
subroutine arcx_back_dbl (XX1, YY1, XX2, YY2, ARCX1)
 

Detailed Description

Definition at line 83 of file mod_spherical.f90.

Member Function/Subroutine Documentation

◆ arcx_back_dbl()

subroutine mod_spherical::arcx_back::arcx_back_dbl ( real(dp), intent(in)  XX1,
real(dp), intent(in)  YY1,
real(dp), intent(in)  XX2,
real(dp), intent(in)  YY2,
real(dp), intent(out)  ARCX1 
)

Definition at line 319 of file mod_spherical.f90.

319  IMPLICIT NONE
320  REAL(DP), INTENT(IN) :: XX1,YY1,XX2,YY2
321  REAL(DP), INTENT(OUT) :: ARCX1
322 
323  INTEGER I
324  INTEGER,PARAMETER ::NX=500
325  REAL(DP) :: X1,Y1,X2,Y2,TY,A1,A2,B1,B2,C1,C2,A,B,C,X(NX+1),Y(NX+1)
326  REAL(DP) :: XTMP
327 
328  IF(xx1 == xx2)THEN
329  arcx1=0.
330  ELSE
331  x1=xx1*deg2rad
332  y1=yy1*deg2rad
333 
334  x2=xx2*deg2rad
335  y2=yy2*deg2rad
336 
337  x(1)=x1
338  y(1)=y1
339  x(nx+1)=x2
340  y(nx+1)=y2
341 
342  xtmp=x(nx+1)-x(1)
343  IF(xtmp > pi)THEN
344  xtmp = real(-2*pi,dp)+xtmp
345  ELSE IF(xtmp < -pi)THEN
346  xtmp = real(2*pi,dp)+xtmp
347  END IF
348 
349  DO i=2,nx
350  x(i)=x(i-1)+xtmp/float(nx)
351  ! x(i)=x(i-1)+(x(nx+1)-x(1))/float(nx)
352  END DO
353 
354  a1=dcos(y(1))*dcos(x(1))
355  a2=dcos(y(nx+1))*dcos(x(nx+1))
356 
357  b1=dcos(y(1))*dsin(x(1))
358  b2=dcos(y(nx+1))*dsin(x(nx+1))
359 
360  c1=dsin(y(1))
361  c2=dsin(y(nx+1))
362 
363  a=a1*b2-a2*b1
364  b=b1*c2-b2*c1
365  c=a2*c1-a1*c2
366 
367  DO i=2,nx
368  y(i)=-b*dcos(x(i))-c*dsin(x(i))
369  y(i)=y(i)/a
370  y(i)=datan(y(i))
371  END DO
372 
373  arcx1=0.
374  DO i=1,nx
375  ty=0.5*(y(i)+y(i+1))
376  xtmp=x(i+1)-x(i)
377  IF(xtmp > pi)THEN
378  xtmp = real(-2*pi,dp)+xtmp
379  ELSE IF(xtmp < -pi)THEN
380  xtmp = real(2*pi,dp)+xtmp
381  END IF
382  arcx1=arcx1+rearth*dcos(ty)*xtmp
383  ! arcx1=arcx1+rearth*cos(ty)*(x(i+1)-x(i))
384  END DO
385  END IF
386 
387  RETURN
real(dp), parameter rearth
Definition: mod_main.f90:884
real(dp), parameter pi
Definition: mod_main.f90:880
integer, parameter dp
Definition: mod_prec.f90:52
real(dp), parameter deg2rad
Definition: mod_main.f90:885

◆ arcx_back_flt()

subroutine mod_spherical::arcx_back::arcx_back_flt ( real(spa), intent(in)  XX1,
real(spa), intent(in)  YY1,
real(spa), intent(in)  XX2,
real(spa), intent(in)  YY2,
real(spa), intent(out)  ARCX1 
)

Definition at line 391 of file mod_spherical.f90.

391  IMPLICIT NONE
392  REAL(SPA), INTENT(IN) :: XX1,YY1,XX2,YY2
393  REAL(SPA), INTENT(OUT)::ARCX1
394 
395  REAL(DP) ::ARCX_DP
396 
397  CALL arcx_back_dbl(dble(xx1),dble(yy1),dble(xx2),dble(yy2),arcx_dp)
398  arcx1 = arcx_dp
399 
subroutine arcx_back_dbl(XX1, YY1, XX2, YY2, ARCX1)

The documentation for this interface was generated from the following file: