Wednesday, December 17, 2008

Northeast Monsoon

The period October to December is referred to as Northeast Monsoon season over peninsular India. Earlier this period was also referred to as "Post-Monsoon Season" or "Retreating southwest Monsoon Season".

Northeast Monsoon season is the major period of rainfall activity over south peninsula, particularly in the eastern half comprising of the meteorological subdivisions of Coastal Andhra Pradesh, Rayalaseema and Tamilnadu-Pondicherry. For Tamilnadu this is the main rainy season accounting for about 48% of the annual rainfall. Coastal districts of the State get nearly 60% of the annual rainfall and the interior districts get about 40-50% of the annual rainfall.

Though the principal rainy season for Interior Karnataka, Kerala and Lakshadweep is the Southwest Monsoon season, rainfall continues till December in these sub-divisions, the period October-December (Northeast Monsoon ) contributing about 20 % of the annual total.

The increase in rainfall activity over Andhra-Tamilnadu coasts which takes place sometime around middle of October is generally considered as the "setting in of Northeast Monsoon". Normal date of onset of the northeast monsoon is around 20 October with a deviation of about a week on either side.

The rainfall over south peninsula towards the end of southwest monsoon season is mainly in the interior districts and it generally occurs in the afternoon , evening or early part of the night. As the season advances the rainfall is mainly in the coastal districts with the interior districts getting less rain. It generally occurs during night and early morning hours . Maximum rainfall mostly occurs between 2100 and 0300 hrs IST. Along the east coast rainfall during late night and morning hours (2400 to 0900 hrs) is an usual feature of northeast monsoon. When there is a low, depression or cyclone close by the rainfall occurs throughout the day.

Northeast monsoon rains occur in spells of about 3 to 4 days duration. Spells exceeding 4 days are much less (20%). There are at times long spells of dry weather with little or no rain.

http://www.imdchennai.gov.in/northeast_monsoon.htm


NORTHEAST MONSOON RAINFALL OVER CHENNAI
YEAR NUNGAMBAKKAM (NORMAL 75 CM) MINAMBAKKAM (NORMAL 77CM)
1990 97 77
1991 79 75
1992 73 75
1993 90 104
1994 118 115
1995 53 44
1996 126 113
1997 157 144
1998 72 80
1999 53 52
2000 40 50
2001 108 97
2002 99 83
2003 31 38
2004 57 62
2005 211 186
2006 89 96





NORTHEAST MONSOON RAINFALL OVER TAMILNADU
YEAR DATE OF ONSET SEASONAL RAINFALL (MM) ACTUAL SEASONAL RAINFALL (MM) NORMAL PERCENTAGE DEPARTURE (%)
1990 19 October 468 483 - 3
1991 20 October 488 477 + 2
1992 2 November 514 470 + 9
1993 21 October 784 479 + 64
1994 18 October 534 418 + 12
1995 23 October 260 479 - 46
1996 11 October 592 477 + 24
1997 13 October 810 478 + 70
1998 28 October 619 478 + 30
1999 21 October 517 483 + 7
2000 2 November 346 483 -28
2001 16 October 382 483 -21
2002 25 October 395 483 -14
2003 19 October 435 469 -7
2004 18 October 435 432 1
2005 12 October 773 432 79
2006 19 October 497 432 15

Thursday, December 4, 2008

zonal and meridianal components of wind code in fortran

c Program to calculate zonal and meridianal components of wind


integer ff,ddd
real u,v

print*,'Enter the wind speed:'
read*,ff
print*,'Enter the wind direction:'
read*,ddd


u=0.5148*(-1)*ff*sin(ddd*3.14/180)
v=0.5148*(-1)*ff*cos(ddd*3.14/180)

write(*,1)u
1 format('zonal velocity=',f10.4,' m/s' )

write(*,2)v
2 format('Meridianal velocity=',f10.4,' m/s' )

stop
end

Wednesday, December 3, 2008

Stream function by Relaxation Tecnique in fortran

c Program to find Stream function by Relaxation Tecnique

dimension u(10,10),v(10,10),vort(10,10),ngrid(10,10),ogrid(10,10)
real forcef,ngrid,ogrid,residue
integer n,k

