Skip to content

Commit

Permalink
Updated to silam_v5_9@605474
Browse files Browse the repository at this point in the history
Some changelog:
- ascii2nc: Converter from ascii/grads fields to netcdf
- Correcting the fractionation of smoke to size modes (AU)
- Got rid of set-unset error in reading observations
- Disabled few more unset-error in MPI runs to prevent deadlocks
- More rigorous parsing of HYBRID_LAYER and HYBRID_LEVEL attribures from WRF
- Meteo stored as layers
- few outdated quantities removed
- Enable multiple netcdf fire-lists
- Enabled full meteo vertical (almost up to 0 Pa)
- Hardtop wind diagnostics can be now enabled at any domain top pressure
  to allow for WRF which can have a hard top at  100 hPa.
- Better mapping of CAMS VOCs
- Change meteo2disp interpolation to nearest-point (more consistent rains)
- Fix for race conditions in grib-grid cache
- Compiled by Intel and Visual Studio project (MAS)
- Self-degrading passive tracer with definable decay rate (MAS, RK)
- Fixes in settling for dd (99% rh over water)
- Fraction of ice introduced to dd (neutral change). If missing, ine can
  use
     dynamic_meteo_file = TEST_FIELD  ice_fract  SURFACE_LEVEL  0
- Bugfix pole mass outflow for backward-time simulation
- Weakened the check for hybrid layers overlap (enables some WRF setups)
- Graceful crash on failure to read boundares
- Re-enabled test fields for multitime  stack

git-svn-id: https://svn.fmi.fi/svn/tie/SILAM/silam_v5_9@605474 250f1e8d-2010-0410-9efa-e22dadc992bd
  • Loading branch information
rkouznetsov committed Oct 24, 2024
1 parent af62dc1 commit 6a98a4d
Show file tree
Hide file tree
Showing 34 changed files with 894 additions and 1,140 deletions.
2 changes: 2 additions & 0 deletions build/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
silam_main.*
ascii_2_nc.*
frp_main_v2_0.*
Makefile.branch
14 changes: 14 additions & 0 deletions build/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ BOX_MAIN = box_model
# The main program for grads-grib converter
GRADS2GRIB_MAIN = grads_2_grib2

# The main program for ascii-nc converter
ASCII2NC_MAIN = ascii_2_nc

# The main program for is4fires
IS4FIRES_MAIN = frp_main_v2_0

Expand Down Expand Up @@ -81,6 +84,11 @@ is4fires : expand config_is4fires last.revision
mkdir -p $(OBJDIR) $(BINDIR)
$(MAKE) -f$(BUILDDIR)/makefile.is4fires

ascii2nc: expand config_ascii2nc last.revision
mkdir -p $(OBJDIR) $(BINDIR)
$(MAKE) -f$(BUILDDIR)/makefile.ascii2nc



clean:
rm -f $(OBJDIR)*.o $(OBJDIR)*.mod $(BINDIR)$(PROGRAM)
Expand Down Expand Up @@ -109,6 +117,12 @@ config_is4fires:
rm $(BUILDDIR)/sourcelist
@echo Config OK.

config_ascii2nc:
ls -1 $(SRCDIR)*.f90 > $(BUILDDIR)/sourcelist
perl $(BUILDDIR)/config.pl $(BUILDDIR)/sourcelist $(ASCII2NC_MAIN) $(ARCH) \
rm $(BUILDDIR)/sourcelist
@echo Config OK.



tags: $(SRCDIR)*.f90
Expand Down
9 changes: 9 additions & 0 deletions build/makefile.ascii2nc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Build rules for modules
include $(BUILDDIR)/$(ASCII2NC_MAIN).objects
$(BINDIR)$(ASCII2NC_MAIN)$(ENDING) : $(COMMON_OBJS)
$(F90C) -o $@ $(COMMON_OBJS) $(SILAM_LIBS) $(LFLAGS)
chmod 750 $@
@echo New $@ is ready
cd $(BUILDDIR)

include $(BUILDDIR)/$(ASCII2NC_MAIN).rules.$(RULES)
82 changes: 81 additions & 1 deletion ini/netcdf_name_table.silam
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,84 @@ LIST = DEHM_BOUNDARIES

