Opened 8 years ago
Closed 6 years ago
#190 closed task (fixed)
Implementing new soil vertical discretization in TRUNK
Reported by: | fwang | Owned by: | jgipsl |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Physical processes | Version: | trunc |
Keywords: | vertical discretization | Cc: |
Description
The new soil vertical discretization with flexible depth and layers is going to implement in TRUNK. The current version is based on the discussion by Frederique, Josefine and Fuxing on 28 August 2015, and some email exchange with Jan after. Fuxing has tested it by using the default parameters in [MODULE vertical]. Some points are remained to be confirmed/tested:
- Option refinebottom, by default "refinebottom == FALSE". This option was tested in the thesis of Aurélien. Vertical.f90 produces the right levels and that Jan has tested it thoroughly. But we are not sure if it has integrated in ORCHIDEE in Aurélien's test?
- The code:
zz(:)=ztmp(1:nslm_l) zz(nslm_l)=depth_Wmax dz(:)=dtmp(1:nslm_l+1) dz(nslm_l+1)=0.0
--> Jan:
I personally believe that the "depth_Wmax" parameter is the most important. So we need to have this as the final depth. In the worst case the lowest layer will be thinner than the geometric series predicts. But as "depth_Wmax" determines the field capacity it has to be the driving parameter.
Else small changes in any other vertical selection parameter will change the effective "depth_Wmax" and thus the field capacity. I guess this is a strategic decision we need to discuss next Tuesday.
--> Fuxing:
If we force "zz(nslm_l)=depth_Wmax" compulsory, there is no problem with the default parameterization (e.g., 'depth_wmax=2.0; depth_toptickness = 9.77517107e-04; ...). And this is the situation I have tested before.
But if we change the default parameters and we set "zz(nslm_l)=depth_Wmax", the 'dz(nslm)' is not always 'dtmp(nslm_l)', because the geometrical increasing of node is destroyed at the last layer. ztmp(11) is not 2 meters, and dz(nslm) is not 1 meter any more. In this case, perhaps the 'dz(nslm)' should also be changed, e.g.,
... dz(:)=dtmp(1:nslm_l+1) dz(nslm) = zz(nslm_l) - zz(nslm_l - 1)) ...--> To be tested (by Fuxing): if python code on wiki and vertical.f90 gives the same result.
- It seems it is not necessary to have dz(nslm_1+1). It is not currently used in the code and the code would be simpler if dz had the same dimension as zz.
--> Proposition: changeALLOCATE(dz(nslm_l+1))
intoALLOCATE(dz(nslm_l))
--> Jan will check it.
- Now
getin("HYDROL_SOIL_DEPTH",..)
is done in vertical. But it has changed name intogetin("DEPTH_WMAX",..)
Is this ok or should it still be named "HYDROL_SOIL_DEPTH" ?
--> To be confirmed by the groupe.
- variable "diaglev": Does vertical_getdiag give the same values for diaglev as before ? And if not, why not? Is it compatible with Choisnel? Josefine tested diaglev and it is not the same values as before.
--> Proposition:
for the case Choisnel, calcaulte diaglev as before. It could be done as a special case in vertical_getdiag or in control_initialize subroutine after the call to vertical_getdiag.
-->Josefine:
it seems ok with Choisnel if we change diaglev (use the old calculation) and take into account the thermosoilc as decided previously in the orch meeting.
-->Jan:
Keeping Choisnel with this evolution of the model is complicated. I would then keep the old diaglev only for Choisnel. We are going to end up with a such a complex code that it will be hard to manage. We have to cut some dead branches of the ORCHIDEE tree !
Change History (7)
comment:1 Changed 8 years ago by jgipsl
comment:2 follow-up: ↓ 4 Changed 8 years ago by jgipsl
According to the orch meeting 15 sept and to mail exchange between : Fuxing, Frederique, Jan, Agnes, Philippe P, Josefine, following has been decided :
- module vertical change name into verticale_soil
- names of variables change name into :
- zz => znh depth for nodes in hydro
- dz => dnh distance between nodes in hydro
- dh => dlh distance between layer hydro
- tdepth => znt depht nodes termo
- tdz => dlt delta layer termo
- zinterface => zlt depth layer termo
- depth_tmax => zmaxt depth max termo
- depth_wmax => zmaxh depth max hydro
- using z=depth, d=distance/delta, n=at node, l=at interlayer, h=hydro, t=termo
- the variables will be set as SAVE PUBLIC in the module vertical_soil or in vertical_soil_var for technical issues (circular dependencies)
- units will be in meter
- zz will be on dimension nslm
The modifications into the trunk will be done in 2 steps.
1) First commit the work done by Fuxing and the others. Done in rev [2917]
2) A cleaning, clarification step were the names will be changed.
comment:3 Changed 8 years ago by aducharne
comment:4 in reply to: ↑ 2 Changed 8 years ago by jgipsl
- Owner changed from somebody to jgipsl
- Status changed from new to accepted
Cleaning, clarification has been done as described above in rev [2928]. Not yet done:
- hydrol : still using local variable zz, dz, dh. To be removed.
- thermosoil : still using local variables : zz, zz_coef, dz2. To be removed.
comment:5 Changed 8 years ago by jgipsl
Cleaning in thermosoil done in rev [2942]. Still need to be done :
- Correcting comments in thermosoil
- hydrol : still using local variable zz, dz, dh. To be removed.
comment:6 Changed 8 years ago by jgipsl
comment:7 Changed 6 years ago by jgipsl
- Resolution set to fixed
- Status changed from accepted to closed
- hydrol : the local variables zz, dz and dh (transformed into mm) are kept. This is because dz is used in 180 places and it is more useful to stay in mm. zz were changed to have the same dimension as zlh. [4210]
According to ORCH meeting 7 sept
In addition to the meeting, today with Fuxing, Frederique and Josefine, was decided that the vertical module is only called for CWRR. The special case for Choisnel is done directly in control module.