/[MITgcm]/MITgcm/tools/OAD_support/ad_template.streamice_smooth_adjoint_field.F
ViewVC logotype

Annotation of /MITgcm/tools/OAD_support/ad_template.streamice_smooth_adjoint_field.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Tue Nov 29 12:37:52 2016 UTC (7 years, 3 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
new AD templates for streamice_invert_surf_forthick and streamice_smooth_adjoint_field. ad_template.streamice_vel_phistage.F modified to allow for R_low as control

1 dgoldberg 1.1 #include "STREAMICE_OPTIONS.h"
2    
3     SUBROUTINE template()
4     use OAD_cp
5     use OAD_tape
6     use OAD_rev
7    
8    
9     ! integer :: cp_loop_variable_1,cp_loop_variable_2, cp_loop_variable
10     ! +_3,cp_loop_variable_4
11    
12    
13     if (our_rev_mode%plain) then
14     CALL OpenAD_exch_xy_rl (X, mythid)
15     end if
16     if (our_rev_mode%tape .and..not.our_rev_mode%strictAnonymous) then
17     CALL OpenAD_exch_xy_rl (X, mythid)
18     end if
19     if (our_rev_mode%tape .and. our_rev_mode%strictAnonymous) then
20     CALL OpenAD_exch_xy_rl (X, mythid)
21     end if
22     if (our_rev_mode%adjoint) then
23    
24     CALL OpenAD_exch_xy_rl (X, mythid)
25    
26    
27    
28     DO bj = myByLo(myThid), myByHi(myThid)
29     DO bi = myBxLo(myThid), myBxHi(myThid)
30     DO j=0,sNy+1
31     DO i=1,sNx
32     q_int1(i,j,bi,bj) = .25 * X(i-1,j,bi,bj)%d +
33     & .50 * X(i,j,bi,bj)%d +
34     & .25 * X(i+1,j,bi,bj)%d
35     ENDDO
36     ENDDO
37     ENDDO
38     ENDDO
39    
40     DO bj = myByLo(myThid), myByHi(myThid)
41     DO bi = myBxLo(myThid), myBxHi(myThid)
42     DO j=1,sNy
43     DO i=1,sNx
44     q_int2(i,j,bi,bj) = .25 * q_int1(i,j+1,bi,bj) +
45     & .50 * q_int1(i,j,bi,bj) +
46     & .25 * q_int1(i,j+1,bi,bj)
47     ENDDO
48     ENDDO
49     ENDDO
50     ENDDO
51    
52     CALL EXCH_XY_RL (q_int2, mythid)
53    
54     DO bj = myByLo(myThid), myByHi(myThid)
55     DO bi = myBxLo(myThid), myBxHi(myThid)
56     DO j=1,sNy
57     DO i=1,sNx
58     X(i,j,bi,bj)%d = .25 * q_int2(i,j+1,bi,bj) +
59     & .50 * q_int2(i,j,bi,bj) +
60     & .25 * q_int2(i,j+1,bi,bj)
61     ENDDO
62     ENDDO
63     ENDDO
64     ENDDO
65    
66    
67     end if
68     end subroutine template

  ViewVC Help
Powered by ViewVC 1.1.22