- Timestamp:
- 2016-11-01T14:23:51+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90
r7068 r7162 17 17 INTEGER :: numonp = -1 !! Logical unit for namelist pisces output 18 18 19 !!* Biological fluxes for light : variables shared by pisces & lobster20 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:) :: neln !: number of T-levels + 1 in the euphotic layer21 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: heup !: euphotic layer depth22 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: etot !: par (photosynthetic available radiation)23 !24 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksi !: LOBSTER : zooplakton closure25 19 ! !: PISCES : silicon dependant half saturation 26 20 … … 28 22 LOGICAL :: ln_p2z !: Flag to use LOBSTER model 29 23 LOGICAL :: ln_p4z !: Flag to use PISCES model 30 24 LOGICAL :: ln_p5z !: Flag to use PISCES quota model 25 LOGICAL :: ln_ligand !: Flag to enable organic ligands 31 26 32 27 !!* Time variables … … 49 44 REAL(wp) :: o2nit !: ??? 50 45 REAL(wp) :: wsbio, wsbio2 !: ??? 46 REAL(wp) :: wsbio2max !: ??? 47 REAL(wp) :: wsbio2scale !: ??? 51 48 REAL(wp) :: xkmort !: ??? 52 49 REAL(wp) :: ferat3 !: ??? 50 REAL(wp) :: wfep !: ??? 51 REAL(wp) :: ldocp !: ??? 52 REAL(wp) :: ldocz !: ??? 53 REAL(wp) :: lthet !: ??? 54 REAL(wp) :: no3rat3 !: ??? 55 REAL(wp) :: po4rat3 !: ??? 56 53 57 54 58 !!* diagnostic parameters … … 66 70 LOGICAL :: ln_check_mass !: Flag to check mass conservation 67 71 72 !!* Biological fluxes for light : variables shared by pisces & lobster 73 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:) :: neln !: number of T-levels + 1 in the euphotic layer 74 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: heup !: euphotic layer depth 75 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: etot !: par (photosynthetic available radiation) 76 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: etot_ndcy !: PAR over 24h in case of diurnal cycle 77 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: enano, ediat !: PAR for phyto, nano and diat 78 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: epico !: PAR for pico 79 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: emoy !: averaged PAR in the mixed layer 80 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: heup_01 !: Absolute euphotic layer depth 81 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksi !: LOBSTER : zooplakton closure 82 68 83 !!* Biological fluxes for primary production 69 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksimax !: ??? 70 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanono3 !: ??? 71 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatno3 !: ??? 72 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanonh4 !: ??? 73 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatnh4 !: ??? 74 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanopo4 !: ??? 75 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatpo4 !: ??? 76 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimphy !: ??? 77 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimdia !: ??? 78 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: concdfe !: ??? 79 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: concnfe !: ??? 80 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimnfe !: ??? 81 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimdfe !: ??? 82 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimsi !: ??? 84 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: xksimax !: ??? 83 85 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: biron !: bioavailable fraction of iron 86 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: plig !: proportion of iron organically complexed 87 88 !!* Sinking speed 89 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wsbio3 !: POC sinking speed 90 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wsbio4 !: GOC sinking speed 91 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wscal !: Calcite and BSi sinking speeds 92 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wsfep 93 84 94 85 95 … … 87 97 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xfracal !: ?? 88 98 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrfac !: ?? 89 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimbac !: ?? 90 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimbacl !: ?? 99 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: orem !: ?? 91 100 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiss !: ?? 92 101 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodcal !: Calcite production 102 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodpoc !: Calcite production 103 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: conspoc !: Calcite production 104 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prodgoc !: Calcite production 105 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: consgoc !: Calcite production 106 107 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizen !: size of diatoms 108 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sizep !: size of diatoms 109 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sized !: size of diatoms 110 93 111 94 112 !!* Variable for chemistry of the CO2 cycle 95 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akb3 !: ???96 113 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak13 !: ??? 97 114 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak23 !: ??? 98 115 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aksp !: ??? 99 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akw3 !: ???100 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: borat !: ???101 116 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hi !: ??? 102 117 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: excess !: ??? … … 121 136 CONTAINS 122 137 138 123 139 INTEGER FUNCTION sms_pisces_alloc() 124 140 !!---------------------------------------------------------------------- … … 126 142 !!---------------------------------------------------------------------- 127 143 USE lib_mpp , ONLY: ctl_warn 128 INTEGER :: ierr( 5) ! Local variables144 INTEGER :: ierr(10) ! Local variables 129 145 !!---------------------------------------------------------------------- 130 146 ierr(:) = 0 131 147 !* Biological fluxes for light : shared variables for pisces & lobster 132 ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj), xksi(jpi,jpj), STAT=ierr(1) ) 133 ! 134 IF( ln_p4z ) THEN 148 ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj), & 149 & heup_01(jpi,jpj) , xksi(jpi,jpj) , STAT=ierr(1) ) 150 ! 151 152 IF( ln_p4z .OR. ln_p5z ) THEN 153 !* Biological fluxes for light 154 ALLOCATE( enano(jpi,jpj,jpk) , ediat(jpi,jpj,jpk) , & 155 & etot_ndcy(jpi,jpj,jpk), emoy(jpi,jpj,jpk) , STAT=ierr(2) ) 156 135 157 !* Biological fluxes for primary production 136 ALLOCATE( xksimax(jpi,jpj) , biron (jpi,jpj,jpk), & 137 & xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk), & 138 & xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk), & 139 & xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk), & 140 & xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk), & 141 & xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk), & 142 & xlimsi (jpi,jpj,jpk), concdfe (jpi,jpj,jpk), & 143 & concnfe (jpi,jpj,jpk), STAT=ierr(2) ) 158 ALLOCATE( xksimax(jpi,jpj) , biron(jpi,jpj,jpk) , STAT=ierr(3) ) 144 159 ! 145 160 !* SMS for the organic matter 146 ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac(jpi,jpj,jpk), & 147 & xlimbac (jpi,jpj,jpk), xdiss (jpi,jpj,jpk), & 148 & xlimbacl(jpi,jpj,jpk), prodcal(jpi,jpj,jpk), STAT=ierr(3) ) 161 ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac(jpi,jpj,jpk) , & 162 & orem (jpi,jpj,jpk), & 163 & prodcal(jpi,jpj,jpk), xdiss (jpi,jpj,jpk), & 164 & prodpoc(jpi,jpj,jpk) , conspoc(jpi,jpj,jpk) , & 165 & prodgoc(jpi,jpj,jpk) , consgoc(jpi,jpj,jpk) , STAT=ierr(4) ) 149 166 150 167 !* Variable for chemistry of the CO2 cycle 151 ALLOCATE( akb3(jpi,jpj,jpk) , ak13 (jpi,jpj,jpk) , & 152 & ak23(jpi,jpj,jpk) , aksp (jpi,jpj,jpk) , & 153 & akw3(jpi,jpj,jpk) , borat (jpi,jpj,jpk) , & 154 & hi (jpi,jpj,jpk) , excess(jpi,jpj,jpk) , & 155 & aphscale(jpi,jpj,jpk), STAT=ierr(4) ) 156 ! 168 ALLOCATE( ak13 (jpi,jpj,jpk) , & 169 & ak23(jpi,jpj,jpk) , aksp (jpi,jpj,jpk) , & 170 & hi (jpi,jpj,jpk) , excess(jpi,jpj,jpk) , & 171 & aphscale(jpi,jpj,jpk), STAT=ierr(5) ) 172 ! 157 173 !* Temperature dependancy of SMS terms 158 ALLOCATE( tgfunc(jpi,jpj,jpk) , tgfunc2(jpi,jpj,jpk) , STAT=ierr(5) ) 159 ! 174 ALLOCATE( tgfunc(jpi,jpj,jpk) , tgfunc2(jpi,jpj,jpk), STAT=ierr(6) ) 175 ! 176 !* Sinkong speed 177 ALLOCATE( wsbio3 (jpi,jpj,jpk) , wsbio4 (jpi,jpj,jpk), & 178 & wscal(jpi,jpj,jpk) , STAT=ierr(7) ) 179 ! 180 IF( ln_ligand ) THEN 181 ALLOCATE( plig(jpi,jpj,jpk) , wsfep(jpi,jpj,jpk) , STAT=ierr(8) ) 182 ENDIF 183 ! 184 ENDIF 185 ! 186 IF( ln_p5z ) THEN 187 ! 188 ALLOCATE( epico(jpi,jpj,jpk) , STAT=ierr(9) ) 189 190 !* Size of phytoplankton cells 191 ALLOCATE( sizen(jpi,jpj,jpk), sizep(jpi,jpj,jpk), & 192 & sized(jpi,jpj,jpk), STAT=ierr(10) ) 160 193 ENDIF 161 194 !
Note: See TracChangeset
for help on using the changeset viewer.