Skip to content

Commit

Permalink
Use C style preprocessor macros to enable debug
Browse files Browse the repository at this point in the history
Old debug section is not updated though.
  • Loading branch information
AndybnACT committed Jan 31, 2022
1 parent 6b621cd commit b024e76
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 39 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#####################################################################

### Plese specify your fortran, cuda compiler and GPU's compute capabilities #####
FC = gfortran -g
FC = gfortran -g -cpp
FC_FLAGS = -O2


Expand Down
25 changes: 25 additions & 0 deletions all_grids.f90
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

#include "debug_option.h"
!----------------------------------------------------------------------
SUBROUTINE ALL_GRID (LO,LA)
!DESCRIPTION:
Expand Down Expand Up @@ -407,6 +408,20 @@ SUBROUTINE JNZ (LO,LA)
RETURN
END


SUBROUTINE GET_ALL(LL)
USE LAYER_PARAMS
TYPE (LAYER) :: LL


CALL CUDA_GETZ1(LL%Z(:,:,1), LL%ID)
CALL CUDA_GETZ(LL%Z(:,:,2), LL%ID)
CALL CUDA_GETMN1(LL%M(:,:,1), LL%N(:,:,1), LL%ID)
CALL CUDA_GETMN(LL%M(:,:,2), LL%N(:,:,2), LL%ID)


RETURN
END

!-----------------------------------------------------------------------
SUBROUTINE JNQ (LO,LA)
Expand All @@ -427,13 +442,23 @@ SUBROUTINE JNQ (LO,LA)
USE LAYER_PARAMS
TYPE (LAYER) :: LO, LA

#ifdef DEBUG_ALL_GRID
CALL GET_ALL(LO)
CALL GET_ALL(LA)
#endif /* DEBUG_ALL_GRID */

IF (LA%SC_OPTION.EQ.0) THEN
IS = LA%CORNERS(1)
IE = LA%CORNERS(2)
JS = LA%CORNERS(3)
JE = LA%CORNERS(4)
CALL EDGEINTERP_VERT (LO%M(IS-1,:,1),LO%NY,LA,0) !LEFT BOUNDARY
CALL EDGEINTERP_VERT (LO%M(IE,:,1),LO%NY,LA,1) !RIGHT BOUNDARY

#ifdef DEBUG_ALL_GRID
CALL edgeinterp_dbglaunch(LO%M(:,:,1), LO%N(:,:,1), LO%ID, LA%M(:,:,1), LA%N(:,:,1), LA%ID)
#endif /* DEBUG_ALL_GRID */

CALL EDGEINTERP_HORI (LO%N(:,JS-1,1),LO%NX,LA,0) !BOTTOM BOUNDARY
CALL EDGEINTERP_HORI (LO%N(:,JE,1),LO%NX,LA,1) !TOP BOUNDARY
ELSE
Expand Down
92 changes: 54 additions & 38 deletions comcot.f90
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@
!* DZ(:,:,2) - TOTAL WATER DEPTH (USED FOR DETERMINING MOVING BOUNDARY)
!* FILE IO-UNIT 23, 25, 666, 999, and 1001-9999 RESERVED.
!**********************************************************************
#include "debug_option.h"



!----------------------------------------------------------------------
PROGRAM COMCOT
Expand Down Expand Up @@ -177,6 +180,14 @@ PROGRAM COMCOT
ALLOCATE(LA(NUM_GRID))
ALLOCATE(FAULT_INFO(NUM_FLT))
!----------------------------------------------------------------------

#ifdef DEBUG_CORE
write(*,*) "DEBUG_CORE [ENABLED]"
#endif
#ifdef DEBUG_ALL_GRID
write(*,*) "DEBUG_ALL_GRID [ENABLED]"
#endif

write (*,*) ' '
write (*,*) '************** GPU-COMCOT ******************'
write (*,*) '* *'
Expand Down Expand Up @@ -344,12 +355,14 @@ PROGRAM COMCOT
CALL SED_TRANSPORT (LO)
ENDIF

! WRITE(*,*) "COMPUTING MASS EQ ON CPU"
! call system_clock ( t1, trate, tmax )
! CALL MASS (LO)
! call system_clock ( t2, trate, tmax )
! write ( *, * ) 'Serial Code Elapsed real time = ', real ( t2 - t1 ) / real ( trate )
! WRITE (*,*) "COMPUTING MASS EQ ON GPU"
#ifdef DEBUG_CORE
WRITE(*,*) "COMPUTING MASS EQ ON CPU"
call system_clock ( t1, trate, tmax )
CALL MASS (LO)
call system_clock ( t2, trate, tmax )
write ( *, * ) 'Serial Code Elapsed real time = ', real ( t2 - t1 ) / real ( trate )
WRITE (*,*) "COMPUTING MASS EQ ON GPU"
#endif /* DEBUG_CORE */
CALL MASS_LAUNCH(LO%Z(:,:,1),LO%Z(:,:,2),LO%H(:,:), LO%ID)

