42 |
|
|
43 |
#include "ctrl.h" |
#include "ctrl.h" |
44 |
#include "cost.h" |
#include "cost.h" |
45 |
|
#include "optim.h" |
46 |
|
|
47 |
c == routine arguments == |
c == routine arguments == |
48 |
|
|
240 |
|
|
241 |
#endif |
#endif |
242 |
|
|
243 |
|
#ifdef ALLOW_TR10_CONTROL |
244 |
|
|
245 |
|
il=ilnblnk( xx_tr1_file) |
246 |
|
write(fname(1:80),'(80a)') ' ' |
247 |
|
write(fname(1:80),'(2a,i10.10)') |
248 |
|
& xx_tr1_file(1:il),'.',optimcycle |
249 |
|
call MDSREADFIELD_3D_GL( fname, |
250 |
|
& prec, 'RL', Nr, globfld3d, |
251 |
|
& 1, mythid) |
252 |
|
|
253 |
|
write(cunit) ncvarindex(9) |
254 |
|
write(cunit) 1 |
255 |
|
write(cunit) 1 |
256 |
|
do k = 1,nr |
257 |
|
cbuffindex = 0 |
258 |
|
do jp = 1,nPy |
259 |
|
do bj = jtlo,jthi |
260 |
|
do j = jmin,jmax |
261 |
|
do ip = 1,nPx |
262 |
|
do bi = itlo,ithi |
263 |
|
do i = imin,imax |
264 |
|
if (globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then |
265 |
|
cbuffindex = cbuffindex + 1 |
266 |
|
#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO |
267 |
|
cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) |
268 |
|
cph & * sqrt(wtr1(k,bi,bj)) |
269 |
|
#else |
270 |
|
cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) |
271 |
|
#endif |
272 |
|
endif |
273 |
|
enddo |
274 |
|
enddo |
275 |
|
enddo |
276 |
|
enddo |
277 |
|
enddo |
278 |
|
enddo |
279 |
|
c --> check cbuffindex. |
280 |
|
if ( cbuffindex .gt. 0) then |
281 |
|
write(cunit) cbuffindex |
282 |
|
write(cunit) k |
283 |
|
write(cunit) (cbuff(ii), ii=1,cbuffindex) |
284 |
|
endif |
285 |
|
enddo |
286 |
|
|
287 |
|
#endif |
288 |
|
|
289 |
#ifdef ALLOW_HFLUX0_CONTROL |
#ifdef ALLOW_HFLUX0_CONTROL |
290 |
|
|
291 |
il=ilnblnk( xx_hflux_file) |
il=ilnblnk( xx_hflux_file) |
739 |
|
|
740 |
#endif |
#endif |
741 |
|
|
742 |
|
#ifdef ALLOW_TR10_CONTROL |
743 |
|
|
744 |
|
il=ilnblnk( xx_tr1_file) |
745 |
|
write(fname(1:80),'(80a)') ' ' |
746 |
|
write(fname(1:80),'(3a,i10.10)') |
747 |
|
& yadmark,xx_tr1_file(1:il),'.',optimcycle |
748 |
|
|
749 |
|
call MDSREADFIELD_3D_GL( fname, |
750 |
|
& prec, 'RL', Nr, |
751 |
|
& globfld3d, |
752 |
|
& 1, mythid) |
753 |
|
|
754 |
|
write(cunit) ncvarindex(9) |
755 |
|
write(cunit) 1 |
756 |
|
write(cunit) 1 |
757 |
|
do k = 1,nr |
758 |
|
cbuffindex = 0 |
759 |
|
do jp = 1,nPy |
760 |
|
do bj = jtlo,jthi |
761 |
|
do j = jmin,jmax |
762 |
|
do ip = 1,nPx |
763 |
|
do bi = itlo,ithi |
764 |
|
do i = imin,imax |
765 |
|
if (globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then |
766 |
|
cbuffindex = cbuffindex + 1 |
767 |
|
#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO |
768 |
|
cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) |
769 |
|
cph & * sqrt(wtr1(k,bi,bj)) |
770 |
|
#else |
771 |
|
cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) |
772 |
|
#endif |
773 |
|
endif |
774 |
|
enddo |
775 |
|
enddo |
776 |
|
enddo |
777 |
|
enddo |
778 |
|
enddo |
779 |
|
enddo |
780 |
|
c --> check cbuffindex. |
781 |
|
if ( cbuffindex .gt. 0) then |
782 |
|
write(cunit) cbuffindex |
783 |
|
write(cunit) k |
784 |
|
write(cunit) (cbuff(ii), ii=1,cbuffindex) |
785 |
|
endif |
786 |
|
enddo |
787 |
|
|
788 |
|
#endif |
789 |
|
|
790 |
#ifdef ALLOW_HFLUX0_CONTROL |
#ifdef ALLOW_HFLUX0_CONTROL |
791 |
|
|