25 |
INTEGER:: nbapp_rad = 12 |
INTEGER:: nbapp_rad = 12 |
26 |
! nombre d'appels des routines de rayonnements par jour |
! nombre d'appels des routines de rayonnements par jour |
27 |
|
|
28 |
INTEGER:: iflag_con = 2 |
logical:: conv_emanuel = .true. ! convection scheme of Emanuel, else Tiedtke |
|
! Convection scheme: |
|
|
! 2 Tiedtke |
|
|
! 3 Emanuel |
|
|
! 4 Emanuel vect |
|
29 |
|
|
30 |
contains |
contains |
31 |
|
|
36 |
use conf_gcm_m, only: day_step, iphysiq |
use conf_gcm_m, only: day_step, iphysiq |
37 |
|
|
38 |
namelist /clesphys2_nml/cycle_diurne, soil_model, new_oliq, ok_orodr, & |
namelist /clesphys2_nml/cycle_diurne, soil_model, new_oliq, ok_orodr, & |
39 |
ok_orolf, ok_limitvrai, nbapp_rad, iflag_con |
ok_orolf, ok_limitvrai, nbapp_rad, conv_emanuel |
40 |
|
|
41 |
!------------------------------------ |
!------------------------------------ |
42 |
|
|
43 |
print *, "Enter namelist 'clesphys2_nml'." |
print *, "Enter namelist 'clesphys2_nml'." |
44 |
read(unit=*, nml=clesphys2_nml) |
read(unit=*, nml=clesphys2_nml) |
45 |
write(unit_nml, nml=clesphys2_nml) |
write(unit_nml, nml=clesphys2_nml) |
|
call assert(iflag_con >= 2 .and. iflag_con <= 4, "read_clesphys2 iflag_con") |
|
46 |
call assert(mod(day_step / iphysiq, nbapp_rad) == 0, & |
call assert(mod(day_step / iphysiq, nbapp_rad) == 0, & |
47 |
"read_clesphys2 nbapp_rad") |
"read_clesphys2 nbapp_rad") |
48 |
call assert(nbapp_rad >= 4 .or. .not. cycle_diurne, & |
call assert(nbapp_rad >= 4 .or. .not. cycle_diurne, & |
49 |
"read_clesphys2: minimum 4 calls to radiative transfer per day if " & |
"read_clesphys2: minimum 4 calls to radiative transfer per day if " & |
50 |
// "cycle diurne") |
// "cycle_diurne") |
51 |
|
|
52 |
end subroutine read_clesphys2 |
end subroutine read_clesphys2 |
53 |
|
|