Changeset 1565 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Aug 31, 2011, 2:53:29 PM (13 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/init_phys_lmdz.F90
r1146 r1565 6 6 USE mod_grid_phy_lmdz 7 7 USE dimphy, ONLY : Init_dimphy 8 USE infotrac, ONLY : type_trac 9 #ifdef REPROBUS 10 USE CHEM_REP, ONLY : Init_chem_rep_phys 11 #endif 12 8 13 IMPLICIT NONE 9 14 … … 19 24 !$OMP PARALLEL 20 25 CALL Init_dimphy(klon_omp,nbp_lev) 26 27 ! Initialization of Reprobus 28 IF (type_trac == 'repr') THEN 29 #ifdef REPROBUS 30 CALL Init_chem_rep_phys(klon_omp,nbp_lev) 31 #endif 32 END IF 33 21 34 !$OMP END PARALLEL 22 35 -
LMDZ5/trunk/libf/phylmd/physiq.F
r1563 r1565 42 42 use radlwsw_m, only: radlwsw 43 43 USE control_mod 44 #ifdef REPROBUS 45 USE CHEM_REP, ONLY : Init_chem_rep_xjour 46 #endif 44 47 45 48 … … 1215 1218 REAL, dimension(klon, klev) :: cldtaurad ! epaisseur optique pour radlwsw,COSP 1216 1219 REAL, dimension(klon, klev) :: cldemirad ! emissivite pour radlwsw,COSP 1220 INTEGER :: nbtr_tmp ! Number of tracer inside concvl 1221 REAL, dimension(klon,klev) :: sh_in ! Specific humidity entering in phytrac 1217 1222 1218 1223 cIM for NMC files … … 1736 1741 CALL change_srf_frac(itap, dtime, days_elapsed+1, 1737 1742 * pctsrf, falb1, falb2, ftsol, u10m, v10m, pbl_tke) 1743 1744 1745 ! Update time and other variables in Reprobus 1746 IF (type_trac == 'repr') THEN 1747 #ifdef REPROBUS 1748 CALL Init_chem_rep_xjour(jD_cur-jD_ref+day_ref) 1749 print*,'xjour equivalent rjourvrai',jD_cur-jD_ref+day_ref 1750 CALL Rtime(debut) 1751 #endif 1752 END IF 1753 1738 1754 1739 1755 ! Tendances bidons pour les processus qui n'affectent pas certaines … … 2288 2304 IF (ok_cvl) THEN ! new driver for convectL 2289 2305 2306 IF (type_trac == 'repr') THEN 2307 nbtr_tmp=ntra 2308 ELSE 2309 nbtr_tmp=nbtr 2310 END IF 2290 2311 CALL concvl (iflag_con,iflag_clos, 2291 2312 . dtime,paprs,pplay,t_undi,q_undi, 2292 2313 . t_wake,q_wake,wake_s, 2293 . u_seri,v_seri,tr_seri,nbtr ,2314 . u_seri,v_seri,tr_seri,nbtr_tmp, 2294 2315 . ALE,ALP, 2295 2316 . ema_work1,ema_work2, … … 3664 3685 C 3665 3686 3687 IF (type_trac=='repr') THEN 3688 sh_in(:,:) = q_seri(:,:) 3689 ELSE 3690 sh_in(:,:) = qx(:,:,ivap) 3691 END IF 3692 3666 3693 call phytrac ( 3667 3694 I itap, days_elapsed+1, jH_cur, debut, … … 3673 3700 I rlat, frac_impa, frac_nucl,rlon, 3674 3701 I presnivs, pphis, pphi, albsol1, 3675 I qx(:,:,ivap),rhcl,cldfra, rneb,3702 I sh_in, rhcl, cldfra, rneb, 3676 3703 I diafra, cldliq, itop_con, ibas_con, 3677 3704 I pmflxr, pmflxs, prfl, psfl, -
LMDZ5/trunk/libf/phylmd/phytrac.F90
r1454 r1565 33 33 USE traclmdz_mod 34 34 USE tracinca_mod 35 USE tracreprobus_mod 35 36 USE control_mod 36 37 37 38 38 … … 55 55 INTEGER,INTENT(IN) :: nstep ! Appel physique 56 56 INTEGER,INTENT(IN) :: julien ! Jour julien 57 REAL,INTENT(IN) :: gmtime 57 REAL,INTENT(IN) :: gmtime ! Heure courante 58 58 REAL,INTENT(IN) :: pdtphys ! Pas d'integration pour la physique (seconde) 59 59 LOGICAL,INTENT(IN) :: debutphy ! le flag de l'initialisation de la physique … … 217 217 source(:,:)=0. 218 218 CALL tracinca_init(aerosol,lessivage) 219 CASE('repr') 220 source(:,:)=0. 219 221 END SELECT 220 222 ! … … 257 259 rfname, & 258 260 tr_seri, source, solsym) 261 262 CASE('repr') 263 ! -- CHIMIE REPROBUS -- 264 265 CALL tracreprobus(pdtphys, gmtime, debutphy, julien, & 266 presnivs, xlat, xlon, pphis, pphi, & 267 t_seri, pplay, paprs, sh , & 268 tr_seri, solsym) 269 259 270 END SELECT 260 271 -
LMDZ5/trunk/libf/phylmd/radiation_AR4.F
r1279 r1565 163 163 allocate(ZFSUPAI(KDLON,KFLEV+1)) 164 164 allocate(ZFSDNAI(KDLON,KFLEV+1)) 165 DO JK = 1 , KDLON*(KFLEV+1) 166 ZFSUPAD(JK,1) = 0.0 ! ZFSUPAD(:,:)=0. 167 ZFSDNAD(JK,1) = 0.0 ! ZFSDNAD(:,:)=0. 168 ZFSUPAI(JK,1) = 0.0 ! ZFSUPAI(:,:)=0. 169 ZFSDNAI(JK,1) = 0.0 ! ZFSDNAI(:,:)=0. 170 END DO 165 166 ZFSUPAD(:,:)=0. 167 ZFSDNAD(:,:)=0. 168 ZFSUPAI(:,:)=0. 169 ZFSDNAI(:,:)=0. 171 170 endif 172 !rv 173 174 c 171 175 172 IF (appel1er) THEN 176 173 PRINT*, 'SW calling frequency : ', swpas … … 526 523 USE dimphy 527 524 USE radiation_AR4_param, only : RSUN, RRAY 525 USE infotrac, ONLY : type_trac 526 #ifdef REPROBUS 527 USE CHEM_REP, ONLY : RSUNTIME, ok_SUNTIME 528 #endif 529 528 530 IMPLICIT none 529 531 cym#include "dimensions.h" … … 613 615 INTEGER jl, jk, k, jaj, ikm1, ikl 614 616 617 C If running with Reporbus, overwrite default values of RSUN. 618 C Otherwise keep default values from radiation_AR4_param module. 619 IF (type_trac == 'repr') THEN 620 #ifdef REPROBUS 621 IF (ok_SUNTIME) THEN 622 RSUN(1) = RSUNTIME(1) 623 RSUN(2) = RSUNTIME(2) 624 ENDIF 625 PRINT*,'RSUN(1): ',RSUN(1) 626 #endif 627 END IF 628 615 629 C ------------------------------------------------------------------ 616 630 C … … 754 768 USE dimphy 755 769 USE radiation_AR4_param, only : RSUN, RRAY 770 USE infotrac, ONLY : type_trac 771 #ifdef REPROBUS 772 use CHEM_REP, only : RSUNTIME, ok_SUNTIME 773 #endif 774 756 775 IMPLICIT none 757 776 cym#include "dimensions.h" … … 873 892 INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs 874 893 REAL(KIND=8) ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11 894 895 C If running with Reporbus, overwrite default values of RSUN. 896 C Otherwise keep default values from radiation_AR4_param module. 897 IF (type_trac == 'repr') THEN 898 #ifdef REPROBUS 899 IF (ok_SUNTIME) THEN 900 RSUN(1)=RSUNTIME(1) 901 RSUN(2)=RSUNTIME(2) 902 END IF 903 #endif 904 END IF 905 875 906 C 876 907 … … 2485 2516 USE dimphy 2486 2517 USE radiation_AR4_param, only : TREF, RT1, RAER, AT, BT, OCT 2518 USE infotrac, ONLY : type_trac 2519 #ifdef REPROBUS 2520 USE CHEM_REP, ONLY: RCH42D, 2521 $ RN2O2D, 2522 $ RCFC112D, 2523 $ RCFC122D, 2524 $ ok_Rtime2D 2525 #endif 2526 2487 2527 IMPLICIT none 2488 2528 cym#include "dimensions.h" … … 2800 2840 S +ZUAER(JL,5) *ZDUC(JL,JC)*ZDIFF 2801 2841 C 2802 PABCU(JL,19,JC)=PABCU(JL,19,JCP1) 2803 S +ZABLY(JL,8,JC)*RCH4/RCO2*ZPHM6(JL)*ZDIFF 2804 PABCU(JL,20,JC)=PABCU(JL,20,JCP1) 2842 C 2843 2844 IF (type_trac == 'repr') THEN 2845 IF (ok_Rtime2D) THEN 2846 #ifdef REPROBUS 2847 PABCU(JL,19,JC)=PABCU(JL,19,JCP1) 2848 S +ZABLY(JL,8,JC)*RCH42D(JL,JC)/RCO2*ZPHM6(JL)*ZDIFF 2849 PABCU(JL,20,JC)=PABCU(JL,20,JCP1) 2850 S +ZABLY(JL,9,JC)*RCH42D(JL,JC)/RCO2*ZPSM6(JL)*ZDIFF 2851 PABCU(JL,21,JC)=PABCU(JL,21,JCP1) 2852 S +ZABLY(JL,8,JC)*RN2O2D(JL,JC)/RCO2*ZPHN6(JL)*ZDIFF 2853 PABCU(JL,22,JC)=PABCU(JL,22,JCP1) 2854 S +ZABLY(JL,9,JC)*RN2O2D(JL,JC)/RCO2*ZPSN6(JL)*ZDIFF 2855 C 2856 PABCU(JL,23,JC)=PABCU(JL,23,JCP1) 2857 S +ZABLY(JL,8,JC)*RCFC112D(JL,JC)/RCO2 *ZDIFF 2858 PABCU(JL,24,JC)=PABCU(JL,24,JCP1) 2859 S +ZABLY(JL,8,JC)*RCFC122D(JL,JC)/RCO2 *ZDIFF 2860 #endif 2861 ELSE 2862 ! Same calculation as for type_trac /= repr 2863 PABCU(JL,19,JC)=PABCU(JL,19,JCP1) 2864 S +ZABLY(JL,8,JC)*RCH4/RCO2*ZPHM6(JL)*ZDIFF 2865 PABCU(JL,20,JC)=PABCU(JL,20,JCP1) 2866 S +ZABLY(JL,9,JC)*RCH4/RCO2*ZPSM6(JL)*ZDIFF 2867 PABCU(JL,21,JC)=PABCU(JL,21,JCP1) 2868 S +ZABLY(JL,8,JC)*RN2O/RCO2*ZPHN6(JL)*ZDIFF 2869 PABCU(JL,22,JC)=PABCU(JL,22,JCP1) 2870 S +ZABLY(JL,9,JC)*RN2O/RCO2*ZPSN6(JL)*ZDIFF 2871 C 2872 PABCU(JL,23,JC)=PABCU(JL,23,JCP1) 2873 S +ZABLY(JL,8,JC)*RCFC11/RCO2 *ZDIFF 2874 PABCU(JL,24,JC)=PABCU(JL,24,JCP1) 2875 S +ZABLY(JL,8,JC)*RCFC12/RCO2 *ZDIFF 2876 END IF 2877 ELSE 2878 PABCU(JL,19,JC)=PABCU(JL,19,JCP1) 2879 S +ZABLY(JL,8,JC)*RCH4/RCO2*ZPHM6(JL)*ZDIFF 2880 PABCU(JL,20,JC)=PABCU(JL,20,JCP1) 2805 2881 S +ZABLY(JL,9,JC)*RCH4/RCO2*ZPSM6(JL)*ZDIFF 2806 PABCU(JL,21,JC)=PABCU(JL,21,JCP1) 2807 S +ZABLY(JL,8,JC)*RN2O/RCO2*ZPHN6(JL)*ZDIFF 2808 PABCU(JL,22,JC)=PABCU(JL,22,JCP1) 2809 S +ZABLY(JL,9,JC)*RN2O/RCO2*ZPSN6(JL)*ZDIFF 2810 C 2811 PABCU(JL,23,JC)=PABCU(JL,23,JCP1) 2812 S +ZABLY(JL,8,JC)*RCFC11/RCO2 *ZDIFF 2813 PABCU(JL,24,JC)=PABCU(JL,24,JCP1) 2814 S +ZABLY(JL,8,JC)*RCFC12/RCO2 *ZDIFF 2882 PABCU(JL,21,JC)=PABCU(JL,21,JCP1) 2883 S +ZABLY(JL,8,JC)*RN2O/RCO2*ZPHN6(JL)*ZDIFF 2884 PABCU(JL,22,JC)=PABCU(JL,22,JCP1) 2885 S +ZABLY(JL,9,JC)*RN2O/RCO2*ZPSN6(JL)*ZDIFF 2886 C 2887 PABCU(JL,23,JC)=PABCU(JL,23,JCP1) 2888 S +ZABLY(JL,8,JC)*RCFC11/RCO2 *ZDIFF 2889 PABCU(JL,24,JC)=PABCU(JL,24,JCP1) 2890 S +ZABLY(JL,8,JC)*RCFC12/RCO2 *ZDIFF 2891 END IF 2892 2815 2893 523 CONTINUE 2816 2894 524 CONTINUE -
LMDZ5/trunk/libf/phylmd/radiation_AR4_param.F90
r1279 r1565 159 159 0.90811926E+01, 0.75073923E+02, 0.24654438E+03, 0.39332612E+03, 0.29385281E+03, 0.89107921E+02 /) , (/ 6,6 /) ) 160 160 161 REAL*8, dimension(2), parameter :: RSUN = (/ 0.441676 , 0.558324 /) 161 ! If running with Reporbus type_trac=repr, values of RSUN might be overritten in radiation_AR4 162 REAL*8, dimension(2) :: RSUN = (/ 0.441676 , 0.558324 /) 162 163 REAL*8, dimension(2,6), parameter :: RRAY = reshape ( & 163 164 (/ .428937E-01, .697200E-02,& -
LMDZ5/trunk/libf/phylmd/radlwsw.F90
r1279 r1565 30 30 31 31 USE DIMPHY 32 use assert_m, only: assert 32 USE assert_m, ONLY : assert 33 USE infotrac, ONLY : type_trac 34 #ifdef REPROBUS 35 USE CHEM_REP, ONLY : solaireTIME, ok_SUNTIME, ndimozon 36 #endif 33 37 34 38 !====================================================================== … … 229 233 ! 230 234 PSCT = solaire/zdist/zdist 235 236 IF (type_trac == 'repr') THEN 237 #ifdef REPROBUS 238 if(ok_SUNTIME) PSCT = solaireTIME/zdist/zdist 239 print*,'Constante solaire: ',PSCT*zdist*zdist 240 #endif 241 END IF 242 231 243 DO j = 1, nb_gr 232 244 iof = kdlon*(j-1) … … 281 293 ENDDO 282 294 ENDDO 295 296 IF (type_trac == 'repr') THEN 297 #ifdef REPROBUS 298 ndimozon = size(wo, 3) 299 CALL RAD_INTERACTIF(POZON,iof) 300 #endif 301 END IF 302 283 303 ! 284 304 DO k = 1, kflev+1
Note: See TracChangeset
for help on using the changeset viewer.