initialization.f90 1.28 KB
subroutine initialization
use parameters

!local parameters
implicit none
	double precision, allocatable ::Gf(:),PM(:)
        integer ::X1

	allocate(Gf(nfreq))
	allocate(PM(nfreq))
	
	

!_________________________INITIAL SPECTRUM_____________________________
	E(1:nsteps,1:nbin,1:nfreq)=0d0
        
        if(init_spec.eq.1) then
	!build JONSWAP spectrum

	do i=1,nfreq 
		if (freq(i).le.freq_s) then
			sigma_s(i)=0.07
		else
			sigma_s(i)=0.09
		end if
	end do
	
	Gf=gamma_s**(exp((-(freq-freq_s)**2)/(2*sigma_s**2*freq_s**2)))
	PM=alpha_s*Hs**2*(freq_s**4/freq**5)*exp(-beta_s*(freq_s/freq)**4)

	Ei=Gf*PM
        
        else

        Ei=(1.25*Hs**2*(1/freq)**5)/(8*pi*Tm**4)*exp(-1.25*((1/freq)/Tm)**4)
        end if

	

	E(1,1,1:nfreq)=Ei
	
!_______________________________________________________________________

!_______________________ICE_TRANSECT____________________________________

X1=floor(X_ice/dx)
C_ice(1:X1)=0
C_ice(X1:nbin)=cice

Dave(1:X1)=0
Dmax(1:X1)=0
Dave(X1:nbin)=D0
Dmax(X1:nbin)=D0

if (ice_thick.eq.0) then

h(X1:nbin)=hice
h(1:X1)=0d0

else

h(1:X1)=0d0
do jj=X1,nbin

h(jj)=hmax*(0.1+0.9*(1-exp(-((real(jj)*dx-X_ice)/Xh))))

end do

end if
        
!_____________________FSD_____________________________________________

FSD(1,1:nbin,1)=1d0

end subroutine initialization