Back to Contents
(by Edouard Davin, Eric Maisonnave, Andy Dobler, et al.)
An interface to the OASIS coupler has been implemented into the COSMO-Model.
In the CLM community there have been already activities to couple the
Community Land Model (CLM) and an ocean model to the COSMO-Model using such
an interface.
The interface is implemented using conditional compilation with -DCOUP_OAS.
Sources from applications that should be coupled with the COSMO-Model or the
coupler itself are NOT part of the COSMO-Model package. Such sources have to
be obtained elsewhere. The COSMO-Model only provides the interfaces.
Necessary changes in the COSMO-Model:
- lmorg.f90
Call to OASIS routines for initialization (at the beginning) and for
update (during the timeloop).
- src_setup.f90
Added icomm_world to the argument list of subroutine init_procgrid
(up to now this routine started with MPI_COMM_WORLD)
- environment.f90
Changed definition of icomm_world: in case of coupling, this communicator
is defined by OASIS; only in case of un-coupled runs, it is MPI_COMM_WORLD.
Therefore some uses of MPI_COMM_WORLD have to be replaced by icomm_world.
Back to Contents
- Usage of tgrlat: (reported by Andreas Will and Jack Ogaja)
tgrlat (tangens of transformed latitude) has been computed only on
u-latitudes (same latitudes as mass grid points). But it has also to be considered
on v-latitudes, which are different from the u-latitudes because of the staggering.
Modified modules: data_fields.f90, numeric_utilities.f90, src_2timelevel.f90,
src_allocation.f90, src_advection_rk.f90, src_setup.f90
- src_runge_kutta.f90 (reported by Oli Fuhrer)
The variable govcp was initialized only for itheta_adv >= 1, but was used in
some idealized tests also for other cases. Therefore initialize this (and some
other variables) in any case.
- src_radiation.f90: (reported by Thorsten Reinhardt)
In Section 6: Heating rates and radiation budget at surface:
Variables dp0 and zsmu0 must not be referenced with js,
but with loop variable jz1
- organize_satellites.f90: (reported by Oli Fuhrer)
The variable nsat_steps had only been allocated, if output of synthetic satellite
images was switched on. But in the init- and compute-phase of organize_satellites
it was accessed in all cases. Therefore allocate this variable also in all cases.
- src_lheat_nudge.f90: (by Klaus Stephan)
Bug correction: To consider both, blacklist flag and bright band flag for
calculation of pr_obs and the weight, it should be an .AND. instead of .OR.
(around line number 2135).
Back to Contents
- mpe_io.f90, dummy_mpi.f90
Modifications and extensions because of some compiler problems.
- meteo_utilities.f90
Replaced arguments p0, pp of subroutine
cloud_diag with full pressure p_tot.
- organize_data.f90, src_output.f90
Replaced variable name namelist (which is a Fortran Keyword) by
outblock.
- src_allocation.f90
Introduction of additional 3D-arrays tket_(conv, sso, hshr) for additional
TKE source by the action of other sub grid scale flow patterns.
Removed yaction=canopy fully and move allocation of canopy fields to
init phase of organize_physics.
- src_radiation.f90
Replaced arguments p0, pp of subroutine
cloud_diag with full pressure p_tot.
- src_setup.f90
Introduction of ifndef for SCLM.
Introduction of p0ref and presetting of kcm
- src_setup_vartab.f90
Added instantaneous values of swdir_s, swdifd_s, swdifu_s, lwd_s, lwu_s
- src_soil.f90
Warning if SCLM mode is used with surface flux forcing (with ifdef)
- src_turbulence.f90
Eliminated unnecessary MAX-construct for index computations
Back to Contents
Most of the above modifications do change the results slightly.
But no significant changes are expected.
The run times of the very high resolution runs (2-3 km) are increasing
by about 2-4 percent. This is mainly (but not only) due to the additional
small time step in the 3rd Runge-Kutta step.
Back to Contents