1 |
guez |
123 |
program test_inter_barxy |
2 |
|
|
|
3 |
|
|
use comconst, only: dtvr, daysec, iniconst |
4 |
|
|
use comgeom, only: rlonu, rlatv, inigeom |
5 |
|
|
use conf_gcm_m, only: conf_gcm, day_step |
6 |
|
|
use dimens_m, only: iim, jjm |
7 |
|
|
use disvert_m, only: pa |
8 |
|
|
use inter_barxy_m, only: inter_barxy |
9 |
|
|
USE nr_util, ONLY : pi |
10 |
|
|
|
11 |
|
|
implicit none |
12 |
|
|
|
13 |
|
|
integer:: iml_dyn = 3, jml_dyn = 6 |
14 |
|
|
real, allocatable:: lon_rad(:), lon_ini(:) |
15 |
|
|
real, allocatable:: lat_rad(:), lat_ini(:) |
16 |
|
|
integer i |
17 |
|
|
real, allocatable:: var_ana3d(:, :) |
18 |
|
|
REAL var_tmp2d(iim, jjm + 1) |
19 |
|
|
|
20 |
|
|
namelist /main/iml_dyn, jml_dyn |
21 |
|
|
|
22 |
|
|
!------------------------ |
23 |
|
|
|
24 |
|
|
print *, "Enter namelist 'main'." |
25 |
|
|
read (unit=*, nml=main) |
26 |
|
|
write(unit=*, nml=main) |
27 |
|
|
|
28 |
|
|
allocate(lon_rad(iml_dyn), lon_ini(iml_dyn)) |
29 |
|
|
allocate(lat_rad(jml_dyn-1), lat_ini(jml_dyn)) |
30 |
|
|
allocate(var_ana3d(iml_dyn, jml_dyn)) |
31 |
|
|
|
32 |
|
|
CALL conf_gcm |
33 |
|
|
dtvr = daysec / real(day_step) |
34 |
|
|
print *, 'dtvr = ', dtvr |
35 |
|
|
pa = 5e4 |
36 |
|
|
CALL iniconst |
37 |
|
|
CALL inigeom |
38 |
|
|
|
39 |
|
|
lon_ini = - pi + 2 * pi / iml_dyn * (/(i, i = 0, iml_dyn - 1)/) |
40 |
|
|
|
41 |
|
|
forall (i = 1: iml_dyn - 1) lon_rad(i) = (lon_ini(i) + lon_ini(i + 1)) / 2 |
42 |
|
|
lon_rad(iml_dyn) = (lon_ini(iml_dyn) + pi) / 2 |
43 |
|
|
|
44 |
|
|
lat_ini = pi / 2 - pi / (jml_dyn - 1) * (/(i, i = 0, jml_dyn - 1)/) |
45 |
|
|
forall (i = 1: jml_dyn - 1) lat_rad(i) = (lat_ini(i) + lat_ini(i + 1)) / 2 |
46 |
|
|
|
47 |
|
|
!!forall (i = 1: jml_dyn) var_ana3d(:, i) = i |
48 |
|
|
forall (i = 1: jml_dyn) var_ana3d(:, i) = 240. + real(i) / 2 |
49 |
|
|
|
50 |
|
|
call inter_barxy(lon_rad, lat_rad, var_ana3d, rlonu(:iim), rlatv, var_tmp2d) |
51 |
|
|
|
52 |
|
|
!!print *, "lon_rad * 180. / pi = ", lon_rad * 180. / pi |
53 |
|
|
print *, "lat_rad * 180. / pi = ", lat_rad * 180. / pi |
54 |
|
|
!!print *, "var_tmp2d = ", var_tmp2d |
55 |
|
|
|
56 |
|
|
print *, "minval(var_tmp2d, dim=1) = ", minval(var_tmp2d, dim=1) |
57 |
|
|
print *, "maxval(var_tmp2d, dim=1) = ", maxval(var_tmp2d, dim=1) |
58 |
|
|
|
59 |
|
|
end program test_inter_barxy |