Changeset 1948 for LMDZ5/trunk
- Timestamp:
- Jan 27, 2014, 11:29:29 AM (11 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phy1d/1DUTILS.h
r1914 r1948 2968 2968 2969 2969 !===================================================================== 2970 subroutine readprofiles(nlev_max,kmax, height,2970 subroutine readprofiles(nlev_max,kmax,ntrac,height, 2971 2971 . thlprof,qtprof,uprof, 2972 2972 . vprof,e12prof,ugprof,vgprof, 2973 2973 . wfls,dqtdxls,dqtdyls,dqtdtls, 2974 . thlpcar )2974 . thlpcar,tracer,nt1,nt2) 2975 2975 implicit none 2976 2976 2977 integer nlev_max,kmax,kmax2 2977 integer nlev_max,kmax,kmax2,ntrac 2978 2978 logical :: llesread = .true. 2979 2979 … … 2982 2982 . ugprof(nlev_max),vgprof(nlev_max),wfls(nlev_max), 2983 2983 . dqtdxls(nlev_max),dqtdyls(nlev_max),dqtdtls(nlev_max), 2984 . thlpcar(nlev_max) 2984 . thlpcar(nlev_max),tracer(nlev_max,ntrac) 2985 2985 2986 2986 integer, parameter :: ilesfile=1 2987 integer :: ierr,irad,imax,jtot,k 2987 integer :: ierr,irad,imax,jtot,k,itrac,nt1,nt2 2988 2988 logical :: lmoist,lcoriol,ltimedep 2989 2989 real :: xsize,ysize … … 3015 3015 end do 3016 3016 close(ilesfile) 3017 3018 open(ilesfile,file='trac.inp.001',status='old',iostat=ierr) 3019 nt1=ntrac 3020 nt2=ntrac 3021 if (ierr /= 0) then 3022 print*,'WARNING : trac.inp does not exist' 3023 else 3024 read (ilesfile,*) kmax2,nt1,nt2 3025 if (nt2>ntrac) then 3026 stop'Augmenter le nombre de traceurs dans traceur.def' 3027 endif 3028 if (kmax .ne. kmax2) then 3029 print *, 'fichiers prof.inp et lscale.inp incompatibles :' 3030 print *, 'nbre de niveaux : ',kmax,' et ',kmax2 3031 stop 'lecture profiles' 3032 endif 3033 do k=1,kmax 3034 read (ilesfile,*) height(k),(tracer(k,itrac),itrac=nt1,nt2) 3035 end do 3036 close(ilesfile) 3037 endif 3017 3038 3018 3039 return -
LMDZ5/trunk/libf/phy1d/1D_read_forc_cases.h
r1907 r1948 24 24 !---------------------------------------------------------------------- 25 25 26 call readprofiles(nlev_max,kmax, height,26 call readprofiles(nlev_max,kmax,nqtot,height, 27 27 . tttprof,qtprof,uprof,vprof, 28 28 . e12prof,ugprof,vgprof, 29 29 . wfls,dqtdxls,dqtdyls,dqtdtls, 30 . thlpcar )30 . thlpcar,qprof,nq1,nq2) 31 31 endif 32 32 … … 62 62 ug(l) = ugprof(kmax)-frac*( ugprof(kmax)- ugprof(kmax-1)) 63 63 vg(l) = vgprof(kmax)-frac*( vgprof(kmax)- vgprof(kmax-1)) 64 q(l,nq1:nq2)=qprof(kmax,nq1:nq2) 65 s -frac*(qprof(kmax,nq1:nq2)-qprof(kmax-1,nq1:nq2)) 64 66 omega(l)= wfls(kmax)-frac*( wfls(kmax)- wfls(kmax-1)) 65 67 … … 85 87 ug(l) = ugprof(k)-frac*( ugprof(k)- ugprof(k-1)) 86 88 vg(l) = vgprof(k)-frac*( vgprof(k)- vgprof(k-1)) 89 q(l,nq1:nq2)=qprof(k,nq1:nq2) 90 s -frac*(qprof(k,nq1:nq2)-qprof(k-1,nq1:nq2)) 87 91 omega(l)= wfls(k)-frac*( wfls(k)- wfls(k-1)) 88 92 dq_dyn(l,1)=dqtdtls(k)-frac*(dqtdtls(k)-dqtdtls(k-1)) … … 104 108 vg(l) = vgprof(1) 105 109 omega(l)= wfls(1) 110 q(l,nq1:nq2)=qprof(1,nq1:nq2) 106 111 dq_dyn(l,1) =dqtdtls(1) 107 112 dt_cooling(l)=thlpcar(1) -
LMDZ5/trunk/libf/phy1d/lmdz1d.F
r1943 r1948 90 90 91 91 integer :: kmax = llm 92 integer nlev_max,llm70093 parameter (nlev_max = 1000)92 integer llm700,nq1,nq2 93 INTEGER, PARAMETER :: nlev_max=1000, nqmx=1000 94 94 real timestep, frac, timeit 95 95 real height(nlev_max),tttprof(nlev_max),qtprof(nlev_max), … … 97 97 . ugprof(nlev_max),vgprof(nlev_max),wfls(nlev_max), 98 98 . dqtdxls(nlev_max),dqtdyls(nlev_max), 99 . dqtdtls(nlev_max),thlpcar(nlev_max) 99 . dqtdtls(nlev_max),thlpcar(nlev_max), 100 . qprof(nlev_max,nqmx) 100 101 101 102 real :: fff … … 427 428 call infotrac_init 428 429 430 if (nqtot>nqmx) STOP'Augmenter nqmx dans lmdz1d.F' 429 431 allocate(q(llm,nqtot)) ; q(:,:)=0. 430 432 allocate(dq(llm,nqtot)) -
LMDZ5/trunk/libf/phylmd/physiq.F90
r1938 r1948 2296 2296 'AVANT LA CONVECTION SECHE , iflag_thermals=' & 2297 2297 ,iflag_thermals,' nsplit_thermals=',nsplit_thermals 2298 if(iflag_thermals .lt.0) then2298 if(iflag_thermals<=0) then 2299 2299 ! Rien 2300 2300 ! ==== 2301 IF(prt_level>9)WRITE(lunout,*)'pas de convection' 2301 IF(prt_level>9)WRITE(lunout,*)'pas de modele de panache thermique' 2302 IF(prt_level>9.and.iflag_thermals<0)WRITE(lunout,*)'pas d ajustement convectif' 2302 2303 2303 2304 … … 2446 2447 ! Dans le cas contraire, on demarre au niveau 1. 2447 2448 2448 if (iflag_thermals .ge.13.or.iflag_thermals.eq.0) then2449 if (iflag_thermals>=13.or.iflag_thermals<=0) then 2449 2450 2450 2451 if(iflag_thermals.eq.0) then … … 2461 2462 ! non nulles numeriquement pour des mailles non concernees. 2462 2463 2463 if (iflag_thermals .eq.0) then2464 if (iflag_thermals==0) then 2464 2465 CALL ajsec_convV2(paprs, pplay, t_seri,q_seri & 2465 2466 , d_t_ajsb, d_q_ajsb) 2466 else 2467 else if (iflag_thermals>0) then 2467 2468 CALL ajsec(paprs, pplay, t_seri,q_seri,limbas & 2468 2469 , d_t_ajsb, d_q_ajsb)
Note: See TracChangeset
for help on using the changeset viewer.