Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to the latest spartacus #4

Open
wants to merge 28 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b1f91b3
Fixed ordering of spread when more than 1 wavelength
rjhogan Sep 23, 2021
260d2a6
Added solar_zenith_angle namelist entry
rjhogan Sep 27, 2021
fac4bcb
Option to save spectral fluxes
rjhogan Sep 27, 2021
ab53ad5
Fixed bug in wall absorption when more than one spectral interval
rjhogan Sep 27, 2021
77c071b
Added RAMI5 test scenes
rjhogan Oct 4, 2021
b31ae46
rami5 test cases now called with make test
rjhogan Oct 4, 2021
d2ce1d6
Remove unused vars etc
rjhogan Oct 4, 2021
738dea0
Upgrade to 0.7.2
rjhogan Oct 4, 2021
e37fc22
Introduce radsurf_norm_perim.F90; redefine veg_contact_fraction
rjhogan Oct 5, 2021
e9ab4f0
Updated README
rjhogan Oct 6, 2021
12d53ae
Fixed interpretation of veg isolation factor to match Fig. 2 in docum…
rjhogan Oct 6, 2021
13988c5
Updated documentation
rjhogan Oct 6, 2021
d48be2b
Updated rami5 scene input files to be consistent with new definition …
rjhogan Oct 7, 2021
3ebbd4a
Added shortwave SimpleUrban and InfiniteStreet tile types
rjhogan Oct 26, 2021
a6f1866
Option to override surface type from namelist
rjhogan Oct 26, 2021
2103ce8
Report timings and gprof option with make GPROF=1
rjhogan Oct 26, 2021
756e708
Added longwave simple urban solver
rjhogan Oct 26, 2021
3e210b2
Added single_layer test case
rjhogan Oct 26, 2021
bbfc5f9
Updated documentation to include new simple urban surface types
rjhogan Oct 27, 2021
5fbfba1
Changed gfortran optimizations from -O3 to the faster(!) -O2 -march=n…
rjhogan Oct 27, 2021
7d6044e
Minor optimizations of matrix-matrix and matrix-vector multiplications
rjhogan Oct 27, 2021
ded9278
Added namelist option vegetation_extinction_scaling
rjhogan Nov 29, 2021
5b937e8
Upgraded documentation
rjhogan Nov 29, 2021
7e84137
Upgrade to 0.7.3
rjhogan Nov 29, 2021
bac0979
Updated RAMI5 scene netCDF input files to version 0.8
rjhogan Nov 30, 2021
10afd6d
Update additional files related to new RAMI-V scene versions to v0.8
rjhogan Nov 30, 2021
39ab071
Improved documentation of roof fluxes
rjhogan Feb 19, 2022
5178783
Fixed bug whereby shortwave broadband fluxes not output if no longwav…
May 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,35 @@
version 0.7.2
version 0.8
- New versions of the RAMI-V test scene input files (see
test/rami5/README), using explicit vegetation fractional standard
deviation

version 0.7.3 (27 October 2021)
- Redefined veg_contact_fraction: now the fraction of the building
edge that is touching veg, not the fraction of the vegetation edge
that is touching a building
- Default veg_contact_fraction (in
spartacus_surface_read_input.F90) is equal to the fraction of the
non-building area containing vegetation, equivalent to randomly
placed vegetation
- Normalized perimeter of vegetation-air interface now properly
takes into account the building fraction in the symmetric
vegetation scale formula; this is now in radsurf_norm_perim.F90
- vegetation_isolation_factor treatment changed such that a value
of 1 now indicates that thick and thin vegetation regions equally
likely to be in contact with the clear-air region, rather than
that only the thick region is in contact with clear-air
- Modified the test/rami5/scene_nc files to use the new definition
of veg_contact_fraction and a consistent definition of veg_scale
to the code
- Added surface types 4 (SimpleUrban) and 5 (InfiniteStreet): fast
methods for single-layer unvegetated urban canopies
- test/single_layer case for testing the new surface types
- Namelist parameter radsurf_config:isurfacetype can be used to
override the surface_type in the input file
- Namelist parameter radsurf_config:vegetation_extinction_scaling
can scale the vegetation extinction in the input file

