Introduction
User subroutine for the atmospheric model.
Atmospheric module
imode
corresponds to the number of calls of the usatdv function. Depending on the value of imode
, different operations are performed in the following example.
imode = 0
if (imode.eq.0) then
write(nfecra,*) 'defining the dimensions of the 1D vertical arrays'
else
write(nfecra,*) 'defining the coordinates and levels of the 1D vertical arrays'
endif
if (imode.eq.0) then
nvert = 1
kvert = 50
kmx = kvert
zvmax = 1975.d0
if (iatra1.gt.0) then
ztop = 11000.d0
zzmax = (int(zvmax)/1000)*1000.d0
do while(zzmax.le.(ztop-1000.d0))
zzmax = zzmax + 1000.d0
kmx = kmx + 1
enddo
endif
imode = 1
zvert(1) = 0.d0
zvert(2) = 5.d0
zvert(3) = 20.5d0
zvert(4) = 42.0d0
zvert(5) = 65.0d0
zvert(6) = 89.5d0
zvert(7) = 115.0d0
zvert(8) = 142.0d0
zvert(9) = 170.5d0
zvert(10) = 199.5d0
zvert(11) = 230.0d0
zvert(12) = 262.0d0
zvert(13) = 294.5d0
zvert(14) = 328.5d0
zvert(15) = 363.5d0
zvert(16) = 399.0d0
zvert(17) = 435.5d0
zvert(18) = 473.5d0
zvert(19) = 512.0d0
zvert(20) = 551.0d0
zvert(21) = 591.5d0
zvert(22) = 632.5d0
zvert(23) = 674.0d0
zvert(24) = 716.0d0
zvert(25) = 759.0d0
zvert(26) = 802.5d0
zvert(27) = 846.5d0
zvert(28) = 891.5d0
zvert(29) = 936.5d0
zvert(30) = 982.0d0
zvert(31) = 1028.0d0
zvert(32) = 1074.5d0
zvert(33) = 1122.0d0
zvert(34) = 1169.5d0
zvert(35) = 1217.0d0
zvert(36) = 1265.5d0
zvert(37) = 1314.5d0
zvert(38) = 1363.5d0
zvert(39) = 1413.0d0
zvert(40) = 1462.5d0
zvert(41) = 1512.5d0
zvert(42) = 1563.0d0
zvert(43) = 1613.5d0
zvert(44) = 1664.5d0
zvert(45) = 1715.5d0
zvert(46) = 1767.0d0
zvert(47) = 1818.5d0
zvert(48) = 1870.0d0
zvert(49) = 1922.5d0
zvert(50) = 1975.0d0
if (iatra1.gt.0) then
ztop = 11000.d0
ii = kvert
zzmax = (int(zvert(ii))/1000)*1000.d0
do while(zzmax.le.(ztop-1000.d0))
zzmax = zzmax+1000.d0
ii = ii + 1
zvert(ii) = zzmax
enddo
endif
do iiv = 1, nvert
xyvert(iiv,1) = 50.d0
xyvert(iiv,2) = 50.d0
xyvert(iiv,3) = 1.d0
soilvert(iiv)%albedo = 0.25d0
soilvert(iiv)%emissi = 0.965d0
soilvert(iiv)%ttsoil = 14.77d0
soilvert(iiv)%totwat = 0.0043d0
soilvert(iiv)%pressure = 1023.d0
soilvert(iiv)%density = 1.23d0
soilvert(iiv)%foir = 0.d0
soilvert(iiv)%fos = 0.d0
enddo
endif
Data Entry for the atmospheric ground model
ifbt1d = 0
allocate(lstelt(nfabor))
if (iappel.eq.1) then
call getfbr(
'75',nlelt,lstelt)
do ilelt = 1, nlelt
ifbt1d = ifbt1d + 1
enddo
nfmodsol = ifbt1d
allocate(indsol(nfmodsol))
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
indsol(ilelt) = ifac
enddo
nbrsol = 5
w1ini = 0.d0
w2ini = 0.0d0
endif
if (iappel.eq.2) then
tab_sol(4)%csol = 1.7e-5
tab_sol(4)%rugthe = 0.0012
do ifac = 1, nfmodsol
do isol = 1, nbrsol
pourcent_sol(ifac,isol) = 0
enddo
pourcent_sol(ifac,4) = 100
enddo
endif
deallocate(lstelt)