Hi all,
I was wondering if you could help me out with this issue. I also have posted on the COAWST community but I couldn't attach all the log files and here the community is more active. I am trying to run parts of my model and see if everything works to make sure once I put all together they will work. So my last step is to add the biofennel module in COAWST. However, when I try to activate it gives me the error (see attached in logBioFennel_on.compile file) and when I undefine biofennel it compiles without a problem. I have tried to mess already by getting the diag.F from ROMS itself and I also have tried to remove the if def BIOLOGY inside of if def SOLVE3D, I also have tried to give values to the buffer variable and in this case it compiles but when I try to run it says the buffer size isn't enough. That's why I am posting here since everything I could have done by myself didn't work so maybe someone would know a way around it. I attached the log files and my .h and coawst.bash file. Thank you again in advance.
Cheers,
Matheus
ROMS (COAWST) doesn't compile when biofennel is activated
-
- Posts: 51
- Joined: Wed Dec 03, 2014 1:46 am
- Location: University of Georgia
ROMS (COAWST) doesn't compile when biofennel is activated
- Attachments
-
logBioFennel_on.txt
- (391.89 KiB) Downloaded 221 times
-
logBioFennel_off.txt
- (412.82 KiB) Downloaded 221 times
-
coawst.bash
- (20.3 KiB) Downloaded 222 times
-
mexicotides.h
- (4 KiB) Downloaded 229 times
-
- Posts: 51
- Joined: Wed Dec 03, 2014 1:46 am
- Location: University of Georgia
Re: ROMS (COAWST) doesn't compile when biofennel is activated
I would like to point it out that I was able to "fix" by modifying the following in the diag.F (coawst/ROMS/nonlinear/):
!
! Local variable declarations.
!
#ifdef BIOLOGY
integer :: ibt, itrc
#endif
integer :: NSUB, i, ispace, j, k, trd
integer :: my_max_Ci, my_max_Cj, my_max_Ck
#ifdef DISTRIBUTE
# ifdef SOLVE3D
# ifdef BIOLOGY
integer :: Nreduce
# else
integer, parameter :: Nreduce = 5
# endif
integer, parameter :: Ncourant = 7
# else
integer, parameter :: Nreduce = 4
integer, parameter :: Ncourant = 5
# endif
real(r8), dimension(Nreduce) :: buffer
real(r8), dimension(Ncourant) :: Courant
character (len=3), dimension(Nreduce) :: op_handle
character (len=6), dimension(Nreduce) :: C_handle
#else
integer :: my_threadnum
#endif
To
!
! Local variable declarations.
!
#ifdef BIOLOGY
integer :: ibt, itrc
#endif
integer :: NSUB, i, ispace, j, k, trd
integer :: my_max_Ci, my_max_Cj, my_max_Ck
#ifdef DISTRIBUTE
# ifdef SOLVE3D
# ifdef BIOLOGY
integer :: Nreduce
# else
integer, parameter :: Nreduce = 5
# endif
integer, parameter :: Ncourant = 7
# else
integer, parameter :: Nreduce = 4
integer, parameter :: Ncourant = 5
# endif
real(r8), dimension(5) :: buffer
real(r8), dimension(Ncourant) :: Courant
character (len=3), dimension(5) :: op_handle
character (len=6), dimension(5) :: C_handle
#else
integer :: my_threadnum
#endif
I am in the point where I just have IC for the biofennel model so I don't how this change could play out once I start forcing at the boundaries. I am also aware that this might not be the right way of doing it so if anyone still knows how to change it properly I would greatly appreciate it.
Cheers
!
! Local variable declarations.
!
#ifdef BIOLOGY
integer :: ibt, itrc
#endif
integer :: NSUB, i, ispace, j, k, trd
integer :: my_max_Ci, my_max_Cj, my_max_Ck
#ifdef DISTRIBUTE
# ifdef SOLVE3D
# ifdef BIOLOGY
integer :: Nreduce
# else
integer, parameter :: Nreduce = 5
# endif
integer, parameter :: Ncourant = 7
# else
integer, parameter :: Nreduce = 4
integer, parameter :: Ncourant = 5
# endif
real(r8), dimension(Nreduce) :: buffer
real(r8), dimension(Ncourant) :: Courant
character (len=3), dimension(Nreduce) :: op_handle
character (len=6), dimension(Nreduce) :: C_handle
#else
integer :: my_threadnum
#endif
To
!
! Local variable declarations.
!
#ifdef BIOLOGY
integer :: ibt, itrc
#endif
integer :: NSUB, i, ispace, j, k, trd
integer :: my_max_Ci, my_max_Cj, my_max_Ck
#ifdef DISTRIBUTE
# ifdef SOLVE3D
# ifdef BIOLOGY
integer :: Nreduce
# else
integer, parameter :: Nreduce = 5
# endif
integer, parameter :: Ncourant = 7
# else
integer, parameter :: Nreduce = 4
integer, parameter :: Ncourant = 5
# endif
real(r8), dimension(5) :: buffer
real(r8), dimension(Ncourant) :: Courant
character (len=3), dimension(5) :: op_handle
character (len=6), dimension(5) :: C_handle
#else
integer :: my_threadnum
#endif
I am in the point where I just have IC for the biofennel model so I don't how this change could play out once I start forcing at the boundaries. I am also aware that this might not be the right way of doing it so if anyone still knows how to change it properly I would greatly appreciate it.
Cheers