Changeset 652 for LMDZ4/trunk/libf
- Timestamp:
- Jun 6, 2005, 3:16:33 PM (19 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 2 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/YOMCST.h
r524 r652 14 14 REAL RSIGMA 15 15 ! A1.4 Thermodynamic gas phase 16 REAL R,RMD,RM V,RD,RV,RCPD,RCPV,RCVD,RCVV16 REAL R,RMD,RMO3,RMV,RD,RV,RCPD,RCPV,RCVD,RCVV 17 17 REAL RKAPPA,RETV 18 18 ! A1.5,6 Thermodynamic liquid,solid phases … … 27 27 COMMON/YOMCST/RPI ,RCLUM ,RHPLA ,RKBOL ,RNAVO 28 28 S ,RDAY ,REA ,REPSM ,RSIYEA,RSIDAY,ROMEGA 29 s,R_ecc, R_peri, R_incl29 S ,R_ecc, R_peri, R_incl 30 30 S ,RA ,RG ,R1SA 31 31 S ,RSIGMA 32 S ,R ,RMD ,RM V ,RD ,RV ,RCPD32 S ,R ,RMD ,RMO3 ,RMV ,RD ,RV ,RCPD 33 33 S ,RCPV ,RCVD ,RCVV ,RKAPPA,RETV 34 34 S ,RCW ,RCS -
LMDZ4/trunk/libf/phylmd/clesphys.h
r644 r652 6 6 LOGICAL cycle_diurne,soil_model,new_oliq,ok_orodr,ok_orolf 7 7 LOGICAL ok_limitvrai 8 LOGICAL bug_ozone 8 9 INTEGER nbapp_rad, iflag_con 9 10 REAL co2_ppm, solaire … … 29 30 30 31 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, 31 ,ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con32 ,, co2_ppm, solaire, RCO2, RCH4, RN2O, RCFC11, RCFC1233 ,, CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt34 ,, top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter35 ,, ok_kzmin, lev_histhf, lev_histday, lev_histmth36 ,, type_run, ok_isccp, ok_regdyn37 ,, lonmin_ins, lonmax_ins, latmin_ins, latmax_ins38 ,, ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day39 , , ecrit_mth, ecrit_tra, ecrit_reg32 S ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con 33 S , co2_ppm, solaire, RCO2, RCH4, RN2O, RCFC11, RCFC12 34 S , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 35 S , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter 36 S , ok_kzmin, lev_histhf, lev_histday, lev_histmth 37 S , type_run, ok_isccp, ok_regdyn 38 S , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 39 S , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 40 S , ecrit_mth, ecrit_tra, ecrit_reg, bug_ozone -
LMDZ4/trunk/libf/phylmd/conf_phys.F90
r644 r652 704 704 call getin('ecrit_reg',ecrit_reg) 705 705 ! 706 ! 707 ! 708 !Config Key = bug_ozone 709 !Config Desc = Pour retrouver le bug de l'ozone (IPCC), mettre a true 710 !Config Def = false 711 !Config Help = 712 ! 713 bug_ozone = .false. 714 call getin('bug_ozone',bug_ozone) 706 715 707 716 … … 765 774 write(numout,*)' ecrit_ ins, hf, hf2mth, day, mth, reg, tra',& 766 775 & ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra 776 write(numout,*)' bug_ozone = ', bug_ozone 767 777 return 768 778 -
LMDZ4/trunk/libf/phylmd/ozonecm.F
r641 r652 21 21 #include "dimensions.h" 22 22 #include "dimphy.h" 23 #include "clesphys.h" 24 #include "YOMCST.h" 23 25 REAL rlat(klon), paprs(klon,klev+1) 24 REAL o3(klon,klev) 26 REAL o3(klon,klev) ! ozone concentration in kg/kg 25 27 REAL tozon, rjour, pi, pl 26 28 INTEGER i, k … … 77 79 ENDDO 78 80 DO k = 1, klev 79 DO i = 1, klon 80 o3(i,k) = field(i,k) - field(i,k+1) 81 ENDDO 81 DO i = 1, klon 82 o3(i,k) = field(i,k) - field(i,k+1) 83 IF (.not. bug_ozone) then 84 c convert o3 into kg/kg 85 o3(i,k)=MAX(o3(i,k),1.0e-12)*RG/46.6968 86 . /(paprs(i,k)-paprs(i,k+1)) 87 ENDIF 88 ENDDO 82 89 ENDDO 83 90 c -
LMDZ4/trunk/libf/phylmd/radlwsw.F
r644 r652 32 32 c t--------input-R- temperature (K) 33 33 c q--------input-R- vapeur d'eau (en kg/kg) 34 c wo-------input-R- contenu en ozone (en cm.atm)34 c wo-------input-R- contenu en ozone (en kg/kg) correction MPL 100505 35 35 c cldfra---input-R- fraction nuageuse (entre 0 et 1) 36 36 c cldtaupd---input-R- epaisseur optique des nuages dans le visible (present-day value) … … 238 238 c wo: cm.atm (epaisseur en cm dans la situation standard) 239 239 c POZON: kg/kg 240 POZON(i,k) = MAX(wo(iof+i,k),1.0e-12)*RG/46.6968 240 IF (bug_ozone) then 241 POZON(i,k) = MAX(wo(iof+i,k),1.0e-12)*RG/46.6968 241 242 . /(paprs(iof+i,k)-paprs(iof+i,k+1)) 242 243 . *(paprs(iof+i,1)/101325.0) 244 ELSE 245 c le calcul qui suit est maintenant fait dans ozonecm (MPL) 246 POZON(i,k) = wo(i,k) 247 ENDIF 243 248 PCLDLD(i,k) = cldfra(iof+i,k)*cldemi(iof+i,k) 244 249 PCLDLU(i,k) = cldfra(iof+i,k)*cldemi(iof+i,k) … … 550 555 DO JL = 1, KDLON 551 556 ZCLDSW0(JL,JK) = 0.0 552 ZOZ(JL,JK) = POZON(JL,JK)*46.6968/RG 557 IF (bug_ozone) then 558 ZOZ(JL,JK) = POZON(JL,JK)*46.6968/RG 553 559 . *PDP(JL,JK)*(101325.0/PPSOL(JL)) 560 ELSE 561 c Correction MPL 100505 562 ZOZ(JL,JK) = POZON(JL,JK)*RMD/RMO3*46.6968/RG*PDP(JL,JK) 563 ENDIF 554 564 ENDDO 555 565 ENDDO … … 2884 2894 DO k = 1, KFLEV ! convertir ozone de kg/kg en pa/pa 2885 2895 DO i = 1, KDLON 2886 ZOZ(i,k) = POZON(i,k)*PDP(i,k) * 28.9644/47.9942 2896 c convertir ozone de kg/kg en pa (modif MPL 100505) 2897 ZOZ(i,k) = POZON(i,k)*PDP(i,k) * RMD/RMO3 2898 c print *,'LW: ZOZ*10**6=',ZOZ(i,k)*1000000. 2887 2899 ENDDO 2888 2900 ENDDO -
LMDZ4/trunk/libf/phylmd/suphec.F
r524 r652 116 116 R=RNAVO*RKBOL 117 117 RMD=28.9644 118 RMO3=47.9942 118 119 RMV=18.0153 119 120 RD=1000.*R/RMD … … 128 129 WRITE(UNIT=6,FMT='('' Perfect gas = '',e13.7)') R 129 130 WRITE(UNIT=6,FMT='('' Dry air mass = '',e13.7)') RMD 131 WRITE(UNIT=6,FMT='('' Ozone mass = '',e13.7)') RMO3 130 132 WRITE(UNIT=6,FMT='('' Vapour mass = '',e13.7)') RMV 131 133 WRITE(UNIT=6,FMT='('' Dry air cst. = '',e13.7)') RD
Note: See TracChangeset
for help on using the changeset viewer.