print*,'Enter the size of grid excluding boundary:'
read*,n
print*,'Enter the distance between grid points :'
read*,d


do i=1,n+2
u(1,i)=0
u(i,1)=0
u(n+2,i)=0
u(i,n+2)=0
v(1,i)=0
v(i,1)=0
v(n+2,i)=0
v(i,n+2)=0
vort(1,i)=0
vort(i,1)=0
vort(n+2,i)=0
vort(i,n+2)=0
ngrid(1,i)=0
ngrid(i,1)=0
ngrid(n+2,i)=0
ngrid(i,n+2)=0
ogrid(1,i)=0
ogrid(i,1)=0
ogrid(n+2,i)=0
ogrid(i,n+2)=0
enddo

open (1,file='uwnd.dat')
read (1,*)((u(i,j),j=2,n+1),i=2,n+1)
close(1)
open (2,file='vwnd.dat')
read (2,*)((v(i,j),j=2,n+1),i=2,n+1)
close(2)
do i=2,n+1
do j=2,n+1
vort(i,j)=((v(i+1,j)-v(i-1,j))-(u(i,j+1)-u(i,j-1)))/(2*d)
enddo
enddo

write(*,*)'Vorticity values'
do i=2,n+1
write(*,*) (vort(i,j),j=2,n+1)
enddo

do i=2,n+1
do j=2,n+1
ngrid(i,j)=0
enddo
enddo

k=1
10 print*,'Trial :',k

do i=2,n+1
do j=2,n+1
ogrid(i,j)=ngrid(i,j)
enddo
enddo

do i=2,n+1
do j=2,n+1
residue=ogrid(i-1,j)+ogrid(i+1,j)+ogrid(i,j-1)+ogrid(i,j+1)-(4*ogrid(i,j))+(d*d*vort(i,j))

ngrid(i,j)=ogrid(i,j)+(residue/4)
enddo
enddo

do i=2,n+1
do j=2,n+1
if((ngrid(i,j)-ogrid(i,j)).gt.0.0001) then
k=k+1
goto 10
endif
enddo
enddo


open(3,file="stream_function.txt")
do i=2,n+1
write(3,*) (ngrid(i,j),j=2,n+1)
enddo
write(*,*)'Stream function values are written in the file stream_function.txt'
do i=2,n+1
write(*,*) (ngrid(i,j),j=2,n+1)
enddo
stop
end

Velocity potential by Relaxation Tecnique in fortran

c Program to find Velocity potential by Relaxation Tecnique

dimension u(10,10),v(10,10),div(10,10),ngrid(10,10),ogrid(10,10)
real forcef,ngrid,ogrid,residue
integer n,k

print*,'Enter the size of grid excluding boundary:'
read*,n
print*,'Enter the distance between grid points :'
read*,d


do i=1,n+2
u(1,i)=0
u(i,1)=0
u(n+2,i)=0
u(i,n+2)=0
v(1,i)=0
v(i,1)=0
v(n+2,i)=0
v(i,n+2)=0
div(1,i)=0
div(i,1)=0
div(n+2,i)=0
div(i,n+2)=0
ngrid(1,i)=0
ngrid(i,1)=0
ngrid(n+2,i)=0
ngrid(i,n+2)=0
ogrid(1,i)=0
ogrid(i,1)=0
ogrid(n+2,i)=0
ogrid(i,n+2)=0
enddo

open (1,file='uwnd.dat')
read (1,*)((u(i,j),j=2,n+1),i=2,n+1)
close(1)
open (2,file='vwnd.dat')
read (2,*)((v(i,j),j=2,n+1),i=2,n+1)
close(2)
do i=2,n+1
do j=2,n+1
div(i,j)=((u(i+1,j)-u(i-1,j))+(v(i,j+1)-v(i,j-1)))/(2*d)
enddo
enddo

write(*,*)'Divergence values'
do i=2,n+1
write(*,*) (div(i,j),j=2,n+1)
enddo

do i=2,n+1
do j=2,n+1
ngrid(i,j)=0
enddo
enddo

k=1
10 print*,'Trial :',k

