[Dart-dev] DART/branches Revision: 11279
dart at ucar.edu
dart at ucar.edu
Thu Mar 9 15:39:57 MST 2017
thoar at ucar.edu
2017-03-09 15:39:55 -0700 (Thu, 09 Mar 2017)
913
This uses the additions for the POP2 namelists without breaking
the earlier pop_in namelist support. Also supports along-track
sea level anomaly observation assimilation. The long-term mean
dynamic topography file is read from the &model_nml:mdt_reference_file_name
variable. The size of the 'mdt' variable is compared to the expected
size, the units are converted to SI upon read - as the observations
are also SI, and the forward operator requires SI.
The setup and assimilate scripts work with the new assumed filenames
and support the netCDF-only logic. The assimilate script allows
DART to modify the restart files directly - no safety or backup files are created.
If the assimilation corrupts the POP .r. file, you must revert to a previous
restart set.
The AVISO converter 'makedaily.sh' script is simpler and supports the
addition of the WOD observations into the output observation sequence file.
Modified: DART/branches/rma_trunk/models/POP/dart_pop_mod.f90
===================================================================
--- DART/branches/rma_trunk/models/POP/dart_pop_mod.f90 2017-03-09 22:26:59 UTC (rev 11278)
+++ DART/branches/rma_trunk/models/POP/dart_pop_mod.f90 2017-03-09 22:39:55 UTC (rev 11279)
@@ -6,7 +6,7 @@
module dart_pop_mod
-use types_mod, only : r8, rad2deg, PI, SECPERDAY
+use types_mod, only : r4, r8, rad2deg, PI, SECPERDAY, MISSING_R8
use time_manager_mod, only : time_type, get_date, set_date, get_time, set_time, &
set_calendar_type, get_calendar_string, &
print_date, print_time, operator(==), operator(-)
@@ -26,7 +26,7 @@
get_horiz_grid_dims, get_vert_grid_dim, &
read_horiz_grid, read_topography, read_vert_grid, &
write_pop_namelist, get_pop_restart_filename, &
- set_binary_file_conversion
+ set_binary_file_conversion, read_mean_dynamic_topography
! version controlled file description for error handling, do not edit
character(len=256), parameter :: source = &
@@ -63,12 +63,16 @@
real(r8) :: dtuxcel, dt_count
integer :: iyear0, imonth0, iday0, ihour0, iminute0, isecond0
integer :: stop_count, fit_freq, time_mix_freq
+real(r8) :: robert_alpha, robert_nu
+
namelist /time_manager_nml/ runid, time_mix_opt, time_mix_freq, &
impcor, laccel, accel_file, dtuxcel, iyear0, imonth0, &
iday0, ihour0, iminute0, isecond0, dt_option, dt_count, &
- stop_option, stop_count, date_separator, allow_leapyear, fit_freq
+ stop_option, stop_count, date_separator, allow_leapyear, fit_freq, &
+ robert_alpha, robert_nu
+
!------------------------------------------------------------------
! The POP I/O namelist variables
!------------------------------------------------------------------
@@ -114,10 +118,12 @@
character(len= 64) :: clinic_distribution_type, tropic_distribution_type
character(len= 64) :: ew_boundary_type, ns_boundary_type
integer :: nprocs_clinic, nprocs_tropic
+logical :: profile_barrier
namelist /domain_nml/ clinic_distribution_type, nprocs_clinic, &
tropic_distribution_type, nprocs_tropic, &
- ew_boundary_type, ns_boundary_type
+ ew_boundary_type, ns_boundary_type, &
+ profile_barrier
!------------------------------------------------------------------
! The POP grid info namelist
@@ -160,7 +166,8 @@
bottom_cell_file, region_mask_file
character(len= 64) :: horiz_grid_opt, sfc_layer_opt, vert_grid_opt, &
topography_opt
-logical :: partial_bottom_cells, topo_smooth, flat_bottom, lremove_points
+logical :: partial_bottom_cells, topo_smooth, flat_bottom, lremove_points, &
+ l1ddyn
integer :: kmt_kmin, n_topo_smooth
namelist /grid_nml/ horiz_grid_opt, horiz_grid_file, sfc_layer_opt, &
@@ -168,7 +175,7 @@
topography_file, topography_outfile, bathymetry_file, &
partial_bottom_cells, bottom_cell_file, n_topo_smooth, &
region_mask_file, topo_smooth, flat_bottom, lremove_points, &
- region_info_file
+ region_info_file, l1ddyn
!======================================================================
contains
@@ -731,7 +738,7 @@
logical :: three_columns
character(len=256) :: line
-real(r8), parameter :: centemeters_to_meters = 0.01_r8
+real(r8), parameter :: centimeters_to_meters = 0.01_r8
if ( .not. module_initialized ) call initialize_module
@@ -760,8 +767,8 @@
! read depth and calculate center and bottom of cells
read(line,*,iostat=ios) depth
- ZC(1) = depth*centemeters_to_meters*0.5_r8
- ZG(1) = depth*centemeters_to_meters
+ ZC(1) = depth*centimeters_to_meters*0.5_r8
+ ZG(1) = depth*centimeters_to_meters
endif
do i=2, nz
@@ -771,8 +778,8 @@
else
read(iunit,*,iostat=ios) depth
- ZC(i) = ZG(i-1) + depth*centemeters_to_meters*0.5_r8
- ZG(i) = ZG(i-1) + depth*centemeters_to_meters
+ ZC(i) = ZG(i-1) + depth*centimeters_to_meters*0.5_r8
+ ZG(i) = ZG(i-1) + depth*centimeters_to_meters
More information about the Dart-dev
mailing list