--- trunk/libf/dyn3d/startdyn.f90 2011/07/01 15:00:48 47 +++ trunk/libf/dyn3d/startdyn.f90 2011/07/19 12:54:20 48 @@ -23,7 +23,6 @@ ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini USE flincom, only: flininfo, flinopen_nozoom - use flinget_m, only: flinget use comgeom, only: aire_2d, apoln, apols use conf_dat2d_m, only: conf_dat2d use inter_barxy_m, only: inter_barxy @@ -33,6 +32,8 @@ use start_init_orog_m, only: phis use start_init_phys_m, only: start_init_phys use nr_util, only: assert, pi + use netcdf, only: nf90_nowrite + use netcdf95, only: nf95_open, nf95_close, nf95_get_var, nf95_inq_varid REAL, intent(in):: tsol_2d(:, :) ! (iim + 1, jjm + 1) REAL, intent(out):: psol(:, :) ! (iim + 1, jjm + 1) surface pressure, in Pa @@ -40,7 +41,7 @@ ! Local: REAL date, dt - INTEGER itau(1) + INTEGER itau(1), ncid, varid REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:) REAL, ALLOCATABLE:: lon_dyn(:, :), lat_dyn(:, :) @@ -88,20 +89,26 @@ lat_ini = lat_dyn(1, :) ENDIF + call nf95_open('ECDYN.nc', nf90_nowrite, ncid) + ! 'Z': Surface geopotential - CALL flinget(fid_dyn, 'Z', iml_dyn, jml_dyn, 0, ttm_dyn, 1, 1, var_ana) + call nf95_inq_varid(ncid, 'Z', varid) + call nf95_get_var(ncid, varid, var_ana) CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana) CALL inter_barxy(lon_rad, lat_rad(:jml_dyn -1), var_ana, rlonu(:iim), & rlatv, tmp_var) z = gr_int_dyn(tmp_var) ! 'SP': Surface pressure - CALL flinget(fid_dyn, 'SP', iml_dyn, jml_dyn, 0, ttm_dyn, 1, 1, var_ana) + call nf95_inq_varid(ncid, 'SP', varid) + call nf95_get_var(ncid, varid, var_ana) CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana) CALL inter_barxy(lon_rad, lat_rad(:jml_dyn -1), var_ana, rlonu(:iim), & rlatv, tmp_var) psol = gr_int_dyn(tmp_var) + call nf95_close(ncid) + psol(:iim, :) = psol(:iim, :) & * (1. + (z(:iim, :) - phis(:iim, :)) / 287. / tsol_2d(:iim, :)) psol(iim + 1, :) = psol(1, :) @@ -118,12 +125,13 @@ ! This procedure gets a 3D variable from a file and interpolates it. - use flinget_m, only: flinget use nr_util, only: assert_eq use numer_rec, only: spline, splint use inter_barxy_m, only: inter_barxy use gr_int_dyn_m, only: gr_int_dyn use conf_dat3d_m, only: conf_dat3d + use netcdf, only: nf90_nowrite + use netcdf95, only: nf95_open, nf95_close, nf95_get_var, nf95_inq_varid CHARACTER(len=*), intent(in):: varname REAL, intent(in):: lon_in2(:) ! (iml) @@ -132,7 +140,7 @@ REAL, intent(out):: var3d(:, :, :) ! (iml, jml, lml) ! LOCAL: - INTEGER iml, jml, lml + INTEGER iml, jml, lml, ncid, varid INTEGER ii, ij, il REAL lon_rad(iml_dyn), lat_rad(jml_dyn) REAL lev_dyn(llm_dyn) @@ -152,9 +160,10 @@ print *, "iml = ", iml, ", jml = ", jml print *, "varname = ", varname - print *, 'Going into flinget to extract the 3D field.' - CALL flinget(fid_dyn, varname, iml_dyn, jml_dyn, llm_dyn, ttm_dyn, 1, 1, & - var_ana3d) + call nf95_open('ECDYN.nc', nf90_nowrite, ncid) + call nf95_inq_varid(ncid, varname, varid) + call nf95_get_var(ncid, varid, var_ana3d) + call nf95_close(ncid) CALL conf_dat3d(lon_ini, lat_ini, levdyn_ini, lon_rad, lat_rad, lev_dyn, & var_ana3d)