- Timestamp:
- 2017-12-26T17:32:56+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r9125 r9169 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !!---------------------------------------------------------------------- 9 !! p4z sms :Time loop of passive tracers sms9 !! p4z_sms : Time loop of passive tracers sms 10 10 !!---------------------------------------------------------------------- 11 USE oce_trc ! 12 USE trc ! 13 USE trcdta 14 USE sms_pisces ! 15 USE p4zbio ! 16 USE p4zche ! 17 USE p4zlys ! 18 USE p4zflx ! 19 USE p4zsbc ! 20 USE p4zsed ! 21 USE p4zint ! 22 USE p4zrem ! 23 USE iom ! 24 USE trd_oce ! 25 USE trdtrc ! 26 USE sedmodel ! 27 USE prtctl_trc ! 11 USE oce_trc ! shared variables between ocean and passive tracers 12 USE trc ! passive tracers common variables 13 USE trcdta ! 14 USE sms_pisces ! PISCES Source Minus Sink variables 15 USE p4zbio ! Biological model 16 USE p4zche ! Chemical model 17 USE p4zlys ! Calcite saturation 18 USE p4zflx ! Gas exchange 19 USE p4zsbc ! External source of nutrients 20 USE p4zsed ! Sedimentation 21 USE p4zint ! time interpolation 22 USE p4zrem ! remineralisation 23 USE iom ! I/O manager 24 USE trd_oce ! Ocean trends variables 25 USE trdtrc ! TOP trends variables 26 USE sedmodel ! Sediment model 27 USE prtctl_trc ! print control for debugging 28 28 29 29 IMPLICIT NONE … … 33 33 PUBLIC p4z_sms ! called in p4zsms.F90 34 34 35 REAL(wp) :: alkbudget, no3budget, silbudget, ferbudget, po4budget 36 REAL(wp) :: xfact1, xfact2, xfact3 37 INTEGER :: numco2, numnut, numnit !: logical unit for co2 budget 38 39 !!* Array used to indicate negative tracer values 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnegtr !: ??? 35 INTEGER :: numco2, numnut, numnit ! logical unit for co2 budget 36 REAL(wp) :: alkbudget, no3budget, silbudget, ferbudget, po4budget 37 REAL(wp) :: xfact1, xfact2, xfact3 38 39 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnegtr ! Array used to indicate negative tracer values 41 40 42 41 !!---------------------------------------------------------------------- … … 45 44 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 46 45 !!---------------------------------------------------------------------- 47 48 46 CONTAINS 49 47 … … 197 195 NAMELIST/nampismass/ ln_check_mass 198 196 !!---------------------------------------------------------------------- 197 ! 198 IF(lwp) THEN 199 WRITE(numout,*) 200 WRITE(numout,*) 'p4z_sms_init : PISCES initialization' 201 WRITE(numout,*) '~~~~~~~~~~~~' 202 ENDIF 199 203 200 204 REWIND( numnatp_ref ) ! Namelist nampisbio in reference namelist : Pisces variables 201 205 READ ( numnatp_ref, nampisbio, IOSTAT = ios, ERR = 901) 202 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbio in reference namelist', lwp ) 203 206 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbio in reference namelist', lwp ) 204 207 REWIND( numnatp_cfg ) ! Namelist nampisbio in configuration namelist : Pisces variables 205 208 READ ( numnatp_cfg, nampisbio, IOSTAT = ios, ERR = 902 ) 206 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampisbio in configuration namelist', lwp )207 IF(lwm) WRITE 208 209 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampisbio in configuration namelist', lwp ) 210 IF(lwm) WRITE( numonp, nampisbio ) 211 ! 209 212 IF(lwp) THEN ! control print 210 WRITE(numout,*) ' Namelist : nampisbio'211 WRITE(numout,*) ' frequence pour la biologie nrdttrc=', nrdttrc212 WRITE(numout,*) ' POC sinking speed wsbio=', wsbio213 WRITE(numout,*) ' half saturation constant for mortality xkmort=', xkmort213 WRITE(numout,*) ' Namelist : nampisbio' 214 WRITE(numout,*) ' frequency for the biology nrdttrc =', nrdttrc 215 WRITE(numout,*) ' POC sinking speed wsbio =', wsbio 216 WRITE(numout,*) ' half saturation constant for mortality xkmort =', xkmort 214 217 IF( ln_p5z ) THEN 215 WRITE(numout,*) ' N/C in zooplankton no3rat3=', no3rat3216 WRITE(numout,*) ' P/C in zooplankton po4rat3=', po4rat3217 ENDIF 218 WRITE(numout,*) ' Fe/C in zooplankton ferat3=', ferat3219 WRITE(numout,*) ' Big particles sinking speed wsbio2=', wsbio2220 WRITE(numout,*) ' Big particles maximum sinking speed wsbio2max=', wsbio2max221 WRITE(numout,*) ' Big particles sinking speed length scale wsbio2scale =', wsbio2scale222 WRITE(numout,*) ' Maximum number of iterations for POC niter1max=', niter1max223 WRITE(numout,*) ' Maximum number of iterations for GOC niter2max=', niter2max218 WRITE(numout,*) ' N/C in zooplankton no3rat3 =', no3rat3 219 WRITE(numout,*) ' P/C in zooplankton po4rat3 =', po4rat3 220 ENDIF 221 WRITE(numout,*) ' Fe/C in zooplankton ferat3 =', ferat3 222 WRITE(numout,*) ' Big particles sinking speed wsbio2 =', wsbio2 223 WRITE(numout,*) ' Big particles maximum sinking speed wsbio2max =', wsbio2max 224 WRITE(numout,*) ' Big particles sinking speed length scale wsbio2scale =', wsbio2scale 225 WRITE(numout,*) ' Maximum number of iterations for POC niter1max =', niter1max 226 WRITE(numout,*) ' Maximum number of iterations for GOC niter2max =', niter2max 224 227 IF( ln_ligand ) THEN 225 WRITE(numout,*) ' FeP sinking speedwfep =', wfep228 WRITE(numout,*) ' FeP sinking speed wfep =', wfep 226 229 IF( ln_p4z ) THEN 227 WRITE(numout,*) ' Phyto ligand production per unit docldocp =', ldocp228 WRITE(numout,*) ' Zoo ligand production per unit docldocz =', ldocz229 WRITE(numout,*) ' Proportional loss of ligands due to Fe uptakelthet =', lthet230 WRITE(numout,*) ' Phyto ligand production per unit doc ldocp =', ldocp 231 WRITE(numout,*) ' Zoo ligand production per unit doc ldocz =', ldocz 232 WRITE(numout,*) ' Proportional loss of ligands due to Fe uptake lthet =', lthet 230 233 ENDIF 231 234 ENDIF … … 235 238 REWIND( numnatp_ref ) ! Namelist nampisdmp in reference namelist : Pisces damping 236 239 READ ( numnatp_ref, nampisdmp, IOSTAT = ios, ERR = 905) 237 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdmp in reference namelist', lwp ) 238 240 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdmp in reference namelist', lwp ) 239 241 REWIND( numnatp_cfg ) ! Namelist nampisdmp in configuration namelist : Pisces damping 240 242 READ ( numnatp_cfg, nampisdmp, IOSTAT = ios, ERR = 906 ) 241 906 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampisdmp in configuration namelist', lwp )242 IF(lwm) WRITE 243 243 906 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampisdmp in configuration namelist', lwp ) 244 IF(lwm) WRITE( numonp, nampisdmp ) 245 ! 244 246 IF(lwp) THEN ! control print 245 247 WRITE(numout,*) 246 WRITE(numout,*) ' Namelist : nampisdmp' 247 WRITE(numout,*) ' Relaxation of tracer to glodap mean value ln_pisdmp =', ln_pisdmp 248 WRITE(numout,*) ' Frequency of Relaxation nn_pisdmp =', nn_pisdmp 249 WRITE(numout,*) ' ' 248 WRITE(numout,*) ' Namelist : nampisdmp --- relaxation to GLODAP' 249 WRITE(numout,*) ' Relaxation of tracer to glodap mean value ln_pisdmp =', ln_pisdmp 250 WRITE(numout,*) ' Frequency of Relaxation nn_pisdmp =', nn_pisdmp 250 251 ENDIF 251 252 252 253 REWIND( numnatp_ref ) ! Namelist nampismass in reference namelist : Pisces mass conservation check 253 254 READ ( numnatp_ref, nampismass, IOSTAT = ios, ERR = 907) 254 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismass in reference namelist', lwp ) 255 255 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismass in reference namelist', lwp ) 256 256 REWIND( numnatp_cfg ) ! Namelist nampismass in configuration namelist : Pisces mass conservation check 257 257 READ ( numnatp_cfg, nampismass, IOSTAT = ios, ERR = 908 ) 258 908 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampismass in configuration namelist', lwp )259 IF(lwm) WRITE 258 908 IF( ios > 0 ) CALL ctl_nam ( ios , 'nampismass in configuration namelist', lwp ) 259 IF(lwm) WRITE( numonp, nampismass ) 260 260 261 261 IF(lwp) THEN ! control print 262 WRITE(numout,*) ' ' 263 WRITE(numout,*) ' Namelist parameter for mass conservation checking' 264 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 265 WRITE(numout,*) ' Flag to check mass conservation of NO3/Si/TALK ln_check_mass = ', ln_check_mass 262 WRITE(numout,*) 263 WRITE(numout,*) ' Namelist : nampismass --- mass conservation checking' 264 WRITE(numout,*) ' Flag to check mass conservation of NO3/Si/TALK ln_check_mass = ', ln_check_mass 266 265 ENDIF 267 266 !
Note: See TracChangeset
for help on using the changeset viewer.