END_LIST = DEHM_BOUNDARIES

###################################################
LIST = WRF_OUTPUT_HYB

!---------------------------------
! wrf output
!---------------------------------
time_label_position = instant

title = WRF_OUTPUT_HYB

dim = Time t Times char
dim = west_east x XLONG *
dim = south_north y XLAT *
dim = bottom_top z ZNU HYBRID_LAYER_WRF
dim = bottom_top_stag z ZNW HYBRID_LEVEL_WRF
dim = west_east_stag x XLONG_U *
dim = south_north_stag y XLAT_V *
dim = soil_layers_stag z ZS HEIGHT_FROM_SURF #HACK! Only surface needed: depth=0 is the same as height=0

gridvar = SINALPHA sin_map_rot XXX
gridvar = COSALPHA cos_map_rot XXX
gridvar = MAPFAC_MX dx XXX
gridvar = MAPFAC_MY dy XXX
gridvar = XLONG lon XXX
gridvar = XLAT lat XXX
gridvar = XLONG_U lon XLONG
gridvar = XLAT_U lat XLAT
gridvar = XLONG_V lon XLONG
gridvar = XLAT_V lat XLAT
gridvar = MAPFAC_UX dx MAPFAC_MX
gridvar = MAPFAC_UY dy MAPFAC_MY
gridvar = MAPFAC_VX dx MAPFAC_MX
gridvar = MAPFAC_VY dy MAPFAC_MY
! and now some cheating - claim some random fielde to be map rotations
! for staggered grids (only dimensions taken) and force them to be overwritten
! by interpolated map rotations of the reference grid
gridvar = XLONG_U sin_map_rot SINALPHA
gridvar = XLAT_U cos_map_rot COSALPHA
gridvar = XLONG_V sin_map_rot SINALPHA
gridvar = XLAT_V cos_map_rot COSALPHA


