--- trunk/libf/phylmd/clesphys2.f90 2008/07/25 19:59:34 13 +++ trunk/Sources/phylmd/clesphys2.f 2016/03/16 11:11:27 182 @@ -1,64 +1,53 @@ module clesphys2 - ! v 1.3 2005/06/06 13:16:33 fairhead + ! From version 1.3 2005/06/06 13:16:33 implicit none - LOGICAL:: cycle_diurne= .TRUE. - ! Cette option permet d'éteindre le cycle diurne. - ! Peut être utile pour accélérer le code. - - LOGICAL:: soil_model= .TRUE. - ! Help = Choix du modele de sol (Thermique ?) - ! Option qui pourait un string afin de pouvoir - ! plus de choix ! Ou meme une liste d'options - - LOGICAL:: new_oliq= .TRUE. - ! Help = Permet de mettre en route la - ! nouvelle parametrisation de l'eau liquide + LOGICAL:: cycle_diurne = .TRUE. + ! Cette option permet d'\'eteindre le cycle diurne. Peut \^etre utile + ! pour acc\'el\'erer le code. - LOGICAL:: ok_orodr= .TRUE. ! orodr pour l'orographie + LOGICAL:: soil_model = .TRUE. + ! Choix du modele de sol (Thermique ?) + LOGICAL:: new_oliq = .TRUE. + ! Permet de mettre en route la nouvelle parametrisation de l'eau liquide + + ! Pour l'orographie: + LOGICAL:: ok_orodr = .TRUE. LOGICAL:: ok_orolf = .TRUE. - ! Desc = Orolf ou non pour l orographie - LOGICAL:: ok_limitvrai= .FALSE. - ! Help = On peut forcer le modele a lire le - ! fichier SST de la bonne annee. C'est une tres bonne - ! idee, pourquoi ne pas mettre toujours a y ? - - INTEGER:: nbapp_rad= 12 - ! (nombre d'appels des routines de rayonnements par jour) - - INTEGER:: iflag_con = 2 - ! Flag pour la convection : - ! 1 LMD, - ! 2 Tiedtke, - ! 3 CCM(NCAR) - ! 3 KE - ! 4 KE vect + LOGICAL:: ok_limitvrai = .FALSE. + ! On peut forcer le modele a lire le fichier SST de la bonne + ! annee. + + INTEGER:: nbapp_rad = 12 + ! nombre d'appels des routines de rayonnements par jour + + logical:: conv_emanuel = .true. ! convection scheme of Emanuel, else Tiedtke contains subroutine read_clesphys2 - namelist /clesphys2_nml/cycle_diurne, soil_model, new_oliq, & - ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con + use unit_nml_m, only: unit_nml + use nr_util, only: assert + use conf_gcm_m, only: day_step, iphysiq + + namelist /clesphys2_nml/cycle_diurne, soil_model, new_oliq, ok_orodr, & + ok_orolf, ok_limitvrai, nbapp_rad, conv_emanuel !------------------------------------ print *, "Enter namelist 'clesphys2_nml'." read(unit=*, nml=clesphys2_nml) - write(unit=*, nml=clesphys2_nml) - - select case (iflag_con) - case (1) - PRINT *, 'Schéma convection LMD' - case (2) - PRINT *, 'Schéma convection Tiedtke' - case (3) - PRINT *, 'Schéma convection CCM' - END select + write(unit_nml, nml=clesphys2_nml) + call assert(mod(day_step / iphysiq, nbapp_rad) == 0, & + "read_clesphys2 nbapp_rad") + call assert(nbapp_rad >= 4 .or. .not. cycle_diurne, & + "read_clesphys2: minimum 4 calls to radiative transfer per day if " & + // "cycle diurne") end subroutine read_clesphys2