!.......SOLVE RADIATION OPEN BOUNDARY
Expand Down Expand Up @@ -380,13 +393,14 @@ PROGRAM COMCOT
!//////////////////////////////////////////////////////////////////////
! SOLVE MOMENTUM CONSERVATION EQN FOR LAYER 1
!//////////////////////////////////////////////////////////////////////
! WRITE(*,*) "COMPUTING MOMT EQ ON CPU"
! call system_clock ( t1, trate, tmax )
! CALL MOMENT (LO)
! call system_clock ( t2, trate, tmax )
! write ( *, * ) 'Serial Code Elapsed real time = ', real ( t2 - t1 ) / real ( trate )
!
! WRITE(*,*) "COMPUTING MOMT EQ ON GPU"
#ifdef DEBUG_CORE
WRITE(*,*) "COMPUTING MOMT EQ ON CPU"
call system_clock ( t1, trate, tmax )
CALL MOMENT (LO)
call system_clock ( t2, trate, tmax )
write ( *, * ) 'Serial Code Elapsed real time = ', real ( t2 - t1 ) / real ( trate )
WRITE(*,*) "COMPUTING MOMT EQ ON GPU"
#endif /* DEBUG_CORE */
CALL MOMT_LAUNCH(LO%M(:,:,2), LO%N(:,:,2), LO%Z(:,:,2), LO%ID)

!.......USE SPONGE LAYER .....
Expand Down Expand Up @@ -468,31 +482,33 @@ SUBROUTINE CHANGE()
! X, Y DIRECTIONS)FROM LAST STEP TO NEXT STEP (FOR OUTEST LAYER)
!----------------------------------------------------------------------
!!!!!!!!!!!!!!!!!!!! COMMEMT ADDED BY TAO !!!!!!!!!!!!!!!!!!!!!!!!!!
! USE LAYER_PARAMS
! TYPE (LAYER) :: LO
! IF (LO%LAYGOV .GT. 1) THEN
! LO%M0(:,:) = LO%M(:,:,1)
! LO%N0(:,:) = LO%N(:,:,1)
! ENDIF
! LO%Z(:,:,1) = LO%Z(:,:,2)
! LO%M(:,:,1) = LO%M(:,:,2)
! LO%N(:,:,1) = LO%N(:,:,2)
! ! DO J=1,LO%NY
! ! DO I=1,LO%NX
! ! LO%Z(I,J,1) = LO%Z(I,J,2)
! ! LO%M(I,J,1) = LO%M(I,J,2)
! ! LO%N(I,J,1) = LO%N(I,J,2)
! ! IF (LO%LAYGOV.GT.1) THEN
! ! LO%M0(I,J) = LO%M(I,J,1)
! ! LO%N0(I,J) = LO%N(I,J,1)
! ! ENDIF
! ! END DO
! ! END DO
! !.....UPDATE BATHYMETRY IF TRANSIENT SEAFLOOR MOTION IS ENABLED
! IF (LO%INI_SWITCH.EQ.3 .OR. LO%INI_SWITCH.EQ.4) THEN
! LO%HT(:,:,1) = LO%HT(:,:,2)
! LO%H(:,:) = LO%H(:,:) + LO%HT(:,:,2) - LO%HT(:,:,1)
! ENDIF
#ifdef DEBUG_CORE
USE LAYER_PARAMS
TYPE (LAYER) :: LO
IF (LO%LAYGOV .GT. 1) THEN
LO%M0(:,:) = LO%M(:,:,1)
LO%N0(:,:) = LO%N(:,:,1)
ENDIF
LO%Z(:,:,1) = LO%Z(:,:,2)
LO%M(:,:,1) = LO%M(:,:,2)
LO%N(:,:,1) = LO%N(:,:,2)
! DO J=1,LO%NY
! DO I=1,LO%NX
! LO%Z(I,J,1) = LO%Z(I,J,2)
! LO%M(I,J,1) = LO%M(I,J,2)
! LO%N(I,J,1) = LO%N(I,J,2)
! IF (LO%LAYGOV.GT.1) THEN
! LO%M0(I,J) = LO%M(I,J,1)
! LO%N0(I,J) = LO%N(I,J,1)
! ENDIF
! END DO
! END DO
!.....UPDATE BATHYMETRY IF TRANSIENT SEAFLOOR MOTION IS ENABLED
IF (LO%INI_SWITCH.EQ.3 .OR. LO%INI_SWITCH.EQ.4) THEN
LO%HT(:,:,1) = LO%HT(:,:,2)
LO%H(:,:) = LO%H(:,:) + LO%HT(:,:,2) - LO%HT(:,:,1)
ENDIF
#endif /* DEBUG_CORE */
!!!!!!!!!!!!!!!!!!!! COMMEMT ADDED BY TAO !!!!!!!!!!!!!!!!!!!!!!!!!!

CALL CUDA_UPDATE_LAYER(1)
Expand Down
2 changes: 2 additions & 0 deletions debug_option.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#define DEBUG_ALL_GRID
/* #define DEBUG_CORE */

0 comments on commit b024e76

Please sign in to comment.