/[lmdze]/trunk/libf/dyn3d/startdyn.f90
ViewVC logotype

Diff of /trunk/libf/dyn3d/startdyn.f90

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 43 by guez, Fri Apr 8 12:43:31 2011 UTC revision 48 by guez, Tue Jul 19 12:54:20 2011 UTC
# Line 23  CONTAINS Line 23  CONTAINS
23      ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini      ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini
24    
25      USE flincom, only: flininfo, flinopen_nozoom      USE flincom, only: flininfo, flinopen_nozoom
     use flinget_m, only: flinget  
26      use comgeom, only: aire_2d, apoln, apols      use comgeom, only: aire_2d, apoln, apols
27      use conf_dat2d_m, only: conf_dat2d      use conf_dat2d_m, only: conf_dat2d
28      use inter_barxy_m, only: inter_barxy      use inter_barxy_m, only: inter_barxy
# Line 33  CONTAINS Line 32  CONTAINS
32      use start_init_orog_m, only: phis      use start_init_orog_m, only: phis
33      use start_init_phys_m, only: start_init_phys      use start_init_phys_m, only: start_init_phys
34      use nr_util, only: assert, pi      use nr_util, only: assert, pi
35        use netcdf, only: nf90_nowrite
36        use netcdf95, only: nf95_open, nf95_close, nf95_get_var, nf95_inq_varid
37    
38      REAL, intent(in):: tsol_2d(:, :) ! (iim + 1, jjm + 1)      REAL, intent(in):: tsol_2d(:, :) ! (iim + 1, jjm + 1)
39      REAL, intent(out):: psol(:, :) ! (iim + 1, jjm + 1) surface pressure, in Pa      REAL, intent(out):: psol(:, :) ! (iim + 1, jjm + 1) surface pressure, in Pa
# Line 40  CONTAINS Line 41  CONTAINS
41      ! Local:      ! Local:
42    
43      REAL date, dt      REAL date, dt
44      INTEGER itau(1)      INTEGER itau(1), ncid, varid
45      REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:)      REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:)
46    
47      REAL, ALLOCATABLE:: lon_dyn(:, :), lat_dyn(:, :)      REAL, ALLOCATABLE:: lon_dyn(:, :), lat_dyn(:, :)
# Line 88  CONTAINS Line 89  CONTAINS
89         lat_ini = lat_dyn(1, :)         lat_ini = lat_dyn(1, :)
90      ENDIF      ENDIF
91    
92        call nf95_open('ECDYN.nc', nf90_nowrite, ncid)
93    
94      ! 'Z': Surface geopotential      ! 'Z': Surface geopotential
95      CALL flinget(fid_dyn, 'Z', iml_dyn, jml_dyn, 0, ttm_dyn, 1, 1, var_ana)      call nf95_inq_varid(ncid, 'Z', varid)
96        call nf95_get_var(ncid, varid, var_ana)
97      CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)      CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)
98      CALL inter_barxy(lon_rad, lat_rad(:jml_dyn -1), var_ana, rlonu(:iim), &      CALL inter_barxy(lon_rad, lat_rad(:jml_dyn -1), var_ana, rlonu(:iim), &
99           rlatv, tmp_var)           rlatv, tmp_var)
100      z = gr_int_dyn(tmp_var)      z = gr_int_dyn(tmp_var)
101    
102      ! 'SP': Surface pressure      ! 'SP': Surface pressure
103      CALL flinget(fid_dyn, 'SP', iml_dyn, jml_dyn, 0, ttm_dyn, 1, 1, var_ana)      call nf95_inq_varid(ncid, 'SP', varid)
104        call nf95_get_var(ncid, varid, var_ana)
105      CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)      CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)
106      CALL inter_barxy(lon_rad, lat_rad(:jml_dyn -1), var_ana, rlonu(:iim), &      CALL inter_barxy(lon_rad, lat_rad(:jml_dyn -1), var_ana, rlonu(:iim), &
107           rlatv, tmp_var)           rlatv, tmp_var)
108      psol = gr_int_dyn(tmp_var)      psol = gr_int_dyn(tmp_var)
109    
110        call nf95_close(ncid)
111    
112      psol(:iim, :) = psol(:iim, :) &      psol(:iim, :) = psol(:iim, :) &
113           * (1. + (z(:iim, :) - phis(:iim, :)) / 287. / tsol_2d(:iim, :))           * (1. + (z(:iim, :) - phis(:iim, :)) / 287. / tsol_2d(:iim, :))
114      psol(iim + 1, :) = psol(1, :)      psol(iim + 1, :) = psol(1, :)
# Line 118  CONTAINS Line 125  CONTAINS
125    
126      ! This procedure gets a 3D variable from a file and interpolates it.      ! This procedure gets a 3D variable from a file and interpolates it.
127    
     use flinget_m, only: flinget  
128      use nr_util, only: assert_eq      use nr_util, only: assert_eq
129      use numer_rec, only: spline, splint      use numer_rec, only: spline, splint
130      use inter_barxy_m, only: inter_barxy      use inter_barxy_m, only: inter_barxy
131      use gr_int_dyn_m, only: gr_int_dyn      use gr_int_dyn_m, only: gr_int_dyn
132      use conf_dat3d_m, only: conf_dat3d      use conf_dat3d_m, only: conf_dat3d
133        use netcdf, only: nf90_nowrite
134        use netcdf95, only: nf95_open, nf95_close, nf95_get_var, nf95_inq_varid
135    
136      CHARACTER(len=*), intent(in):: varname      CHARACTER(len=*), intent(in):: varname
137      REAL, intent(in):: lon_in2(:) ! (iml)      REAL, intent(in):: lon_in2(:) ! (iml)
# Line 132  CONTAINS Line 140  CONTAINS
140      REAL, intent(out):: var3d(:, :, :) ! (iml, jml, lml)      REAL, intent(out):: var3d(:, :, :) ! (iml, jml, lml)
141    
142      ! LOCAL:      ! LOCAL:
143      INTEGER iml, jml, lml      INTEGER iml, jml, lml, ncid, varid
144      INTEGER ii, ij, il      INTEGER ii, ij, il
145      REAL lon_rad(iml_dyn), lat_rad(jml_dyn)      REAL lon_rad(iml_dyn), lat_rad(jml_dyn)
146      REAL lev_dyn(llm_dyn)      REAL lev_dyn(llm_dyn)
# Line 152  CONTAINS Line 160  CONTAINS
160    
161      print *, "iml = ", iml, ", jml = ", jml      print *, "iml = ", iml, ", jml = ", jml
162      print *, "varname = ", varname      print *, "varname = ", varname
163      print *, 'Going into flinget to extract the 3D field.'      call nf95_open('ECDYN.nc', nf90_nowrite, ncid)
164      CALL flinget(fid_dyn, varname, iml_dyn, jml_dyn, llm_dyn, ttm_dyn, 1, 1, &      call nf95_inq_varid(ncid, varname, varid)
165           var_ana3d)      call nf95_get_var(ncid, varid, var_ana3d)
166        call nf95_close(ncid)
167      CALL conf_dat3d(lon_ini, lat_ini, levdyn_ini, lon_rad, lat_rad, lev_dyn, &      CALL conf_dat3d(lon_ini, lat_ini, levdyn_ini, lon_rad, lat_rad, lev_dyn, &
168           var_ana3d)           var_ana3d)
169    

Legend:
Removed from v.43  
changed lines
  Added in v.48

  ViewVC Help
Powered by ViewVC 1.1.21