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

Contents of /trunk/dyn3d/start_init_phys_m.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 99 - (show annotations)
Wed Jul 2 18:39:15 2014 UTC (9 years, 10 months ago) by guez
File size: 2556 byte(s)
Created procedure test_disvert (following LMDZ). Added procedures
hybrid and funcd in module disvert_m. Upgraded compute_ab from
internal procedure of disvert to module procedure. Added variables y,
ya in module disvert_m. Upgraded s from local variable of procedure
disvert to module variable.

Renamed allowed value of variable vert_sampling in procedure disvert
from "read" to "read_hybrid". Added possibility to read pressure
values, value "read_pressure". Replaced vertical distribution for
value "param" by the distribution "strato_correct" from LMDZ (but kept
the value "param"). In case "tropo", replaced 1 by dsigmin (following
LMDZ). In case "strato", replaced 0.3 by dsigmin (following LMDZ).

Changed computation of bp in procedure compute_ab.

Removed debugindex case in clmain. Removed useless argument rlon of
procedure clmain. Removed useless variables ytaux, ytauy of procedure
clmain.

Removed intermediary variables tsol, qsol, tsolsrf, tslab in procedure
etat0.

Removed variable ok_veget:. coupling with the model Orchid is not
possible. Removed variable ocean: modeling an ocean slab is not
possible.

Removed useless variables tmp_rriv and tmp_rcoa from module
interface_surf.

Moved initialization of variables da, mp, phi in procedure physiq to
to inside the test iflag_con >= 3.

1 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 SUBROUTINE start_init_phys(tsol_2d, qsol_2d)
11
12 use comgeom, only: rlonu, rlatv
13 use conf_dat2d_m, only: conf_dat2d
14 use dimens_m, only: iim, jjm
15 use gr_int_dyn_m, only: gr_int_dyn
16 use inter_barxy_m, only: inter_barxy
17 use netcdf, only: nf90_nowrite
18 use netcdf95, only: nf95_open, nf95_close, nf95_get_var, nf95_inq_varid, &
19 nf95_gw_var, find_coord
20 use nr_util, only: assert, pi
21
22 REAL, intent(out):: tsol_2d(:, :), qsol_2d(:, :) ! (iim + 1, jjm + 1)
23
24 ! Variables local to the procedure:
25
26 INTEGER iml_phys, jml_phys, ncid, varid
27 REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:)
28 REAL, pointer:: lon_ini(:), lat_ini(:) ! longitude and latitude in rad
29 REAL, ALLOCATABLE:: var_ana(:, :)
30 real tmp_var(iim, jjm + 1)
31
32 !-----------------------------------
33
34 print *, "Call sequence information: start_init_phys"
35
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 call nf95_open('ECPHY.nc', nf90_nowrite, ncid)
42
43 call find_coord(ncid, varid=varid, std_name="longitude")
44 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
48 call find_coord(ncid, varid=varid, std_name="latitude")
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
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 ! Surface temperature:
60 call nf95_inq_varid(ncid, 'ST', varid)
61 call nf95_get_var(ncid, varid, var_ana)
62 CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)
63 CALL inter_barxy(lon_rad, lat_rad(:jml_phys -1), var_ana, rlonu(:iim), &
64 rlatv, tmp_var)
65 tsol_2d = gr_int_dyn(tmp_var)
66
67 ! Soil moisture:
68 call nf95_inq_varid(ncid, 'CDSW', varid)
69 call nf95_get_var(ncid, varid, var_ana)
70 CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana)
71 CALL inter_barxy(lon_rad, lat_rad(:jml_phys -1), var_ana, rlonu(:iim), &
72 rlatv, tmp_var)
73 qsol_2d = gr_int_dyn(tmp_var)
74
75 call nf95_close(ncid)
76 deallocate(lon_ini, lat_ini) ! pointers
77
78 END SUBROUTINE start_init_phys
79
80 END MODULE start_init_phys_m

  ViewVC Help
Powered by ViewVC 1.1.21