/[lmdze]/trunk/libf/test_inter_barxy.f90
ViewVC logotype

Contents of /trunk/libf/test_inter_barxy.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (show annotations)
Fri Mar 5 16:43:45 2010 UTC (14 years, 2 months ago) by guez
File size: 1855 byte(s)
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions
depended on personal arrangements for directories and machines.

Translated included files into modules. Encapsulated procedures into modules.

Moved variables from module "comgeom" to local variables of
"inigeom". Deleted some unused variables in "comgeom".

Moved variable "day_ini" from module "temps" to module "dynetat0_m".

Removed useless test on variable "time" and useless "close" statement
in procedure "leapfrog".

Removed useless call to "inigeom" in procedure "limit".

1 program test_inter_barxy
2
3 use inter_barxy_m, only: inter_barxy
4 use comconst, only: pi, initialize, dtvr, daysec
5 use comgeom, only: rlonu, rlatv
6 use dimens_m, only: iim, jjm
7 use conf_gcm_m, only: conf_gcm, day_step
8 use comvert, only: pa
9 use inigeom_m, only: inigeom
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 LOGICAL:: interbar = .true. ! barycentric interpolation
21 namelist /main/iml_dyn, jml_dyn, interbar
22
23 !------------------------
24
25 print *, "Enter namelist 'main'."
26 read (unit=*, nml=main)
27 write(unit=*, nml=main)
28
29 allocate(lon_rad(iml_dyn), lon_ini(iml_dyn))
30 allocate(lat_rad(jml_dyn-1), lat_ini(jml_dyn))
31 allocate(var_ana3d(iml_dyn, jml_dyn))
32
33 call initialize
34 CALL conf_gcm
35 dtvr = daysec / real(day_step)
36 print *, 'dtvr = ', dtvr
37 pa = 5e4
38 CALL iniconst
39 CALL inigeom
40
41 lon_ini = - pi + 2 * pi / iml_dyn * (/(i, i = 0, iml_dyn - 1)/)
42
43 forall (i = 1: iml_dyn - 1) lon_rad(i) = (lon_ini(i) + lon_ini(i + 1)) / 2
44 lon_rad(iml_dyn) = (lon_ini(iml_dyn) + pi) / 2
45
46 lat_ini = pi / 2 - pi / (jml_dyn - 1) * (/(i, i = 0, jml_dyn - 1)/)
47 forall (i = 1: jml_dyn - 1) lat_rad(i) = (lat_ini(i) + lat_ini(i + 1)) / 2
48
49 !!forall (i = 1: jml_dyn) var_ana3d(:, i) = i
50 forall (i = 1: jml_dyn) var_ana3d(:, i) = 240. + real(i) / 2
51
52 call inter_barxy(lon_rad, lat_rad, var_ana3d, rlonu(:iim), rlatv, var_tmp2d)
53
54 !!print *, "lon_rad * 180. / pi = ", lon_rad * 180. / pi
55 print *, "lat_rad * 180. / pi = ", lat_rad * 180. / pi
56 !!print *, "var_tmp2d = ", var_tmp2d
57
58 print *, "minval(var_tmp2d, dim=1) = ", minval(var_tmp2d, dim=1)
59 print *, "maxval(var_tmp2d, dim=1) = ", maxval(var_tmp2d, dim=1)
60
61 end program test_inter_barxy

  ViewVC Help
Powered by ViewVC 1.1.21