6 SUBROUTINE tsz0 (DTZ, &
7 ptime, ptstep, pwfc, ptg, pwg )
59 USE yomhook
,ONLY : lhook, dr_hook
60 USE parkind1
,ONLY : jprb
72 REAL,
INTENT(IN) :: ptime
73 REAL,
INTENT(IN) :: ptstep
78 REAL,
DIMENSION(:,:),
INTENT(IN) :: pwfc
83 REAL,
DIMENSION(:,:,:),
INTENT(INOUT) :: ptg
84 REAL,
DIMENSION(:,:,:),
INTENT(INOUT) :: pwg
105 REAL(KIND=JPRB) :: zhook_handle
111 IF (lhook) CALL dr_hook(
'TSZ0',0,zhook_handle)
113 IF (dtz%NTIME==25)
THEN
114 ztimep = mod(ptime+ptstep,86400.)
116 ztimep = ptime+ptstep
119 ihourp = int(ztimep/3600.)+1
121 IF (dtz%NTIME==1)
THEN
122 zdts_hour = dtz%XDATA_DTS (1)
123 zdhugrd_hour = dtz%XDATA_DHUGRD(1)
125 zdts_hour = dtz%XDATA_DTS (ihourp)
126 zdhugrd_hour = dtz%XDATA_DHUGRD(ihourp)
130 za= zdts_hour /3600. * ptstep
131 WHERE (ptg(:,:,:)/=xundef)
132 ptg(:,:,:)= ptg(:,:,:) + za
136 za= zdhugrd_hour /3600.* ptstep
137 DO jpatch=1,
SIZE(pwg,3)
138 WHERE (pwg(:,:,jpatch)/=xundef)
139 pwg(:,:,jpatch)= acos( 1. &
140 - 2.* min( 0.5 * (1. - cos( xpi * min(pwg(:,:,jpatch) /pwfc(:,:),1.) )) + za , 1.) &
145 IF (lhook) CALL dr_hook(
'TSZ0',1,zhook_handle)
subroutine tsz0(DTZ, PTIME, PTSTEP, PWFC, PTG, PWG)