1 | SUBROUTINE function_ana(ni,nj, & |
---|
2 | coords_1,coords_2, & |
---|
3 | fnc_ana,ib) |
---|
4 | !********************************************************************************************************************* |
---|
5 | ! |
---|
6 | IMPLICIT NONE |
---|
7 | ! |
---|
8 | #ifdef NO_USE_DOUBLE_PRECISION |
---|
9 | INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(6,37) ! real |
---|
10 | #elif defined USE_DOUBLE_PRECISION |
---|
11 | INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(12,307) ! double |
---|
12 | #endif |
---|
13 | ! |
---|
14 | ! Constants |
---|
15 | ! |
---|
16 | REAL (kind=wp), PARAMETER :: coef = 2. |
---|
17 | ! |
---|
18 | REAL (kind=wp), PARAMETER :: dp_pi=3.14159265359 |
---|
19 | REAL (kind=wp), PARAMETER :: dp_length= 1.2*dp_pi |
---|
20 | REAL (kind=wp), PARAMETER :: dp_conv = dp_pi/180. |
---|
21 | ! |
---|
22 | INTEGER, INTENT(in) :: ni,nj,ib |
---|
23 | ! |
---|
24 | INTEGER :: i,j |
---|
25 | ! |
---|
26 | REAL (kind=wp), INTENT(out) :: fnc_ana(ni,nj) |
---|
27 | ! |
---|
28 | REAL (kind=wp) :: coords_1(ni,nj) |
---|
29 | REAL (kind=wp) :: coords_2(ni,nj) |
---|
30 | ! |
---|
31 | ! |
---|
32 | DO j=1,nj |
---|
33 | DO i=1,ni |
---|
34 | fnc_ana(i,j) = ib*(coef - COS(dp_pi*(ACOS(COS(coords_2(i,j)* dp_conv)* & |
---|
35 | COS(coords_1(i,j)* dp_conv))/dp_length))) |
---|
36 | ENDDO |
---|
37 | ENDDO |
---|
38 | ! |
---|
39 | ! |
---|
40 | END SUBROUTINE function_ana |
---|
41 | ! |
---|