- Timestamp:
- 2012-11-16T17:21:47+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_LOCEAN_2012/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90
r3295 r3584 9 9 !! 1.0 ! 2005-03 (O. Aumont, A. El Moussaoui) F90 10 10 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) from trcini.pisces.h90 11 !!---------------------------------------------------------------------- 12 #if defined key_pisces 11 !! 3.5 ! 2012-05 (C. Ethe) Merge PISCES-LOBSTER 12 !!---------------------------------------------------------------------- 13 #if defined key_pisces || defined key_pisces_reduced 13 14 !!---------------------------------------------------------------------- 14 15 !! 'key_pisces' PISCES bio-model … … 20 21 USE trc ! passive tracers common variables 21 22 USE sms_pisces ! PISCES Source Minus Sink variables 22 USE p4zche ! Chemical model23 USE p4zsink ! vertical flux of particulate matter due to sinking24 USE p4zopt ! optical model25 USE p4zrem ! Remineralisation of organic matter26 USE p4zflx ! Gas exchange27 USE p4zsed ! Sedimentation28 USE p4zlim ! Co-limitations of differents nutrients29 USE p4zprod ! Growth rate of the 2 phyto groups30 USE p4zmicro ! Sources and sinks of microzooplankton31 USE p4zmeso ! Sources and sinks of mesozooplankton32 USE p4zmort ! Mortality terms for phytoplankton33 USE p4zlys ! Calcite saturation34 USE p4zsed ! Sedimentation35 23 36 24 IMPLICIT NONE … … 39 27 PUBLIC trc_ini_pisces ! called by trcini.F90 module 40 28 41 REAL(wp) :: sco2 = 2.312e-3_wp42 REAL(wp) :: alka0 = 2.423e-3_wp43 REAL(wp) :: oxyg0 = 177.6e-6_wp44 REAL(wp) :: po4 = 2.174e-6_wp45 REAL(wp) :: bioma0 = 1.000e-8_wp46 REAL(wp) :: silic1 = 91.65e-6_wp47 REAL(wp) :: no3 = 31.04e-6_wp * 7.625_wp48 29 49 30 # include "top_substitute.h90" … … 61 42 !! ** Purpose : Initialisation of the PISCES biochemical model 62 43 !!---------------------------------------------------------------------- 63 ! 64 INTEGER :: ji, jj, jk 44 45 IF( lk_pisces ) THEN ; CALL p4z_ini ! PISCES 46 ELSE ; CALL p2z_ini ! LOBSTER 47 ENDIF 48 49 END SUBROUTINE trc_ini_pisces 50 51 SUBROUTINE p4z_ini 52 !!---------------------------------------------------------------------- 53 !! *** ROUTINE p4z_ini *** 54 !! 55 !! ** Purpose : Initialisation of the PISCES biochemical model 56 !!---------------------------------------------------------------------- 57 #if defined key_pisces 58 ! 59 USE p4zsms ! Main P4Z routine 60 USE p4zche ! Chemical model 61 USE p4zsink ! vertical flux of particulate matter due to sinking 62 USE p4zopt ! optical model 63 USE p4zsbc ! Boundary conditions 64 USE p4zfechem ! Iron chemistry 65 USE p4zrem ! Remineralisation of organic matter 66 USE p4zflx ! Gas exchange 67 USE p4zlim ! Co-limitations of differents nutrients 68 USE p4zprod ! Growth rate of the 2 phyto groups 69 USE p4zmicro ! Sources and sinks of microzooplankton 70 USE p4zmeso ! Sources and sinks of mesozooplankton 71 USE p4zmort ! Mortality terms for phytoplankton 72 USE p4zlys ! Calcite saturation 73 ! 74 REAL(wp), SAVE :: sco2 = 2.312e-3_wp 75 REAL(wp), SAVE :: alka0 = 2.423e-3_wp 76 REAL(wp), SAVE :: oxyg0 = 177.6e-6_wp 77 REAL(wp), SAVE :: po4 = 2.174e-6_wp 78 REAL(wp), SAVE :: bioma0 = 1.000e-8_wp 79 REAL(wp), SAVE :: silic1 = 91.65e-6_wp 80 REAL(wp), SAVE :: no3 = 31.04e-6_wp * 7.625_wp 81 ! 82 INTEGER :: ji, jj, jk, ierr 65 83 REAL(wp) :: zcaralk, zbicarb, zco3 66 84 REAL(wp) :: ztmas, ztmas1 67 85 !!---------------------------------------------------------------------- 86 68 87 IF(lwp) WRITE(numout,*) 69 IF(lwp) WRITE(numout,*) ' trc_ini_pisces: PISCES biochemical model initialisation'88 IF(lwp) WRITE(numout,*) ' p4z_ini : PISCES biochemical model initialisation' 70 89 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 71 90 72 CALL pisces_alloc() ! Allocate PISCES arrays 73 91 ! Allocate PISCES arrays 92 ierr = sms_pisces_alloc() 93 ierr = ierr + p4z_che_alloc() 94 ierr = ierr + p4z_sink_alloc() 95 ierr = ierr + p4z_opt_alloc() 96 ierr = ierr + p4z_prod_alloc() 97 ierr = ierr + p4z_rem_alloc() 98 ierr = ierr + p4z_flx_alloc() 99 ! 100 IF( lk_mpp ) CALL mpp_sum( ierr ) 101 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'pisces_alloc: unable to allocate PISCES arrays' ) 102 ! 103 104 CALL p4z_sms_init ! Maint routine 74 105 ! ! Time-step 75 106 rfact = rdttrc(1) ! --------- … … 132 163 xksimax(:,:) = xksi(:,:) 133 164 134 ENDIF135 136 IF( .NOT. ln_rsttr ) THEN137 165 ! Initialization of chemical variables of the carbon cycle 138 166 ! -------------------------------------------------------- … … 159 187 CALL p4z_lim_init ! co-limitations by the various nutrients 160 188 CALL p4z_prod_init ! phytoplankton growth rate over the global ocean. 189 CALL p4z_sbc_init ! boundary conditions 190 CALL p4z_fechem_init ! Iron chemistry 161 191 CALL p4z_rem_init ! remineralisation 162 192 CALL p4z_mort_init ! phytoplankton mortality 163 193 CALL p4z_micro_init ! microzooplankton 164 194 CALL p4z_meso_init ! mesozooplankton 165 CALL p4z_sed_init ! sedimentation166 195 CALL p4z_lys_init ! calcite saturation 167 196 CALL p4z_flx_init ! gas exchange … … 172 201 IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done' 173 202 IF(lwp) WRITE(numout,*) 174 ! 175 END SUBROUTINE trc_ini_pisces176 177 178 SUBROUTINE p isces_alloc179 !!---------------------------------------------------------------------- 180 !! *** ROUTINE pisces_alloc***203 #endif 204 ! 205 END SUBROUTINE p4z_ini 206 207 SUBROUTINE p2z_ini 208 !!---------------------------------------------------------------------- 209 !! *** ROUTINE p2z_ini *** 181 210 !! 182 !! ** Purpose : Allocate all the dynamic arrays of PISCES 183 !!---------------------------------------------------------------------- 184 ! 185 INTEGER :: ierr 186 !!---------------------------------------------------------------------- 187 ! 188 ierr = sms_pisces_alloc() ! Start of PISCES-related alloc routines... 189 ierr = ierr + p4z_che_alloc() 190 ierr = ierr + p4z_sink_alloc() 191 ierr = ierr + p4z_opt_alloc() 192 ierr = ierr + p4z_prod_alloc() 193 ierr = ierr + p4z_rem_alloc() 194 ierr = ierr + p4z_sed_alloc() 195 ierr = ierr + p4z_flx_alloc() 211 !! ** Purpose : Initialisation of the LOBSTER biochemical model 212 !!---------------------------------------------------------------------- 213 #if defined key_pisces_reduced 214 ! 215 USE p2zopt 216 USE p2zexp 217 USE p2zbio 218 USE p2zsed 219 ! 220 INTEGER :: ji, jj, jk, ierr 221 !!---------------------------------------------------------------------- 222 223 IF(lwp) WRITE(numout,*) 224 IF(lwp) WRITE(numout,*) ' p2z_ini : LOBSTER biochemical model initialisation' 225 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 226 227 ierr = sms_pisces_alloc() 228 ierr = ierr + p2z_exp_alloc() 196 229 ! 197 230 IF( lk_mpp ) CALL mpp_sum( ierr ) 198 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'pisces_alloc: unable to allocate PISCES arrays' ) 199 ! 200 END SUBROUTINE pisces_alloc 201 231 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'p2z_ini: unable to allocate LOBSTER arrays' ) 232 233 ! LOBSTER initialisation for GYRE : init NO3=f(density) by asklod AS Kremeur 2005-07 234 ! ---------------------- 235 IF( .NOT. ln_rsttr ) THEN ! in case of no restart 236 trn(:,:,:,jpdet) = 0.1 * tmask(:,:,:) 237 trn(:,:,:,jpzoo) = 0.1 * tmask(:,:,:) 238 trn(:,:,:,jpnh4) = 0.1 * tmask(:,:,:) 239 trn(:,:,:,jpphy) = 0.1 * tmask(:,:,:) 240 trn(:,:,:,jpdom) = 1.0 * tmask(:,:,:) 241 WHERE( rhd(:,:,:) <= 24.5e-3 ) ; trn(:,:,:,jpno3 ) = 2._wp * tmask(:,:,:) 242 ELSE WHERE ; trn(:,:,:,jpno3) = ( 15.55 * ( rhd(:,:,:) * 1000. ) - 380.11 ) * tmask(:,:,:) 243 END WHERE 244 ENDIF 245 ! ! Namelist read 246 CALL p2z_opt_init ! Optics parameters 247 CALL p2z_sed_init ! sedimentation 248 CALL p2z_bio_init ! biology 249 CALL p2z_exp_init ! export 250 ! 251 IF(lwp) WRITE(numout,*) 252 IF(lwp) WRITE(numout,*) 'Initialization of LOBSTER tracers done' 253 IF(lwp) WRITE(numout,*) 254 #endif 255 ! 256 END SUBROUTINE p2z_ini 202 257 #else 203 258 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.