Changeset 775 for branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zdiat.F90
- Timestamp:
- 2007-12-19T14:45:15+01:00 (16 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zdiat.F90
r774 r775 1 MODULE p4zdiat 2 !!====================================================================== 3 !! *** MODULE p4zdiat *** 4 !! TOP : PISCES Compute the mortality terms for diatoms 5 !!====================================================================== 6 !! History : 1.0 ! 2002 (O. Aumont) Original code 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!---------------------------------------------------------------------- 9 #if defined key_pisces 10 !!---------------------------------------------------------------------- 11 !! 'key_pisces' PISCES bio-model 12 !!---------------------------------------------------------------------- 13 !! p4z_diat : Compute the mortality terms for diatoms 14 !!---------------------------------------------------------------------- 15 USE oce_trc ! 16 USE trp_trc ! 17 USE sms ! 1 18 2 CCC $Header$ 3 CCC TOP 1.0 , LOCEAN-IPSL (2005) 4 C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 5 C --------------------------------------------------------------------------- 6 CDIR$ LIST 7 SUBROUTINE p4zdiat 8 #if defined key_top && defined key_pisces 9 CCC--------------------------------------------------------------------- 10 CCC 11 CCC ROUTINE p4zdiat : PISCES MODEL 12 CCC ****************************** 13 CCC 14 CCC PURPOSE : 15 CCC --------- 16 CCC Compute the mortality terms for diatoms 17 CCC 18 CC INPUT : 19 CC ----- 20 CC argument 21 CC None 22 CC common 23 CC all the common defined in opa 24 CC 25 CC 26 CC OUTPUT : : no 27 CC ------ 28 CC 29 CC EXTERNAL : 30 CC -------- 31 CC None 32 CC 33 CC MODIFICATIONS: 34 CC -------------- 35 CC original : O. Aumont (2002) 36 CC---------------------------------------------------------------------- 37 CC parameters and commons 38 CC ====================== 39 CDIR$ NOLIST 40 USE oce_trc 41 USE trp_trc 42 USE sms 43 IMPLICIT NONE 44 CDIR$ LIST 45 CC---------------------------------------------------------------------- 46 CC local declarations 47 CC ================== 48 INTEGER ji, jj, jk 49 REAL zfact,zstep,compadi 50 C 51 C Time step duration for biology 52 C ------------------------------ 53 C 54 zstep=rfact2/rjjss 55 C 56 C Aggregation term for diatoms is increased in case of nutrient 57 C stress as observed in reality. The stressed cells become more 58 C sticky and coagulate to sink quickly out of the euphotic zone 59 C ------------------------------------------------------------ 60 C 61 DO jk = 1,jpkm1 62 DO jj = 1,jpj 63 DO ji = 1,jpi 64 C 65 compadi = max((trn(ji,jj,jk,jpdia)-1E-8),0.) 66 zfact=1./(trn(ji,jj,jk,jpdia)+rtrn) 67 C 68 C Aggregation term for diatoms is increased in case of nutrient 69 C stress as observed in reality. The stressed cells become more 70 C sticky and coagulate to sink quickly out of the euphotic zone 71 C ------------------------------------------------------------ 72 C 73 respp2(ji,jj,jk) = 1E6*zstep 74 & *(wchl+wchld*(1.-xlimdia(ji,jj,jk))) 75 & *zdiss(ji,jj,jk)*compadi*trn(ji,jj,jk,jpdia) 76 # if defined key_off_degrad 77 & *facvol(ji,jj,jk) 78 # endif 19 IMPLICIT NONE 20 PRIVATE 21 22 PUBLIC p4z_diat ! called in p4zbio.F90 23 24 !!* Substitution 25 # include "domzgr_substitute.h90" 26 !!---------------------------------------------------------------------- 27 !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 28 !! $Header:$ 29 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 30 !!---------------------------------------------------------------------- 31 32 CONTAINS 33 34 SUBROUTINE p4z_diat 35 !!--------------------------------------------------------------------- 36 !! *** ROUTINE p4z_diat *** 37 !! 38 !! ** Purpose : Compute the mortality terms for diatoms 39 !! 40 !! ** Method : - ??? 41 !!--------------------------------------------------------------------- 42 INTEGER :: ji, jj, jk 43 REAL(wp) :: zfact, zstep, zcompadi 44 !!--------------------------------------------------------------------- 45 46 zstep = rfact2 / rjjss ! Time step duration for biology 47 48 49 ! Aggregation term for diatoms is increased in case of nutrient 50 ! stress as observed in reality. The stressed cells become more 51 ! sticky and coagulate to sink quickly out of the euphotic zone 52 ! ------------------------------------------------------------ 53 54 DO jk = 1, jpkm1 55 DO jj = 1, jpj 56 DO ji = 1, jpi 57 58 zcompadi = MAX( ( trn(ji,jj,jk,jpdia) - 1e-8), 0. ) 59 zfact = 1. / ( trn(ji,jj,jk,jpdia) + rtrn ) 60 61 ! Aggregation term for diatoms is increased in case of nutrient 62 ! stress as observed in reality. The stressed cells become more 63 ! sticky and coagulate to sink quickly out of the euphotic zone 64 ! ------------------------------------------------------------ 65 66 respp2 (ji,jj,jk) = 1.e6 * zstep * ( wchl + wchld * ( 1.- xlimdia(ji,jj,jk) ) ) & 67 # if defined key_off_degrad 68 & * facvol(ji,jj,jk) & 69 # endif 70 & * zdiss(ji,jj,jk) * zcompadi * trn(ji,jj,jk,jpdia) 79 71 80 respds(ji,jj,jk) = respp2(ji,jj,jk) 81 & *trn(ji,jj,jk,jpbsi)*zfact 72 respds (ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpbsi) * zfact 82 73 83 respdf(ji,jj,jk) = respp2(ji,jj,jk) 84 & *trn(ji,jj,jk,jpdfe)*zfact 74 respdf (ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpdfe) * zfact 85 75 86 respdch(ji,jj,jk)=respp2(ji,jj,jk) 87 & *trn(ji,jj,jk,jpdch)*zfact 88 C 89 C Phytoplankton mortality. 90 C ------------------------ 91 C 92 tortp2(ji,jj,jk) = mprat2*zstep*trn(ji,jj,jk,jpdia) 93 & /(xkmort+trn(ji,jj,jk,jpdia))*compadi 94 # if defined key_off_degrad 95 & *facvol(ji,jj,jk) 96 # endif 76 respdch(ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpdch) * zfact 97 77 98 tortds(ji,jj,jk) = tortp2(ji,jj,jk) 99 & *trn(ji,jj,jk,jpbsi)*zfact 78 ! Phytoplankton mortality. 79 ! ------------------------ 80 tortp2 (ji,jj,jk) = mprat2 * zstep * trn(ji,jj,jk,jpdia) & 81 # if defined key_off_degrad 82 & * facvol(ji,jj,jk) & 83 # endif 84 & / ( xkmort + trn(ji,jj,jk,jpdia) ) * zcompadi 100 85 101 tortdf(ji,jj,jk)=tortp2(ji,jj,jk) 102 & *trn(ji,jj,jk,jpdfe)*zfact 86 tortds (ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpbsi) * zfact 103 87 104 tortdch(ji,jj,jk)=tortp2(ji,jj,jk) 105 & *trn(ji,jj,jk,jpdch)*zfact 106 C 88 tortdf (ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpdfe) * zfact 89 90 tortdch(ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpdch) * zfact 91 107 92 END DO 108 END DO 109 END DO 110 C 111 #endif 112 RETURN 113 END 93 END DO 94 END DO 95 ! 96 END SUBROUTINE p4z_diat 97 98 #else 99 !!====================================================================== 100 !! Dummy module : No PISCES bio-model 101 !!====================================================================== 102 CONTAINS 103 SUBROUTINE p4z_diat ! Empty routine 104 END SUBROUTINE p4z_diat 105 #endif 106 107 !!====================================================================== 108 END MODULE p4zdiat
Note: See TracChangeset
for help on using the changeset viewer.