Changeset 3318 for branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
- Timestamp:
- 2012-02-25T16:50:01+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
r3295 r3318 4 4 !! TOP : PISCES Source Minus Sink manager 5 5 !!====================================================================== 6 !! History : 7 !! 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !!---------------------------------------------------------------------- 9 9 #if defined key_pisces … … 11 11 !! 'key_pisces' PISCES bio-model 12 12 !!---------------------------------------------------------------------- 13 !! trcsms_pisces 14 !!---------------------------------------------------------------------- 15 USE oce_trc 16 USE trc 17 USE sms_pisces 18 USE p4zbio 19 USE p4zche 20 USE p4zlys 21 USE p4zflx 22 USE p4zsed 23 USE p4zint 24 USE trd mod_oce ! Ocean trendsvariables25 USE trdmod_trc 26 USE sedmodel 27 USE prtctl_trc 13 !! trcsms_pisces : Time loop of passive tracers sms 14 !!---------------------------------------------------------------------- 15 USE oce_trc ! shared variables between ocean and passive tracers 16 USE trc ! passive tracers common variables 17 USE sms_pisces ! PISCES Source Minus Sink variables 18 USE p4zbio ! Biological model 19 USE p4zche ! Chemical model 20 USE p4zlys ! Calcite saturation 21 USE p4zflx ! Gas exchange 22 USE p4zsed ! Sedimentation 23 USE p4zint ! time interpolation 24 USE trd_oce ! trends: ocean variables 25 USE trdmod_trc ! TOP trends variables 26 USE sedmodel ! Sediment model 27 USE prtctl_trc ! print control for debugging 28 28 29 29 IMPLICIT NONE 30 30 PRIVATE 31 31 32 PUBLIC trc_sms_pisces 33 34 LOGICAL :: ln_check_mass = .false. !:Flag to check mass conservation35 36 INTEGER :: numno3 !:logical unit for NO3 budget37 INTEGER :: numalk !:logical unit for talk budget38 INTEGER :: numsil !:logical unit for Si budget32 PUBLIC trc_sms_pisces ! called in trcsms.F90 33 34 LOGICAL :: ln_check_mass = .false. ! Flag to check mass conservation 35 36 INTEGER :: numno3 ! logical unit for NO3 budget 37 INTEGER :: numalk ! logical unit for talk budget 38 INTEGER :: numsil ! logical unit for Si budget 39 39 40 40 !!---------------------------------------------------------------------- … … 43 43 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 44 44 !!---------------------------------------------------------------------- 45 46 45 CONTAINS 47 46 … … 57 56 !! - ... 58 57 !!--------------------------------------------------------------------- 59 ! 60 INTEGER, INTENT( in ) :: kt ! ocean time-step index 61 !! 62 INTEGER :: jnt, jn 58 INTEGER, INTENT( in ) :: kt ! ocean time-step index 59 ! 60 INTEGER :: jnt, jn ! dummy loop indices 63 61 CHARACTER (len=25) :: charout 64 62 !!--------------------------------------------------------------------- 65 63 ! 66 IF( nn_timing == 1 ) CALL timing_start('trc_sms_pisces')64 IF( nn_timing == 1 ) CALL timing_start('trc_sms_pisces') 67 65 ! 68 66 IF( ln_pisdmp .AND. MOD( kt - nn_dttrc, nn_pisdmp ) == 0 ) CALL trc_sms_pisces_dmp( kt ) ! Relaxation of some tracers … … 102 100 IF( l_trdtrc ) THEN 103 101 DO jn = jp_pcs0, jp_pcs1 104 CALL trd_mod_trc( tra(:,:,:,jn), jn, jptra_ trd_sms, kt ) ! save trends102 CALL trd_mod_trc( tra(:,:,:,jn), jn, jptra_sms, kt ) ! save trends 105 103 END DO 106 104 END IF … … 120 118 END SUBROUTINE trc_sms_pisces 121 119 120 122 121 SUBROUTINE trc_sms_pisces_dmp( kt ) 123 122 !!---------------------------------------------------------------------- … … 126 125 !! ** purpose : Relaxation of some tracers 127 126 !!---------------------------------------------------------------------- 128 !129 127 INTEGER, INTENT( in ) :: kt ! time step 130 128 ! 131 REAL(wp) :: alkmean = 2426. ! mean value of alkalinity ( Glodap ; for Goyet 2391. ) 132 REAL(wp) :: po4mean = 2.165 ! mean value of phosphates 133 REAL(wp) :: no3mean = 30.90 ! mean value of nitrate 134 REAL(wp) :: silmean = 91.51 ! mean value of silicate 135 ! 136 REAL(wp) :: zarea, zalksum, zpo4sum, zno3sum, zsilsum 137 !!--------------------------------------------------------------------- 138 129 REAL(wp) :: alkmean = 2426. ! mean value of alkalinity ( Glodap ; for Goyet 2391. ) 130 REAL(wp) :: po4mean = 2.165 ! mean value of phosphates 131 REAL(wp) :: no3mean = 30.90 ! mean value of nitrate 132 REAL(wp) :: silmean = 91.51 ! mean value of silicate 133 ! 134 REAL(wp) :: zarea, zalksum, zpo4sum, zno3sum, zsilsum ! local scalars 135 !!--------------------------------------------------------------------- 139 136 140 137 IF(lwp) WRITE(numout,*) … … 165 162 ! 166 163 ENDIF 167 164 ! 168 165 END SUBROUTINE trc_sms_pisces_dmp 166 169 167 170 168 SUBROUTINE trc_sms_pisces_mass_conserv ( kt ) … … 173 171 !! 174 172 !! ** Purpose : Mass conservation check 175 !! 176 !!--------------------------------------------------------------------- 177 ! 173 !!--------------------------------------------------------------------- 178 174 INTEGER, INTENT( in ) :: kt ! ocean time-step index 179 ! !175 ! 180 176 REAL(wp) :: zalkbudget, zno3budget, zsilbudget 181 177 ! 182 178 NAMELIST/nampismass/ ln_check_mass 183 179 !!--------------------------------------------------------------------- 184 180 ! 185 181 IF( kt == nittrc000 ) THEN 186 182 REWIND( numnatp ) … … 199 195 ENDIF 200 196 ENDIF 201 197 ! 202 198 IF( ln_check_mass ) THEN ! Compute the budget of NO3, ALK, Si 203 199 zno3budget = glob_sum( ( trn(:,:,:,jpno3) + trn(:,:,:,jpnh4) & … … 206 202 & + trn(:,:,:,jppoc) + trn(:,:,:,jpgoc) & 207 203 & + trn(:,:,:,jpdoc) ) * cvol(:,:,:) ) 208 !204 ! 209 205 zsilbudget = glob_sum( ( trn(:,:,:,jpsil) + trn(:,:,:,jpgsi) & 210 206 & + trn(:,:,:,jpdsi) ) * cvol(:,:,:) ) 211 !207 ! 212 208 zalkbudget = glob_sum( ( trn(:,:,:,jpno3) * rno3 & 213 209 & + trn(:,:,:,jptal) & 214 210 & + trn(:,:,:,jpcal) * 2. ) * cvol(:,:,:) ) 215 211 ! 216 212 IF( lwp ) THEN 217 213 WRITE(numno3,9500) kt, zno3budget / areatot
Note: See TracChangeset
for help on using the changeset viewer.