do i=2,n+1
do j=2,n+1
ogrid(i,j)=ngrid(i,j)
enddo
enddo

do i=2,n+1
do j=2,n+1
residue=ogrid(i-1,j)+ogrid(i+1,j)+ogrid(i,j-1)+ogrid(i,j+1)-(4*ogrid(i,j))+(d*d*div(i,j))

ngrid(i,j)=ogrid(i,j)+(residue/4)
enddo
enddo

do i=2,n+1
do j=2,n+1
if((ngrid(i,j)-ogrid(i,j)).gt.0.0001) then
k=k+1
goto 10
endif
enddo
enddo

open(3,file="velocity_potential.txt")
do i=2,n+1
write(3,*)(ngrid(i,j),j=2,n+1)
enddo
write(*,*)'Velocity potentials are written in the file velocity_potential.txt'
do i=2,n+1
write(*,*) (ngrid(i,j),j=2,n+1)
enddo
stop
end

Tuesday, December 2, 2008

Relaxation Technique using fortran

c Program of Relaxation Technique

dimension forcef(10,10),ngrid(10,10),ogrid(10,10)
real forcef,ngrid,ogrid,residue
integer n,k

print*,'Enter the size of grid excluding boundary:'
read*,n
print*,'Enter the distance between grid points :'
read*,d


do i=1,n+2
forcef(1,i)=0
forcef(i,1)=0
forcef(n+2,i)=0
forcef(i,n+2)=0
ngrid(1,i)=0
ngrid(i,1)=0
ngrid(n+2,i)=0
ngrid(i,n+2)=0
ogrid(1,i)=0
ogrid(i,1)=0
ogrid(n+2,i)=0
ogrid(i,n+2)=0
enddo

open (1,file='force.dat')
read (1,*)((forcef(i,j),j=2,n+1),i=2,n+1)
close(1)

do i=2,n+1
do j=2,n+1
ngrid(i,j)=0
enddo
enddo

k=1
10 print*,'Trial :',k

do i=2,n+1
do j=2,n+1
ogrid(i,j)=ngrid(i,j)
enddo
enddo

do i=2,n+1
do j=2,n+1
residue=ogrid(i-1,j)+ogrid(i+1,j)+ogrid(i,j-1)+ogrid(i,j+1)-(4*ogrid(i,j))+(d*d*forcef(i,j))

ngrid(i,j)=ogrid(i,j)+(residue/4)
enddo
enddo

do i=2,n+1
do j=2,n+1
if((ngrid(i,j)-ogrid(i,j)).gt.0.0001) then
k=k+1
goto 10
endif
enddo
enddo


