source: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/oasis3-mct/examples/test_interpolation/function_ana.f90 @ 5725

Last change on this file since 5725 was 5725, checked in by aclsce, 3 years ago

Added new oasis3-MCT version to be used to handle ensembles simulations with XIOS.

File size: 1.3 KB
Line 
1SUBROUTINE function_ana(ni, nj, xcoor, ycoor, fnc_ana)
2
3!**** *function ana*  - calculate analytical function
4  !
5  IMPLICIT NONE
6  !
7  INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(12,307) ! double
8  !
9  INTEGER, INTENT(IN) :: ni, nj
10  REAL(kind=wp), DIMENSION(ni,nj), INTENT(IN)  :: xcoor, ycoor
11  REAL(kind=wp), DIMENSION(ni,nj), INTENT(OUT) :: fnc_ana
12  !
13  REAL (kind=wp), PARAMETER    :: dp_pi=3.14159265359
14  REAL (kind=wp), PARAMETER    :: dp_conv = dp_pi/180.
15  REAL(kind=wp)  :: dp_length, coef, coefmult
16  INTEGER             :: i,j
17  CHARACTER(LEN=7) :: cl_anaftype="fcos"
18  !
19  DO j=1,nj
20    DO i=1,ni
21!
22      SELECT CASE (cl_anaftype)
23      CASE ("fcos")
24        dp_length = 1.2*dp_pi
25        coef = 2.
26        coefmult = 1.
27        fnc_ana(i,j) = coefmult*(coef - COS( dp_pi*(ACOS( COS(xcoor(i,j)*dp_conv)*COS(ycoor(i,j)*dp_conv) )/dp_length)) )
28!
29      CASE ("fcossin")
30        dp_length = 1.d0*dp_pi
31        coef = 21.d0
32        coefmult = 3.846d0 * 20.d0
33        fnc_ana(i,j) = coefmult*(coef - COS( dp_pi*(ACOS( COS(ycoor(i,j)*dp_conv)*COS(ycoor(i,j)*dp_conv) )/dp_length)) * &
34                                        SIN( dp_pi*(ASIN( SIN(xcoor(i,j)*dp_conv)*SIN(ycoor(i,j)*dp_conv) )/dp_length)) )
35      END SELECT
36!
37    ENDDO
38  ENDDO
39  !
40END SUBROUTINE function_ana
Note: See TracBrowser for help on using the repository browser.