[Dart-dev] DART/branches Revision: 11464
dart at ucar.edu
dart at ucar.edu
Wed Apr 12 18:49:45 MDT 2017
thoar at ucar.edu
2017-04-12 18:49:45 -0600 (Wed, 12 Apr 2017)
305
model_mod_140715.f90
Read soil texture data from surftexture_nc= 'surfdata_0.9x1.25_soiltexture_c140705.nc';
Constrain updated first layer of soil moisture within >0, and substitude with original SM if larger than 1.0.
Add subroutine (build_coefg_filename) to read daily time-variant coefg;
Modified: DART/branches/Tb/models/clm/model_mod.f90
===================================================================
--- DART/branches/Tb/models/clm/model_mod.f90 2017-04-13 00:48:19 UTC (rev 11463)
+++ DART/branches/Tb/models/clm/model_mod.f90 2017-04-13 00:49:45 UTC (rev 11464)
@@ -158,12 +158,14 @@
character(len=256) :: clm_restart_filename = 'clm_restart.nc'
character(len=256) :: clm_history_filename = 'clm_history.nc'
character(len=256) :: casename = 'clm_dart'
+character(len=256) :: surftexture_nc= 'surfdata_0.9x1.25_soiltexture_c140705.nc'
character(len=256) :: coefg_nc = 'coefg_amsre2003_10D.nc'
character(len=obstypelength) :: clm_state_variables(max_state_variables*num_state_table_columns) = ' '
namelist /model_nml/ &
- casename, &
+ casename, &
+ surftexture_nc, &
coefg_nc, &
clm_restart_filename, &
clm_history_filename, &
@@ -2751,8 +2753,7 @@
integer, optional, intent(in) :: ncid
integer :: i,j,ii, VarID
-real(r8), allocatable, dimension(:,:) :: org_array, org_porosity
-real(r8), allocatable, dimension(:) :: org_watsat
+real(r8), allocatable, dimension(:,:) :: org_array
if ( .not. module_initialized ) call static_init_model
@@ -2781,8 +2782,6 @@
if (present(ncid)) then
allocate(org_array(size(data_2d_array,1),size(data_2d_array,2)))
- allocate(org_porosity(15,size(data_2d_array,2))) !============Long
- allocate(org_watsat(size(data_2d_array,2))) !============Long
call nc_check(nf90_inq_varid(ncid, progvar(ivar)%varname, VarID), &
'vector_to_2d_prog_var', 'inq_varid '//trim(progvar(ivar)%varname))
@@ -2790,16 +2789,6 @@
call nc_check(nf90_get_var(ncid, VarID, org_array), &
'vector_to_2d_prog_var', 'get_var '//trim(progvar(ivar)%varname))
- call nc_check(nf90_inq_varid(ncid, 'WATSAT', VarID), &
- 'vector_to_2d_prog_var', 'inq_varid WATSAT')
-
- call nc_check(nf90_get_var(ncid, VarID, org_porosity), &
- 'vector_to_2d_prog_var', 'get_var WATSAT')
-
- ! to convert top layer soil porosity with unit: m3/m3 to kg/m2
- where((org_porosity>1)) org_porosity=0.5_r8
- org_watsat=org_porosity(1,:)*(LEVGRND(6)+LEVGRND(7))/2*1000
-
! restoring the indeterminate original values
where(data_2d_array == MISSING_R8 ) data_2d_array = org_array
@@ -2825,7 +2814,7 @@
! where(isnan(data_2d_array)) data_2d_array = org_array
- where((data_2d_array(6,:) > org_watsat)) data_2d_array(6,:) = org_watsat
+ where((data_2d_array > 1.0_r8)) data_2d_array = org_array
!===========================================================Long
where((data_2d_array < 0.0_r8)) data_2d_array = org_array
elseif (trim(progvar(ivar)%varname) == 'H2OSOI_ICE') then
@@ -2839,8 +2828,6 @@
endif
deallocate(org_array)
- deallocate(org_porosity)
- deallocate(org_watsat)
endif
@@ -4393,8 +4380,9 @@
real(r4) :: tb_out(N_POL,N_FREQ) ! calculated brightness temperature - output
! support variables
-integer :: ncid, ncidcoefg
+integer :: ncid, ncidcoefg, ncidsurftexture
character(len=256) :: filename
+character(len=256) :: coefg_filename
character(len=256) :: priortbfile
integer, allocatable, dimension(:) :: columns_to_get
real(r4), allocatable, dimension(:) :: tb
@@ -4490,6 +4478,7 @@
! read Tg and sm variables from CLM restart file =============Long
! filename = clm_restart_filename
call build_clm_instance_filename(ens_index, state_time, filename)
+call build_coefg_filename(frequency,state_time,coefg_filename)
! call build_Prior_Tb_instance_filename(ens_index, state_time, priortbfile)
@@ -4498,8 +4487,10 @@
! write(*,*)'mark-01_Long' !====Long
call nc_check(nf90_open(trim(filename), NF90_NOWRITE, ncid), &
'get_brightness_temperature','open '//trim(filename))
-call nc_check(nf90_open(trim(coefg_nc), NF90_NOWRITE, ncidcoefg), &
- 'get_brightness_temperature','open '//trim(coefg_nc))
+call nc_check(nf90_open(trim(coefg_filename), NF90_NOWRITE, ncidcoefg), &
+ 'get_brightness_temperature','open '//trim(coefg_filename))
More information about the Dart-dev
mailing list