55 USE yomhook
,ONLY : lhook, dr_hook
56 USE parkind1
,ONLY : jprb
66 REAL(KIND=JPRB) :: zhook_handle
71 IF (lhook) CALL dr_hook(
'OCEAN_MERCATORVERGRID',0,zhook_handle)
82 ALLOCATE(xk1(nockmin:nockmax))
83 ALLOCATE(xk2(nockmin:nockmax))
84 ALLOCATE(xk3(nockmin:nockmax))
85 ALLOCATE(xk4(nockmin:nockmax))
87 ALLOCATE(xz2(nockmin:nockmax))
88 ALLOCATE(xdz1(nockmin:nockmax))
89 ALLOCATE(xdz2(nockmin:nockmax))
91 ALLOCATE(xray(nockmin:nockmax))
93 DO jloop = nockmin,nockmax-1
94 xz2(jloop) = (xzhoc(jloop+1) + xzhoc(jloop))/2.
95 xdz1(jloop) = xzhoc(jloop) - xzhoc(jloop+1)
97 xz2(nockmax) = xzhoc(nockmax) + ((xzhoc(nockmax)-xzhoc(nockmax-1))/2.)
98 xdz1(nockmax) = xdz1(nockmax-1)
101 xdz2(nockmin) = - xz2(nockmin)
102 DO jloop = nockmin+1,nockmax
103 xdz2(jloop) = xz2(jloop-1) - xz2(jloop)
110 DO jloop = nockmin+1,nockmax
111 xk1(jloop) = -1. / (xdz2(jloop)*xdz1(jloop-1))
115 DO jloop = nockmin,nockmax
116 xk4(jloop) = 1. / ( xdz1(jloop) * xdz1(jloop) )
117 zdown =
rayo(xz2(jloop))
118 xray(jloop) = zup - zdown
122 DO jloop = nockmin,nockmax-1
123 xk2(jloop) = -1. / (xdz2(jloop)*xdz1(jloop))
124 xk3(jloop) = -1. / (xdz1(jloop)*xdz2(jloop+1))
127 xk2(nockmax) = xk2(nockmax-1)
133 IF (lhook) CALL dr_hook(
'OCEAN_MERCATORVERGRID',1,zhook_handle)
180 REAL(KIND=JPRB) :: zhook_handle
188 IF (lhook) CALL dr_hook(
'RAYO',0,zhook_handle)
189 rr = xr*exp(z/xd1) + (1-xr)*exp(z/xd2)
190 IF (lhook) CALL dr_hook(
'RAYO',1,zhook_handle)
subroutine ocean_mercatorvergrid