--- trunk/libf/phylmd/clesphys.f90 2008/02/27 13:16:39 3 +++ trunk/phylmd/clesphys.f 2018/07/11 15:31:01 273 @@ -1,65 +1,58 @@ module clesphys - ! 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:: ok_orodr= .TRUE. - ! Desc = Orodr ou non pour l orographie - - 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 ? - - LOGICAL bug_ozone - - INTEGER:: nbapp_rad= 12 - ! (nombre d'appels des routines de rayonnements par jour) - - INTEGER:: iflag_con = 2 - ! Help = Flag pour la convection les options suivantes existent : - ! 1 pour LMD, - ! 2 pour Tiedtke, - ! 3 pour CCM(NCAR) - ! Flag pour la convection (1 pour LMD, 2 pour Tiedtke, 3 KE, 4 KE vect) - - REAL co2_ppm, solaire - double precision RCO2, RCH4, RN2O, RCFC11, RCFC12 - double precision CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt - !IM simulateur ISCCP - INTEGER top_height, overlap - !IM seuils cdrm, cdrh - REAL cdmmax, cdhmax - !IM param. stabilite s/ terres et en dehors - REAL ksta, ksta_ter - !IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH - LOGICAL ok_kzmin - INTEGER lev_histhf ! niveau sorties 6h - integer lev_histday ! niveau sorties journalieres - integer lev_histmth ! niveau sorties mensuelles - CHARACTER(len=4) type_run - LOGICAL ok_isccp, ok_regdyn - REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins - INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day - INTEGER ecrit_mth, ecrit_tra, ecrit_reg + REAL:: co2_ppm = 348. ! AMIP II, concentration du gaz carbonique en ppmv + real:: solaire = 1365. ! AMIP II, constante solaire en W/m2 + double precision, save:: RCO2 ! Concentration du CO2 + double precision, save:: RCH4 ! Concentration du CH4 + double precision, save:: RN2O ! Concentration du N2O + double precision, save:: RCFC11 ! Concentration du CFC11 + double precision, save:: RCFC12 ! Concentration du CFC12 + double precision:: CH4_ppb = 1650., N2O_ppb = 306. + double precision:: CFC11_ppt = 280., CFC12_ppt = 484. + REAL:: cdmmax = 1.3E-3, cdhmax = 1.1E-3 ! seuils cdrm, cdrh + + REAL:: ksta = 1.0e-10, ksta_ter = 1.0e-10 + ! param\`etres de stabilit\'e sur terre et en dehors + + LOGICAL:: ok_kzmin = .true.! calcul de Kzmin dans la couche limite de surface + INTEGER, save:: ecrit_ins + logical:: ok_instan = .false. ! sorties instantanees dans le fichier histins + real:: f_cdrag_ter = 1., f_cdrag_oce = 0.8 ! surface drag coefficients + +contains + + subroutine read_clesphys + + use unit_nml_m, only: unit_nml + + namelist /clesphys_nml/ solaire, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, & + CFC12_ppt, cdmmax, cdhmax, ksta, ksta_ter, ok_kzmin, ecrit_ins, & + ok_instan, f_cdrag_ter, f_cdrag_oce + + !--------------------------------------------------------- + + ecrit_ins = NINT(86400./48.) + + print *, "Enter namelist 'clesphys_nml'." + read(unit=*, nml=clesphys_nml) + write(unit_nml, nml=clesphys_nml) + + RCO2 = co2_ppm * 1.0e-06 * 44.011/28.97 + RCH4 = CH4_ppb * 1.0E-09 * 16.043/28.97 + RN2O = N2O_ppb * 1.0E-09 * 44.013/28.97 + RCFC11=CFC11_ppt* 1.0E-12 * 137.3686/28.97 + RCFC12 = CFC12_ppt * 1.0E-12 * 120.9140/28.97 + + print *, ' RCO2 = ', RCO2 + print *, ' RCH4 = ', RCH4 + print *, ' RN2O = ', RN2O + print *, ' RCFC11 = ', RCFC11 + print *, ' RCFC12 = ', RCFC12 - save + end subroutine read_clesphys end module clesphys