-
Notifications
You must be signed in to change notification settings - Fork 1
Adjust store directives, so that it compiles with MITgcm PR862 without any intervention #26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 3 commits
fd7d31c
53c9e27
d540da9
73dbfef
26883ff
5110481
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -73,6 +73,16 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) | |||||||||||||||||||||
C \ev | ||||||||||||||||||||||
|
||||||||||||||||||||||
C !USES: | ||||||||||||||||||||||
#ifdef ALLOW_AUTODIFF_TAMC | ||||||||||||||||||||||
# ifdef ALLOW_IHOP | ||||||||||||||||||||||
use arr_mod, only: arr, narr | ||||||||||||||||||||||
use bdry_mod, only: bdry | ||||||||||||||||||||||
use ssp_mod, only: ssp | ||||||||||||||||||||||
use srpos_mod, only: pos | ||||||||||||||||||||||
use angle_mod, only: angles | ||||||||||||||||||||||
use ihop_mod, only: beam, ray2d | ||||||||||||||||||||||
# endif | ||||||||||||||||||||||
#endif | ||||||||||||||||||||||
IMPLICIT NONE | ||||||||||||||||||||||
C == Global variables == | ||||||||||||||||||||||
#include "SIZE.h" | ||||||||||||||||||||||
|
@@ -443,6 +453,10 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) | |||||||||||||||||||||
# endif | ||||||||||||||||||||||
CALL AUTODIFF_STORE( myThid ) | ||||||||||||||||||||||
#include "checkpoint_lev4_directives.h" | ||||||||||||||||||||||
# ifdef ALLOW_IHOP | ||||||||||||||||||||||
!$TAF STORE arr, bdry, narr, pos, ssp = tapelev4, key = ilev_4 | ||||||||||||||||||||||
!$TAF STORE angles, beam, ray2d = tapelev4, key = ilev_4 | ||||||||||||||||||||||
# endif | ||||||||||||||||||||||
CALL AUTODIFF_RESTORE( myThid ) | ||||||||||||||||||||||
# ifdef ALLOW_AUTODIFF_WHTAPEIO | ||||||||||||||||||||||
CALL AUTODIFF_WHTAPEIO_SYNC( 4 , 1, myThid ) | ||||||||||||||||||||||
|
@@ -462,6 +476,10 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) | |||||||||||||||||||||
# endif | ||||||||||||||||||||||
CALL AUTODIFF_STORE( myThid ) | ||||||||||||||||||||||
#include "checkpoint_lev3_directives.h" | ||||||||||||||||||||||
# ifdef ALLOW_IHOP | ||||||||||||||||||||||
!$TAF STORE arr, bdry, narr, pos, ssp = tapelev3, key = ilev_3 | ||||||||||||||||||||||
!$TAF STORE angles, beam, ray2d = tapelev3, key = ilev_3 | ||||||||||||||||||||||
# endif | ||||||||||||||||||||||
CALL AUTODIFF_RESTORE( myThid ) | ||||||||||||||||||||||
# ifdef ALLOW_AUTODIFF_WHTAPEIO | ||||||||||||||||||||||
CALL AUTODIFF_WHTAPEIO_SYNC( 3 , 1, myThid ) | ||||||||||||||||||||||
|
@@ -480,6 +498,18 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) | |||||||||||||||||||||
# endif | ||||||||||||||||||||||
CALL AUTODIFF_STORE( myThid ) | ||||||||||||||||||||||
#include "checkpoint_lev2_directives.h" | ||||||||||||||||||||||
# ifdef ALLOW_IHOP | ||||||||||||||||||||||
CML!$TAF STORE arr, bdry, narr, pos, ssp = tapelev2, key = ilev_2 | ||||||||||||||||||||||
CML!$TAF STORE angles, beam, ray2d = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE arr, narr, ray2d = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE angles%dalpha = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE bdry%bot, bdry%top = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE beam%nsteps = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE pos%rz, pos%sz = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE ssp%c, ssp%cmat = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE ssp%cz, ssp%czmat = tapelev2, key = ilev_2 | ||||||||||||||||||||||
!$TAF STORE ssp%rho = tapelev2, key = ilev_2 | ||||||||||||||||||||||
# endif | ||||||||||||||||||||||
CALL AUTODIFF_RESTORE( myThid ) | ||||||||||||||||||||||
# ifdef ALLOW_AUTODIFF_WHTAPEIO | ||||||||||||||||||||||
CALL AUTODIFF_WHTAPEIO_SYNC( 2 , 1, myThid ) | ||||||||||||||||||||||
|
@@ -520,7 +550,8 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) | |||||||||||||||||||||
c-- | ||||||||||||||||||||||
# ifdef ALLOW_IHOP | ||||||||||||||||||||||
! for ssp_mod>gcmSSP; make local? | ||||||||||||||||||||||
!$TAF INIT comlev1_bibj_ij_ihop = COMMON, nchklev_1*nSx*nSy*(2*OLy+sNy)*(2*OLx+sNx) | ||||||||||||||||||||||
!$TAF INIT comlev1_ihop = STATIC, nchklev_1 | ||||||||||||||||||||||
!$TAF INIT comlev1_ihop_nts = STATIC, nchklev_1*nts | ||||||||||||||||||||||
# endif /* ALLOW_IHOP */ | ||||||||||||||||||||||
c-- | ||||||||||||||||||||||
# ifdef ALLOW_MOM_COMMON | ||||||||||||||||||||||
|
@@ -698,16 +729,29 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) | |||||||||||||||||||||
ENDIF | ||||||||||||||||||||||
#endif | ||||||||||||||||||||||
#ifdef ALLOW_IHOP | ||||||||||||||||||||||
# ifdef ALLOW_AUTODIFF_TAMC | ||||||||||||||||||||||
CML!$TAF STORE arr,narr,bdry,pos,ssp = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE arr, narr, ray2d = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE angles%dalpha = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE bdry%bot, bdry%top = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE beam%nsteps = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE pos%rz, pos%sz = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE ssp%c, ssp%cmat = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE ssp%cz, ssp%czmat = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
C for some reason TAF does not do this right, so we store ssp instead | ||||||||||||||||||||||
CML!$TAF STORE ssp%rho = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
!$TAF STORE ssp = comlev1_ihop, key = ikey_dynamics | ||||||||||||||||||||||
|
!$TAF STORE ssp%c, ssp%cmat = comlev1_ihop, key = ikey_dynamics | |
!$TAF STORE ssp%cz, ssp%czmat = comlev1_ihop, key = ikey_dynamics | |
C for some reason TAF does not do this right, so we store ssp instead | |
CML!$TAF STORE ssp%rho = comlev1_ihop, key = ikey_dynamics | |
!$TAF STORE ssp = comlev1_ihop, key = ikey_dynamics | |
CML!$TAF STORE ssp%c, ssp%cmat = comlev1_ihop, key = ikey_dynamics | |
CML!$TAF STORE ssp%cz, ssp%czmat = comlev1_ihop, key = ikey_dynamics | |
C for some reason TAF does not do this right, so we store ssp instead | |
CML!$TAF STORE ssp%rho = comlev1_ihop, key = ikey_dynamics | |
!$TAF STORE ssp = comlev1_ihop, key = ikey_dynamics |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,7 @@ | ||
#include "IHOP_OPTIONS.h" | ||
#ifdef ALLOW_AUTODIFF | ||
# include "AUTODIFF_OPTIONS.h" | ||
#endif | ||
|
||
CBOP | ||
C !ROUTINE: IHOP_DRIVER | ||
|
@@ -11,6 +14,14 @@ SUBROUTINE IHOP_DRIVER( myTime, myIter, myThid ) | |
|
||
C !FORTRAN90 USE MODULES: =============================================== | ||
USE ihop, only: ihop_main | ||
#ifdef ALLOW_AUTODIFF_TAMC | ||
USE arr_mod, only: arr | ||
USE bdry_mod, only: bdry | ||
USE ssp_mod, only: ssp | ||
USE srpos_mod, only: pos | ||
use angle_mod, only: angles | ||
use ihop_mod, only: beam, ray2d | ||
#endif | ||
|
||
IMPLICIT NONE | ||
C !GLOBAL VARIABLES: =============================================== | ||
|
@@ -24,6 +35,9 @@ SUBROUTINE IHOP_DRIVER( myTime, myIter, myThid ) | |
# include "IHOP_SIZE.h" | ||
# include "IHOP.h" | ||
#endif /* ALLOW_IHOP */ | ||
#ifdef ALLOW_AUTODIFF_TAMC | ||
# include "tamc.h" | ||
#endif | ||
|
||
C !INPUT PARAMETERS: =================================================== | ||
C myTime :: Current time in simulation | ||
|
@@ -36,10 +50,23 @@ SUBROUTINE IHOP_DRIVER( myTime, myIter, myThid ) | |
|
||
C !LOCAL VARIABLES: ==================================================== | ||
INTEGER t | ||
#ifdef ALLOW_AUTODIFF_TAMC | ||
integer tkey | ||
#endif | ||
|
||
CEOP | ||
|
||
#ifdef ALLOW_IHOP | ||
DO t=1,nts | ||
CML# ifdef ALLOW_AUTODIFF_TAMC | ||
CML tkey = nts*(ikey_dynamics-1) + t | ||
CML!$TAF STORE arr, bdry, ray2d = comlev1_ihop_nts, key = tkey | ||
CML!$TAF STORE angles%dalpha = comlev1_ihop_nts, key = tkey | ||
CML!$TAF STORE bdry%bot, bdry%top = comlev1_ihop_nts, key = tkey | ||
CML!$TAF STORE beam%nsteps = comlev1_ihop_nts, key = tkey | ||
CML!$TAF STORE pos%rz, pos%sz = comlev1_ihop_nts, key = tkey | ||
CML!$TAF STORE ssp%c = comlev1_ihop_nts, key = tkey | ||
CML# endif | ||
|
||
IF ( IHOP_iter(t).GE.0 ) THEN | ||
IF ( IHOP_iter(t).EQ.myIter ) THEN | ||
CALL IHOP_MAIN( myTime, myIter, myThid ) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this could be done in a similar way for tapelevel3 and tapelevel4.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use the PASSIVE statement does not work properly