!###############################################################################! ! CCATT-BRAMS/MCGA-CPTEC/WRF emission model CPTEC/INPE ! ! Version 1.0.0: 12/nov/2010 ! ! Coded by Saulo Freitas and Karla Longo ! ! Contact: gmai@cptec.inpe.br - http://meioambiente.cptec.inpe.br ! !###############################################################################! module diurnal_cycle contains subroutine cycle(ihour,rhour,iyear,imon,iday,ng,ngrids,n1,n2,n3,rlat,rlon,rland,deltax,deltay& ,xt,yt,xm,ym,plat,plon) use grid_dims_out, only: grid_type,retro_data_dir use retro_emissions use util_geometry implicit none integer, parameter :: nlon = 720, nlat=360, nmonths=12 integer, intent (in) :: iyear,imon,iday,ng,n1,n2,n3,ngrids,ihour integer, intent (inout) :: rhour real, intent (in), dimension(n1,n2) :: rlat,rlon,rland real, allocatable, dimension(:,:):: grid_area real, intent (in) :: deltax,deltay real,intent(in) :: xt(n1), yt(n2),xm(n1), ym(n2) integer :: ispc,i,j,icity,jcity,ipol,jpol real plat,plon,peso,pesoS,pesoN,pesoV,rrlat,rrlon,peso2 CHARACTER (20) :: City_name real SantiagoLON1,SantiagoLON2,SantiagoLAT1,SantiagoLAT2 integer ip11,ip12,ip21,ip22,jp11,jp12,jp21,jp22 INTEGER :: points,grid_count,ret,ipoly,jpoly REAL :: x_grid_type(n1),y_grid_type(n2) !-----------------------------CO-------------------------------- ! SEGUINDO CETESB !--------------------------------------------------------------- if (rhour.eq.-1) then rhour=23 endif if (rhour.eq.-2) then rhour=22 endif if (rhour.eq.-3) then rhour=21 endif if (rhour.eq.-4) then rhour=20 endif PRINT*, rhour select case (rhour) case (0) peso= 0.018 pesoN=0.027 case (1) peso= 0.015 pesoN=0.016 case (2) peso= 0.020 pesoN=0.019 case (3) peso= 0.025 pesoN=0.023 case (4) peso= 0.031 pesoN=0.027 case (5) peso= 0.036 pesoN=0.031 case (6) peso= 0.041 pesoN=0.035 case (7) peso= 0.045 pesoN=0.040 case (8) peso= 0.048 pesoN=0.044 case (9) peso= 0.050 pesoN=0.048 case (10) peso= 0.050 pesoN=0.051 case (11) peso= 0.049 pesoN=0.054 case (12) peso= 0.047 pesoN=0.056 case (13) peso= 0.047 pesoN=0.057 case (14) peso= 0.048 pesoN=0.057 case (15) peso= 0.050 pesoN=0.057 case (16) peso= 0.053 pesoN=0.056 case (17) peso= 0.056 pesoN=0.054 case (18) peso= 0.058 pesoN=0.051 case (19) peso= 0.056 pesoN=0.048 case (20) peso= 0.052 pesoN=0.044 case (21) peso= 0.045 pesoN=0.040 case (22) peso= 0.035 pesoN=0.035 case (23) peso= 0.026 pesoN=0.031 end select PRINT*,'*****************************************************************' PRINT*,'DIURNAL CYCLE - UTC TIME=',ihour,'LOCAL TIME=',rhour,'PESO=',peso PRINT*,'*****************************************************************' !---------------------------------CALCULO I,J DOS LIMITES URBANOS DE SANTIAGO-------------------------------! SantiagoLAT1=-33.1 SantiagoLAT2=-33.7 SantiagoLON1=-71 SantiagoLON2=-70.3 City_Name='Santiago' call update_emissions_by_city(ng,n1,n2,xt,yt,deltax,deltay,plat,plon,rlon,rlat& ,SantiagoLON1,SantiagoLAT1,ip11,jp11,City_Name,grid_type) print*,ip11,jp11 call update_emissions_by_city(ng,n1,n2,xt,yt,deltax,deltay,plat,plon,rlon,rlat& ,SantiagoLON1,SantiagoLAT2,ip12,jp12,City_Name,grid_type) print*,ip12,jp12 call update_emissions_by_city(ng,n1,n2,xt,yt,deltax,deltay,plat,plon,rlon,rlat& ,SantiagoLON2,SantiagoLAT1,ip21,jp21,City_Name,grid_type) print*,ip21,jp21 call update_emissions_by_city(ng,n1,n2,xt,yt,deltax,deltay,plat,plon,rlon,rlat& ,SantiagoLON2,SantiagoLAT2,ip22,jp22,City_Name,grid_type) print*,ip22,jp22 !-----------------------------------------------------------------------------------------------------------! do i=1,n1 do j=1,n2 do ispc = 1, nspecies if (ispc.eq.13) then retro_g(ispc)%src(i,j,1)=(retro_g(ispc)%src(i,j,1)*peso)/3600 endif if (ispc.eq.18) then retro_g(ispc)%src(i,j,1)=(retro_g(ispc)%src(i,j,1)*pesoN)/3600 endif if (ispc.ne.13.and.ispc.ne.18) then retro_g(ispc)%src(i,j,1)=(retro_g(ispc)%src(i,j,1)*peso)/3600 endif enddo enddo enddo end subroutine cycle end module diurnal_cycle