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

Annotation of /trunk/libf/test_inter_barxy.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (hide 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 guez 3 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 guez 25 use inigeom_m, only: inigeom
10 guez 3
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