/[lmdze]/trunk/dyn3d/start_init_phys_m.f
ViewVC logotype

Annotation of /trunk/dyn3d/start_init_phys_m.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 64 - (hide annotations)
Wed Aug 29 14:47:17 2012 UTC (11 years, 9 months ago) by guez
Original Path: trunk/libf/dyn3d/start_init_phys_m.f90
File size: 2600 byte(s)
Removed variable lstardis in module comdissnew and procedures gradiv
and nxgrarot. lstardir had to be true. gradiv and nxgrarot were called
if lstardis was false. Removed argument iter of procedure
filtreg. iter had to be 1. gradiv and nxgrarot called filtreg with
iter == 2.

Moved procedure flxsetup into module yoecumf. Module yoecumf is only
used in program units of directory Conflx, moved it there.

1 guez 3 MODULE start_init_phys_m
2    
3     ! From startvar.F, version 1.4
4     ! 2006/01/27 15:14:22 Fairhead
5    
6     IMPLICIT NONE
7    
8     CONTAINS
9    
10 guez 43 SUBROUTINE start_init_phys(tsol_2d, qsol_2d)
11 guez 3
12 guez 49 use comgeom, only: rlonu, rlatv
13 guez 3 use conf_dat2d_m, only: conf_dat2d
14 guez 49 use dimens_m, only: iim, jjm
15     use gr_int_dyn_m, only: gr_int_dyn
16 guez 3 use inter_barxy_m, only: inter_barxy
17 guez 48 use netcdf, only: nf90_nowrite
18 guez 49 use netcdf95, only: nf95_open, nf95_close, nf95_get_var, nf95_inq_varid, &
19 guez 64 nf95_gw_var, find_coord
20 guez 49 use nr_util, only: assert, pi
21 guez 3
22 guez 43 REAL, intent(out):: tsol_2d(:, :), qsol_2d(:, :) ! (iim + 1, jjm + 1)
23 guez 3
24 guez 42 ! Variables local to the procedure:
25 guez 3
26 guez 49 INTEGER iml_phys, jml_phys, ncid, varid
27 guez 3 REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:)
28 guez 49 REAL, pointer:: lon_ini(:), lat_ini(:) ! longitude and latitude in rad
29 guez 3 REAL, ALLOCATABLE:: var_ana(:, :)
30     real tmp_var(iim, jjm + 1)
31    
32     !-----------------------------------
33    
34     print *, "Call sequence information: start_init_phys"
35 guez 43
36     call assert((/size(tsol_2d, 1), size(qsol_2d, 1)/) == iim + 1, &
37     "start_init_phys 1")
38     call assert((/size(tsol_2d, 2), size(qsol_2d, 2)/) == jjm + 1, &
39     "start_init_phys 2")
40    
41 guez 49 call nf95_open('ECPHY.nc', nf90_nowrite, ncid)
42 guez 3
43 guez 64 call find_coord(ncid, varid=varid, std_name="longitude")
44 guez 49 call nf95_gw_var(ncid, varid, lon_ini)
45     lon_ini = lon_ini * pi / 180. ! convert to rad
46     iml_phys = size(lon_ini)
47 guez 3
48 guez 64 call find_coord(ncid, varid=varid, std_name="latitude")
49 guez 49 call nf95_gw_var(ncid, varid, lat_ini)
50     lat_ini = lat_ini * pi / 180. ! convert to rad
51     jml_phys = size(lat_ini)
52 guez 3
53     ! Allocate the space we will need to get the data out of this file
54     ALLOCATE(var_ana(iml_phys, jml_phys))
55    
56     ALLOCATE(lon_rad(iml_phys))
57     ALLOCATE(lat_rad(jml_phys))
58    
59 guez 42 ! We get the two standard variables
60     ! 'ST': surface temperature
61 guez 48 call nf95_inq_varid(ncid, 'ST', varid)
62     call nf95_get_var(ncid, varid, var_ana)
63 guez 3 CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)
64     CALL inter_barxy(lon_rad, lat_rad(:jml_phys -1), var_ana, rlonu(:iim), &
65     rlatv, tmp_var)
66 guez 43 tsol_2d = gr_int_dyn(tmp_var)
67 guez 3
68     ! Soil moisture
69 guez 48 call nf95_inq_varid(ncid, 'CDSW', varid)
70     call nf95_get_var(ncid, varid, var_ana)
71 guez 3 CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)
72     CALL inter_barxy(lon_rad, lat_rad(:jml_phys -1), var_ana, rlonu(:iim), &
73     rlatv, tmp_var)
74 guez 43 qsol_2d = gr_int_dyn(tmp_var)
75 guez 3
76 guez 48 call nf95_close(ncid)
77 guez 49 deallocate(lon_ini, lat_ini) ! pointers
78 guez 3
79     END SUBROUTINE start_init_phys
80    
81     END MODULE start_init_phys_m

  ViewVC Help
Powered by ViewVC 1.1.21