93 |
il=ilnblnk( xx_theta_file ) |
il=ilnblnk( xx_theta_file ) |
94 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
95 |
& xx_theta_file(1:il),'.',optimcycle |
& xx_theta_file(1:il),'.',optimcycle |
96 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
97 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
98 |
& mythid, xx_theta_dummy ) |
& mythid, xx_theta_dummy ) |
99 |
|
|
108 |
$ tmpfld3d(i,j,k,bi,bj)= |
$ tmpfld3d(i,j,k,bi,bj)= |
109 |
$ sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj)) |
$ sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj)) |
110 |
#endif |
#endif |
111 |
#ifdef ALLOW_OPENAD |
#ifdef ALLOW_AUTODIFF_OPENAD |
112 |
theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + |
theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + |
113 |
& fac*xx_theta(i,j,k,bi,bj) |
& fac*xx_theta(i,j,k,bi,bj) + |
114 |
|
& fac*tmpfld3d(i,j,k,bi,bj) |
115 |
#else |
#else |
116 |
theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + |
theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + |
117 |
& fac*tmpfld3d(i,j,k,bi,bj) |
& fac*tmpfld3d(i,j,k,bi,bj) |
131 |
il=ilnblnk( xx_salt_file ) |
il=ilnblnk( xx_salt_file ) |
132 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
133 |
& xx_salt_file(1:il),'.',optimcycle |
& xx_salt_file(1:il),'.',optimcycle |
134 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
135 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
136 |
& mythid, xx_salt_dummy ) |
& mythid, xx_salt_dummy ) |
137 |
|
|
146 |
$ tmpfld3d(i,j,k,bi,bj)= |
$ tmpfld3d(i,j,k,bi,bj)= |
147 |
$ sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj)) |
$ sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj)) |
148 |
#endif |
#endif |
149 |
#ifdef ALLOW_OPENAD |
#ifdef ALLOW_AUTODIFF_OPENAD |
150 |
salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + |
salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + |
151 |
& fac*xx_salt(i,j,k,bi,bj) |
& fac*xx_salt(i,j,k,bi,bj) + |
152 |
|
& fac*tmpfld3d(i,j,k,bi,bj) |
153 |
#else |
#else |
154 |
salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + |
salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + |
155 |
& fac*tmpfld3d(i,j,k,bi,bj) |
& fac*tmpfld3d(i,j,k,bi,bj) |
168 |
il=ilnblnk( xx_tr1_file ) |
il=ilnblnk( xx_tr1_file ) |
169 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
170 |
& xx_tr1_file(1:il),'.',optimcycle |
& xx_tr1_file(1:il),'.',optimcycle |
171 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
172 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
173 |
& mythid, xx_tr1_dummy ) |
& mythid, xx_tr1_dummy ) |
174 |
|
|
192 |
il=ilnblnk( xx_sst_file ) |
il=ilnblnk( xx_sst_file ) |
193 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
194 |
& xx_sst_file(1:il),'.',optimcycle |
& xx_sst_file(1:il),'.',optimcycle |
195 |
call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1, |
call active_read_xy ( fnamegeneric, tmpfld2d, 1, |
196 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
197 |
& mythid, xx_sst_dummy ) |
& mythid, xx_sst_dummy ) |
198 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
213 |
il=ilnblnk( xx_sss_file ) |
il=ilnblnk( xx_sss_file ) |
214 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
215 |
& xx_sss_file(1:il),'.',optimcycle |
& xx_sss_file(1:il),'.',optimcycle |
216 |
call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1, |
call active_read_xy ( fnamegeneric, tmpfld2d, 1, |
217 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
218 |
& mythid, xx_sss_dummy ) |
& mythid, xx_sss_dummy ) |
219 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
234 |
il=ilnblnk( xx_diffkr_file ) |
il=ilnblnk( xx_diffkr_file ) |
235 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
236 |
& xx_diffkr_file(1:il),'.',optimcycle |
& xx_diffkr_file(1:il),'.',optimcycle |
237 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
238 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
239 |
& mythid, xx_diffkr_dummy ) |
& mythid, xx_diffkr_dummy ) |
240 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
256 |
il=ilnblnk( xx_kapgm_file ) |
il=ilnblnk( xx_kapgm_file ) |
257 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
258 |
& xx_kapgm_file(1:il),'.',optimcycle |
& xx_kapgm_file(1:il),'.',optimcycle |
259 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
260 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
261 |
& mythid, xx_kapgm_dummy ) |
& mythid, xx_kapgm_dummy ) |
262 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
278 |
il=ilnblnk( xx_efluxy_file ) |
il=ilnblnk( xx_efluxy_file ) |
279 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
280 |
& xx_efluxy_file(1:il),'.',optimcycle |
& xx_efluxy_file(1:il),'.',optimcycle |
281 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
282 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
283 |
& mythid, xx_efluxy_dummy ) |
& mythid, xx_efluxy_dummy ) |
284 |
|
|
305 |
il=ilnblnk( xx_efluxp_file ) |
il=ilnblnk( xx_efluxp_file ) |
306 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
307 |
& xx_efluxp_file(1:il),'.',optimcycle |
& xx_efluxp_file(1:il),'.',optimcycle |
308 |
call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1, |
call active_read_xyz( fnamegeneric, tmpfld3d, 1, |
309 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
310 |
& mythid, xx_efluxp_dummy ) |
& mythid, xx_efluxp_dummy ) |
311 |
|
|
334 |
il=ilnblnk( xx_bottomdrag_file ) |
il=ilnblnk( xx_bottomdrag_file ) |
335 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
336 |
& xx_bottomdrag_file(1:il),'.',optimcycle |
& xx_bottomdrag_file(1:il),'.',optimcycle |
337 |
call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1, |
call active_read_xy ( fnamegeneric, tmpfld2d, 1, |
338 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
339 |
& mythid, xx_bottomdrag_dummy ) |
& mythid, xx_bottomdrag_dummy ) |
340 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
362 |
do k = 1,nr |
do k = 1,nr |
363 |
do j = jmin,jmax |
do j = jmin,jmax |
364 |
do i = imin,imax |
do i = imin,imax |
365 |
Eddytaux(i,j,k,bi,bj) = Eddytaux(i,j,k,bi,bj) + |
eddyTauX(i,j,k,bi,bj) = eddyTauX(i,j,k,bi,bj) + |
366 |
& tmpfld3d(i,j,k,bi,bj) |
& fCori(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj) |
367 |
enddo |
enddo |
368 |
enddo |
enddo |
369 |
enddo |
enddo |
384 |
do k = 1,nr |
do k = 1,nr |
385 |
do j = jmin,jmax |
do j = jmin,jmax |
386 |
do i = imin,imax |
do i = imin,imax |
387 |
Eddytauy(i,j,k,bi,bj) = Eddytauy(i,j,k,bi,bj) + |
eddyTauY(i,j,k,bi,bj) = eddyTauY(i,j,k,bi,bj) + |
388 |
& tmpfld3d(i,j,k,bi,bj) |
& fCoriG(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj) |
389 |
enddo |
enddo |
390 |
enddo |
enddo |
391 |
enddo |
enddo |
406 |
do k = 1,nr |
do k = 1,nr |
407 |
do j = jmin,jmax |
do j = jmin,jmax |
408 |
do i = imin,imax |
do i = imin,imax |
409 |
#ifdef ALLOW_OPENAD |
#ifdef ALLOW_AUTODIFF_OPENAD |
410 |
uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) + |
uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) + |
411 |
& fac*xx_uvel(i,j,k,bi,bj) |
& fac*xx_uvel(i,j,k,bi,bj) |
412 |
#else |
#else |
433 |
do k = 1,nr |
do k = 1,nr |
434 |
do j = jmin,jmax |
do j = jmin,jmax |
435 |
do i = imin,imax |
do i = imin,imax |
436 |
#ifdef ALLOW_OPENAD |
#ifdef ALLOW_AUTODIFF_OPENAD |
437 |
vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) + |
vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) + |
438 |
& fac*xx_vvel(i,j,k,bi,bj) |
& fac*xx_vvel(i,j,k,bi,bj) |
439 |
#else |
#else |
452 |
il=ilnblnk( xx_etan_file ) |
il=ilnblnk( xx_etan_file ) |
453 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
454 |
& xx_etan_file(1:il),'.',optimcycle |
& xx_etan_file(1:il),'.',optimcycle |
455 |
call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1, |
call active_read_xy ( fnamegeneric, tmpfld2d, 1, |
456 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
457 |
& mythid, xx_etan_dummy ) |
& mythid, xx_etan_dummy ) |
458 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
459 |
do bi = itlo,ithi |
do bi = itlo,ithi |
460 |
do j = jmin,jmax |
do j = jmin,jmax |
461 |
do i = imin,imax |
do i = imin,imax |
462 |
#ifdef ALLOW_OPENAD |
#ifdef ALLOW_AUTODIFF_OPENAD |
463 |
etaN(i,j,bi,bj) = etaN(i,j,bi,bj) + |
etaN(i,j,bi,bj) = etaN(i,j,bi,bj) + |
464 |
& fac*xx_etan(i,j,bi,bj) |
& fac*xx_etan(i,j,bi,bj) |
465 |
#else |
#else |
477 |
il=ilnblnk( xx_relaxsst_file ) |
il=ilnblnk( xx_relaxsst_file ) |
478 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
479 |
& xx_relaxsst_file(1:il),'.',optimcycle |
& xx_relaxsst_file(1:il),'.',optimcycle |
480 |
call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1, |
call active_read_xy ( fnamegeneric, tmpfld2d, 1, |
481 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
482 |
& mythid, xx_relaxsst_dummy ) |
& mythid, xx_relaxsst_dummy ) |
483 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
498 |
il=ilnblnk( xx_relaxsss_file ) |
il=ilnblnk( xx_relaxsss_file ) |
499 |
write(fnamegeneric(1:80),'(2a,i10.10)') |
write(fnamegeneric(1:80),'(2a,i10.10)') |
500 |
& xx_relaxsss_file(1:il),'.',optimcycle |
& xx_relaxsss_file(1:il),'.',optimcycle |
501 |
call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1, |
call active_read_xy ( fnamegeneric, tmpfld2d, 1, |
502 |
& doglobalread, ladinit, optimcycle, |
& doglobalread, ladinit, optimcycle, |
503 |
& mythid, xx_relaxsss_dummy ) |
& mythid, xx_relaxsss_dummy ) |
504 |
do bj = jtlo,jthi |
do bj = jtlo,jthi |
544 |
#endif |
#endif |
545 |
|
|
546 |
#if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL)) |
#if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL)) |
547 |
CALL EXCH_UV_XYZ_RS(Eddytaux,Eddytauy,.TRUE.,myThid) |
CALL EXCH_UV_XYZ_RS(eddyTauX,eddyTauY,.TRUE.,myThid) |
548 |
#elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL)) |
#elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL)) |
549 |
STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL' |
STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL' |
550 |
#endif |
#endif |