Changeset 2933 for LMDZ5/trunk
- Timestamp:
- Jul 3, 2017, 6:15:15 PM (7 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd/dyn1d
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/dyn1d/1DUTILS.h
r2920 r2933 496 496 forc_v =0 497 497 CALL getin('forc_v',forc_v) 498 499 498 !Config Key = forc_w 500 499 !Config Desc = forcage ou non par w … … 667 666 668 667 modname = 'dyn1deta0 : ' 669 nmq(1)="vap" 670 nmq(2)="cond" 671 do iq=3,nqtot 672 write(nmq(iq),'("tra",i1)') iq-2 673 enddo 668 !! nmq(1)="vap" 669 !! nmq(2)="cond" 670 !! do iq=3,nqtot 671 !! write(nmq(iq),'("tra",i1)') iq-2 672 !! enddo 673 DO iq = 1,nqtot 674 nmq(iq) = trim(tname(iq)) 675 ENDDO 674 676 print*,'in dyn1deta0 ',fichnom,klon,klev,nqtot 675 677 CALL open_startphy(fichnom) … … 818 820 CALL open_restartphy(fichnom) 819 821 print*,'redm1 ',fichnom,klon,klev,nqtot 820 nmq(1)="vap" 821 nmq(2)="cond" 822 nmq(3)="tra1" 823 nmq(4)="tra2" 822 !! nmq(1)="vap" 823 !! nmq(2)="cond" 824 !! nmq(3)="tra1" 825 !! nmq(4)="tra2" 826 DO iq = 1,nqtot 827 nmq(iq) = trim(tname(iq)) 828 ENDDO 824 829 825 830 modname = 'dyn1dredem' … … 1404 1409 cor(:) = rkappa*temp*(1.+q(:,1)*rv/rd)/(play*(1.+q(:,1))) 1405 1410 1411 1406 1412 do k=2,llm-1 1407 1413 … … 2796 2802 hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1)) 2797 2803 vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1)) 2804 dtrad_mod_cas(l)= dtrad_prof_cas(k2) - frac*(dtrad_prof_cas(k2)-dtrad_prof_cas(k1)) 2798 2805 2799 2806 else !play>plev_prof_cas(1) … … 2822 2829 hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2) 2823 2830 vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2) 2831 dtrad_mod_cas(l)= frac1*dtrad_prof_cas(k1) - frac2*dtrad_prof_cas(k2) 2824 2832 2825 2833 endif ! play.le.plev_prof_cas(1) … … 2850 2858 hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact !jyg 2851 2859 vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact !jyg 2860 dtrad_mod_cas(l)= dtrad_prof_cas(nlev_cas)*fact !jyg 2852 2861 2853 2862 endif ! play … … 5029 5038 REAL tau 5030 5039 !c DATA tau /3600./ 5031 DATA tau /5400./ 5040 ! DATA tau /5400./ 5041 DATA tau /43200./ 5032 5042 ! 5033 5043 INTEGER k,i … … 5041 5051 DO k = 1,klev 5042 5052 DO i = 1,klon 5043 IF (paprs(i,1)-pplay(i,k) .GT. 10000.) THEN 5053 !CR: nudging everywhere 5054 ! IF (paprs(i,1)-pplay(i,k) .GT. 10000.) THEN 5044 5055 ! 5045 5056 d_u(i,k) = d_u(i,k) + 1./tau*(u_targ(i,k)-u(i,k)) … … 5048 5059 print *,' k,u,d_u,v,d_v ', & 5049 5060 k,u(i,k),d_u(i,k),v(i,k),d_v(i,k) 5050 ENDIF5061 ! ENDIF 5051 5062 ! 5052 5063 ENDDO … … 5175 5186 hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1)) 5176 5187 vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1)) 5188 dtrad_mod_cas(l)= dtrad_prof_cas(k2) - frac*(dtrad_prof_cas(k2)-dtrad_prof_cas(k1)) 5177 5189 5178 5190 else !play>plev_prof_cas(1) … … 5211 5223 hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2) 5212 5224 vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2) 5225 dtrad_mod_cas(l)= frac1*dtrad_prof_cas(k1) - frac2*dtrad_prof_cas(k2) 5213 5226 5214 5227 endif ! play.le.plev_prof_cas(1) … … 5247 5260 hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact !jyg 5248 5261 vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact !jyg 5262 dtrad_mod_cas(l)= dtrad_prof_cas(nlev_cas)*fact !jyg 5249 5263 5250 5264 endif ! play -
LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90
r2920 r2933 20 20 wake_deltaq, wake_deltat, wake_s, wake_dens, & 21 21 zgam, zmax0, zmea, zpic, zsig, & 22 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl 22 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, ql_ancien, qs_ancien, & 23 prlw_ancien, prsw_ancien, prw_ancien 23 24 24 25 USE dimphy … … 206 207 REAL, ALLOCATABLE, DIMENSION(:,:):: d_q_adv 207 208 REAL, ALLOCATABLE, DIMENSION(:,:):: d_q_nudge 208 ! REAL, ALLOCATABLE, DIMENSION(:):: d_t _adv209 ! REAL, ALLOCATABLE, DIMENSION(:):: d_th_adv 209 210 210 211 !--------------------------------------------------------------------- … … 580 581 allocate(d_q_adv(llm,nqtot)) 581 582 allocate(d_q_nudge(llm,nqtot)) 582 ! allocate(d_t _adv(llm))583 ! allocate(d_th_adv(llm)) 583 584 584 585 q(:,:) = 0. … … 813 814 t_ancien(1,:)=temp(:) 814 815 q_ancien(1,:)=q(:,1) 816 ql_ancien = 0. 817 qs_ancien = 0. 818 prlw_ancien = 0. 819 prsw_ancien = 0. 820 prw_ancien = 0. 815 821 !jyg< 816 822 !! pbl_tke(:,:,:)=1.e-8 … … 1078 1084 endif 1079 1085 1086 !CRio:Attention modif spécifique cas de Caroline 1087 if (forcing_les) then 1088 fcoriolis=0. 1089 !Nudging 1090 1091 !on calcule dt_cooling 1092 do l=1,llm 1093 if (play(l).ge.20000.) then 1094 dt_cooling(l)=-1.5/86400. 1095 elseif ((play(l).ge.10000.).and.((play(l).lt.20000.))) then 1096 dt_cooling(l)=-1.5/86400.*(play(l)-10000.)/(10000.)-1./86400.*(20000.-play(l))/10000.*(temp(l)-200.) 1097 else 1098 dt_cooling(l)=-1.*(temp(l)-200.)/86400. 1099 endif 1100 enddo 1101 1102 endif 1103 !RC 1104 1080 1105 IF (prt_level >= 5) print*, 'fcoriolis, xlat,mxcalc ', & 1081 1106 fcoriolis, xlat,mxcalc
Note: See TracChangeset
for help on using the changeset viewer.