bio_var.F90 5.91 KB
Newer Older
dumoda01's avatar
dumoda01 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
!$Id: bio_var.F90,v 1.11 2007-03-14 12:46:07 kbk Exp $
#include"cppdefs.h"
!-----------------------------------------------------------------------
!BOP
!
! !MODULE: bio_var --- declaration of biological variables
!
! !INTERFACE:
   module bio_var
!
! !DESCRIPTION:
!  Here all variables necessary for the biogeochemical models are
!  declared, mostly as allocatable variables.
!
! !USES:
!  default: all is public.
   public
!
! !PUBLIC DATA MEMBERS:
   integer                               :: bio_model
   integer                               :: numc,numcc
   REALTYPE, dimension(:), allocatable   :: zlev
   REALTYPE, dimension(:), allocatable   :: par
24
   REALTYPE, dimension(:), allocatable   :: lumlim1,nitlim1,ammlim1,lumlim2,nitlim2,ammlim2  !DD
25
   REALTYPE, dimension(:), allocatable   :: ppnet
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

   REALTYPE, dimension(:), allocatable   :: flux_msn
   integer                               :: flux_msn_id

   REALTYPE, dimension(:), allocatable   :: Flux_P
   integer :: Flux_P_id
   REALTYPE, dimension(:), allocatable   :: Flux_D1
   integer :: Flux_D1_id
 REALTYPE, dimension(:), allocatable   :: Flux_D2
   integer :: Flux_D2_id
 REALTYPE, dimension(:), allocatable   :: Flux_D3
   integer :: Flux_D3_id

   REALTYPE, dimension(:), allocatable   :: size_msnow
   integer :: size_msnow_id

   REALTYPE, dimension(:), allocatable   :: w_msn_lev
   integer :: w_msn_lev_id


dumoda01's avatar
dumoda01 committed
46 47 48 49 50 51 52 53 54 55 56
   REALTYPE, dimension(:,:), allocatable :: cc,ws
   integer                               :: surface_flux_method=-1
   integer                               :: n_surface_fluxes=-1
   REALTYPE, dimension(:), allocatable   :: sfl_read
   REALTYPE, dimension(:), allocatable   :: sfl,bfl
   integer, dimension(:), allocatable    :: posconc
   logical, dimension(:), allocatable    :: mussels_inhale
   logical, dimension(:,:), allocatable  :: particle_active
   integer, dimension(:,:), allocatable  :: particle_indx
   REALTYPE, dimension(:,:), allocatable :: particle_pos

57 58 59 60 61 62 63 64 65 66 67 68

!Stickiness
  REALTYPE, dimension(:), allocatable   :: sti_2p,sti_pdph,sti_pdzo,sti_pfp
  integer                               :: sti_2p_id,sti_pdph_id,sti_pdzo_id,sti_pfp_id
  REALTYPE, dimension(:), allocatable   :: sti_2dph,sti_dphdzo,sti_dphfp
  integer                               :: sti_2dph_id,sti_dphdzo_id,sti_dphfp_id
  REALTYPE, dimension(:), allocatable   :: sti_2dzo,sti_dzofp
  integer                               :: sti_2dzo_id,sti_dzofp_id
  REALTYPE, dimension(:), allocatable   :: sti_2fp
  integer                               :: sti_2fp_id


dumoda01's avatar
dumoda01 committed
69
   integer, dimension(:), allocatable    :: var_ids
70
   integer                               :: wp_id,wz_id,wd1_id,wd2_id,wd3_id,wd4_id
71
   integer                               :: par_id
72
   integer                               :: lumlim1_id,nitlim1_id,ammlim1_id,lumlim2_id,nitlim2_id,ammlim2_id  !DD
73
   integer                               :: ppnet_id
74

dumoda01's avatar
dumoda01 committed
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
   character(len=64), dimension(:), allocatable :: var_names
   character(len=64), dimension(:), allocatable :: var_units
   character(len=64), dimension(:), allocatable :: var_long

   REALTYPE, parameter                   :: secs_pr_day=86400.

!  external variables - i.e. provided by the calling program but
!  made available via this module to the different biological models
!  the variables are copied via set_env_spm() in bio.F90
   REALTYPE, dimension(:), allocatable      :: h
   REALTYPE, dimension(:), allocatable      :: t
   REALTYPE, dimension(:), allocatable      :: s
   REALTYPE, dimension(:), allocatable      :: nit              !CHG3
   REALTYPE, dimension(:), allocatable      :: nprof            !CHG3
   REALTYPE, dimension(:), allocatable      :: amm              !CHG5
   REALTYPE, dimension(:), allocatable      :: aprof            !CHG5
91 92
   REALTYPE, dimension(:), allocatable      :: hcb
   REALTYPE, dimension(:), allocatable      :: hcprof
dumoda01's avatar
dumoda01 committed
93
   REALTYPE, dimension(:), allocatable      :: rho
94
   integer ::rho_id
dumoda01's avatar
dumoda01 committed
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
   REALTYPE, dimension(:), allocatable      :: nuh
   REALTYPE, dimension(:), allocatable      :: w
   REALTYPE, dimension(:), allocatable      :: rad
   REALTYPE                                 :: wind
   REALTYPE                                 :: I_0
   integer                                  :: w_adv_ctr=0

!  external variables updated by the biological models
!  the variables are copied back to the calling program using
!  get_bio_updates()
   REALTYPE, dimension(:), allocatable      :: bioshade_
   REALTYPE, dimension(:), allocatable      :: abioshade_

   logical                                  :: init_saved_vars=.true.
!
! !REVISION HISTORY:
!  Original author(s): Hans Burchard & Karsten Bolding
!
!  $Log: bio_var.F90,v $
!  Revision 1.11  2007-03-14 12:46:07  kbk
!  proper cleaning after simulation
!
!  Revision 1.10  2006-11-17 07:13:17  kbk
!  rho amd wind-speed available via bio_var
!
!  Revision 1.9  2006-11-12 19:42:44  hb
!  vertical advection due to physical vertical velocities enabled for the bio module
!
!  Revision 1.8  2006-10-26 13:12:46  kbk
!  updated bio models to new ode_solver
!
!  Revision 1.7  2005-12-02 20:57:27  hb
!  Documentation updated and some bugs fixed
!
!  Revision 1.6  2005-11-17 09:58:18  hb
!  explicit argument for positive definite variables in diff_center()
!
!  Revision 1.5  2004/07/30 09:22:20  hb
!  use bio_var in specific bio models - simpliefied internal interface
!
!  Revision 1.4  2004/03/30 11:32:48  kbk
!  select between eulerian or lagrangian solver
!
!  Revision 1.3  2003/10/16 15:42:16  kbk
!  simple mussesl model implemented - filter only
!
!  Revision 1.2  2003/09/16 12:11:24  hb
!  added new biological model - bio_iow
!
!  Revision 1.1  2003/07/23 12:27:31  hb
!  more generic support for different bio models
!
!
!EOP
!-----------------------------------------------------------------------

   end module bio_var

!-----------------------------------------------------------------------
! Copyright by the GOTM-team under the GNU Public License - www.gnu.org
!-----------------------------------------------------------------------