subroutine head(NX,NY,X,FVEC,R) use OpenAD_dct use OpenAD_tape use OpenAD_rev use OpenAD_checkpoints use all_globals_cp_mod ! original arguments get inserted before version ! and declared here together with all local variables ! generated by xaifBooster use w2f__types use active_module IMPLICIT NONE C C **** Global Variables **** C REAL(w2f__8) OpenAD_Symbol_1 REAL(w2f__8) OpenAD_Symbol_2 REAL(w2f__8) OpenAD_Symbol_4 REAL(w2f__8) OpenAD_Symbol_5 REAL(w2f__8) OpenAD_Symbol_6 REAL(w2f__8) OpenAD_Symbol_7 REAL(w2f__8) OpenAD_Symbol_8 REAL(w2f__8) OpenAD_Symbol_9 REAL(w2f__8) OpenAD_Symbol_200 REAL(w2f__8) OpenAD_Symbol_201 REAL(w2f__8) OpenAD_Symbol_202 type(active) :: OpenAD_Symbol_203 REAL(w2f__8) OpenAD_Symbol_204 type(active) :: OpenAD_Symbol_205 REAL(w2f__8) OpenAD_Symbol_206 type(active) :: OpenAD_Symbol_207 REAL(w2f__8) OpenAD_Symbol_196 type(active) :: OpenAD_Symbol_197 REAL(w2f__8) OpenAD_Symbol_198 type(active) :: OpenAD_Symbol_199 INTEGER(w2f__i8) OpenAD_Symbol_355 INTEGER(w2f__i8) OpenAD_Symbol_356 INTEGER(w2f__i8) OpenAD_Symbol_357 REAL(w2f__8) OpenAD_Symbol_10 REAL(w2f__8) OpenAD_Symbol_11 REAL(w2f__8) OpenAD_Symbol_12 REAL(w2f__8) OpenAD_Symbol_13 REAL(w2f__8) OpenAD_Symbol_14 REAL(w2f__8) OpenAD_Symbol_15 REAL(w2f__8) OpenAD_Symbol_16 REAL(w2f__8) OpenAD_Symbol_17 C C **** Parameters and Result **** C INTEGER(w2f__i4) NX INTEGER(w2f__i4) NY type(active) :: X(1 : INT((NX * NY))) type(active) :: FVEC(1 : INT((NX * NY))) type(active) :: R C C **** Local Variables and functions **** C INTEGER(w2f__i8) t__1 INTEGER(w2f__i8) t__2 EXTERNAL foo REAL(w2f__8) FOUR PARAMETER ( FOUR = 4.000000000000000) type(active) :: HX type(active) :: HX2 type(active) :: HY type(active) :: HY2 INTEGER(w2f__i4) K INTEGER(w2f__i4) N type(active) :: NXP1 type(active) :: NYP1 REAL(w2f__8) ONE PARAMETER ( ONE = 1.000000000000000) REAL(w2f__8) THREE PARAMETER ( THREE = 3.000000000000000) REAL(w2f__8) TWO PARAMETER ( TWO = 2.000000000000000) REAL(w2f__8) ZERO PARAMETER ( ZERO = 0.000000000000000) REAL(w2f__8) OpenAD_Symbol_360 REAL(w2f__8) OpenAD_Symbol_361 INTEGER(w2f__i8) OpenAD_Symbol_362 REAL(w2f__8) OpenAD_Symbol_363 REAL(w2f__8) OpenAD_Symbol_358 INTEGER(w2f__i8) OpenAD_Symbol_364 REAL(w2f__8) OpenAD_Symbol_359 REAL(w2f__8) OpenAD_Symbol_365 INTEGER(w2f__i8) OpenAD_Symbol_366 REAL(w2f__8) OpenAD_Symbol_367 INTEGER(w2f__i8) OpenAD_Symbol_368 C C **** Temporary variables **** C INTEGER(w2f__i4) doloop_ub C C **** statements **** C ! checkpointing stacks and offsets integer :: cp_loop_variable_1,cp_loop_variable_2, +cp_loop_variable_3,cp_loop_variable_4 ! floats 'F' double precision, dimension(:), allocatable, save :: +theArgFStack integer, save :: theArgFStackoffset=0, theArgFStackSize=0 double precision, dimension(:), allocatable, save :: +theResFStack integer, save :: theResFStackoffset=0, theResFStackSize=0 ! integers 'I' integer, dimension(:), allocatable, save :: +theArgIStack integer, save :: theArgIStackoffset=0, theArgIStackSize=0 integer, dimension(:), allocatable, save :: +theResIStack integer, save :: theResIStackoffset=0, theResIStackSize=0 ! booleans 'B' logical, dimension(:), allocatable, save :: +theArgBStack integer, save :: theArgBStackoffset=0, theArgBStackSize=0 logical, dimension(:), allocatable, save :: +theResBStack integer, save :: theResBStackoffset=0, theResBStackSize=0 ! strings 'S' character*(80), dimension(:), allocatable, save :: +theArgSStack integer, save :: theArgSStackoffset=0, theArgSStackSize=0 character*(80), dimension(:), allocatable, save :: +theResSStack integer, save :: theResSStackoffset=0, theResSStackSize=0 type(modeType) :: our_orig_mode ! call external C function used in inlined code integer iaddr external iaddr C write(*,'(A,I6,A,I6,A,I6,A,I6,A,I5,A,I5)') C +"b:AF:", theArgFStackoffset, C +" AI:",theArgIStackoffset, C +" RF:",theResFStackoffset, C +" RI:",theResIStackoffset, C +" DT:",double_tape_pointer, C +" IT:",integer_tape_pointer if (our_rev_mode%arg_store) then C print*, " arg_store ", our_rev_mode call cp_store_globals( + theArgFStack,theArgFStackoffset,theArgFStackSize, + theArgIStack,theArgIStackoffset,theArgIStackSize, + theArgSStack,theArgSStackoffset,theArgSStackSize, + theArgBStack,theArgBStackoffset,theArgBStackSize) C store arguments call cp_store_int_scalar(NX,theArgIStack,theArgIStackoffset,th +eArgIStackSize) call cp_store_int_scalar(NY,theArgIStack,theArgIStackoffset,th +eArgIStackSize) call cp_store_real_vector(X,size(X),theArgFStack,theArgFStacko +ffset,theArgFStackSize) call cp_store_real_vector(FVEC,size(FVEC),theArgFStack,theArgF +Stackoffset,theArgFStackSize) call cp_store_real_scalar(R%v,theArgFStack,theArgFStackoffset, +theArgFStackSize) end if if (our_rev_mode%arg_restore) then C print*, " arg_restore", our_rev_mode C restore arguments R%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",R%v theArgFStackoffset = theArgFStackoffset-1 do cp_loop_variable_1 = ubound(FVEC,1),lbound(FVEC,1),-1 FVEC(cp_loop_variable_1)%v = theArgFStack(theArgFStackoffse +t) theArgFStackoffset = theArgFStackoffset-1 C write(*,'(A,EN26.16E3)')"restore(v) ", C+FVEC(cp_loop_variable_1)%v end do do cp_loop_variable_1 = ubound(X,1),lbound(X,1),-1 X(cp_loop_variable_1)%v = theArgFStack(theArgFStackoffset) theArgFStackoffset = theArgFStackoffset-1 C write(*,'(A,EN26.16E3)')"restore(v) ", C+X(cp_loop_variable_1)%v end do NY = theArgIStack(theArgIStackoffset) theArgIStackoffset = theArgIStackoffset-1 C write(*,'(A,I5)')"restore(s) ",NY NX = theArgIStack(theArgIStackoffset) theArgIStackoffset = theArgIStackoffset-1 C write(*,'(A,I5)')"restore(s) ",NX call cp_restore_globals( + theArgFStack,theArgFStackoffset, + theArgIStack,theArgIStackoffset, + theArgSStack,theArgSStackoffset, + theArgBStack,theArgBStackoffset) end if if (our_rev_mode%plain) then C print*, " plain ", our_rev_mode our_orig_mode=our_rev_mode our_rev_mode%arg_store=.FALSE. C original function t__1 = INT(NX * NY) t__2 = MAX(t__1, 0_w2f__i8) N = NX * NY NXP1%v = (NX+INT(1 _w2f__i8)) NYP1%v = (NY+INT(1 _w2f__i8)) HX%v = (1.0D00/NXP1%v) HY%v = (1.0D00/NYP1%v) HY2%v = (HY%v*HY%v) HX2%v = (HX%v*HX%v) CALL foo(NX,NY,X,FVEC,R,N,HX,HY,HY2,HX2) doloop_ub = N DO K = 1, doloop_ub, 1 FVEC(INT(K))%v = (FVEC(K)%v*HX2%v*HY2%v) END DO our_rev_mode=our_orig_mode end if if (our_rev_mode%tape) then C print*, " tape ", our_rev_mode our_rev_mode%arg_store=.TRUE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.TRUE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.FALSE. C taping t__1 = INT(NX * NY) t__2 = MAX(t__1, 0_w2f__i8) N = NX * NY NXP1%v = (NX+INT(1 _w2f__i8)) NYP1%v = (NY+INT(1 _w2f__i8)) OpenAD_Symbol_2 = (1.0D00/NXP1%v) OpenAD_Symbol_1 = (-(1.0D00/(NXP1%v*NXP1%v))) HX%v = OpenAD_Symbol_2 OpenAD_Symbol_5 = (1.0D00/NYP1%v) OpenAD_Symbol_4 = (-(1.0D00/(NYP1%v*NYP1%v))) HY%v = OpenAD_Symbol_5 OpenAD_Symbol_8 = (HY%v*HY%v) OpenAD_Symbol_6 = HY%v OpenAD_Symbol_7 = HY%v HY2%v = OpenAD_Symbol_8 OpenAD_Symbol_11 = (HX%v*HX%v) OpenAD_Symbol_9 = HX%v OpenAD_Symbol_10 = HX%v HX2%v = OpenAD_Symbol_11 OpenAD_Symbol_196 = (OpenAD_Symbol_1 *(OpenAD_Symbol_10 + OpenAD_ +Symbol_9)) OpenAD_Symbol_198 = (OpenAD_Symbol_4 *(OpenAD_Symbol_7 + OpenAD_S +ymbol_6)) OpenAD_Symbol_200 = OpenAD_Symbol_1 OpenAD_Symbol_201 = OpenAD_Symbol_4 double_tape(double_tape_pointer) = OpenAD_Symbol_196 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_198 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_200 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_201 double_tape_pointer = double_tape_pointer+1 CALL foo(NX,NY,X,FVEC,R,N,HX,HY,HY2,HX2) doloop_ub = N OpenAD_Symbol_357 = 0_w2f__i8 DO K = 1, doloop_ub, 1 OpenAD_Symbol_12 = (HX2%v*HY2%v) OpenAD_Symbol_17 = (FVEC(K)%v*OpenAD_Symbol_12) OpenAD_Symbol_13 = OpenAD_Symbol_12 OpenAD_Symbol_15 = HY2%v OpenAD_Symbol_16 = HX2%v OpenAD_Symbol_14 = FVEC(K)%v FVEC(INT(K))%v = OpenAD_Symbol_17 OpenAD_Symbol_202 = (OpenAD_Symbol_15 * OpenAD_Symbol_14) OpenAD_Symbol_204 = (OpenAD_Symbol_16 * OpenAD_Symbol_14) OpenAD_Symbol_206 = OpenAD_Symbol_13 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_202 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_204 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_206 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_357 = (INT(OpenAD_Symbol_357) + INT(1_w2f__i8)) END DO integer_tape(integer_tape_pointer) = OpenAD_Symbol_357 integer_tape_pointer = integer_tape_pointer+1 our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.TRUE. end if if (our_rev_mode%res_restore) then C restore results NX = theResIStack(theResIStackoffset) theResIStackoffset = theResIStackoffset+1 NY = theResIStack(theResIStackoffset) theResIStackoffset = theResIStackoffset+1 do cp_loop_variable_1 = lbound(X,1),ubound(X,1),1 X(cp_loop_variable_1)%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 end do do cp_loop_variable_1 = lbound(FVEC,1),ubound(FVEC,1),1 FVEC(cp_loop_variable_1)%v = theResFStack(theResFStackoffse +t) theResFStackoffset = theResFStackoffset+1 end do C print *,"restore idx, value, x ",theResFStackoffset,R%v R%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 end if if (our_rev_mode%adjoint) then C print*, " adjoint ", our_rev_mode our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.TRUE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. our_rev_mode%adjoint=.FALSE. C adjoint integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_355 = integer_tape(integer_tape_pointer) OpenAD_Symbol_356 = 1 DO WHILE(INT(OpenAD_Symbol_356) .LE. INT(OpenAD_Symbol_355)) integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_362 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_363 = double_tape(double_tape_pointer) OpenAD_Symbol_207%d = OpenAD_Symbol_207%d+FVEC(INT(OpenAD_Symb +ol_362))%d*OpenAD_Symbol_363 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_364 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_365 = double_tape(double_tape_pointer) OpenAD_Symbol_205%d = OpenAD_Symbol_205%d+FVEC(INT(OpenAD_Symb +ol_364))%d*OpenAD_Symbol_365 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_366 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_367 = double_tape(double_tape_pointer) OpenAD_Symbol_203%d = OpenAD_Symbol_203%d+FVEC(INT(OpenAD_Symb +ol_366))%d*OpenAD_Symbol_367 FVEC(INT(OpenAD_Symbol_366))%d = 0.0d0 HX2%d = HX2%d+OpenAD_Symbol_203%d OpenAD_Symbol_203%d = 0.0d0 HY2%d = HY2%d+OpenAD_Symbol_205%d OpenAD_Symbol_205%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_368 = integer_tape(integer_tape_pointer) FVEC(INT(OpenAD_Symbol_368))%d = FVEC(INT(OpenAD_Symbol_368))% +d+OpenAD_Symbol_207%d OpenAD_Symbol_207%d = 0.0d0 OpenAD_Symbol_356 = INT(OpenAD_Symbol_356) + 1 END DO CALL foo(NX,NY,X,FVEC,R,N,HX,HY,HY2,HX2) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_358 = double_tape(double_tape_pointer) OpenAD_Symbol_199%d = OpenAD_Symbol_199%d+HY%d*OpenAD_Symbol_3 +58 HY%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_359 = double_tape(double_tape_pointer) OpenAD_Symbol_197%d = OpenAD_Symbol_197%d+HX%d*OpenAD_Symbol_3 +59 HX%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_360 = double_tape(double_tape_pointer) OpenAD_Symbol_199%d = OpenAD_Symbol_199%d+HY2%d*OpenAD_Symbol_ +360 HY2%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_361 = double_tape(double_tape_pointer) OpenAD_Symbol_197%d = OpenAD_Symbol_197%d+HX2%d*OpenAD_Symbol_ +361 HX2%d = 0.0d0 NXP1%d = NXP1%d+OpenAD_Symbol_197%d OpenAD_Symbol_197%d = 0.0d0 NYP1%d = NYP1%d+OpenAD_Symbol_199%d OpenAD_Symbol_199%d = 0.0d0 NYP1%d = 0.0d0 NXP1%d = 0.0d0 our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.TRUE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. our_rev_mode%adjoint=.FALSE. end if if (our_rev_mode%res_store) then C store results C print*, " res_store ", our_rev_mode call cp_store_int_scalar(NX,theResIStack,theResIStackoffset,th +eResIStackSize) call cp_store_int_scalar(NY,theResIStack,theResIStackoffset,th +eResIStackSize) call cp_store_real_vector(X,size(X),theResFStack,theResFStacko +ffset,theResFStackSize) call cp_store_real_vector(FVEC,size(FVEC),theResFStack,theResF +Stackoffset,theResFStackSize) call cp_store_real_scalar(R%v,theResFStack,theResFStackoffset, +theResFStackSize) end if C write(*,'(A,I6,A,I6,A,I6,A,I6,A,I5,A,I5)') C +"a:AF:", theArgFStackoffset, C +" AI:",theArgIStackoffset, C +" RF:",theResFStackoffset, C +" RI:",theResIStackoffset, C +" DT:",double_tape_pointer, C +" IT:",integer_tape_pointer end subroutine head subroutine foo(NX,NY,X,FVEC,R,N,HX,HY,HY2,HX2) use OpenAD_dct use OpenAD_tape use OpenAD_rev use OpenAD_checkpoints use all_globals_cp_mod ! original arguments get inserted before version ! and declared here together with all local variables ! generated by xaifBooster use w2f__types use active_module IMPLICIT NONE C C **** Global Variables **** C REAL(w2f__8) OpenAD_Symbol_210 type(active) :: OpenAD_Symbol_211 REAL(w2f__8) OpenAD_Symbol_212 REAL(w2f__8) OpenAD_Symbol_208 type(active) :: OpenAD_Symbol_213 type(active) :: OpenAD_Symbol_209 REAL(w2f__8) OpenAD_Symbol_214 type(active) :: OpenAD_Symbol_215 REAL(w2f__8) OpenAD_Symbol_220 REAL(w2f__8) OpenAD_Symbol_216 type(active) :: OpenAD_Symbol_221 type(active) :: OpenAD_Symbol_217 REAL(w2f__8) OpenAD_Symbol_222 REAL(w2f__8) OpenAD_Symbol_218 REAL(w2f__8) OpenAD_Symbol_223 type(active) :: OpenAD_Symbol_219 REAL(w2f__8) OpenAD_Symbol_224 REAL(w2f__8) OpenAD_Symbol_225 REAL(w2f__8) OpenAD_Symbol_230 REAL(w2f__8) OpenAD_Symbol_226 REAL(w2f__8) OpenAD_Symbol_231 REAL(w2f__8) OpenAD_Symbol_227 type(active) :: OpenAD_Symbol_232 REAL(w2f__8) OpenAD_Symbol_228 REAL(w2f__8) OpenAD_Symbol_233 type(active) :: OpenAD_Symbol_229 REAL(w2f__8) OpenAD_Symbol_234 REAL(w2f__8) OpenAD_Symbol_235 REAL(w2f__8) OpenAD_Symbol_240 REAL(w2f__8) OpenAD_Symbol_236 REAL(w2f__8) OpenAD_Symbol_241 REAL(w2f__8) OpenAD_Symbol_237 type(active) :: OpenAD_Symbol_242 REAL(w2f__8) OpenAD_Symbol_238 REAL(w2f__8) OpenAD_Symbol_243 REAL(w2f__8) OpenAD_Symbol_239 REAL(w2f__8) OpenAD_Symbol_244 type(active) :: OpenAD_Symbol_245 REAL(w2f__8) OpenAD_Symbol_250 REAL(w2f__8) OpenAD_Symbol_246 REAL(w2f__8) OpenAD_Symbol_251 REAL(w2f__8) OpenAD_Symbol_247 type(active) :: OpenAD_Symbol_252 REAL(w2f__8) OpenAD_Symbol_248 REAL(w2f__8) OpenAD_Symbol_253 REAL(w2f__8) OpenAD_Symbol_249 type(active) :: OpenAD_Symbol_254 REAL(w2f__8) OpenAD_Symbol_255 type(active) :: OpenAD_Symbol_260 type(active) :: OpenAD_Symbol_256 REAL(w2f__8) OpenAD_Symbol_261 REAL(w2f__8) OpenAD_Symbol_257 type(active) :: OpenAD_Symbol_262 type(active) :: OpenAD_Symbol_258 REAL(w2f__8) OpenAD_Symbol_263 REAL(w2f__8) OpenAD_Symbol_259 REAL(w2f__8) OpenAD_Symbol_264 type(active) :: OpenAD_Symbol_265 REAL(w2f__8) OpenAD_Symbol_266 type(active) :: OpenAD_Symbol_267 REAL(w2f__8) OpenAD_Symbol_268 type(active) :: OpenAD_Symbol_269 INTEGER(w2f__i8) OpenAD_Symbol_400 INTEGER(w2f__i8) OpenAD_Symbol_401 INTEGER(w2f__i8) OpenAD_Symbol_402 INTEGER(w2f__i8) OpenAD_Symbol_403 INTEGER(w2f__i8) OpenAD_Symbol_404 INTEGER(w2f__i8) OpenAD_Symbol_410 INTEGER(w2f__i8) OpenAD_Symbol_405 INTEGER(w2f__i8) OpenAD_Symbol_406 INTEGER(w2f__i8) OpenAD_Symbol_407 INTEGER(w2f__i8) OpenAD_Symbol_408 INTEGER(w2f__i8) OpenAD_Symbol_409 INTEGER(w2f__i8) OpenAD_Symbol_370 INTEGER(w2f__i8) OpenAD_Symbol_371 INTEGER(w2f__i8) OpenAD_Symbol_372 INTEGER(w2f__i8) OpenAD_Symbol_373 INTEGER(w2f__i8) OpenAD_Symbol_369 INTEGER(w2f__i8) OpenAD_Symbol_374 INTEGER(w2f__i8) OpenAD_Symbol_380 INTEGER(w2f__i8) OpenAD_Symbol_375 INTEGER(w2f__i8) OpenAD_Symbol_381 INTEGER(w2f__i8) OpenAD_Symbol_376 INTEGER(w2f__i8) OpenAD_Symbol_382 INTEGER(w2f__i8) OpenAD_Symbol_377 INTEGER(w2f__i8) OpenAD_Symbol_383 INTEGER(w2f__i8) OpenAD_Symbol_378 INTEGER(w2f__i8) OpenAD_Symbol_384 INTEGER(w2f__i8) OpenAD_Symbol_379 INTEGER(w2f__i8) OpenAD_Symbol_390 INTEGER(w2f__i8) OpenAD_Symbol_385 INTEGER(w2f__i8) OpenAD_Symbol_391 INTEGER(w2f__i8) OpenAD_Symbol_386 INTEGER(w2f__i8) OpenAD_Symbol_392 INTEGER(w2f__i8) OpenAD_Symbol_387 INTEGER(w2f__i8) OpenAD_Symbol_393 INTEGER(w2f__i8) OpenAD_Symbol_388 INTEGER(w2f__i8) OpenAD_Symbol_394 INTEGER(w2f__i8) OpenAD_Symbol_389 INTEGER(w2f__i8) OpenAD_Symbol_395 INTEGER(w2f__i8) OpenAD_Symbol_396 INTEGER(w2f__i8) OpenAD_Symbol_397 INTEGER(w2f__i8) OpenAD_Symbol_398 INTEGER(w2f__i8) OpenAD_Symbol_399 REAL(w2f__8) OpenAD_Symbol_20 REAL(w2f__8) OpenAD_Symbol_21 REAL(w2f__8) OpenAD_Symbol_22 REAL(w2f__8) OpenAD_Symbol_23 REAL(w2f__8) OpenAD_Symbol_18 REAL(w2f__8) OpenAD_Symbol_24 REAL(w2f__8) OpenAD_Symbol_19 REAL(w2f__8) OpenAD_Symbol_30 REAL(w2f__8) OpenAD_Symbol_31 REAL(w2f__8) OpenAD_Symbol_26 REAL(w2f__8) OpenAD_Symbol_32 REAL(w2f__8) OpenAD_Symbol_27 REAL(w2f__8) OpenAD_Symbol_33 REAL(w2f__8) OpenAD_Symbol_28 REAL(w2f__8) OpenAD_Symbol_29 REAL(w2f__8) OpenAD_Symbol_40 REAL(w2f__8) OpenAD_Symbol_35 REAL(w2f__8) OpenAD_Symbol_41 REAL(w2f__8) OpenAD_Symbol_36 REAL(w2f__8) OpenAD_Symbol_42 REAL(w2f__8) OpenAD_Symbol_37 REAL(w2f__8) OpenAD_Symbol_43 REAL(w2f__8) OpenAD_Symbol_38 REAL(w2f__8) OpenAD_Symbol_44 REAL(w2f__8) OpenAD_Symbol_39 REAL(w2f__8) OpenAD_Symbol_50 REAL(w2f__8) OpenAD_Symbol_45 REAL(w2f__8) OpenAD_Symbol_51 REAL(w2f__8) OpenAD_Symbol_46 REAL(w2f__8) OpenAD_Symbol_52 REAL(w2f__8) OpenAD_Symbol_47 REAL(w2f__8) OpenAD_Symbol_53 REAL(w2f__8) OpenAD_Symbol_54 REAL(w2f__8) OpenAD_Symbol_49 REAL(w2f__8) OpenAD_Symbol_60 REAL(w2f__8) OpenAD_Symbol_55 REAL(w2f__8) OpenAD_Symbol_61 REAL(w2f__8) OpenAD_Symbol_56 REAL(w2f__8) OpenAD_Symbol_62 REAL(w2f__8) OpenAD_Symbol_63 REAL(w2f__8) OpenAD_Symbol_58 REAL(w2f__8) OpenAD_Symbol_64 REAL(w2f__8) OpenAD_Symbol_59 REAL(w2f__8) OpenAD_Symbol_70 REAL(w2f__8) OpenAD_Symbol_65 REAL(w2f__8) OpenAD_Symbol_71 REAL(w2f__8) OpenAD_Symbol_66 REAL(w2f__8) OpenAD_Symbol_72 REAL(w2f__8) OpenAD_Symbol_67 REAL(w2f__8) OpenAD_Symbol_68 REAL(w2f__8) OpenAD_Symbol_74 REAL(w2f__8) OpenAD_Symbol_69 REAL(w2f__8) OpenAD_Symbol_80 REAL(w2f__8) OpenAD_Symbol_75 REAL(w2f__8) OpenAD_Symbol_81 REAL(w2f__8) OpenAD_Symbol_76 REAL(w2f__8) OpenAD_Symbol_82 REAL(w2f__8) OpenAD_Symbol_77 REAL(w2f__8) OpenAD_Symbol_83 REAL(w2f__8) OpenAD_Symbol_78 REAL(w2f__8) OpenAD_Symbol_79 REAL(w2f__8) OpenAD_Symbol_90 REAL(w2f__8) OpenAD_Symbol_85 REAL(w2f__8) OpenAD_Symbol_86 REAL(w2f__8) OpenAD_Symbol_87 REAL(w2f__8) OpenAD_Symbol_88 C C **** Parameters and Result **** C INTEGER(w2f__i4) NX INTEGER(w2f__i4) NY type(active) :: X(1 : INT((NX * NY))) type(active) :: FVEC(1 : INT((NX * NY))) type(active) :: R INTEGER(w2f__i4) N type(active) :: HX type(active) :: HY type(active) :: HY2 type(active) :: HX2 C C **** Local Variables and functions **** C INTEGER(w2f__i8) t__3 INTEGER(w2f__i8) t__4 EXTERNAL bar type(active) :: DPDX type(active) :: DPDY REAL(w2f__8) FOUR PARAMETER ( FOUR = 4.000000000000000) INTEGER(w2f__i4) I INTEGER(w2f__i4) J INTEGER(w2f__i4) K REAL(w2f__8) ONE PARAMETER ( ONE = 1.000000000000000) type(active) :: P type(active) :: PB type(active) :: PBB type(active) :: PBL type(active) :: PBLAP type(active) :: PBR type(active) :: PL type(active) :: PLAP type(active) :: PLL type(active) :: PLLAP type(active) :: PR type(active) :: PRLAP type(active) :: PRR type(active) :: PT type(active) :: PTL type(active) :: PTLAP type(active) :: PTR type(active) :: PTT REAL(w2f__8) THREE PARAMETER ( THREE = 3.000000000000000) REAL(w2f__8) TWO PARAMETER ( TWO = 2.000000000000000) REAL(w2f__8) ZERO PARAMETER ( ZERO = 0.000000000000000) INTEGER(w2f__i8) OpenAD_Symbol_411 INTEGER(w2f__i8) OpenAD_Symbol_412 INTEGER(w2f__i8) OpenAD_Symbol_413 INTEGER(w2f__i8) OpenAD_Symbol_414 INTEGER(w2f__i8) OpenAD_Symbol_420 INTEGER(w2f__i8) OpenAD_Symbol_415 REAL(w2f__8) OpenAD_Symbol_421 INTEGER(w2f__i8) OpenAD_Symbol_416 INTEGER(w2f__i8) OpenAD_Symbol_422 INTEGER(w2f__i8) OpenAD_Symbol_417 REAL(w2f__8) OpenAD_Symbol_423 INTEGER(w2f__i8) OpenAD_Symbol_418 INTEGER(w2f__i8) OpenAD_Symbol_424 REAL(w2f__8) OpenAD_Symbol_419 INTEGER(w2f__i8) OpenAD_Symbol_430 REAL(w2f__8) OpenAD_Symbol_425 REAL(w2f__8) OpenAD_Symbol_431 INTEGER(w2f__i8) OpenAD_Symbol_426 INTEGER(w2f__i8) OpenAD_Symbol_432 REAL(w2f__8) OpenAD_Symbol_427 REAL(w2f__8) OpenAD_Symbol_433 INTEGER(w2f__i8) OpenAD_Symbol_428 INTEGER(w2f__i8) OpenAD_Symbol_434 REAL(w2f__8) OpenAD_Symbol_429 INTEGER(w2f__i8) OpenAD_Symbol_440 REAL(w2f__8) OpenAD_Symbol_435 REAL(w2f__8) OpenAD_Symbol_441 INTEGER(w2f__i8) OpenAD_Symbol_436 REAL(w2f__8) OpenAD_Symbol_442 REAL(w2f__8) OpenAD_Symbol_437 REAL(w2f__8) OpenAD_Symbol_443 INTEGER(w2f__i8) OpenAD_Symbol_438 REAL(w2f__8) OpenAD_Symbol_444 REAL(w2f__8) OpenAD_Symbol_439 REAL(w2f__8) OpenAD_Symbol_450 REAL(w2f__8) OpenAD_Symbol_445 REAL(w2f__8) OpenAD_Symbol_451 REAL(w2f__8) OpenAD_Symbol_446 INTEGER(w2f__i8) OpenAD_Symbol_452 REAL(w2f__8) OpenAD_Symbol_447 INTEGER(w2f__i8) OpenAD_Symbol_453 INTEGER(w2f__i8) OpenAD_Symbol_448 INTEGER(w2f__i8) OpenAD_Symbol_454 INTEGER(w2f__i8) OpenAD_Symbol_449 INTEGER(w2f__i8) OpenAD_Symbol_460 INTEGER(w2f__i8) OpenAD_Symbol_455 INTEGER(w2f__i8) OpenAD_Symbol_461 INTEGER(w2f__i8) OpenAD_Symbol_456 INTEGER(w2f__i8) OpenAD_Symbol_462 INTEGER(w2f__i8) OpenAD_Symbol_457 INTEGER(w2f__i8) OpenAD_Symbol_463 INTEGER(w2f__i8) OpenAD_Symbol_458 INTEGER(w2f__i8) OpenAD_Symbol_464 INTEGER(w2f__i8) OpenAD_Symbol_459 INTEGER(w2f__i8) OpenAD_Symbol_470 INTEGER(w2f__i8) OpenAD_Symbol_465 INTEGER(w2f__i8) OpenAD_Symbol_471 INTEGER(w2f__i8) OpenAD_Symbol_466 INTEGER(w2f__i8) OpenAD_Symbol_472 INTEGER(w2f__i8) OpenAD_Symbol_467 INTEGER(w2f__i8) OpenAD_Symbol_473 INTEGER(w2f__i8) OpenAD_Symbol_468 INTEGER(w2f__i8) OpenAD_Symbol_474 INTEGER(w2f__i8) OpenAD_Symbol_469 INTEGER(w2f__i8) OpenAD_Symbol_475 INTEGER(w2f__i8) OpenAD_Symbol_476 INTEGER(w2f__i8) OpenAD_Symbol_477 INTEGER(w2f__i8) OpenAD_Symbol_478 INTEGER(w2f__i8) OpenAD_Symbol_479 C C **** Temporary variables **** C INTEGER(w2f__i4) doloop_ub INTEGER(w2f__i4) doloop_ub0 C C **** statements **** C ! checkpointing stacks and offsets integer :: cp_loop_variable_1,cp_loop_variable_2, +cp_loop_variable_3,cp_loop_variable_4 ! floats 'F' double precision, dimension(:), allocatable, save :: +theArgFStack integer, save :: theArgFStackoffset=0, theArgFStackSize=0 double precision, dimension(:), allocatable, save :: +theResFStack integer, save :: theResFStackoffset=0, theResFStackSize=0 ! integers 'I' integer, dimension(:), allocatable, save :: +theArgIStack integer, save :: theArgIStackoffset=0, theArgIStackSize=0 integer, dimension(:), allocatable, save :: +theResIStack integer, save :: theResIStackoffset=0, theResIStackSize=0 ! booleans 'B' logical, dimension(:), allocatable, save :: +theArgBStack integer, save :: theArgBStackoffset=0, theArgBStackSize=0 logical, dimension(:), allocatable, save :: +theResBStack integer, save :: theResBStackoffset=0, theResBStackSize=0 ! strings 'S' character*(80), dimension(:), allocatable, save :: +theArgSStack integer, save :: theArgSStackoffset=0, theArgSStackSize=0 character*(80), dimension(:), allocatable, save :: +theResSStack integer, save :: theResSStackoffset=0, theResSStackSize=0 type(modeType) :: our_orig_mode ! call external C function used in inlined code integer iaddr external iaddr C write(*,'(A,I6,A,I6,A,I6,A,I6,A,I5,A,I5)') C +"b:AF:", theArgFStackoffset, C +" AI:",theArgIStackoffset, C +" RF:",theResFStackoffset, C +" RI:",theResIStackoffset, C +" DT:",double_tape_pointer, C +" IT:",integer_tape_pointer if (our_rev_mode%arg_store) then C print*, " arg_store ", our_rev_mode call cp_store_globals( + theArgFStack,theArgFStackoffset,theArgFStackSize, + theArgIStack,theArgIStackoffset,theArgIStackSize, + theArgSStack,theArgSStackoffset,theArgSStackSize, + theArgBStack,theArgBStackoffset,theArgBStackSize) C store arguments call cp_store_int_scalar(NX,theArgIStack,theArgIStackoffset,th +eArgIStackSize) call cp_store_int_scalar(NY,theArgIStack,theArgIStackoffset,th +eArgIStackSize) call cp_store_real_vector(X,size(X),theArgFStack,theArgFStacko +ffset,theArgFStackSize) call cp_store_real_vector(FVEC,size(FVEC),theArgFStack,theArgF +Stackoffset,theArgFStackSize) call cp_store_real_scalar(R%v,theArgFStack,theArgFStackoffset, +theArgFStackSize) call cp_store_int_scalar(N,theArgIStack,theArgIStackoffset,the +ArgIStackSize) call cp_store_real_scalar(HX%v,theArgFStack,theArgFStackoffset +,theArgFStackSize) call cp_store_real_scalar(HY%v,theArgFStack,theArgFStackoffset +,theArgFStackSize) call cp_store_real_scalar(HY2%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(HX2%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) end if if (our_rev_mode%arg_restore) then C print*, " arg_restore", our_rev_mode C restore arguments HX2%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",HX2%v theArgFStackoffset = theArgFStackoffset-1 HY2%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",HY2%v theArgFStackoffset = theArgFStackoffset-1 HY%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",HY%v theArgFStackoffset = theArgFStackoffset-1 HX%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",HX%v theArgFStackoffset = theArgFStackoffset-1 N = theArgIStack(theArgIStackoffset) theArgIStackoffset = theArgIStackoffset-1 C write(*,'(A,I5)')"restore(s) ",N R%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",R%v theArgFStackoffset = theArgFStackoffset-1 do cp_loop_variable_1 = ubound(FVEC,1),lbound(FVEC,1),-1 FVEC(cp_loop_variable_1)%v = theArgFStack(theArgFStackoffse +t) theArgFStackoffset = theArgFStackoffset-1 C write(*,'(A,EN26.16E3)')"restore(v) ", C+FVEC(cp_loop_variable_1)%v end do do cp_loop_variable_1 = ubound(X,1),lbound(X,1),-1 X(cp_loop_variable_1)%v = theArgFStack(theArgFStackoffset) theArgFStackoffset = theArgFStackoffset-1 C write(*,'(A,EN26.16E3)')"restore(v) ", C+X(cp_loop_variable_1)%v end do NY = theArgIStack(theArgIStackoffset) theArgIStackoffset = theArgIStackoffset-1 C write(*,'(A,I5)')"restore(s) ",NY NX = theArgIStack(theArgIStackoffset) theArgIStackoffset = theArgIStackoffset-1 C write(*,'(A,I5)')"restore(s) ",NX call cp_restore_globals( + theArgFStack,theArgFStackoffset, + theArgIStack,theArgIStackoffset, + theArgSStack,theArgSStackoffset, + theArgBStack,theArgBStackoffset) end if if (our_rev_mode%plain) then C print*, " plain ", our_rev_mode our_orig_mode=our_rev_mode our_rev_mode%arg_store=.FALSE. C original function t__3 = INT(NX * NY) t__4 = MAX(t__3, 0_w2f__i8) doloop_ub = NY DO I = 1, doloop_ub, 1 doloop_ub0 = NX DO J = 1, doloop_ub0, 1 K = J + NX *(I +(-1)) IF((I .eq. INT(1_w2f__i8)) .OR.(J .eq. INT(1_w2f__i8))) THEN PBL%v = 0.0D00 ELSE PBL%v = X(K-NX+(-1))%v ENDIF IF(I .eq. INT(1_w2f__i8)) THEN PB%v = 0.0D00 PBB%v = X(K)%v ELSE IF(I .eq. INT(2_w2f__i8)) THEN PB%v = X(K-NX)%v PBB%v = 0.0D00 ELSE PB%v = X(K-NX)%v PBB%v = X(K-NX*2)%v ENDIF ENDIF IF((NX .eq. J) .OR.(I .eq. INT(1_w2f__i8))) THEN PBR%v = 0.0D00 ELSE PBR%v = X(K-NX+1)%v ENDIF IF(J .eq. INT(1_w2f__i8)) THEN PL%v = 0.0D00 PLL%v = X(K)%v ELSE IF(J .eq. INT(2_w2f__i8)) THEN PL%v = X(K+(-1))%v PLL%v = 0.0D00 ELSE PL%v = X(K+(-1))%v PLL%v = X(K+(-2))%v ENDIF ENDIF P%v = X(K)%v IF(J .eq.(NX + INT((-1_w2f__i8)))) THEN PR%v = X(K+1)%v PRR%v = 0.0D00 ELSE IF(NX .eq. J) THEN PR%v = 0.0D00 PRR%v = X(K)%v ELSE PR%v = X(K+1)%v PRR%v = X(K+2)%v ENDIF ENDIF IF((NY .eq. I) .OR.(J .eq. INT(1_w2f__i8))) THEN PTL%v = 0.0D00 ELSE PTL%v = X(NX+K+(-1))%v ENDIF IF(I .eq.(NY + INT((-1_w2f__i8)))) THEN PT%v = X(NX+K)%v PTT%v = 0.0D00 ELSE IF(NY .eq. I) THEN PT%v = 0.0D00 PTT%v = (X(K)%v+HY%v*2.0D00) ELSE PT%v = X(NX+K)%v PTT%v = X(K+NX*2)%v ENDIF ENDIF IF((NX .eq. J) .OR.(NY .eq. I)) THEN PTR%v = 0.0D00 ELSE PTR%v = X(NX+K+1)%v ENDIF DPDY%v = ((PT%v-PB%v)/(HY%v*2.0D00)) DPDX%v = ((PR%v-PL%v)/(HX%v*2.0D00)) CALL bar(PBB,PBL,PB,PBR,PLL,PL,P,PR,PRR,PTL,PT,PTR,PTT,HY2,HX2 +,PLAP,PBLAP,PLLAP,PRLAP,PTLAP) FVEC(INT(K))%v = (((PBLAP%v+PTLAP%v-PLAP%v*2.0D00)/HY2%v)+((PL +LAP%v+PRLAP%v-PLAP%v*2.0D00)/HX2%v)-R%v*(((DPDY%v*(PRLAP%v-PLLAP%v +))/(HX%v*2.0D00))-((DPDX%v*(PTLAP%v-PBLAP%v))/(HY%v*2.0D00)))) END DO END DO our_rev_mode=our_orig_mode end if if (our_rev_mode%tape) then C print*, " tape ", our_rev_mode our_rev_mode%arg_store=.TRUE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.TRUE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.FALSE. C taping t__3 = INT(NX * NY) t__4 = MAX(t__3, 0_w2f__i8) doloop_ub = NY OpenAD_Symbol_385 = 0_w2f__i8 DO I = 1, doloop_ub, 1 doloop_ub0 = NX OpenAD_Symbol_386 = 0_w2f__i8 DO J = 1, doloop_ub0, 1 K = J + NX *(I +(-1)) IF((I .eq. INT(1_w2f__i8)) .OR.(J .eq. INT(1_w2f__i8))) THEN PBL%v = 0.0D00 OpenAD_Symbol_387 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_387 integer_tape_pointer = integer_tape_pointer+1 ELSE PBL%v = X(K-NX+(-1))%v OpenAD_Symbol_478 = (K - NX + INT((-1_w2f__i8))) integer_tape(integer_tape_pointer) = OpenAD_Symbol_478 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_388 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_388 integer_tape_pointer = integer_tape_pointer+1 ENDIF IF(I .eq. INT(1_w2f__i8)) THEN PB%v = 0.0D00 PBB%v = X(K)%v integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_391 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_391 integer_tape_pointer = integer_tape_pointer+1 ELSE IF(I .eq. INT(2_w2f__i8)) THEN PB%v = X(K-NX)%v PBB%v = 0.0D00 OpenAD_Symbol_472 = (K - NX) integer_tape(integer_tape_pointer) = OpenAD_Symbol_472 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_389 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_389 integer_tape_pointer = integer_tape_pointer+1 ELSE PB%v = X(K-NX)%v OpenAD_Symbol_474 = (K - NX) integer_tape(integer_tape_pointer) = OpenAD_Symbol_474 integer_tape_pointer = integer_tape_pointer+1 PBB%v = X(K-NX*2)%v OpenAD_Symbol_475 = (K - NX * INT(2_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_475 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_390 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_390 integer_tape_pointer = integer_tape_pointer+1 ENDIF OpenAD_Symbol_392 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_392 integer_tape_pointer = integer_tape_pointer+1 ENDIF IF((NX .eq. J) .OR.(I .eq. INT(1_w2f__i8))) THEN PBR%v = 0.0D00 OpenAD_Symbol_393 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_393 integer_tape_pointer = integer_tape_pointer+1 ELSE PBR%v = X(K-NX+1)%v OpenAD_Symbol_470 = (K - NX + INT(1_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_470 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_394 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_394 integer_tape_pointer = integer_tape_pointer+1 ENDIF IF(J .eq. INT(1_w2f__i8)) THEN PL%v = 0.0D00 PLL%v = X(K)%v integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_397 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_397 integer_tape_pointer = integer_tape_pointer+1 ELSE IF(J .eq. INT(2_w2f__i8)) THEN PL%v = X(K+(-1))%v PLL%v = 0.0D00 OpenAD_Symbol_464 = (K + INT((-1_w2f__i8))) integer_tape(integer_tape_pointer) = OpenAD_Symbol_464 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_395 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_395 integer_tape_pointer = integer_tape_pointer+1 ELSE PL%v = X(K+(-1))%v OpenAD_Symbol_466 = (K + INT((-1_w2f__i8))) integer_tape(integer_tape_pointer) = OpenAD_Symbol_466 integer_tape_pointer = integer_tape_pointer+1 PLL%v = X(K+(-2))%v OpenAD_Symbol_467 = (K + INT((-2_w2f__i8))) integer_tape(integer_tape_pointer) = OpenAD_Symbol_467 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_396 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_396 integer_tape_pointer = integer_tape_pointer+1 ENDIF OpenAD_Symbol_398 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_398 integer_tape_pointer = integer_tape_pointer+1 ENDIF P%v = X(K)%v integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 IF(J .eq.(NX + INT((-1_w2f__i8)))) THEN PR%v = X(K+1)%v PRR%v = 0.0D00 OpenAD_Symbol_414 = (K + INT(1_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_414 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_401 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_401 integer_tape_pointer = integer_tape_pointer+1 ELSE IF(NX .eq. J) THEN PR%v = 0.0D00 PRR%v = X(K)%v integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_399 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_399 integer_tape_pointer = integer_tape_pointer+1 ELSE PR%v = X(K+1)%v OpenAD_Symbol_460 = (K + INT(1_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_460 integer_tape_pointer = integer_tape_pointer+1 PRR%v = X(K+2)%v OpenAD_Symbol_461 = (K + INT(2_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_461 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_400 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_400 integer_tape_pointer = integer_tape_pointer+1 ENDIF OpenAD_Symbol_402 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_402 integer_tape_pointer = integer_tape_pointer+1 ENDIF IF((NY .eq. I) .OR.(J .eq. INT(1_w2f__i8))) THEN PTL%v = 0.0D00 OpenAD_Symbol_403 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_403 integer_tape_pointer = integer_tape_pointer+1 ELSE PTL%v = X(NX+K+(-1))%v OpenAD_Symbol_457 = (NX + K + INT((-1_w2f__i8))) integer_tape(integer_tape_pointer) = OpenAD_Symbol_457 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_404 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_404 integer_tape_pointer = integer_tape_pointer+1 ENDIF IF(I .eq.(NY + INT((-1_w2f__i8)))) THEN PT%v = X(NX+K)%v PTT%v = 0.0D00 OpenAD_Symbol_416 = (NX + K) integer_tape(integer_tape_pointer) = OpenAD_Symbol_416 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_407 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_407 integer_tape_pointer = integer_tape_pointer+1 ELSE IF(NY .eq. I) THEN PT%v = 0.0D00 OpenAD_Symbol_90 = (X(K)%v+HY%v*2.0D00) OpenAD_Symbol_86 = 1_w2f__i8 OpenAD_Symbol_88 = 2.0D00 OpenAD_Symbol_87 = 1_w2f__i8 PTT%v = OpenAD_Symbol_90 OpenAD_Symbol_266 = (OpenAD_Symbol_88 * OpenAD_Symbol_87) OpenAD_Symbol_268 = OpenAD_Symbol_86 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_266 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_268 double_tape_pointer = double_tape_pointer+1 OpenAD_Symbol_405 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_405 integer_tape_pointer = integer_tape_pointer+1 ELSE PT%v = X(NX+K)%v OpenAD_Symbol_453 = (NX + K) integer_tape(integer_tape_pointer) = OpenAD_Symbol_453 integer_tape_pointer = integer_tape_pointer+1 PTT%v = X(K+NX*2)%v OpenAD_Symbol_454 = (K + NX * INT(2_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_454 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_406 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_406 integer_tape_pointer = integer_tape_pointer+1 ENDIF OpenAD_Symbol_408 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_408 integer_tape_pointer = integer_tape_pointer+1 ENDIF IF((NX .eq. J) .OR.(NY .eq. I)) THEN PTR%v = 0.0D00 OpenAD_Symbol_409 = 1_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_409 integer_tape_pointer = integer_tape_pointer+1 ELSE PTR%v = X(NX+K+1)%v OpenAD_Symbol_448 = (NX + K + INT(1_w2f__i8)) integer_tape(integer_tape_pointer) = OpenAD_Symbol_448 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_410 = 0_w2f__i8 integer_tape(integer_tape_pointer) = OpenAD_Symbol_410 integer_tape_pointer = integer_tape_pointer+1 ENDIF OpenAD_Symbol_18 = (PT%v-PB%v) OpenAD_Symbol_19 = (HY%v*2.0D00) OpenAD_Symbol_26 = (OpenAD_Symbol_18 / OpenAD_Symbol_19) OpenAD_Symbol_22 = 1_w2f__i8 OpenAD_Symbol_23 = (-1_w2f__i8) OpenAD_Symbol_20 = (INT(1_w2f__i8) / OpenAD_Symbol_19) OpenAD_Symbol_24 = 2.0D00 OpenAD_Symbol_21 = (-(OpenAD_Symbol_18 /(OpenAD_Symbol_19 * O +penAD_Symbol_19))) DPDY%v = OpenAD_Symbol_26 OpenAD_Symbol_27 = (PR%v-PL%v) OpenAD_Symbol_28 = (HX%v*2.0D00) OpenAD_Symbol_35 = (OpenAD_Symbol_27 / OpenAD_Symbol_28) OpenAD_Symbol_31 = 1_w2f__i8 OpenAD_Symbol_32 = (-1_w2f__i8) OpenAD_Symbol_29 = (INT(1_w2f__i8) / OpenAD_Symbol_28) OpenAD_Symbol_33 = 2.0D00 OpenAD_Symbol_30 = (-(OpenAD_Symbol_27 /(OpenAD_Symbol_28 * O +penAD_Symbol_28))) DPDX%v = OpenAD_Symbol_35 OpenAD_Symbol_208 = (OpenAD_Symbol_22 * OpenAD_Symbol_20) OpenAD_Symbol_210 = (OpenAD_Symbol_23 * OpenAD_Symbol_20) OpenAD_Symbol_212 = (OpenAD_Symbol_24 * OpenAD_Symbol_21) OpenAD_Symbol_214 = (OpenAD_Symbol_31 * OpenAD_Symbol_29) OpenAD_Symbol_216 = (OpenAD_Symbol_32 * OpenAD_Symbol_29) OpenAD_Symbol_218 = (OpenAD_Symbol_33 * OpenAD_Symbol_30) double_tape(double_tape_pointer) = OpenAD_Symbol_208 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_210 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_212 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_214 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_216 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_218 double_tape_pointer = double_tape_pointer+1 CALL bar(PBB,PBL,PB,PBR,PLL,PL,P,PR,PRR,PTL,PT,PTR,PTT,HY2,HX2 +,PLAP,PBLAP,PLLAP,PRLAP,PTLAP) OpenAD_Symbol_40 = (PBLAP%v+PTLAP%v-PLAP%v*2.0D00) OpenAD_Symbol_49 = (PLLAP%v+PRLAP%v-PLAP%v*2.0D00) OpenAD_Symbol_67 = (PRLAP%v-PLLAP%v) OpenAD_Symbol_63 = (DPDY%v*OpenAD_Symbol_67) OpenAD_Symbol_64 = (HX%v*2.0D00) OpenAD_Symbol_78 = (PTLAP%v-PBLAP%v) OpenAD_Symbol_74 = (DPDX%v*OpenAD_Symbol_78) OpenAD_Symbol_75 = (HY%v*2.0D00) OpenAD_Symbol_58 = ((OpenAD_Symbol_63 / OpenAD_Symbol_64) -( O +penAD_Symbol_74 / OpenAD_Symbol_75)) OpenAD_Symbol_85 = ((OpenAD_Symbol_40/HY2%v)+(OpenAD_Symbol_49 +/HX2%v)-R%v*OpenAD_Symbol_58) OpenAD_Symbol_43 = 1_w2f__i8 OpenAD_Symbol_45 = 1_w2f__i8 OpenAD_Symbol_47 = 2.0D00 OpenAD_Symbol_46 = (-1_w2f__i8) OpenAD_Symbol_44 = 1_w2f__i8 OpenAD_Symbol_41 = (INT(1 _w2f__i8)/HY2%v) OpenAD_Symbol_42 = (-(OpenAD_Symbol_40/(HY2%v*HY2%v))) OpenAD_Symbol_38 = 1_w2f__i8 OpenAD_Symbol_52 = 1_w2f__i8 OpenAD_Symbol_54 = 1_w2f__i8 OpenAD_Symbol_56 = 2.0D00 OpenAD_Symbol_55 = (-1_w2f__i8) OpenAD_Symbol_53 = 1_w2f__i8 OpenAD_Symbol_50 = (INT(1 _w2f__i8)/HX2%v) OpenAD_Symbol_51 = (-(OpenAD_Symbol_49/(HX2%v*HX2%v))) OpenAD_Symbol_39 = 1_w2f__i8 OpenAD_Symbol_36 = 1_w2f__i8 OpenAD_Symbol_59 = OpenAD_Symbol_58 OpenAD_Symbol_68 = OpenAD_Symbol_67 OpenAD_Symbol_70 = 1_w2f__i8 OpenAD_Symbol_71 = (-1_w2f__i8) OpenAD_Symbol_69 = DPDY%v OpenAD_Symbol_65 = (INT(1_w2f__i8) / OpenAD_Symbol_64) OpenAD_Symbol_72 = 2.0D00 OpenAD_Symbol_66 = (-(OpenAD_Symbol_63 /(OpenAD_Symbol_64 * O +penAD_Symbol_64))) OpenAD_Symbol_61 = 1_w2f__i8 OpenAD_Symbol_79 = OpenAD_Symbol_78 OpenAD_Symbol_81 = 1_w2f__i8 OpenAD_Symbol_82 = (-1_w2f__i8) OpenAD_Symbol_80 = DPDX%v OpenAD_Symbol_76 = (INT(1_w2f__i8) / OpenAD_Symbol_75) OpenAD_Symbol_83 = 2.0D00 OpenAD_Symbol_77 = (-(OpenAD_Symbol_74 /(OpenAD_Symbol_75 * O +penAD_Symbol_75))) OpenAD_Symbol_62 = (-1_w2f__i8) OpenAD_Symbol_60 = R%v OpenAD_Symbol_37 = (-1_w2f__i8) FVEC(INT(K))%v = OpenAD_Symbol_85 OpenAD_Symbol_220 = (OpenAD_Symbol_59 * OpenAD_Symbol_37) OpenAD_Symbol_222 = (OpenAD_Symbol_60 * OpenAD_Symbol_37) OpenAD_Symbol_223 = (OpenAD_Symbol_38 * OpenAD_Symbol_36) OpenAD_Symbol_224 = (OpenAD_Symbol_39 * OpenAD_Symbol_36) OpenAD_Symbol_225 = (OpenAD_Symbol_61 * OpenAD_Symbol_222) OpenAD_Symbol_226 = (OpenAD_Symbol_62 * OpenAD_Symbol_222) OpenAD_Symbol_227 = (OpenAD_Symbol_50 * OpenAD_Symbol_224) OpenAD_Symbol_228 = (OpenAD_Symbol_51 * OpenAD_Symbol_224) OpenAD_Symbol_230 = (OpenAD_Symbol_41 * OpenAD_Symbol_223) OpenAD_Symbol_231 = (OpenAD_Symbol_42 * OpenAD_Symbol_223) OpenAD_Symbol_233 = (OpenAD_Symbol_76 * OpenAD_Symbol_226) OpenAD_Symbol_234 = (OpenAD_Symbol_77 * OpenAD_Symbol_226) OpenAD_Symbol_235 = (OpenAD_Symbol_65 * OpenAD_Symbol_225) OpenAD_Symbol_236 = (OpenAD_Symbol_66 * OpenAD_Symbol_225) OpenAD_Symbol_237 = (OpenAD_Symbol_52 * OpenAD_Symbol_227) OpenAD_Symbol_238 = (OpenAD_Symbol_53 * OpenAD_Symbol_227) OpenAD_Symbol_239 = (OpenAD_Symbol_43 * OpenAD_Symbol_230) OpenAD_Symbol_240 = (OpenAD_Symbol_44 * OpenAD_Symbol_230) OpenAD_Symbol_241 = (OpenAD_Symbol_79 * OpenAD_Symbol_233) OpenAD_Symbol_243 = (OpenAD_Symbol_80 * OpenAD_Symbol_233) OpenAD_Symbol_244 = (OpenAD_Symbol_68 * OpenAD_Symbol_235) OpenAD_Symbol_246 = (OpenAD_Symbol_69 * OpenAD_Symbol_235) OpenAD_Symbol_247 = (OpenAD_Symbol_54 * OpenAD_Symbol_238) OpenAD_Symbol_248 = (OpenAD_Symbol_55 * OpenAD_Symbol_238) OpenAD_Symbol_249 = (OpenAD_Symbol_45 * OpenAD_Symbol_240) OpenAD_Symbol_250 = (OpenAD_Symbol_46 * OpenAD_Symbol_240) OpenAD_Symbol_251 = (OpenAD_Symbol_249 + OpenAD_Symbol_81 * O +penAD_Symbol_243) OpenAD_Symbol_253 = (OpenAD_Symbol_239 + OpenAD_Symbol_82 * O +penAD_Symbol_243) OpenAD_Symbol_255 = (OpenAD_Symbol_247 + OpenAD_Symbol_70 * O +penAD_Symbol_246) OpenAD_Symbol_257 = (OpenAD_Symbol_237 + OpenAD_Symbol_71 * O +penAD_Symbol_246) OpenAD_Symbol_259 = (OpenAD_Symbol_83 * OpenAD_Symbol_234) OpenAD_Symbol_261 = (OpenAD_Symbol_72 * OpenAD_Symbol_236) OpenAD_Symbol_263 = (OpenAD_Symbol_56 * OpenAD_Symbol_248) OpenAD_Symbol_264 = (OpenAD_Symbol_263 + OpenAD_Symbol_47 * O +penAD_Symbol_250) double_tape(double_tape_pointer) = OpenAD_Symbol_220 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_228 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_231 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_241 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_244 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_251 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_253 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_255 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_257 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_259 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_261 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_264 double_tape_pointer = double_tape_pointer+1 integer_tape(integer_tape_pointer) = K integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_386 = (INT(OpenAD_Symbol_386) + INT(1_w2f__i8)) END DO integer_tape(integer_tape_pointer) = OpenAD_Symbol_386 integer_tape_pointer = integer_tape_pointer+1 OpenAD_Symbol_385 = (INT(OpenAD_Symbol_385) + INT(1_w2f__i8)) END DO integer_tape(integer_tape_pointer) = OpenAD_Symbol_385 integer_tape_pointer = integer_tape_pointer+1 our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.TRUE. end if if (our_rev_mode%res_restore) then C restore results NX = theResIStack(theResIStackoffset) theResIStackoffset = theResIStackoffset+1 NY = theResIStack(theResIStackoffset) theResIStackoffset = theResIStackoffset+1 do cp_loop_variable_1 = lbound(X,1),ubound(X,1),1 X(cp_loop_variable_1)%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 end do do cp_loop_variable_1 = lbound(FVEC,1),ubound(FVEC,1),1 FVEC(cp_loop_variable_1)%v = theResFStack(theResFStackoffse +t) theResFStackoffset = theResFStackoffset+1 end do C print *,"restore idx, value, x ",theResFStackoffset,R%v R%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 N = theResIStack(theResIStackoffset) theResIStackoffset = theResIStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,HX%v HX%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,HY%v HY%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,HY2%v HY2%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,HX2%v HX2%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 end if if (our_rev_mode%adjoint) then C print*, " adjoint ", our_rev_mode our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.TRUE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. our_rev_mode%adjoint=.FALSE. C adjoint integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_369 = integer_tape(integer_tape_pointer) OpenAD_Symbol_370 = 1 DO WHILE(INT(OpenAD_Symbol_370) .LE. INT(OpenAD_Symbol_369)) integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_371 = integer_tape(integer_tape_pointer) OpenAD_Symbol_372 = 1 DO WHILE(INT(OpenAD_Symbol_372) .LE. INT(OpenAD_Symbol_371)) integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_418 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_419 = double_tape(double_tape_pointer) OpenAD_Symbol_265%d = OpenAD_Symbol_265%d+FVEC(INT(OpenAD_Symb +ol_418))%d*OpenAD_Symbol_419 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_420 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_421 = double_tape(double_tape_pointer) OpenAD_Symbol_262%d = OpenAD_Symbol_262%d+FVEC(INT(OpenAD_Symb +ol_420))%d*OpenAD_Symbol_421 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_422 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_423 = double_tape(double_tape_pointer) OpenAD_Symbol_260%d = OpenAD_Symbol_260%d+FVEC(INT(OpenAD_Symb +ol_422))%d*OpenAD_Symbol_423 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_424 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_425 = double_tape(double_tape_pointer) OpenAD_Symbol_258%d = OpenAD_Symbol_258%d+FVEC(INT(OpenAD_Symb +ol_424))%d*OpenAD_Symbol_425 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_426 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_427 = double_tape(double_tape_pointer) OpenAD_Symbol_256%d = OpenAD_Symbol_256%d+FVEC(INT(OpenAD_Symb +ol_426))%d*OpenAD_Symbol_427 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_428 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_429 = double_tape(double_tape_pointer) OpenAD_Symbol_254%d = OpenAD_Symbol_254%d+FVEC(INT(OpenAD_Symb +ol_428))%d*OpenAD_Symbol_429 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_430 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_431 = double_tape(double_tape_pointer) OpenAD_Symbol_252%d = OpenAD_Symbol_252%d+FVEC(INT(OpenAD_Symb +ol_430))%d*OpenAD_Symbol_431 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_432 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_433 = double_tape(double_tape_pointer) OpenAD_Symbol_245%d = OpenAD_Symbol_245%d+FVEC(INT(OpenAD_Symb +ol_432))%d*OpenAD_Symbol_433 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_434 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_435 = double_tape(double_tape_pointer) OpenAD_Symbol_242%d = OpenAD_Symbol_242%d+FVEC(INT(OpenAD_Symb +ol_434))%d*OpenAD_Symbol_435 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_436 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_437 = double_tape(double_tape_pointer) OpenAD_Symbol_232%d = OpenAD_Symbol_232%d+FVEC(INT(OpenAD_Symb +ol_436))%d*OpenAD_Symbol_437 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_438 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_439 = double_tape(double_tape_pointer) OpenAD_Symbol_229%d = OpenAD_Symbol_229%d+FVEC(INT(OpenAD_Symb +ol_438))%d*OpenAD_Symbol_439 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_440 = integer_tape(integer_tape_pointer) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_441 = double_tape(double_tape_pointer) OpenAD_Symbol_221%d = OpenAD_Symbol_221%d+FVEC(INT(OpenAD_Symb +ol_440))%d*OpenAD_Symbol_441 FVEC(INT(OpenAD_Symbol_440))%d = 0.0d0 R%d = R%d+OpenAD_Symbol_221%d OpenAD_Symbol_221%d = 0.0d0 HX2%d = HX2%d+OpenAD_Symbol_229%d OpenAD_Symbol_229%d = 0.0d0 HY2%d = HY2%d+OpenAD_Symbol_232%d OpenAD_Symbol_232%d = 0.0d0 DPDX%d = DPDX%d+OpenAD_Symbol_242%d OpenAD_Symbol_242%d = 0.0d0 DPDY%d = DPDY%d+OpenAD_Symbol_245%d OpenAD_Symbol_245%d = 0.0d0 PTLAP%d = PTLAP%d+OpenAD_Symbol_252%d OpenAD_Symbol_252%d = 0.0d0 PBLAP%d = PBLAP%d+OpenAD_Symbol_254%d OpenAD_Symbol_254%d = 0.0d0 PRLAP%d = PRLAP%d+OpenAD_Symbol_256%d OpenAD_Symbol_256%d = 0.0d0 PLLAP%d = PLLAP%d+OpenAD_Symbol_258%d OpenAD_Symbol_258%d = 0.0d0 HY%d = HY%d+OpenAD_Symbol_260%d OpenAD_Symbol_260%d = 0.0d0 HX%d = HX%d+OpenAD_Symbol_262%d OpenAD_Symbol_262%d = 0.0d0 PLAP%d = PLAP%d+OpenAD_Symbol_265%d OpenAD_Symbol_265%d = 0.0d0 CALL bar(PBB,PBL,PB,PBR,PLL,PL,P,PR,PRR,PTL,PT,PTR,PTT,HY2,HX2 +,PLAP,PBLAP,PLLAP,PRLAP,PTLAP) double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_442 = double_tape(double_tape_pointer) OpenAD_Symbol_219%d = OpenAD_Symbol_219%d+DPDX%d*OpenAD_Symbol +_442 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_443 = double_tape(double_tape_pointer) OpenAD_Symbol_217%d = OpenAD_Symbol_217%d+DPDX%d*OpenAD_Symbol +_443 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_444 = double_tape(double_tape_pointer) OpenAD_Symbol_215%d = OpenAD_Symbol_215%d+DPDX%d*OpenAD_Symbol +_444 DPDX%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_445 = double_tape(double_tape_pointer) OpenAD_Symbol_213%d = OpenAD_Symbol_213%d+DPDY%d*OpenAD_Symbol +_445 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_446 = double_tape(double_tape_pointer) OpenAD_Symbol_211%d = OpenAD_Symbol_211%d+DPDY%d*OpenAD_Symbol +_446 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_447 = double_tape(double_tape_pointer) OpenAD_Symbol_209%d = OpenAD_Symbol_209%d+DPDY%d*OpenAD_Symbol +_447 DPDY%d = 0.0d0 PT%d = PT%d+OpenAD_Symbol_209%d OpenAD_Symbol_209%d = 0.0d0 PB%d = PB%d+OpenAD_Symbol_211%d OpenAD_Symbol_211%d = 0.0d0 HY%d = HY%d+OpenAD_Symbol_213%d OpenAD_Symbol_213%d = 0.0d0 PR%d = PR%d+OpenAD_Symbol_215%d OpenAD_Symbol_215%d = 0.0d0 PL%d = PL%d+OpenAD_Symbol_217%d OpenAD_Symbol_217%d = 0.0d0 HX%d = HX%d+OpenAD_Symbol_219%d OpenAD_Symbol_219%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_373 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_373 .ne. 0) THEN PTR%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_449 = integer_tape(integer_tape_pointer) if (iaddr(PTR) .ne. iaddr(X(INT(OpenAD_Symbol_449)))) then X(INT(OpenAD_Symbol_449))%d = X(INT(OpenAD_Symbol_449))%d+PT +R%d PTR%d = 0 end if ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_374 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_374 .ne. 0) THEN PTT%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_417 = integer_tape(integer_tape_pointer) if (iaddr(PT) .ne. iaddr(X(INT(OpenAD_Symbol_417)))) then X(INT(OpenAD_Symbol_417))%d = X(INT(OpenAD_Symbol_417))%d+PT +%d PT%d = 0 end if ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_375 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_375 .ne. 0) THEN double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_450 = double_tape(double_tape_pointer) OpenAD_Symbol_269%d = OpenAD_Symbol_269%d+PTT%d*OpenAD_Symbol_ +450 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_451 = double_tape(double_tape_pointer) OpenAD_Symbol_267%d = OpenAD_Symbol_267%d+PTT%d*OpenAD_Symbol_ +451 PTT%d = 0.0d0 HY%d = HY%d+OpenAD_Symbol_267%d OpenAD_Symbol_267%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_452 = integer_tape(integer_tape_pointer) X(INT(OpenAD_Symbol_452))%d = X(INT(OpenAD_Symbol_452))%d+Open +AD_Symbol_269%d OpenAD_Symbol_269%d = 0.0d0 PT%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_455 = integer_tape(integer_tape_pointer) if (iaddr(PTT) .ne. iaddr(X(INT(OpenAD_Symbol_455)))) then X(INT(OpenAD_Symbol_455))%d = X(INT(OpenAD_Symbol_455))%d+PT +T%d PTT%d = 0 end if integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_456 = integer_tape(integer_tape_pointer) if (iaddr(PT) .ne. iaddr(X(INT(OpenAD_Symbol_456)))) then X(INT(OpenAD_Symbol_456))%d = X(INT(OpenAD_Symbol_456))%d+PT +%d PT%d = 0 end if ENDIF ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_376 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_376 .ne. 0) THEN PTL%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_458 = integer_tape(integer_tape_pointer) if (iaddr(PTL) .ne. iaddr(X(INT(OpenAD_Symbol_458)))) then X(INT(OpenAD_Symbol_458))%d = X(INT(OpenAD_Symbol_458))%d+PT +L%d PTL%d = 0 end if ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_377 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_377 .ne. 0) THEN PRR%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_415 = integer_tape(integer_tape_pointer) if (iaddr(PR) .ne. iaddr(X(INT(OpenAD_Symbol_415)))) then X(INT(OpenAD_Symbol_415))%d = X(INT(OpenAD_Symbol_415))%d+PR +%d PR%d = 0 end if ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_378 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_378 .ne. 0) THEN integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_459 = integer_tape(integer_tape_pointer) if (iaddr(PRR) .ne. iaddr(X(INT(OpenAD_Symbol_459)))) then X(INT(OpenAD_Symbol_459))%d = X(INT(OpenAD_Symbol_459))%d+PR +R%d PRR%d = 0 end if PR%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_462 = integer_tape(integer_tape_pointer) if (iaddr(PRR) .ne. iaddr(X(INT(OpenAD_Symbol_462)))) then X(INT(OpenAD_Symbol_462))%d = X(INT(OpenAD_Symbol_462))%d+PR +R%d PRR%d = 0 end if integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_463 = integer_tape(integer_tape_pointer) if (iaddr(PR) .ne. iaddr(X(INT(OpenAD_Symbol_463)))) then X(INT(OpenAD_Symbol_463))%d = X(INT(OpenAD_Symbol_463))%d+PR +%d PR%d = 0 end if ENDIF ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_413 = integer_tape(integer_tape_pointer) if (iaddr(P) .ne. iaddr(X(INT(OpenAD_Symbol_413)))) then X(INT(OpenAD_Symbol_413))%d = X(INT(OpenAD_Symbol_413))%d+P% +d P%d = 0 end if integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_379 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_379 .ne. 0) THEN integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_412 = integer_tape(integer_tape_pointer) if (iaddr(PLL) .ne. iaddr(X(INT(OpenAD_Symbol_412)))) then X(INT(OpenAD_Symbol_412))%d = X(INT(OpenAD_Symbol_412))%d+PL +L%d PLL%d = 0 end if PL%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_380 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_380 .ne. 0) THEN PLL%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_465 = integer_tape(integer_tape_pointer) if (iaddr(PL) .ne. iaddr(X(INT(OpenAD_Symbol_465)))) then X(INT(OpenAD_Symbol_465))%d = X(INT(OpenAD_Symbol_465))%d+PL +%d PL%d = 0 end if ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_468 = integer_tape(integer_tape_pointer) if (iaddr(PLL) .ne. iaddr(X(INT(OpenAD_Symbol_468)))) then X(INT(OpenAD_Symbol_468))%d = X(INT(OpenAD_Symbol_468))%d+PL +L%d PLL%d = 0 end if integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_469 = integer_tape(integer_tape_pointer) if (iaddr(PL) .ne. iaddr(X(INT(OpenAD_Symbol_469)))) then X(INT(OpenAD_Symbol_469))%d = X(INT(OpenAD_Symbol_469))%d+PL +%d PL%d = 0 end if ENDIF ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_381 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_381 .ne. 0) THEN PBR%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_471 = integer_tape(integer_tape_pointer) if (iaddr(PBR) .ne. iaddr(X(INT(OpenAD_Symbol_471)))) then X(INT(OpenAD_Symbol_471))%d = X(INT(OpenAD_Symbol_471))%d+PB +R%d PBR%d = 0 end if ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_382 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_382 .ne. 0) THEN integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_411 = integer_tape(integer_tape_pointer) if (iaddr(PBB) .ne. iaddr(X(INT(OpenAD_Symbol_411)))) then X(INT(OpenAD_Symbol_411))%d = X(INT(OpenAD_Symbol_411))%d+PB +B%d PBB%d = 0 end if PB%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_383 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_383 .ne. 0) THEN PBB%d = 0.0d0 integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_473 = integer_tape(integer_tape_pointer) if (iaddr(PB) .ne. iaddr(X(INT(OpenAD_Symbol_473)))) then X(INT(OpenAD_Symbol_473))%d = X(INT(OpenAD_Symbol_473))%d+PB +%d PB%d = 0 end if ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_476 = integer_tape(integer_tape_pointer) if (iaddr(PBB) .ne. iaddr(X(INT(OpenAD_Symbol_476)))) then X(INT(OpenAD_Symbol_476))%d = X(INT(OpenAD_Symbol_476))%d+PB +B%d PBB%d = 0 end if integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_477 = integer_tape(integer_tape_pointer) if (iaddr(PB) .ne. iaddr(X(INT(OpenAD_Symbol_477)))) then X(INT(OpenAD_Symbol_477))%d = X(INT(OpenAD_Symbol_477))%d+PB +%d PB%d = 0 end if ENDIF ENDIF integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_384 = integer_tape(integer_tape_pointer) IF(OpenAD_Symbol_384 .ne. 0) THEN PBL%d = 0.0d0 ELSE integer_tape_pointer = integer_tape_pointer-1 OpenAD_Symbol_479 = integer_tape(integer_tape_pointer) if (iaddr(PBL) .ne. iaddr(X(INT(OpenAD_Symbol_479)))) then X(INT(OpenAD_Symbol_479))%d = X(INT(OpenAD_Symbol_479))%d+PB +L%d PBL%d = 0 end if ENDIF OpenAD_Symbol_372 = INT(OpenAD_Symbol_372) + 1 END DO OpenAD_Symbol_370 = INT(OpenAD_Symbol_370) + 1 END DO our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.TRUE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. our_rev_mode%adjoint=.FALSE. end if if (our_rev_mode%res_store) then C store results C print*, " res_store ", our_rev_mode call cp_store_int_scalar(NX,theResIStack,theResIStackoffset,th +eResIStackSize) call cp_store_int_scalar(NY,theResIStack,theResIStackoffset,th +eResIStackSize) call cp_store_real_vector(X,size(X),theResFStack,theResFStacko +ffset,theResFStackSize) call cp_store_real_vector(FVEC,size(FVEC),theResFStack,theResF +Stackoffset,theResFStackSize) call cp_store_real_scalar(R%v,theResFStack,theResFStackoffset, +theResFStackSize) call cp_store_int_scalar(N,theResIStack,theResIStackoffset,the +ResIStackSize) call cp_store_real_scalar(HX%v,theResFStack,theResFStackoffset +,theResFStackSize) call cp_store_real_scalar(HY%v,theResFStack,theResFStackoffset +,theResFStackSize) call cp_store_real_scalar(HY2%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(HX2%v,theResFStack,theResFStackoffse +t,theResFStackSize) end if C write(*,'(A,I6,A,I6,A,I6,A,I6,A,I5,A,I5)') C +"a:AF:", theArgFStackoffset, C +" AI:",theArgIStackoffset, C +" RF:",theResFStackoffset, C +" RI:",theResIStackoffset, C +" DT:",double_tape_pointer, C +" IT:",integer_tape_pointer end subroutine foo subroutine bar(PBB,PBL,PB,PBR,PLL,PL,P,PR,PRR,PTL,PT,PTR,PTT,HY2, +HX2,PLAP,PBLAP,PLLAP,PRLAP,PTLAP) use OpenAD_dct use OpenAD_tape use OpenAD_rev use OpenAD_checkpoints use all_globals_cp_mod ! original arguments get inserted before version ! and declared here together with all local variables ! generated by xaifBooster use w2f__types use active_module IMPLICIT NONE C C **** Global Variables **** C REAL(w2f__8) OpenAD_Symbol_100 REAL(w2f__8) OpenAD_Symbol_102 REAL(w2f__8) OpenAD_Symbol_103 REAL(w2f__8) OpenAD_Symbol_104 REAL(w2f__8) OpenAD_Symbol_105 REAL(w2f__8) OpenAD_Symbol_111 REAL(w2f__8) OpenAD_Symbol_106 REAL(w2f__8) OpenAD_Symbol_112 REAL(w2f__8) OpenAD_Symbol_107 REAL(w2f__8) OpenAD_Symbol_113 REAL(w2f__8) OpenAD_Symbol_108 REAL(w2f__8) OpenAD_Symbol_114 REAL(w2f__8) OpenAD_Symbol_109 REAL(w2f__8) OpenAD_Symbol_120 REAL(w2f__8) OpenAD_Symbol_115 REAL(w2f__8) OpenAD_Symbol_121 REAL(w2f__8) OpenAD_Symbol_116 REAL(w2f__8) OpenAD_Symbol_117 REAL(w2f__8) OpenAD_Symbol_123 REAL(w2f__8) OpenAD_Symbol_118 REAL(w2f__8) OpenAD_Symbol_124 REAL(w2f__8) OpenAD_Symbol_119 REAL(w2f__8) OpenAD_Symbol_130 REAL(w2f__8) OpenAD_Symbol_125 REAL(w2f__8) OpenAD_Symbol_126 REAL(w2f__8) OpenAD_Symbol_132 REAL(w2f__8) OpenAD_Symbol_127 REAL(w2f__8) OpenAD_Symbol_133 REAL(w2f__8) OpenAD_Symbol_128 REAL(w2f__8) OpenAD_Symbol_134 REAL(w2f__8) OpenAD_Symbol_129 REAL(w2f__8) OpenAD_Symbol_140 REAL(w2f__8) OpenAD_Symbol_135 REAL(w2f__8) OpenAD_Symbol_141 REAL(w2f__8) OpenAD_Symbol_136 REAL(w2f__8) OpenAD_Symbol_142 REAL(w2f__8) OpenAD_Symbol_137 REAL(w2f__8) OpenAD_Symbol_138 REAL(w2f__8) OpenAD_Symbol_144 REAL(w2f__8) OpenAD_Symbol_139 REAL(w2f__8) OpenAD_Symbol_150 REAL(w2f__8) OpenAD_Symbol_145 REAL(w2f__8) OpenAD_Symbol_151 REAL(w2f__8) OpenAD_Symbol_146 REAL(w2f__8) OpenAD_Symbol_147 REAL(w2f__8) OpenAD_Symbol_153 REAL(w2f__8) OpenAD_Symbol_148 REAL(w2f__8) OpenAD_Symbol_154 REAL(w2f__8) OpenAD_Symbol_149 REAL(w2f__8) OpenAD_Symbol_160 REAL(w2f__8) OpenAD_Symbol_155 REAL(w2f__8) OpenAD_Symbol_161 REAL(w2f__8) OpenAD_Symbol_156 REAL(w2f__8) OpenAD_Symbol_162 REAL(w2f__8) OpenAD_Symbol_157 REAL(w2f__8) OpenAD_Symbol_163 REAL(w2f__8) OpenAD_Symbol_158 REAL(w2f__8) OpenAD_Symbol_159 REAL(w2f__8) OpenAD_Symbol_170 REAL(w2f__8) OpenAD_Symbol_165 REAL(w2f__8) OpenAD_Symbol_171 REAL(w2f__8) OpenAD_Symbol_166 REAL(w2f__8) OpenAD_Symbol_172 REAL(w2f__8) OpenAD_Symbol_167 REAL(w2f__8) OpenAD_Symbol_168 REAL(w2f__8) OpenAD_Symbol_169 REAL(w2f__8) OpenAD_Symbol_174 REAL(w2f__8) OpenAD_Symbol_175 REAL(w2f__8) OpenAD_Symbol_180 REAL(w2f__8) OpenAD_Symbol_176 REAL(w2f__8) OpenAD_Symbol_181 REAL(w2f__8) OpenAD_Symbol_177 REAL(w2f__8) OpenAD_Symbol_182 REAL(w2f__8) OpenAD_Symbol_178 REAL(w2f__8) OpenAD_Symbol_183 REAL(w2f__8) OpenAD_Symbol_179 REAL(w2f__8) OpenAD_Symbol_184 REAL(w2f__8) OpenAD_Symbol_190 REAL(w2f__8) OpenAD_Symbol_186 REAL(w2f__8) OpenAD_Symbol_191 REAL(w2f__8) OpenAD_Symbol_187 REAL(w2f__8) OpenAD_Symbol_192 REAL(w2f__8) OpenAD_Symbol_188 REAL(w2f__8) OpenAD_Symbol_193 REAL(w2f__8) OpenAD_Symbol_189 REAL(w2f__8) OpenAD_Symbol_195 REAL(w2f__8) OpenAD_Symbol_300 type(active) :: OpenAD_Symbol_301 REAL(w2f__8) OpenAD_Symbol_302 REAL(w2f__8) OpenAD_Symbol_303 type(active) :: OpenAD_Symbol_304 REAL(w2f__8) OpenAD_Symbol_305 type(active) :: OpenAD_Symbol_310 REAL(w2f__8) OpenAD_Symbol_306 REAL(w2f__8) OpenAD_Symbol_311 type(active) :: OpenAD_Symbol_307 REAL(w2f__8) OpenAD_Symbol_312 REAL(w2f__8) OpenAD_Symbol_308 type(active) :: OpenAD_Symbol_313 REAL(w2f__8) OpenAD_Symbol_309 REAL(w2f__8) OpenAD_Symbol_314 REAL(w2f__8) OpenAD_Symbol_270 REAL(w2f__8) OpenAD_Symbol_315 REAL(w2f__8) OpenAD_Symbol_320 REAL(w2f__8) OpenAD_Symbol_271 REAL(w2f__8) OpenAD_Symbol_316 type(active) :: OpenAD_Symbol_321 type(active) :: OpenAD_Symbol_272 REAL(w2f__8) OpenAD_Symbol_317 REAL(w2f__8) OpenAD_Symbol_322 REAL(w2f__8) OpenAD_Symbol_273 type(active) :: OpenAD_Symbol_318 REAL(w2f__8) OpenAD_Symbol_323 REAL(w2f__8) OpenAD_Symbol_274 REAL(w2f__8) OpenAD_Symbol_319 type(active) :: OpenAD_Symbol_324 type(active) :: OpenAD_Symbol_275 REAL(w2f__8) OpenAD_Symbol_280 REAL(w2f__8) OpenAD_Symbol_325 REAL(w2f__8) OpenAD_Symbol_330 REAL(w2f__8) OpenAD_Symbol_276 REAL(w2f__8) OpenAD_Symbol_281 REAL(w2f__8) OpenAD_Symbol_326 REAL(w2f__8) OpenAD_Symbol_331 REAL(w2f__8) OpenAD_Symbol_277 REAL(w2f__8) OpenAD_Symbol_282 type(active) :: OpenAD_Symbol_327 type(active) :: OpenAD_Symbol_332 REAL(w2f__8) OpenAD_Symbol_278 REAL(w2f__8) OpenAD_Symbol_283 REAL(w2f__8) OpenAD_Symbol_328 REAL(w2f__8) OpenAD_Symbol_333 REAL(w2f__8) OpenAD_Symbol_279 REAL(w2f__8) OpenAD_Symbol_284 REAL(w2f__8) OpenAD_Symbol_329 REAL(w2f__8) OpenAD_Symbol_334 REAL(w2f__8) OpenAD_Symbol_285 REAL(w2f__8) OpenAD_Symbol_290 type(active) :: OpenAD_Symbol_335 REAL(w2f__8) OpenAD_Symbol_340 REAL(w2f__8) OpenAD_Symbol_286 REAL(w2f__8) OpenAD_Symbol_291 REAL(w2f__8) OpenAD_Symbol_336 REAL(w2f__8) OpenAD_Symbol_341 REAL(w2f__8) OpenAD_Symbol_287 REAL(w2f__8) OpenAD_Symbol_292 REAL(w2f__8) OpenAD_Symbol_337 REAL(w2f__8) OpenAD_Symbol_342 REAL(w2f__8) OpenAD_Symbol_288 type(active) :: OpenAD_Symbol_293 REAL(w2f__8) OpenAD_Symbol_338 REAL(w2f__8) OpenAD_Symbol_343 REAL(w2f__8) OpenAD_Symbol_289 REAL(w2f__8) OpenAD_Symbol_294 REAL(w2f__8) OpenAD_Symbol_339 REAL(w2f__8) OpenAD_Symbol_344 REAL(w2f__8) OpenAD_Symbol_295 REAL(w2f__8) OpenAD_Symbol_345 REAL(w2f__8) OpenAD_Symbol_350 type(active) :: OpenAD_Symbol_296 REAL(w2f__8) OpenAD_Symbol_346 REAL(w2f__8) OpenAD_Symbol_351 REAL(w2f__8) OpenAD_Symbol_297 REAL(w2f__8) OpenAD_Symbol_347 REAL(w2f__8) OpenAD_Symbol_352 REAL(w2f__8) OpenAD_Symbol_298 REAL(w2f__8) OpenAD_Symbol_348 REAL(w2f__8) OpenAD_Symbol_353 REAL(w2f__8) OpenAD_Symbol_299 REAL(w2f__8) OpenAD_Symbol_349 REAL(w2f__8) OpenAD_Symbol_354 REAL(w2f__8) OpenAD_Symbol_91 REAL(w2f__8) OpenAD_Symbol_92 REAL(w2f__8) OpenAD_Symbol_93 REAL(w2f__8) OpenAD_Symbol_94 REAL(w2f__8) OpenAD_Symbol_95 REAL(w2f__8) OpenAD_Symbol_96 REAL(w2f__8) OpenAD_Symbol_97 REAL(w2f__8) OpenAD_Symbol_98 REAL(w2f__8) OpenAD_Symbol_99 C C **** Parameters and Result **** C type(active) :: PBB type(active) :: PBL type(active) :: PB type(active) :: PBR type(active) :: PLL type(active) :: PL type(active) :: P type(active) :: PR type(active) :: PRR type(active) :: PTL type(active) :: PT type(active) :: PTR type(active) :: PTT type(active) :: HY2 type(active) :: HX2 type(active) :: PLAP type(active) :: PBLAP type(active) :: PLLAP type(active) :: PRLAP type(active) :: PTLAP C C **** Local Variables and functions **** C REAL(w2f__8) FOUR PARAMETER ( FOUR = 4.000000000000000) REAL(w2f__8) ONE PARAMETER ( ONE = 1.000000000000000) REAL(w2f__8) THREE PARAMETER ( THREE = 3.000000000000000) REAL(w2f__8) TWO PARAMETER ( TWO = 2.000000000000000) REAL(w2f__8) ZERO PARAMETER ( ZERO = 0.000000000000000) REAL(w2f__8) OpenAD_Symbol_500 REAL(w2f__8) OpenAD_Symbol_501 REAL(w2f__8) OpenAD_Symbol_502 REAL(w2f__8) OpenAD_Symbol_503 REAL(w2f__8) OpenAD_Symbol_504 REAL(w2f__8) OpenAD_Symbol_510 REAL(w2f__8) OpenAD_Symbol_505 REAL(w2f__8) OpenAD_Symbol_511 REAL(w2f__8) OpenAD_Symbol_506 REAL(w2f__8) OpenAD_Symbol_512 REAL(w2f__8) OpenAD_Symbol_507 REAL(w2f__8) OpenAD_Symbol_513 REAL(w2f__8) OpenAD_Symbol_508 REAL(w2f__8) OpenAD_Symbol_514 REAL(w2f__8) OpenAD_Symbol_509 REAL(w2f__8) OpenAD_Symbol_480 REAL(w2f__8) OpenAD_Symbol_481 REAL(w2f__8) OpenAD_Symbol_482 REAL(w2f__8) OpenAD_Symbol_483 REAL(w2f__8) OpenAD_Symbol_484 REAL(w2f__8) OpenAD_Symbol_490 REAL(w2f__8) OpenAD_Symbol_485 REAL(w2f__8) OpenAD_Symbol_491 REAL(w2f__8) OpenAD_Symbol_486 REAL(w2f__8) OpenAD_Symbol_492 REAL(w2f__8) OpenAD_Symbol_487 REAL(w2f__8) OpenAD_Symbol_493 REAL(w2f__8) OpenAD_Symbol_488 REAL(w2f__8) OpenAD_Symbol_494 REAL(w2f__8) OpenAD_Symbol_489 REAL(w2f__8) OpenAD_Symbol_495 REAL(w2f__8) OpenAD_Symbol_496 REAL(w2f__8) OpenAD_Symbol_497 REAL(w2f__8) OpenAD_Symbol_498 REAL(w2f__8) OpenAD_Symbol_499 C C **** statements **** C ! checkpointing stacks and offsets integer :: cp_loop_variable_1,cp_loop_variable_2, +cp_loop_variable_3,cp_loop_variable_4 ! floats 'F' double precision, dimension(:), allocatable, save :: +theArgFStack integer, save :: theArgFStackoffset=0, theArgFStackSize=0 double precision, dimension(:), allocatable, save :: +theResFStack integer, save :: theResFStackoffset=0, theResFStackSize=0 ! integers 'I' integer, dimension(:), allocatable, save :: +theArgIStack integer, save :: theArgIStackoffset=0, theArgIStackSize=0 integer, dimension(:), allocatable, save :: +theResIStack integer, save :: theResIStackoffset=0, theResIStackSize=0 ! booleans 'B' logical, dimension(:), allocatable, save :: +theArgBStack integer, save :: theArgBStackoffset=0, theArgBStackSize=0 logical, dimension(:), allocatable, save :: +theResBStack integer, save :: theResBStackoffset=0, theResBStackSize=0 ! strings 'S' character*(80), dimension(:), allocatable, save :: +theArgSStack integer, save :: theArgSStackoffset=0, theArgSStackSize=0 character*(80), dimension(:), allocatable, save :: +theResSStack integer, save :: theResSStackoffset=0, theResSStackSize=0 type(modeType) :: our_orig_mode ! call external C function used in inlined code integer iaddr external iaddr C write(*,'(A,I6,A,I6,A,I6,A,I6,A,I5,A,I5)') C +"b:AF:", theArgFStackoffset, C +" AI:",theArgIStackoffset, C +" RF:",theResFStackoffset, C +" RI:",theResIStackoffset, C +" DT:",double_tape_pointer, C +" IT:",integer_tape_pointer if (our_rev_mode%arg_store) then C print*, " arg_store ", our_rev_mode call cp_store_globals( + theArgFStack,theArgFStackoffset,theArgFStackSize, + theArgIStack,theArgIStackoffset,theArgIStackSize, + theArgSStack,theArgSStackoffset,theArgSStackSize, + theArgBStack,theArgBStackoffset,theArgBStackSize) C store arguments call cp_store_real_scalar(PBB%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PBL%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PB%v,theArgFStack,theArgFStackoffset +,theArgFStackSize) call cp_store_real_scalar(PBR%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PLL%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PL%v,theArgFStack,theArgFStackoffset +,theArgFStackSize) call cp_store_real_scalar(P%v,theArgFStack,theArgFStackoffset, +theArgFStackSize) call cp_store_real_scalar(PR%v,theArgFStack,theArgFStackoffset +,theArgFStackSize) call cp_store_real_scalar(PRR%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PTL%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PT%v,theArgFStack,theArgFStackoffset +,theArgFStackSize) call cp_store_real_scalar(PTR%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PTT%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(HY2%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(HX2%v,theArgFStack,theArgFStackoffse +t,theArgFStackSize) call cp_store_real_scalar(PLAP%v,theArgFStack,theArgFStackoffs +et,theArgFStackSize) call cp_store_real_scalar(PBLAP%v,theArgFStack,theArgFStackoff +set,theArgFStackSize) call cp_store_real_scalar(PLLAP%v,theArgFStack,theArgFStackoff +set,theArgFStackSize) call cp_store_real_scalar(PRLAP%v,theArgFStack,theArgFStackoff +set,theArgFStackSize) call cp_store_real_scalar(PTLAP%v,theArgFStack,theArgFStackoff +set,theArgFStackSize) end if if (our_rev_mode%arg_restore) then C print*, " arg_restore", our_rev_mode C restore arguments PTLAP%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PTLAP%v theArgFStackoffset = theArgFStackoffset-1 PRLAP%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PRLAP%v theArgFStackoffset = theArgFStackoffset-1 PLLAP%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PLLAP%v theArgFStackoffset = theArgFStackoffset-1 PBLAP%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PBLAP%v theArgFStackoffset = theArgFStackoffset-1 PLAP%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PLAP%v theArgFStackoffset = theArgFStackoffset-1 HX2%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",HX2%v theArgFStackoffset = theArgFStackoffset-1 HY2%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",HY2%v theArgFStackoffset = theArgFStackoffset-1 PTT%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PTT%v theArgFStackoffset = theArgFStackoffset-1 PTR%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PTR%v theArgFStackoffset = theArgFStackoffset-1 PT%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PT%v theArgFStackoffset = theArgFStackoffset-1 PTL%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PTL%v theArgFStackoffset = theArgFStackoffset-1 PRR%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PRR%v theArgFStackoffset = theArgFStackoffset-1 PR%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PR%v theArgFStackoffset = theArgFStackoffset-1 P%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",P%v theArgFStackoffset = theArgFStackoffset-1 PL%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PL%v theArgFStackoffset = theArgFStackoffset-1 PLL%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PLL%v theArgFStackoffset = theArgFStackoffset-1 PBR%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PBR%v theArgFStackoffset = theArgFStackoffset-1 PB%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PB%v theArgFStackoffset = theArgFStackoffset-1 PBL%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PBL%v theArgFStackoffset = theArgFStackoffset-1 PBB%v = theArgFStack(theArgFStackoffset) C write(*,'(A,EN26.16E3)')"restore(s) ",PBB%v theArgFStackoffset = theArgFStackoffset-1 call cp_restore_globals( + theArgFStack,theArgFStackoffset, + theArgIStack,theArgIStackoffset, + theArgSStack,theArgSStackoffset, + theArgBStack,theArgBStackoffset) end if if (our_rev_mode%plain) then C print*, " plain ", our_rev_mode our_orig_mode=our_rev_mode our_rev_mode%arg_store=.FALSE. C original function PBLAP%v = (((PBB%v+P%v-PB%v*2.0D00)/HY2%v)+((PBL%v+PBR%v-PB%v*2.0D +00)/HX2%v)) PLLAP%v = (((PBL%v+PTL%v-PL%v*2.0D00)/HY2%v)+((PLL%v+P%v-PL%v*2.0D +00)/HX2%v)) PLAP%v = (((PB%v+PT%v-P%v*2.0D00)/HY2%v)+((PL%v+PR%v-P%v*2.0D00)/H +X2%v)) PRLAP%v = (((PBR%v+PTR%v-PR%v*2.0D00)/HY2%v)+((P%v+PRR%v-PR%v*2.0D +00)/HX2%v)) PTLAP%v = (((P%v+PTT%v-PT%v*2.0D00)/HY2%v)+((PTL%v+PTR%v-PT%v*2.0D +00)/HX2%v)) our_rev_mode=our_orig_mode end if if (our_rev_mode%tape) then C print*, " tape ", our_rev_mode our_rev_mode%arg_store=.TRUE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.TRUE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.FALSE. C taping OpenAD_Symbol_93 = (PBB%v+P%v-PB%v*2.0D00) OpenAD_Symbol_102 = (PBL%v+PBR%v-PB%v*2.0D00) OpenAD_Symbol_111 = ((OpenAD_Symbol_93/HY2%v)+(OpenAD_Symbol_102/H +X2%v)) OpenAD_Symbol_96 = 1_w2f__i8 OpenAD_Symbol_98 = 1_w2f__i8 OpenAD_Symbol_100 = 2.0D00 OpenAD_Symbol_99 = (-1_w2f__i8) OpenAD_Symbol_97 = 1_w2f__i8 OpenAD_Symbol_94 = (INT(1 _w2f__i8)/HY2%v) OpenAD_Symbol_95 = (-(OpenAD_Symbol_93/(HY2%v*HY2%v))) OpenAD_Symbol_91 = 1_w2f__i8 OpenAD_Symbol_105 = 1_w2f__i8 OpenAD_Symbol_107 = 1_w2f__i8 OpenAD_Symbol_109 = 2.0D00 OpenAD_Symbol_108 = (-1_w2f__i8) OpenAD_Symbol_106 = 1_w2f__i8 OpenAD_Symbol_103 = (INT(1 _w2f__i8)/HX2%v) OpenAD_Symbol_104 = (-(OpenAD_Symbol_102/(HX2%v*HX2%v))) OpenAD_Symbol_92 = 1_w2f__i8 PBLAP%v = OpenAD_Symbol_111 OpenAD_Symbol_114 = (PBL%v+PTL%v-PL%v*2.0D00) OpenAD_Symbol_123 = (PLL%v+P%v-PL%v*2.0D00) OpenAD_Symbol_132 = ((OpenAD_Symbol_114/HY2%v)+(OpenAD_Symbol_123/ +HX2%v)) OpenAD_Symbol_117 = 1_w2f__i8 OpenAD_Symbol_119 = 1_w2f__i8 OpenAD_Symbol_121 = 2.0D00 OpenAD_Symbol_120 = (-1_w2f__i8) OpenAD_Symbol_118 = 1_w2f__i8 OpenAD_Symbol_115 = (INT(1 _w2f__i8)/HY2%v) OpenAD_Symbol_116 = (-(OpenAD_Symbol_114/(HY2%v*HY2%v))) OpenAD_Symbol_112 = 1_w2f__i8 OpenAD_Symbol_126 = 1_w2f__i8 OpenAD_Symbol_128 = 1_w2f__i8 OpenAD_Symbol_130 = 2.0D00 OpenAD_Symbol_129 = (-1_w2f__i8) OpenAD_Symbol_127 = 1_w2f__i8 OpenAD_Symbol_124 = (INT(1 _w2f__i8)/HX2%v) OpenAD_Symbol_125 = (-(OpenAD_Symbol_123/(HX2%v*HX2%v))) OpenAD_Symbol_113 = 1_w2f__i8 PLLAP%v = OpenAD_Symbol_132 OpenAD_Symbol_135 = (PB%v+PT%v-P%v*2.0D00) OpenAD_Symbol_144 = (PL%v+PR%v-P%v*2.0D00) OpenAD_Symbol_153 = ((OpenAD_Symbol_135/HY2%v)+(OpenAD_Symbol_144/ +HX2%v)) OpenAD_Symbol_138 = 1_w2f__i8 OpenAD_Symbol_140 = 1_w2f__i8 OpenAD_Symbol_142 = 2.0D00 OpenAD_Symbol_141 = (-1_w2f__i8) OpenAD_Symbol_139 = 1_w2f__i8 OpenAD_Symbol_136 = (INT(1 _w2f__i8)/HY2%v) OpenAD_Symbol_137 = (-(OpenAD_Symbol_135/(HY2%v*HY2%v))) OpenAD_Symbol_133 = 1_w2f__i8 OpenAD_Symbol_147 = 1_w2f__i8 OpenAD_Symbol_149 = 1_w2f__i8 OpenAD_Symbol_151 = 2.0D00 OpenAD_Symbol_150 = (-1_w2f__i8) OpenAD_Symbol_148 = 1_w2f__i8 OpenAD_Symbol_145 = (INT(1 _w2f__i8)/HX2%v) OpenAD_Symbol_146 = (-(OpenAD_Symbol_144/(HX2%v*HX2%v))) OpenAD_Symbol_134 = 1_w2f__i8 PLAP%v = OpenAD_Symbol_153 OpenAD_Symbol_156 = (PBR%v+PTR%v-PR%v*2.0D00) OpenAD_Symbol_165 = (P%v+PRR%v-PR%v*2.0D00) OpenAD_Symbol_174 = ((OpenAD_Symbol_156/HY2%v)+(OpenAD_Symbol_165/ +HX2%v)) OpenAD_Symbol_159 = 1_w2f__i8 OpenAD_Symbol_161 = 1_w2f__i8 OpenAD_Symbol_163 = 2.0D00 OpenAD_Symbol_162 = (-1_w2f__i8) OpenAD_Symbol_160 = 1_w2f__i8 OpenAD_Symbol_157 = (INT(1 _w2f__i8)/HY2%v) OpenAD_Symbol_158 = (-(OpenAD_Symbol_156/(HY2%v*HY2%v))) OpenAD_Symbol_154 = 1_w2f__i8 OpenAD_Symbol_168 = 1_w2f__i8 OpenAD_Symbol_170 = 1_w2f__i8 OpenAD_Symbol_172 = 2.0D00 OpenAD_Symbol_171 = (-1_w2f__i8) OpenAD_Symbol_169 = 1_w2f__i8 OpenAD_Symbol_166 = (INT(1 _w2f__i8)/HX2%v) OpenAD_Symbol_167 = (-(OpenAD_Symbol_165/(HX2%v*HX2%v))) OpenAD_Symbol_155 = 1_w2f__i8 PRLAP%v = OpenAD_Symbol_174 OpenAD_Symbol_177 = (P%v+PTT%v-PT%v*2.0D00) OpenAD_Symbol_186 = (PTL%v+PTR%v-PT%v*2.0D00) OpenAD_Symbol_195 = ((OpenAD_Symbol_177/HY2%v)+(OpenAD_Symbol_186/ +HX2%v)) OpenAD_Symbol_180 = 1_w2f__i8 OpenAD_Symbol_182 = 1_w2f__i8 OpenAD_Symbol_184 = 2.0D00 OpenAD_Symbol_183 = (-1_w2f__i8) OpenAD_Symbol_181 = 1_w2f__i8 OpenAD_Symbol_178 = (INT(1 _w2f__i8)/HY2%v) OpenAD_Symbol_179 = (-(OpenAD_Symbol_177/(HY2%v*HY2%v))) OpenAD_Symbol_175 = 1_w2f__i8 OpenAD_Symbol_189 = 1_w2f__i8 OpenAD_Symbol_191 = 1_w2f__i8 OpenAD_Symbol_193 = 2.0D00 OpenAD_Symbol_192 = (-1_w2f__i8) OpenAD_Symbol_190 = 1_w2f__i8 OpenAD_Symbol_187 = (INT(1 _w2f__i8)/HX2%v) OpenAD_Symbol_188 = (-(OpenAD_Symbol_186/(HX2%v*HX2%v))) OpenAD_Symbol_176 = 1_w2f__i8 PTLAP%v = OpenAD_Symbol_195 OpenAD_Symbol_270 = (OpenAD_Symbol_187 * OpenAD_Symbol_176) OpenAD_Symbol_271 = (OpenAD_Symbol_188 * OpenAD_Symbol_176) OpenAD_Symbol_273 = (OpenAD_Symbol_178 * OpenAD_Symbol_175) OpenAD_Symbol_274 = (OpenAD_Symbol_179 * OpenAD_Symbol_175) OpenAD_Symbol_276 = (OpenAD_Symbol_166 * OpenAD_Symbol_155) OpenAD_Symbol_277 = (OpenAD_Symbol_167 * OpenAD_Symbol_155) OpenAD_Symbol_278 = (OpenAD_Symbol_157 * OpenAD_Symbol_154) OpenAD_Symbol_279 = (OpenAD_Symbol_158 * OpenAD_Symbol_154) OpenAD_Symbol_280 = (OpenAD_Symbol_145 * OpenAD_Symbol_134) OpenAD_Symbol_281 = (OpenAD_Symbol_146 * OpenAD_Symbol_134) OpenAD_Symbol_282 = (OpenAD_Symbol_136 * OpenAD_Symbol_133) OpenAD_Symbol_283 = (OpenAD_Symbol_137 * OpenAD_Symbol_133) OpenAD_Symbol_284 = (OpenAD_Symbol_124 * OpenAD_Symbol_113) OpenAD_Symbol_285 = (OpenAD_Symbol_125 * OpenAD_Symbol_113) OpenAD_Symbol_286 = (OpenAD_Symbol_115 * OpenAD_Symbol_112) OpenAD_Symbol_287 = (OpenAD_Symbol_116 * OpenAD_Symbol_112) OpenAD_Symbol_288 = (OpenAD_Symbol_103 * OpenAD_Symbol_92) OpenAD_Symbol_289 = (OpenAD_Symbol_104 * OpenAD_Symbol_92) OpenAD_Symbol_290 = (OpenAD_Symbol_94 * OpenAD_Symbol_91) OpenAD_Symbol_291 = (OpenAD_Symbol_95 * OpenAD_Symbol_91) OpenAD_Symbol_292 = (OpenAD_Symbol_189 * OpenAD_Symbol_270) OpenAD_Symbol_294 = (OpenAD_Symbol_190 * OpenAD_Symbol_270) OpenAD_Symbol_295 = (OpenAD_Symbol_180 * OpenAD_Symbol_273) OpenAD_Symbol_297 = (OpenAD_Symbol_181 * OpenAD_Symbol_273) OpenAD_Symbol_298 = (OpenAD_Symbol_168 * OpenAD_Symbol_276) OpenAD_Symbol_299 = (OpenAD_Symbol_169 * OpenAD_Symbol_276) OpenAD_Symbol_300 = (OpenAD_Symbol_159 * OpenAD_Symbol_278) OpenAD_Symbol_302 = (OpenAD_Symbol_160 * OpenAD_Symbol_278) OpenAD_Symbol_303 = (OpenAD_Symbol_147 * OpenAD_Symbol_280) OpenAD_Symbol_305 = (OpenAD_Symbol_148 * OpenAD_Symbol_280) OpenAD_Symbol_306 = (OpenAD_Symbol_138 * OpenAD_Symbol_282) OpenAD_Symbol_308 = (OpenAD_Symbol_139 * OpenAD_Symbol_282) OpenAD_Symbol_309 = (OpenAD_Symbol_126 * OpenAD_Symbol_284) OpenAD_Symbol_311 = (OpenAD_Symbol_127 * OpenAD_Symbol_284) OpenAD_Symbol_312 = (OpenAD_Symbol_117 * OpenAD_Symbol_286) OpenAD_Symbol_314 = (OpenAD_Symbol_118 * OpenAD_Symbol_286) OpenAD_Symbol_315 = (OpenAD_Symbol_105 * OpenAD_Symbol_288) OpenAD_Symbol_316 = (OpenAD_Symbol_106 * OpenAD_Symbol_288) OpenAD_Symbol_317 = (OpenAD_Symbol_96 * OpenAD_Symbol_290) OpenAD_Symbol_319 = (OpenAD_Symbol_97 * OpenAD_Symbol_290) OpenAD_Symbol_320 = (OpenAD_Symbol_191 * OpenAD_Symbol_294) OpenAD_Symbol_322 = (OpenAD_Symbol_192 * OpenAD_Symbol_294) OpenAD_Symbol_323 = (OpenAD_Symbol_182 * OpenAD_Symbol_297) OpenAD_Symbol_325 = (OpenAD_Symbol_183 * OpenAD_Symbol_297) OpenAD_Symbol_326 = (OpenAD_Symbol_170 * OpenAD_Symbol_299) OpenAD_Symbol_328 = (OpenAD_Symbol_171 * OpenAD_Symbol_299) OpenAD_Symbol_329 = (OpenAD_Symbol_161 * OpenAD_Symbol_302) OpenAD_Symbol_330 = (OpenAD_Symbol_162 * OpenAD_Symbol_302) OpenAD_Symbol_331 = (OpenAD_Symbol_149 * OpenAD_Symbol_305) OpenAD_Symbol_333 = (OpenAD_Symbol_150 * OpenAD_Symbol_305) OpenAD_Symbol_334 = (OpenAD_Symbol_140 * OpenAD_Symbol_308) OpenAD_Symbol_336 = (OpenAD_Symbol_141 * OpenAD_Symbol_308) OpenAD_Symbol_337 = (OpenAD_Symbol_128 * OpenAD_Symbol_311) OpenAD_Symbol_338 = (OpenAD_Symbol_129 * OpenAD_Symbol_311) OpenAD_Symbol_339 = (OpenAD_Symbol_119 * OpenAD_Symbol_314) OpenAD_Symbol_340 = (OpenAD_Symbol_120 * OpenAD_Symbol_314) OpenAD_Symbol_341 = (OpenAD_Symbol_107 * OpenAD_Symbol_316) OpenAD_Symbol_342 = (OpenAD_Symbol_108 * OpenAD_Symbol_316) OpenAD_Symbol_343 = (OpenAD_Symbol_98 * OpenAD_Symbol_319) OpenAD_Symbol_344 = (OpenAD_Symbol_99 * OpenAD_Symbol_319) OpenAD_Symbol_345 = (OpenAD_Symbol_193 * OpenAD_Symbol_322) OpenAD_Symbol_346 = (OpenAD_Symbol_345 + OpenAD_Symbol_184 * Open +AD_Symbol_325) OpenAD_Symbol_347 = (OpenAD_Symbol_172 * OpenAD_Symbol_328) OpenAD_Symbol_348 = (OpenAD_Symbol_347 + OpenAD_Symbol_163 * Open +AD_Symbol_330) OpenAD_Symbol_349 = (OpenAD_Symbol_151 * OpenAD_Symbol_333) OpenAD_Symbol_350 = (OpenAD_Symbol_349 + OpenAD_Symbol_142 * Open +AD_Symbol_336) OpenAD_Symbol_351 = (OpenAD_Symbol_130 * OpenAD_Symbol_338) OpenAD_Symbol_352 = (OpenAD_Symbol_351 + OpenAD_Symbol_121 * Open +AD_Symbol_340) OpenAD_Symbol_353 = (OpenAD_Symbol_109 * OpenAD_Symbol_342) OpenAD_Symbol_354 = (OpenAD_Symbol_353 + OpenAD_Symbol_100 * Open +AD_Symbol_344) double_tape(double_tape_pointer) = OpenAD_Symbol_271 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_274 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_277 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_279 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_281 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_283 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_285 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_287 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_289 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_291 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_292 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_295 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_298 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_300 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_303 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_306 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_309 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_312 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_315 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_317 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_320 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_323 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_326 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_329 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_331 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_334 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_337 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_339 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_341 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_343 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_346 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_348 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_350 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_352 double_tape_pointer = double_tape_pointer+1 double_tape(double_tape_pointer) = OpenAD_Symbol_354 double_tape_pointer = double_tape_pointer+1 our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.TRUE. end if if (our_rev_mode%res_restore) then C restore results C print *,"restore idx, value, x ",theResFStackoffset,PBB%v PBB%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PBL%v PBL%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PB%v PB%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PBR%v PBR%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PLL%v PLL%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PL%v PL%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,P%v P%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PR%v PR%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PRR%v PRR%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PTL%v PTL%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PT%v PT%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PTR%v PTR%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PTT%v PTT%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,HY2%v HY2%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,HX2%v HX2%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PLAP%v PLAP%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PBLAP%v PBLAP%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PLLAP%v PLLAP%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PRLAP%v PRLAP%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 C print *,"restore idx, value, x ",theResFStackoffset,PTLAP%v PTLAP%v = theResFStack(theResFStackoffset) theResFStackoffset = theResFStackoffset+1 end if if (our_rev_mode%adjoint) then C print*, " adjoint ", our_rev_mode our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.TRUE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. our_rev_mode%adjoint=.FALSE. C adjoint double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_480 = double_tape(double_tape_pointer) OpenAD_Symbol_307%d = OpenAD_Symbol_307%d+PBLAP%d*OpenAD_Symbo +l_480 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_481 = double_tape(double_tape_pointer) OpenAD_Symbol_304%d = OpenAD_Symbol_304%d+PLLAP%d*OpenAD_Symbo +l_481 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_482 = double_tape(double_tape_pointer) OpenAD_Symbol_296%d = OpenAD_Symbol_296%d+PLAP%d*OpenAD_Symbol +_482 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_483 = double_tape(double_tape_pointer) OpenAD_Symbol_332%d = OpenAD_Symbol_332%d+PRLAP%d*OpenAD_Symbo +l_483 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_484 = double_tape(double_tape_pointer) OpenAD_Symbol_335%d = OpenAD_Symbol_335%d+PTLAP%d*OpenAD_Symbo +l_484 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_485 = double_tape(double_tape_pointer) OpenAD_Symbol_296%d = OpenAD_Symbol_296%d+PBLAP%d*OpenAD_Symbo +l_485 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_486 = double_tape(double_tape_pointer) OpenAD_Symbol_301%d = OpenAD_Symbol_301%d+PBLAP%d*OpenAD_Symbo +l_486 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_487 = double_tape(double_tape_pointer) OpenAD_Symbol_293%d = OpenAD_Symbol_293%d+PLLAP%d*OpenAD_Symbo +l_487 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_488 = double_tape(double_tape_pointer) OpenAD_Symbol_296%d = OpenAD_Symbol_296%d+PLLAP%d*OpenAD_Symbo +l_488 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_489 = double_tape(double_tape_pointer) OpenAD_Symbol_335%d = OpenAD_Symbol_335%d+PLAP%d*OpenAD_Symbol +_489 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_490 = double_tape(double_tape_pointer) OpenAD_Symbol_332%d = OpenAD_Symbol_332%d+PLAP%d*OpenAD_Symbol +_490 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_491 = double_tape(double_tape_pointer) OpenAD_Symbol_321%d = OpenAD_Symbol_321%d+PRLAP%d*OpenAD_Symbo +l_491 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_492 = double_tape(double_tape_pointer) OpenAD_Symbol_327%d = OpenAD_Symbol_327%d+PRLAP%d*OpenAD_Symbo +l_492 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_493 = double_tape(double_tape_pointer) OpenAD_Symbol_324%d = OpenAD_Symbol_324%d+PTLAP%d*OpenAD_Symbo +l_493 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_494 = double_tape(double_tape_pointer) OpenAD_Symbol_321%d = OpenAD_Symbol_321%d+PTLAP%d*OpenAD_Symbo +l_494 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_495 = double_tape(double_tape_pointer) OpenAD_Symbol_318%d = OpenAD_Symbol_318%d+PBLAP%d*OpenAD_Symbo +l_495 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_496 = double_tape(double_tape_pointer) OpenAD_Symbol_313%d = OpenAD_Symbol_313%d+PBLAP%d*OpenAD_Symbo +l_496 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_497 = double_tape(double_tape_pointer) OpenAD_Symbol_313%d = OpenAD_Symbol_313%d+PLLAP%d*OpenAD_Symbo +l_497 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_498 = double_tape(double_tape_pointer) OpenAD_Symbol_310%d = OpenAD_Symbol_310%d+PLLAP%d*OpenAD_Symbo +l_498 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_499 = double_tape(double_tape_pointer) OpenAD_Symbol_307%d = OpenAD_Symbol_307%d+PLAP%d*OpenAD_Symbol +_499 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_500 = double_tape(double_tape_pointer) OpenAD_Symbol_304%d = OpenAD_Symbol_304%d+PLAP%d*OpenAD_Symbol +_500 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_501 = double_tape(double_tape_pointer) OpenAD_Symbol_301%d = OpenAD_Symbol_301%d+PRLAP%d*OpenAD_Symbo +l_501 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_502 = double_tape(double_tape_pointer) OpenAD_Symbol_296%d = OpenAD_Symbol_296%d+PRLAP%d*OpenAD_Symbo +l_502 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_503 = double_tape(double_tape_pointer) OpenAD_Symbol_296%d = OpenAD_Symbol_296%d+PTLAP%d*OpenAD_Symbo +l_503 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_504 = double_tape(double_tape_pointer) OpenAD_Symbol_293%d = OpenAD_Symbol_293%d+PTLAP%d*OpenAD_Symbo +l_504 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_505 = double_tape(double_tape_pointer) OpenAD_Symbol_275%d = OpenAD_Symbol_275%d+PBLAP%d*OpenAD_Symbo +l_505 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_506 = double_tape(double_tape_pointer) OpenAD_Symbol_272%d = OpenAD_Symbol_272%d+PBLAP%d*OpenAD_Symbo +l_506 PBLAP%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_507 = double_tape(double_tape_pointer) OpenAD_Symbol_275%d = OpenAD_Symbol_275%d+PLLAP%d*OpenAD_Symbo +l_507 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_508 = double_tape(double_tape_pointer) OpenAD_Symbol_272%d = OpenAD_Symbol_272%d+PLLAP%d*OpenAD_Symbo +l_508 PLLAP%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_509 = double_tape(double_tape_pointer) OpenAD_Symbol_275%d = OpenAD_Symbol_275%d+PLAP%d*OpenAD_Symbol +_509 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_510 = double_tape(double_tape_pointer) OpenAD_Symbol_272%d = OpenAD_Symbol_272%d+PLAP%d*OpenAD_Symbol +_510 PLAP%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_511 = double_tape(double_tape_pointer) OpenAD_Symbol_275%d = OpenAD_Symbol_275%d+PRLAP%d*OpenAD_Symbo +l_511 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_512 = double_tape(double_tape_pointer) OpenAD_Symbol_272%d = OpenAD_Symbol_272%d+PRLAP%d*OpenAD_Symbo +l_512 PRLAP%d = 0.0d0 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_513 = double_tape(double_tape_pointer) OpenAD_Symbol_275%d = OpenAD_Symbol_275%d+PTLAP%d*OpenAD_Symbo +l_513 double_tape_pointer = double_tape_pointer-1 OpenAD_Symbol_514 = double_tape(double_tape_pointer) OpenAD_Symbol_272%d = OpenAD_Symbol_272%d+PTLAP%d*OpenAD_Symbo +l_514 PTLAP%d = 0.0d0 HX2%d = HX2%d+OpenAD_Symbol_272%d OpenAD_Symbol_272%d = 0.0d0 HY2%d = HY2%d+OpenAD_Symbol_275%d OpenAD_Symbol_275%d = 0.0d0 PTL%d = PTL%d+OpenAD_Symbol_293%d OpenAD_Symbol_293%d = 0.0d0 P%d = P%d+OpenAD_Symbol_296%d OpenAD_Symbol_296%d = 0.0d0 PBR%d = PBR%d+OpenAD_Symbol_301%d OpenAD_Symbol_301%d = 0.0d0 PL%d = PL%d+OpenAD_Symbol_304%d OpenAD_Symbol_304%d = 0.0d0 PB%d = PB%d+OpenAD_Symbol_307%d OpenAD_Symbol_307%d = 0.0d0 PLL%d = PLL%d+OpenAD_Symbol_310%d OpenAD_Symbol_310%d = 0.0d0 PBL%d = PBL%d+OpenAD_Symbol_313%d OpenAD_Symbol_313%d = 0.0d0 PBB%d = PBB%d+OpenAD_Symbol_318%d OpenAD_Symbol_318%d = 0.0d0 PTR%d = PTR%d+OpenAD_Symbol_321%d OpenAD_Symbol_321%d = 0.0d0 PTT%d = PTT%d+OpenAD_Symbol_324%d OpenAD_Symbol_324%d = 0.0d0 PRR%d = PRR%d+OpenAD_Symbol_327%d OpenAD_Symbol_327%d = 0.0d0 PR%d = PR%d+OpenAD_Symbol_332%d OpenAD_Symbol_332%d = 0.0d0 PT%d = PT%d+OpenAD_Symbol_335%d OpenAD_Symbol_335%d = 0.0d0 our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.TRUE. our_rev_mode%res_store=.FALSE. our_rev_mode%res_restore=.FALSE. our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. our_rev_mode%adjoint=.FALSE. end if if (our_rev_mode%res_store) then C store results C print*, " res_store ", our_rev_mode call cp_store_real_scalar(PBB%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PBL%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PB%v,theResFStack,theResFStackoffset +,theResFStackSize) call cp_store_real_scalar(PBR%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PLL%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PL%v,theResFStack,theResFStackoffset +,theResFStackSize) call cp_store_real_scalar(P%v,theResFStack,theResFStackoffset, +theResFStackSize) call cp_store_real_scalar(PR%v,theResFStack,theResFStackoffset +,theResFStackSize) call cp_store_real_scalar(PRR%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PTL%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PT%v,theResFStack,theResFStackoffset +,theResFStackSize) call cp_store_real_scalar(PTR%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PTT%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(HY2%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(HX2%v,theResFStack,theResFStackoffse +t,theResFStackSize) call cp_store_real_scalar(PLAP%v,theResFStack,theResFStackoffs +et,theResFStackSize) call cp_store_real_scalar(PBLAP%v,theResFStack,theResFStackoff +set,theResFStackSize) call cp_store_real_scalar(PLLAP%v,theResFStack,theResFStackoff +set,theResFStackSize) call cp_store_real_scalar(PRLAP%v,theResFStack,theResFStackoff +set,theResFStackSize) call cp_store_real_scalar(PTLAP%v,theResFStack,theResFStackoff +set,theResFStackSize) end if C write(*,'(A,I6,A,I6,A,I6,A,I6,A,I5,A,I5)') C +"a:AF:", theArgFStackoffset, C +" AI:",theArgIStackoffset, C +" RF:",theResFStackoffset, C +" RI:",theResIStackoffset, C +" DT:",double_tape_pointer, C +" IT:",integer_tape_pointer end subroutine bar