Remove elemental prefix
Because the function includes `YOMCST.h`, which contains an OpenMP
directive. A pure or elemental function may contain such a directive
only in OpenMP version >= 5.0. For the moment, we want to be
compatible with lower OpenMP standard.
7 lines of code changed in 1 file:
Forgot to add subdirectory in commit [3815]
29 lines of code changed in 11 files:
Merge Ocean_skin branch back into trunk
554 lines of code changed in 23 files:
Revert these files to trunk state
79 lines of code changed in 12 files:
Sync latest trunk changes to Ocean_skin
211 lines of code changed in 23 files:
Bug fix: do not finalize XIOS context
Replace call to `finalize_parallel` by calls to `mpi_finalize` and
`xios_finalize`. The difference is that `finalize_parallel` also calls
`xios_context_finalize`. This crashed ce0l because the context is not
initialized in ce0l. The bug was introduced in revision [3501].
22 lines of code changed in 1 file:
Additional constraint on ngroup
Move existing constraint on ngroup from `groupeun_loc` to `conf_gcm`
(abort as soon as possible if input is bad) and add constraint on
ngroup and jjm. As in revision [3802] on trunk.
4 lines of code changed in 3 files:
Move existing constraint on ngroup from `groupeun_loc` to `conf_gcm`
(abort as soon as possible if input is bad) and add constraint on
ngroup and jjm.
4 lines of code changed in 3 files:
Bug fix from revision 3800
1 lines of code changed in 1 file:
Bug fix: no operation in arg of `histwrite_phy`
An operation like `zx_rhl*100`. in the actual argument of
`histwrite_phy` crashes the code if it is compiled in debug mode: at
the first call of `phys_output_write_mod`, `zx_rhl` is not defined.
4 lines of code changed in 1 file:
Sync latest trunk changes to Ocean_skin
5998 lines of code changed in 143 files:
Polish
2 lines of code changed in 1 file:
Bug fix: encapsulate hbtm in a module
Fixes bug introduced in commit [3772]: therm was declared as an
assumed-shape dummy argument, which requires an explicit interface.
770 lines of code changed in 3 files:
Bug fix: initialize therm in hbtm
ytherm mixed values of different sub-surfaces at different
positions. This commit fixes ticket #122.
3 lines of code changed in 2 files:
Bug fix: initial value of surface humidity
Rename qsolsrf to qsurf as it should contain surface humidity. Fix the
value, which should be between 0 and 1. A better initial value would
be saturation humidity but we do not have yet the surface pressure in
`etat0phys_netcdf`, it will be defined later in `etat0dyn_netcdf`. The
old value, 150, probably came from a confusion with soil water
content. This initial value of surface humidity is used in the first
time step of physics to compute a virtual temperature at the surface,
in cdrag.
4 lines of code changed in 1 file:
Store `delta_sal` instead of `s_int`
Revision analoguous to revision [3744], for salinity. Store as a state
variable and send to the ocean `delta_sal`, the difference between
ocean-air interface salinity and bulk salinity, instead of `s_int`,
the interface salinity.
So replace dummy argument `s_int` of procedure `cpl_send_ocean_fields`
by dummy argument `delta_sal`. Replace dummy argument `s_int` of
procedures `ocean_cpl_noice` and `surf_ocean` by dummy argument
`delta_sal`. Replace variable `s_int` of module `phys_state_var_mod`
by variable `delta_sal`. Rename local variable `ys_int` of procedure
`pbl_surface` to `ydelta_sal`. Set variable `delta_sal` of module
`phys_state_var_mod` to 0 for an appearing ocean fraction and a
missing startup field. Replace variable `o_s_int` of module
`phys_output_ctrlout_mod` by variable `o_delta_sal`.
Rename variables `cpl_s_int` and `cpl_s_int_2D` of module `cpl_mod` to
`cpl_delta_sal` and `cpl_delta_sal_2D`. Rename variable `ids_s_int` of
module oasis to `ids_delta_sal`. Change `infosend(ids_delta_sal)%name`
to "CODELSSS".
74 lines of code changed in 10 files:
Bug fix: read before `close_startphy`
Bug fix: in procedure phyetat0, read `s_int`, `delta_sst`, `ds_ns` and
`dt_ns` before the call to `close_startphy`.
17 lines of code changed in 1 file:
Bug fix: revert revision [3601]
Bug fix: revert revision [3601]. Procedure `phys_output_write` is
called a first time by `physiq` before the call to phyetat0, so before
ftsoil is allocated. So we cannot reference `ftsoil(:, nsoilmx,
is_ter)` in `phys_output_write`.
3 lines of code changed in 2 files:
Store `delta_sst` instead of `sst_nff`
Store as a state variable the difference between ocean-air interface
temperature and bulk SST instead of `sst_nff`, which can be either
interface temperature or bulk SST. This is clearer. Also, it is
analoguous to what we will do with salinity.
So replace the two dummy arguments `tsurf_in` and `sst_nff` of
procedure `cpl_send_ocean_fields` by a single dummy argument
`delta_sst`. Replace dummy argument `sst_nff` of procedures
`ocean_cpl_noice` and `surf_ocean` by dummy argument
`delta_sst`. Replace variable `sst_nff` of module `phys_state_var_mod`
by variable `delta_sst`. Rename local variable `ysst_nff` of procedure
`pbl_surface` to `ydelta_sst`. Set variable `delta_sst` of module
`phys_state_var_mod` to 0 for an appearing ocean fraction and a
missing startup field. Replace variable `o_sst_nff` of module
`phys_output_ctrlout_mod` by variable `o_delta_sst`.
Rename variables `cpl_delta_temp` and `cpl_delta_temp_2D` of module
`cpl_mod` to `cpl_delta_sst` and `cpl_delta_sst_2D`, clearer. Rename
variable `ids_delta_temp` of module oasis to `ids_delta_sst`. Change
`infosend(ids_delta_temp)%name` to "CODELSST".
61 lines of code changed in 10 files:
Send delta temperature to the ocean
The grid of Nemo is finer than the grid of LMDZ. So LMDZ receives from
Oasis a spatial average of bulk SST. If we send to Nemo the interface
temperature computed by LMDZ, it is regridded as a step function
by Oasis and, in Nemo, the difference between bulk SST and interface
temperature has spatial oscillations. To avoid this, we send to Nemo
the difference between bulk SST and interface temperature computed by
LMDZ, instead of the interface temperature.
So, in module `cpl_mod`, rename `cpl_t_int` to `cpl_delta_temp`,
`cpl_t_int_2D` to `cpl_delta_temp_2D`. In module oasis, rename
`ids_t_int` to `ids_delta_temp`. Change
`infosend(ids_delta_temp)%name` to "CODTEMP".
In procedure `cpl_send_ocean_fields`, rename dummy argument
`t_int` to `tsurf_in` just for clarity, because this argument is
passed also when `activate_ocean_skin /= 2`. Add dummy argument
`sst_nff`. We cannot just replace dummy argument `t_int` by a dummy
argument that would receive `tsurf_in - sst_nff` because `sst_nff` is
not defined when `activate_ocean_skin == 0`.
In procedure `ocean_cpl_noice`, add dummy argument `sst_nff`.
As for interface salinity, we have to send delta temperature from the
previous time step. So we have to transform `sst_nff` into a state
variable. So move `sst_nff` from module `phys_output_var_mod` to
module `phys_state_var_mod`. Define `ysst_nff` in procedure
`pbl_surface` before the call to `surf_ocean`. Choose a value of
`sst_nff` for an appearing ocean fraction. Read `sst_nff` in procedure
phyetat0, write it in procedure phyredem. Change the intent of dummy argument
`sst_nff` in procedure `surf_ocean` to inout.
86 lines of code changed in 10 files:
(32 more)