13 |
|
|
14 |
! This S/R finds a thickness (H) that gives surf elev S with bed R |
! This S/R finds a thickness (H) that gives surf elev S with bed R |
15 |
|
|
16 |
|
|
17 |
#include "SIZE.h" |
#include "SIZE.h" |
18 |
#include "GRID.h" |
#include "GRID.h" |
19 |
#include "SET_GRID.h" |
#include "SET_GRID.h" |
21 |
#include "PARAMS.h" |
#include "PARAMS.h" |
22 |
#include "STREAMICE.h" |
#include "STREAMICE.h" |
23 |
|
|
24 |
|
#ifdef ALLOW_OPENAD |
25 |
|
use OAD_tape |
26 |
|
use OAD_rev |
27 |
|
use OAD_cp |
28 |
|
#endif |
29 |
|
|
30 |
_RL H(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL H(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
31 |
_RL S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
32 |
_RL R(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL R(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
33 |
_RL DELTA |
_RL DELTA |
34 |
INTEGER myThid |
INTEGER myThid |
35 |
|
#ifdef ALLOW_OPENAD |
36 |
|
type(active) :: ETA_GL_STREAMICE |
37 |
|
type(active) :: X,Y0 |
38 |
|
type(modeType) :: our_orig_mode |
39 |
|
#endif |
40 |
|
|
41 |
|
|
42 |
#ifdef ALLOW_STREAMICE |
#ifdef ALLOW_STREAMICE |
43 |
|
|
44 |
_RL resid, f, fp, hf, htmp |
_RL resid, f, fp, hf, htmp |
45 |
INTEGER i, j, bi, bj, ITER |
INTEGER i, j, bi, bj, ITER |
46 |
|
_RL ETA_GL_PRIME_STREAMICE |
47 |
|
#ifndef ALLOW_OPENAD |
48 |
_RL ETA_GL_STREAMICE |
_RL ETA_GL_STREAMICE |
49 |
EXTERNAL ETA_GL_STREAMICE |
EXTERNAL ETA_GL_STREAMICE |
50 |
_RL ETA_GL_STREAMICE_PRIME |
#endif |
51 |
! EXTERNAL PHI_GL_STREAMICE_PRIME |
! EXTERNAL PHI_GL_STREAMICE_PRIME |
52 |
|
|
53 |
DO bj=myByLo(myThid), myByHi(myThid) |
DO bj=myByLo(myThid), myByHi(myThid) |
81 |
htmp = S(i,j,bi,bj)/delta |
htmp = S(i,j,bi,bj)/delta |
82 |
ENDIF |
ENDIF |
83 |
|
|
84 |
|
#ifdef ALLOW_OPENAD |
85 |
|
|
86 |
|
our_orig_mode = our_rev_mode |
87 |
|
our_rev_mode%arg_store=.FALSE. |
88 |
|
our_rev_mode%arg_restore=.FALSE. |
89 |
|
our_rev_mode%plain=.TRUE. |
90 |
|
our_rev_mode%tape=.FALSE. |
91 |
|
our_rev_mode%adjoint=.FALSE. |
92 |
|
|
93 |
|
X%v = htmp-HF |
94 |
|
Y0%v = delta*HF |
95 |
|
|
96 |
|
CALL OpenAD_oad_s_eta_gl_streamice( |
97 |
|
& X, |
98 |
|
& delta, |
99 |
|
& 1. _d 0, |
100 |
|
& Y0, |
101 |
|
& streamice_smooth_gl_width, |
102 |
|
& ETA_GL_STREAMICE) |
103 |
|
|
104 |
|
RESID = ETA_GL_STREAMICE%v |
105 |
|
our_rev_mode = our_orig_mode |
106 |
|
|
107 |
|
#else |
108 |
RESID = ETA_GL_STREAMICE ( |
RESID = ETA_GL_STREAMICE ( |
109 |
& htmp-HF, |
& htmp-HF, |
110 |
& delta, |
& delta, |
111 |
& 1. _d 0, |
& 1. _d 0, |
112 |
& delta*HF, |
& delta*HF, |
113 |
& streamice_smooth_gl_width) |
& streamice_smooth_gl_width) |
114 |
|
#endif |
115 |
RESID = RESID - S(i,j,bi,bj) |
RESID = RESID - S(i,j,bi,bj) |
116 |
FP = ETA_GL_STREAMICE_PRIME ( |
FP = ETA_GL_PRIME_STREAMICE ( |
117 |
& htmp-HF, |
& htmp-HF, |
118 |
& delta, |
& delta, |
119 |
& 1. _d 0, |
& 1. _d 0, |