source: CONFIG/UNIFORM/v6/IPSLCM5A2/SOURCES/LMDZ/PALEO/hydrol.F90 @ 5879

Last change on this file since 5879 was 5879, checked in by snguyen, 3 years ago

Modified Makefile to add configuration PALEOIPSLCM5A2-VLR while retaining IPSLCM5A2-VLR as default configuration for compilation. Moved NEMO SOURCES of IPSLCM5A2-VLR to SOURCES/NEMO/STANDARD and created SOURCES/NEMO/PALEO for PALEOIPSLCM5A2-VLR configuration. Created paleolmdz in Makefile to compile LMDZ sources in SOURCES/LMDZ/PALEO. Added experiments IPSLCM/paleo and LMDZOR/paleo. Added file_def_nemo-lim2_paleo.xml file_def_histmth_lmdz_paleo.xml file_def_nemo-opa_paleo.xml file_def_nemo-pisces_rivers_paleo.xml file_def_nemo-pisces_paleo.xml file_def_orchidee_paleo.xml namelist_ORCA2_cfg_paleo namelist_pisces_ORCA2_cfg_paleo to GENERAL/PARAM for paleo configurations. Set day_step=720 in GENERAL/PARAM/gcm.def_96x95 for paleo configurations. Modified GENERAL/DRIVER/opa9.driver to use namelist_ORCA2_cfg_paleo for paleo configurations.

File size: 4.1 KB
Line 
1
2! $Header$
3
4
5
6SUBROUTINE hydrol(dtime, pctsrf, rain_fall, snow_fall, evap, agesno, tsol, &
7    qsol, snow, runoff)
8  USE dimphy
9  USE indice_sol_mod
10
11  IMPLICIT NONE
12  ! ======================================================================
13  ! Auteur(s): Z.X. Li (LMD/CNRS)
14  ! date: 19940414
15  ! ======================================================================
16
17  ! Traitement de l'hydrologie du sol
18  ! ---------------------------------
19  ! rain_fall: taux de pluie
20  ! snow_fall: taux de neige
21  ! agesno: age de la neige
22  ! evap: taux d'evaporation
23  ! tsol: temperature du sol
24  ! qsol: humidite du sol
25  ! snow: couverture neigeuse
26
27  include "YOMCST.h"
28
29  REAL chasno ! epaisseur du sol: 0.15 m
30  PARAMETER (chasno=3.334E+05/(2.3867E+06*0.15))
31  REAL mx_eau_sol
32  PARAMETER (mx_eau_sol=150.0)
33
34  REAL dtime
35  REAL pctsrf(klon, nbsrf)
36  REAL snow(klon, nbsrf), tsol(klon, nbsrf), qsol(klon, nbsrf)
37  REAL snow_fall(klon), rain_fall(klon), evap(klon)
38  REAL runoff(klon), agesno(klon)
39
40  INTEGER i, is
41  REAL subli, fsno
42  ! -----------------------------------------------------------------------
43  DO i = 1, klon
44
45    runoff(i) = 0.0
46
47    is = is_ter
48    snow(i, is) = snow(i, is) + snow_fall(i)*dtime*pctsrf(i, is)
49    IF (pctsrf(i,is)>epsfra) THEN
50      subli = min(evap(i)*dtime, snow(i,is))
51      snow(i, is) = snow(i, is) - subli
52      fsno = min(max((tsol(i,is)-rtt)/chasno,0.0), snow(i,is))
53      snow(i, is) = snow(i, is) - fsno
54      tsol(i, is) = tsol(i, is) - fsno*chasno
55      qsol(i, is) = qsol(i, is) + (rain_fall(i)-evap(i))*dtime + subli + fsno
56      qsol(i, is) = max(qsol(i,is), 0.0)
57      runoff(i) = runoff(i) + max(qsol(i,is)-mx_eau_sol, 0.0)*pctsrf(i, is)
58      qsol(i, is) = min(qsol(i,is), mx_eau_sol)
59      ! cc         ELSE
60      ! cc            snow(i,is) = 0.0
61      ! cc            qsol(i,is) = 0.0
62      ! cc            tsol(i,is) = 0.0
63    END IF
64
65    is = is_lic
66    snow(i, is) = snow(i, is) + snow_fall(i)*dtime*pctsrf(i, is)
67    IF (pctsrf(i,is)>epsfra) THEN
68      subli = min(evap(i)*dtime, snow(i,is))
69      snow(i, is) = snow(i, is) - subli
70      fsno = min(max((tsol(i,is)-rtt)/chasno,0.0), snow(i,is))
71      snow(i, is) = snow(i, is) - fsno
72      tsol(i, is) = tsol(i, is) - fsno*chasno
73      qsol(i, is) = qsol(i, is) + (rain_fall(i)-evap(i))*dtime + subli + fsno
74      qsol(i, is) = max(qsol(i,is), 0.0)
75      runoff(i) = runoff(i) + max(qsol(i,is)-mx_eau_sol, 0.0)*pctsrf(i, is)
76      qsol(i, is) = min(qsol(i,is), mx_eau_sol)
77      ! je limite la temperature a RTT-1.8 (il faudrait aussi prendre l'eau
78      ! de
79      ! la fonte) (Laurent Li, le 14mars98):
80      ! IM cf GK   tsol(i,is) = MIN(tsol(i,is),RTT-1.8)
81      ! IM cf GK : la glace fond a 0C, non pas a -1.8
82      !
83      ! Modif for simulations with no land ice. Because we have a landice point
84      ! on the South Pole (otherwise ORCHIDEE crashes), we alter some of the
85      ! properties to simulate a bare soil point even though it is land ice.
86      ! (ie comment line below) -- JBL 08.02.2017
87      ! tsol(i, is) = min(tsol(i,is), rtt)
88
89      ! cc         ELSE
90      ! cc            snow(i,is) = 0.0
91      ! cc            qsol(i,is) = 0.0
92      ! cc            tsol(i,is) = 0.0
93    END IF
94
95    is = is_sic
96    qsol(i, is) = 0.0
97    snow(i, is) = snow(i, is) + snow_fall(i)*dtime*pctsrf(i, is)
98    IF (pctsrf(i,is)>epsfra) THEN
99      subli = min(evap(i)*dtime, snow(i,is))
100      snow(i, is) = snow(i, is) - subli
101      fsno = min(max((tsol(i,is)-rtt)/chasno,0.0), snow(i,is))
102      snow(i, is) = snow(i, is) - fsno
103      tsol(i, is) = tsol(i, is) - fsno*chasno
104      ! je limite la temperature a RTT-1.8 (il faudrait aussi prendre l'eau
105      ! de
106      ! la fonte) (Laurent Li, le 14mars98):
107      ! IM cf GK   tsol(i,is) = MIN(tsol(i,is),RTT-1.8)
108      ! IM cf GK : la glace fond a 0C, non pas a -1.8
109      tsol(i, is) = min(tsol(i,is), rtt)
110
111      ! cc         ELSE
112      ! cc            snow(i,is) = 0.0
113      ! cc            tsol(i,is) = 0.0
114    END IF
115
116    agesno(i) = (agesno(i)+(1.-agesno(i)/50.)*dtime/86400.)* &
117      exp(-1.*max(0.0,snow_fall(i))*dtime/0.3)
118    agesno(i) = max(agesno(i), 0.0)
119
120  END DO
121
122  RETURN
123END SUBROUTINE hydrol
Note: See TracBrowser for help on using the repository browser.