var = U u XXX -1 XXX -1 -1 1 0
var = V v XXX -1 XXX -1 -1 1 0
! var = W omega XXX -1 XXX -1 -1 1 0
var = T perturb_pot_temperature XXX -1 XXX -1 -1 1 0
var = QVAPOR specific_humidity XXX -1 XXX -1 -1 1 0
var = QCLOUD cloud_water XXX -1 XXX -1 -1 1 0
var = QICE cloud_ice XXX -1 XXX -1 -1 1 0
var = CLDFRA cloud_cover XXX -1 XXX -1 -1 1 0
var = T2 temperature_2m HEIGHT_FROM_SURF 2 XXX -1 -1 1 0
var = Q2 specific_humidity_2m HEIGHT_FROM_SURF 2 XXX -1 -1 1 0
var = U10 u_10m HEIGHT_FROM_SURF 10 XXX -1 -1 1 0
var = V10 v_10m HEIGHT_FROM_SURF 10 XXX -1 -1 1 0
var = CLDCVR total_cloud_cover SURFACE_LEVEL -1 XXX -1 -1 1 0
var = PSFC ground_pressure SURFACE_LEVEL -1 XXX -1 -1 1 0
var = RAINC convective_accum_rain SURFACE_LEVEL -1 XXX -1 -1 1 0
var = RAINNC large_scale_accum_rain SURFACE_LEVEL -1 XXX -1 -1 1 0
var = LANDMASK fraction_of_land SURFACE_LEVEL -1 XXX -1 -1 1 0 !(LAND MASK (1 FOR LAND, 0 FOR WATER)
var = XLAND fraction_of_land SURFACE_LEVEL -1 XXX -1 -1 -1 2 !LAND MASK (1 FOR LAND, 2 FOR WATER)
var = HGT relief_height SURFACE_LEVEL -1 XXX -1 -1 1 0
var = SST water_surface_temp SURFACE_LEVEL -1 XXX -1 -1 1 0
var = PBLH nwp_abl_height_m SURFACE_LEVEL -1 XXX -1 -1 1 0
var = HFX nwp_sensible_heatflux SURFACE_LEVEL -1 XXX -1 -1 1 0
var = LH nwp_latent_heatflux SURFACE_LEVEL -1 XXX -1 -1 1 0
var = LAI lai SURFACE_LEVEL -1 XXX -1 -1 1 0
### var = GLW surf_sw_down_radiation SURFACE_LEVEL -1 XXX -1 -1 1 0 !! Was enabled for for some reason
var = SWDOWN surf_sw_down_radiation SURFACE_LEVEL -1 XXX -1 -1 1 0 !! Actual SWDOWN, Thnaks, Ramiro
var = ALBEDO albedo SURFACE_LEVEL -1 XXX -1 -1 1 0
var = CLDCVR total_cloud_cover SURFACE_LEVEL -1 XXX -1 -1 1 0
var = ACSNOW weq_snow_depth SURFACE_LEVEL -1 XXX -1 -1 1e-3 0
var = SNOW weq_snow_depth SURFACE_LEVEL -1 XXX -1 -1 1e-3 0
var = SMOIS soil_moisture_content SURFACE_LEVEL -1 XXX -1 -1 1 0
var = AFWA_CAPE cape SURFACE_LEVEL -1 XXX -1 -1 1 0

END_LIST = WRF_OUTPUT_HYB


###################################################
LIST = WRF_OUTPUT

Expand Down Expand Up @@ -799,7 +877,9 @@ var = hno3 volume_mixing_ratio XXX -1 HNO3 -1 -1 0.4598 0
var = pan volume_mixing_ratio XXX -1 PAN -1 -1 0.2394 0
var = ch4 volume_mixing_ratio XXX -1 CH4 -1 -1 1.8106 0
var = n2o5 volume_mixing_ratio XXX -1 N2O5 -1 -1 0.26852 0
var = c2h6 volume_mixing_ratio XXX -1 C2H6 -1 -1 0.9657 0
var = c2h6 volume_mixing_ratio XXX -1 ETHA -1 -1 0.9657 0
var = c2h4 volume_mixing_ratio XXX -1 ETH -1 -1 1.035 0
var = c3h8 volume_mixing_ratio XXX -1 C3H8 -1 -1 1.035 0
var = c5h8 volume_mixing_ratio XXX -1 C5H8 -1 -1 0.4260 0
var = so2 volume_mixing_ratio XXX -1 SO2 -1 -1 0.4527 0

Expand Down
12 changes: 12 additions & 0 deletions ini/standard_auxillary_cocktails.ini
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,18 @@ COCKTAIL_DESCRIPTION_V3_2
component_fraction = passive 1.
END_COCKTAIL_DESCRIPTION

COCKTAIL_DESCRIPTION_V3_2
cocktail_name = PASSIVE_AEROSOL_COCKTAIL
mass_unit = kg
gas_phase = YES
component_fraction = passive 1. 1. 1. ! Component name and its mass fraction
# component_fraction = passive 1. ! Component name and its mass fraction
# component_fraction = passive 1. ! Component name and its mass fraction
aerosol_mode = 1 0.1 1.0 0.3 mkm 1000 kg/m3
aerosol_mode = 2 1.0 2.5 1.5 mkm 1000 kg/m3
mode_distribution_type = FIXED_DIAMETER
END_COCKTAIL_DESCRIPTION

COCKTAIL_DESCRIPTION_V3_2
cocktail_name = TIME_COCKTAIL
mass_unit = kg
Expand Down
9 changes: 9 additions & 0 deletions silam_v5_9/_how_to_compile.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
In order to compile multi-language, use /iface:cref, either in additional
options for the Fortran command line tab, or
Fortran -> External procedures -> Calling Convention -> C, REFERENCE

The basic idea is that all external libraries must be in C convention,
with lower case and no underscores. Then all goes nice and fluffy. This
applies also to LAPACK et al, which are FORTRAN codes. They also should be
set into C convention. A mixture is a way to trouble, although can be tried
using BIND(C,name="....") if one is brave enough.
4 changes: 3 additions & 1 deletion silam_v5_9/silam.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@

#control_file = d:\model\silam_toypoint\toypoint_mpi.control

control_file = d:\project\pollen\reanal_2018\ini\DA_iter_birch.ctrl
#control_file = d:\project\pollen\reanal_2018\ini\DA_iter_birch.ctrl

control_file = d:\model\silam_v5_9\ini\tst_passive_self_decay.ctrl

82 changes: 2 additions & 80 deletions silam_v5_9/silam_v5_9.sln
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30611.23
# Visual Studio Version 17
VisualStudioVersion = 17.7.34031.279
MinimumVisualStudioVersion = 10.0.40219.1
Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "silam_v5_9", "silam_v5_9.vfproj", "{B4E65FC4-4B53-4F64-B3D8-98E8746D54E6}"
EndProject
Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "kind_of", "..\kind_of\kind_of.vfproj", "{4D2726C8-13C5-4D01-AE46-73D309AEF12B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kind_of_StaticLib", "..\kind_of_StaticLib\kind_of_StaticLib.vcxproj", "{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
debug_try|Any CPU = debug_try|Any CPU
Expand Down Expand Up @@ -68,80 +64,6 @@ Global
{B4E65FC4-4B53-4F64-B3D8-98E8746D54E6}.Release|x64.Build.0 = Release|x64
{B4E65FC4-4B53-4F64-B3D8-98E8746D54E6}.Release|x86.ActiveCfg = Release|Win32
{B4E65FC4-4B53-4F64-B3D8-98E8746D54E6}.Release|x86.Build.0 = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|Any CPU.ActiveCfg = debug_try|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|Win32.ActiveCfg = debug_try|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|Win32.Build.0 = debug_try|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|x64.ActiveCfg = debug_try|x64
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|x64.Build.0 = debug_try|x64
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|x86.ActiveCfg = debug_try|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.debug_try|x86.Build.0 = debug_try|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|Any CPU.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|Win32.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|Win32.Build.0 = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|x64.ActiveCfg = Debug|x64
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|x64.Build.0 = Debug|x64
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|x86.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Debug|x86.Build.0 = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|Any CPU.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|Any CPU.Build.0 = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|Win32.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|Win32.Build.0 = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|x64.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|x64.Build.0 = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|x86.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_2|x86.Build.0 = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|Any CPU.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|Any CPU.Build.0 = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|Win32.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|Win32.Build.0 = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|x64.ActiveCfg = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|x64.Build.0 = Debug|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|x86.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release_3|x86.Build.0 = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|Any CPU.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|Win32.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|Win32.Build.0 = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|x64.ActiveCfg = Release|x64
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|x64.Build.0 = Release|x64
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|x86.ActiveCfg = Release|Win32
{4D2726C8-13C5-4D01-AE46-73D309AEF12B}.Release|x86.Build.0 = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|Any CPU.ActiveCfg = debug_try|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|Win32.ActiveCfg = debug_try|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|Win32.Build.0 = debug_try|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|x64.ActiveCfg = debug_try|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|x64.Build.0 = debug_try|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|x86.ActiveCfg = debug_try|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.debug_try|x86.Build.0 = debug_try|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|Any CPU.ActiveCfg = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|Win32.ActiveCfg = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|Win32.Build.0 = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|x64.ActiveCfg = Debug|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|x64.Build.0 = Debug|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|x86.ActiveCfg = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Debug|x86.Build.0 = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|Any CPU.ActiveCfg = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|Any CPU.Build.0 = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|Win32.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|Win32.Build.0 = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|x64.ActiveCfg = Release|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|x64.Build.0 = Release|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|x86.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_2|x86.Build.0 = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|Any CPU.ActiveCfg = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|Any CPU.Build.0 = Debug|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|Win32.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|Win32.Build.0 = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|x64.ActiveCfg = Release|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|x64.Build.0 = Release|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|x86.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release_3|x86.Build.0 = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|Any CPU.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|Win32.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|Win32.Build.0 = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|x64.ActiveCfg = Release|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|x64.Build.0 = Release|x64
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|x86.ActiveCfg = Release|Win32
{F6DBE87C-1D7B-4040-829D-2BE38E9B9549}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Loading

0 comments on commit 6a98a4d

Please sign in to comment.