version 0.7.2 (4 October 2021)
- Longwave urban modifications to give correct emission from
walls, fixing error most noticeable with 2-streams - see
radtool_legendre_gauss.F90 and radsurf_urban_lw.F90
Expand All @@ -20,6 +51,9 @@ version 0.7.2
or no clear-air region): exchange coefficients to/from such
regions are now zero, and eigenvalues only computed for regions of
finite size
- Added solar_zenith_angle to driver namelist to specify in
degrees as an alternative to cos_solar_zenith_angle
- Added RAMI-V test scenes in test/rami5

version 0.7.1 (23 October 2020)
- Added Apache license statement to each source file
Expand Down
12 changes: 11 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ libradsurf: libradtool
driver: libradsurf
cd driver && $(MAKE)

test: test_simple test_rami4pilps test_urban
test: test_simple test_rami4pilps test_urban test_rami5 test_single_layer

test_simple:
cd test/simple && $(MAKE) test
Expand All @@ -94,9 +94,17 @@ test_rami4pilps:
test_urban:
cd test/urban && $(MAKE) test

# Single profile
test_urban_single:
cd test/urban && $(MAKE) test_single

# Single layer
test_single_layer:
cd test/single_layer && $(MAKE) test

test_rami5:
cd test/rami5 && $(MAKE) test

test_code:
cd driver && $(MAKE) test_code

Expand All @@ -108,6 +116,8 @@ clean-tests:
cd test/simple && $(MAKE) clean
cd test/rami4pilps && $(MAKE) clean
cd test/urban && $(MAKE) clean
cd test/rami5 && $(MAKE) clean
cd test/single_layer && $(MAKE) clean

clean-toplevel:
cd radsurf && $(MAKE) clean
Expand Down
14 changes: 11 additions & 3 deletions Makefile_include.gfortran
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@ OMPFLAG = -fopenmp
ifndef DEBUG
# --NORMAL CONFIGURATION--

# Optimization flags
OPTFLAGS = -O3
# Optimization flags: note that experience with gfortran is that the
# code is faster with -O2 than with -O3. The "-march=native" optimizes
# for the architecture on which the compilation takes place, but this
# means the code might not run on older CPUs.
OPTFLAGS = -O2 -march=native

# Warning flags: all except those that warn about unused stuff
WARNFLAGS = -Wall -Wno-unused-label -Wno-unused-dummy-argument -Wno-unused-variable -Wimplicit-interface
Expand All @@ -30,4 +33,9 @@ OPTFLAGS = -O0
WARNFLAGS = -Wall
DEBUGFLAGS = -g -ffpe-trap=invalid,zero,overflow -fcheck=bounds -finit-real=snan

endif
endif

ifdef GPROF
# Add gprof output
DEBUGFLAGS += -pg
endif
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Robin Hogan <[email protected]>

This document was last updated 10 October 2020
This document was last updated 6 October 2021


## INTRODUCTION
Expand Down Expand Up @@ -105,6 +105,8 @@ RAMI4PILPS test cases that were used by Hogan et al. (2018).
The `test/urban` directory contains an urban profile from Fig. 1 of
Hogan (2019).

The `test/rami5` directory contains the files necessary to run five of
the actual forest scenes from the RAMI-V intercomparison project.

## LICENCE

Expand Down
10 changes: 4 additions & 6 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
FEATURES

Compute leaf sunlit fraction (wavelength independent)
Broadband or spectral fluxes each optional
Gas optics
Closed forest: optimization by looking for veg cover = 0 or 1
Report radiation components into a horizontal and vertical surface for calculation MRT
Road/roofs/wall direct fraction, and direct flux attenuated only by air
Dump out inputs like in ecRad
Combine lw_spectral_props%calc_monochromatic_emission and calc_simple_spectrum_lw into one function call for broadband Planck function
Support implicit solvers, e.g. windows in TEB with very low heat capacity
Way to calculate thermal comfort / mean radiant temperature considering diffuse angles
Store norm_perims for verification

BUG FIXES

Fix use of veg_contact_fraction
test_surface_out.nc fails with number of veg regions = 1
Fix crash when vegetation region has zero vegetation extinction, esp. in single precision
Fix non-zero residual in urban longwave when nstream>=2

CHECK
Expand Down
Binary file modified doc/spartacus_surface_documentation.pdf
Binary file not shown.
Loading