47 |
|
|
48 |
integer i, j, L, bi, bj, Lbotij |
integer i, j, L, bi, bj, Lbotij |
49 |
integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2 |
integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2 |
50 |
|
logical alarm |
51 |
|
external alarm |
52 |
|
|
53 |
im1 = 1-OLx |
im1 = 1-OLx |
54 |
im2 = sNx+OLx |
im2 = sNx+OLx |
59 |
jdim1 = 1 |
jdim1 = 1 |
60 |
jdim2 = sNy |
jdim2 = sNy |
61 |
|
|
62 |
|
c First Check to see if we can start a fizhi experiment at current time |
63 |
|
c All Fizhi alarms must be on for the first time step of a segment |
64 |
|
|
65 |
|
if( .not.alarm('moist') .or. .not.alarm('turb') .or. |
66 |
|
. .not.alarm('radsw') .or. .not.alarm('radlw') ) then |
67 |
|
write(15,*) ' Cant Start Fizhi experiment at ',nymd,' ',nhms |
68 |
|
stop |
69 |
|
endif |
70 |
|
|
71 |
C Deal Here with Variables that are on a Fizhi Pickup or need Initialization |
C Deal Here with Variables that are on a Fizhi Pickup or need Initialization |
72 |
|
|
73 |
IF ( startTime.EQ.0. .AND. nIter0.EQ.0 ) THEN |
IF ( startTime.EQ.baseTime .AND. nIter0.EQ.0 ) THEN |
74 |
print *,' In fizhi_init_vars: Beginning of New Experiment ' |
print *,' In fizhi_init_vars: Beginning of New Experiment ' |
75 |
|
|
76 |
do bj = myByLo(myThid), myByHi(myThid) |
do bj = myByLo(myThid), myByHi(myThid) |
160 |
enddo |
enddo |
161 |
enddo |
enddo |
162 |
call dyn2phys(theta,pedyn,im1,im2,jm1,jm2,Nr,Nsx,Nsy, |
call dyn2phys(theta,pedyn,im1,im2,jm1,jm2,Nr,Nsx,Nsy, |
163 |
. 1,sNx,1,sNy,bi,bj,windphy,pephy,ksurfC,Nrphys,nlperdyn,0,tempphy) |
. 1,sNx,1,sNy,bi,bj,windphy,pephy,ksurfC,Nrphys,nlperdyn,2,tempphy) |
164 |
do L = 1,Nrphys |
do L = 1,Nrphys |
165 |
do j = 1,sNy |
do j = 1,sNy |
166 |
do i = 1,sNx |
do i = 1,sNx |
168 |
enddo |
enddo |
169 |
enddo |
enddo |
170 |
enddo |
enddo |
|
|
|
171 |
call dyn2phys(salt,pedyn,im1,im2,jm1,jm2,Nr,Nsx,Nsy, |
call dyn2phys(salt,pedyn,im1,im2,jm1,jm2,Nr,Nsx,Nsy, |
172 |
. 1,sNx,1,sNy,bi,bj,windphy,pephy,ksurfC,Nrphys,nlperdyn,0,tempphy) |
. 1,sNx,1,sNy,bi,bj,windphy,pephy,ksurfC,Nrphys,nlperdyn,0,tempphy) |
173 |
do L = 1,Nrphys |
do L = 1,Nrphys |
202 |
enddo |
enddo |
203 |
enddo |
enddo |
204 |
|
|
205 |
c Initialize tke, xlmt, khmt, xxmt, yymt, ctmt, zetamt, |
c Initialize vegetation tile tke, xlmt, khmt, xxmt, yymt, ctmt, zetamt, |
206 |
if( (nhms.eq.nhms0) .and. (nymd.eq.nymd0) ) then |
if( (nhms.eq.nhms0) .and. (nymd.eq.nymd0) ) then |
207 |
print *,' Cold Start: Zero out Turb second moments ' |
print *,' Cold Start: Zero out Turb second moments ' |
208 |
do i = 1,nchp |
do i = 1,nchp |
223 |
stop |
stop |
224 |
endif |
endif |
225 |
|
|
226 |
c Now initialize land state too - tcanopy, etc... SET FOR NOW, |
c Now initialize vegetation tile land state too - tcanopy, etc... |
227 |
c READ CLIM FOR REAL |
call fizhi_init_vegsurftiles( nymd,nhms, 'D', myThid ) |
|
do i = 1,nchp |
|
|
tcanopy(i,bi,bj) = 283. |
|
|
tdeep(i,bi,bj) = 282.5 |
|
|
ecanopy(i,bi,bj) = 2.e-2 |
|
|
swetshal(i,bi,bj) = 0.6 |
|
|
swetroot(i,bi,bj) = 0.5 |
|
|
swetdeep(i,bi,bj) = 0.5 |
|
|
capac(i,bi,bj) = 0. |
|
|
snodep(i,bi,bj) = 0. |
|
|
enddo |
|
228 |
|
|
229 |
|
c Now initialize fizhi arrays that will be on a pickup |
230 |
print *,' Initialize fizhi arrays that will be on pickup ' |
print *,' Initialize fizhi arrays that will be on pickup ' |
231 |
imstturblw(bi,bj) = 0 |
imstturblw(bi,bj) = 0 |
232 |
imstturbsw(bi,bj) = 0 |
imstturbsw(bi,bj) = 0 |