4 |
|
|
5 |
implicit none |
implicit none |
6 |
|
|
7 |
LOGICAL:: cycle_diurne = .TRUE. |
LOGICAL:: soil_model = .TRUE. ! choix du mod\`ele de sol (thermique ?) |
|
! Cette option permet d'éteindre le cycle diurne. |
|
|
! Peut être utile pour accélérer le code. |
|
|
|
|
|
LOGICAL:: soil_model = .TRUE. |
|
|
! Choix du modele de sol (Thermique ?) |
|
|
! Option qui pourait un string afin de pouvoir |
|
|
! plus de choix ! Ou meme une liste d'options |
|
8 |
|
|
9 |
LOGICAL:: new_oliq = .TRUE. |
LOGICAL:: new_oliq = .TRUE. |
10 |
! Permet de mettre en route la nouvelle parametrisation de l'eau liquide |
! Permet de mettre en route la nouvelle parametrisation de l'eau liquide |
11 |
|
|
12 |
LOGICAL:: ok_orodr = .TRUE. ! pour l'orographie |
! Pour l'orographie: |
13 |
LOGICAL:: ok_orolf = .TRUE. ! pour l'orographie |
LOGICAL:: ok_orodr = .TRUE. |
14 |
|
LOGICAL:: ok_orolf = .TRUE. |
15 |
|
|
16 |
LOGICAL:: ok_limitvrai = .FALSE. |
LOGICAL:: ok_limitvrai = .FALSE. |
17 |
! On peut forcer le modele a lire le fichier SST de la bonne |
! On peut forcer le modele a lire le fichier SST de la bonne |
18 |
! annee. C'est une tres bonne idee, pourquoi ne pas mettre toujours |
! annee. |
|
! a y ? |
|
19 |
|
|
20 |
INTEGER:: nbapp_rad = 12 |
INTEGER:: nbapp_rad = 12 |
21 |
! (nombre d'appels des routines de rayonnements par jour) |
! nombre d'appels des routines de rayonnements par jour |
22 |
|
|
23 |
INTEGER:: iflag_con = 2 |
logical:: conv_emanuel = .true. ! convection scheme of Emanuel, else Tiedtke |
|
! Flag pour la convection : |
|
|
! 1 LMD, |
|
|
! 2 Tiedtke, |
|
|
! 3 CCM(NCAR) |
|
|
! 3 KE |
|
|
! 4 KE vect |
|
24 |
|
|
25 |
contains |
contains |
26 |
|
|
27 |
subroutine read_clesphys2 |
subroutine read_clesphys2 |
28 |
|
|
29 |
namelist /clesphys2_nml/cycle_diurne, soil_model, new_oliq, & |
use unit_nml_m, only: unit_nml |
30 |
ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con |
use nr_util, only: assert |
31 |
|
use conf_gcm_m, only: day_step, iphysiq |
32 |
|
|
33 |
|
namelist /clesphys2_nml/soil_model, new_oliq, ok_orodr, ok_orolf, & |
34 |
|
ok_limitvrai, nbapp_rad, conv_emanuel |
35 |
|
|
36 |
!------------------------------------ |
!------------------------------------ |
37 |
|
|
38 |
print *, "Enter namelist 'clesphys2_nml'." |
print *, "Enter namelist 'clesphys2_nml'." |
39 |
read(unit=*, nml=clesphys2_nml) |
read(unit=*, nml=clesphys2_nml) |
40 |
write(unit=*, nml=clesphys2_nml) |
write(unit_nml, nml=clesphys2_nml) |
41 |
|
call assert(mod(day_step / iphysiq, nbapp_rad) == 0, & |
42 |
select case (iflag_con) |
"read_clesphys2 nbapp_rad") |
43 |
case (1) |
call assert(nbapp_rad >= 4, & |
44 |
PRINT *, 'Schéma convection LMD' |
"read_clesphys2: minimum 4 calls to radiative transfer per day") |
|
case (2) |
|
|
PRINT *, 'Schéma convection Tiedtke' |
|
|
case (3) |
|
|
PRINT *, 'Schéma convection CCM' |
|
|
END select |
|
45 |
|
|
46 |
end subroutine read_clesphys2 |
end subroutine read_clesphys2 |
47 |
|
|