write(*,*)'Grid values'
do i=2,n+1
write(*,*) (ngrid(i,j),j=2,n+1
enddo
stop
end

Monday, December 1, 2008

Lifting condensation level calculation using fortran

c Program for calculating Lifting condensation level

real ps,ts,pts,es,qs,zs,pl,tl,ptl,el,ql,zl

print*,'Enter the surface value of pressure'
read*,ps
print*,'Enter the surface value of temperature '
read*,ts
print*,'Enter the surface value of geopotential hight'
read*,zs
print*,'Enter the surface value of Relative humidity (%)'
read*,rh
r=287.05
cp=1004

if(ts.gt.273)then
A=17.26
B=35.86
else
A=21.8
B=7.66
endif
pts=ts*((1000/ps)**(r/cp))
es=6.11*EXP(A*(ts-273.16)/(ts-B))*rh/100
qs=0.622*es/(ps-0.378*es)

ptl=pts
do pl=40,1000
tl=ptl*((pl/1000)**(r/cp))
el=6.11*EXP(A*(tl-273.16)/(tl-B))
ql=0.622*el/(pl-0.378*el)

if(ql.ge.qs)then
zl=zs+(cp*(ts-tl)/9.8)
write(*,*)'Lifting condensation level is',pl
write(*,*)'Temperature of lcl is',tl
write(*,*)'Geopotential hight at lcl is ',zl
goto 10
endif
enddo

10 stop
end

vertical distribution of vorticity using fortran

c program to find vertical distribution of vorticity
integer n,p(10)
real lat1,lat2,lon1,lon2,lat,dx,dy,tem,vort(10)
real omega,w
dimension ddd(4),ff(4)
print*,'enter the no of pressure levels'
read(*,*)n
print*,'enter the latitudes of south'
read(*,*)lat1
print*,'enter the latitudes of north'
read(*,*)lat2
print*,'enter the longitude of west'
read(*,*)lon1
print*,'enter the longitude of east'
read(*,*)lon2
lat=(lat1+lat2)/2
dx=(lon2-lon1)*cos(lat)*110*1000
dy=(lat2-lat1)*110*1000

open(1,file='vert.dat')
do i=1,n
read(1,*)p(i)
write(*,*)p(i)
do j=1,4
read(1,*)ddd(j),ff(j)
write(*,*)ddd(j),ff(j)
enddo
un=0.5148*(-1)*ff(1)*sin(ddd(1)*3.14/180)
us=0.5148*(-1)*ff(3)*sin(ddd(3)*3.14/180)
ve=0.5148*(-1)*ff(2)*cos(ddd(2)*3.14/180)
vw=0.5148*(-1)*ff(4)*cos(ddd(4)*3.14/180)
vort(i)=(ve-vw)/dx-(un-us)/dy
write(*,2)p(i),vort(i)
write(*,2)p(i),vort(i)*dx*dy
enddo
close(1)
2 format('Vorticity at level ',i7,' is ',f10.6)
3 format('Circulation at level ',i7,' is ',f10.6)
stop
end

One diamensional lagrangian interpolation using fortran

c One diamensional lagrangian interpolation

integer n
real x(50),f(50),a,sm,pro
print *, 'Enter the number of available stations'
read *, n

open(1,file='onedim.dat')
do i=1,n
read(1,*)x(i),f(i)
write(*,*)x(i),f(i)
enddo
close(1)

print*, 'Enter position of unknown data station'
read *, a

sm=0
pro=1

do i=1,n
pro=f(i)
do j=1,n
if(j.ne.i)then
pro=pro*(a-x(j))/(x(i)-x(j))
endif
enddo
sm=sm+pro
enddo
write(*,2)a,sm
2 format('The value at station ',f5.2,'is',f7.2)
stop
end

Vertical Velocity calculation using fortran

c program to find vertical velocity
integer n,p(10)
real lat1,lat2,lon1,lon2,lat,dx,dy,tem,div(10),avgdiv(10),dp
real omega,w
dimension ddd(4),ff(4)
print*,'enter the no of pressure levels'
read(*,*)n
print*,'enter the latitudes of south'
read(*,*)lat1
print*,'enter the latitudes of north'
read(*,*)lat2
print*,'enter the longitude of west'
read(*,*)lon1
print*,'enter the longitude of east'
read(*,*)lon2
lat=(lat1+lat2)/2
dx=(lon2-lon1)*cos(lat)*110*1000
dy=(lat2-lat1)*110*1000
write(*,*)'enter the temp in kelvin'
read(*,*)tem
open(1,file='vert.dat')
do i=1,n
read(1,*)p(i)
write(*,*)p(i)
do j=1,4
read(1,*)ddd(j),ff(j)
write(*,*)ddd(j),ff(j)
enddo
ue=0.5148*(-1)*ff(2)*sin(ddd(2)*3.14/180)
uw=0.5148*(-1)*ff(4)*sin(ddd(4)*3.14/180)
vn=0.5148*(-1)*ff(1)*cos(ddd(1)*3.14/180)
vs=0.5148*(-1)*ff(3)*cos(ddd(3)*3.14/180)
div(i)=(ue-uw)/dx+(vn-vs)/dy

enddo
omega=0.0
do i=1,n-1
avgdiv(i)=(div(i)+div(i+1))/2
dp=(p(i)-p(i+1))
omega=omega+avgdiv(i)*dp
enddo
close(1)

write(*,2)omega
w=((-1)*omega*287*tem)/(9.8*p(n))*100
write(*,3)w

2 format('vertical velocity=',f10.8,' in pressure co-ordinate' )
3 format('vertical velocity=',f10.4,' cm/s' )

stop
end