[3443] | 1 | MODULE sedini |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE sedini *** |
---|
| 4 | !! Sediment : define sediment variables |
---|
| 5 | !!===================================================================== |
---|
| 6 | |
---|
| 7 | !!---------------------------------------------------------------------- |
---|
| 8 | !! sed_init : initialization, namelist read, and parameters control |
---|
| 9 | !!---------------------------------------------------------------------- |
---|
| 10 | !! * Modules used |
---|
[14086] | 11 | USE par_trc ! need jptra, number of passive tracers |
---|
| 12 | USE par_sed |
---|
[3443] | 13 | USE sed ! sediment global variable |
---|
[10222] | 14 | USE sed_oce |
---|
[3443] | 15 | USE sedarr |
---|
[10222] | 16 | USE sedadv |
---|
| 17 | USE trcdmp_sed |
---|
| 18 | USE trcdta |
---|
[3443] | 19 | USE iom |
---|
[10222] | 20 | USE lib_mpp ! distribued memory computing library |
---|
[3443] | 21 | |
---|
| 22 | |
---|
| 23 | IMPLICIT NONE |
---|
| 24 | PRIVATE |
---|
| 25 | |
---|
[12377] | 26 | !! * Substitutions |
---|
| 27 | # include "do_loop_substitute.h90" |
---|
[3443] | 28 | !! Module variables |
---|
| 29 | REAL(wp) :: & |
---|
[10222] | 30 | sedzmin = 0.3 , & !: Minimum vertical spacing |
---|
| 31 | sedhmax = 10.0 , & !: Maximum depth of the sediment |
---|
| 32 | sedkth = 5.0 , & !: Default parameters |
---|
| 33 | sedacr = 3.0 !: Default parameters |
---|
| 34 | |
---|
| 35 | REAL(wp) :: & |
---|
| 36 | porsurf = 0.95 , & !: Porosity at the surface |
---|
| 37 | porinf = 0.75 , & !: Porosity at infinite depth |
---|
| 38 | rhox = 2.0 !: Vertical length scale of porosity variation |
---|
| 39 | |
---|
| 40 | REAL(wp) :: & |
---|
[3443] | 41 | rcopal = 40. , & !: reactivity for si [l.mol-1.an-1] |
---|
| 42 | dcoef = 8.e-6 !: diffusion coefficient (*por) [cm**2/s] |
---|
| 43 | |
---|
[10222] | 44 | REAL(wp), PUBLIC :: & |
---|
| 45 | redO2 = 172. , & !: Redfield coef for Oxygen |
---|
| 46 | redNo3 = 16. , & !: Redfield coef for Nitrate |
---|
| 47 | redPo4 = 1. , & !: Redfield coef for Phosphate |
---|
| 48 | redC = 122. , & !: Redfield coef for Carbon |
---|
| 49 | redfep = 0.175 , & !: Ratio for iron bound phosphorus |
---|
| 50 | rcorgl = 50. , & !: reactivity for POC/O2 [l.mol-1.an-1] |
---|
| 51 | rcorgs = 0.5 , & !: reactivity of the semi-labile component |
---|
| 52 | rcorgr = 1E-4 , & !: reactivity of the refractory component |
---|
| 53 | rcnh4 = 10E6 , & !: reactivity for O2/NH4 [l.mol-1.an-1] |
---|
| 54 | rch2s = 1.E5 , & !: reactivity for O2/ODU [l.mol-1.an-1] |
---|
| 55 | rcfe2 = 5.E8 , & !: reactivity for O2/Fe2+ [l.mol-1.an-1] |
---|
| 56 | rcfeh2s = 1.E4 , & !: Reactivity for FEOH/H2S [l.mol-1.an-1] |
---|
| 57 | rcfes = 1.E5 , & !: Reactivity for FE2+/H2S [l.mol-1.an-1] |
---|
| 58 | rcfeso = 3.E5 , & !: Reactivity for FES/O2 [l.mol-1.an-1] |
---|
| 59 | xksedo2 = 5E-6 , & !: half-sturation constant for oxic remin. |
---|
| 60 | xksedno3 = 5E-6 , & !: half-saturation constant for denitrification |
---|
| 61 | xksedfeo = 0.6 , & !: half-saturation constant for iron remin |
---|
| 62 | xksedso4 = 2E-3 !: half-saturation constant for SO4 remin |
---|
[3443] | 63 | |
---|
| 64 | REAL(wp) :: & |
---|
[10222] | 65 | rccal = 1000., & !: reactivity for calcite [l.mol-1.an-1] |
---|
| 66 | rcligc = 1.E-4 !: L/C ratio in POC |
---|
[3443] | 67 | |
---|
[10222] | 68 | REAL(wp), PUBLIC :: dbiot = 15. , & !: coefficient for bioturbation [cm**2.(n-1)] |
---|
| 69 | dbtbzsc = 10.0 , & !: Vertical scale of variation. If no variation, mixed layer in the sed [cm] |
---|
| 70 | xirrzsc = 2.0 !: Vertical scale of irrigation variation. |
---|
[3443] | 71 | REAL(wp) :: & |
---|
[10222] | 72 | ryear = 365. * 24. * 3600. !: 1 year converted in second |
---|
[3443] | 73 | |
---|
[10222] | 74 | REAL(wp), DIMENSION(jpwat), PUBLIC :: diff1 |
---|
| 75 | DATA diff1/4.59E-6, 1.104E-5, 4.81E-6 , 9.78E-6, 3.58E-6, 4.01E-6, 9.8E-6, 9.73E-6, 5.0E-6, 3.31E-6 / |
---|
[3443] | 76 | |
---|
[10222] | 77 | REAL(wp), DIMENSION(jpwat), PUBLIC :: diff2 |
---|
| 78 | DATA diff2/1.74E-7, 4.47E-7, 2.51E-7, 3.89E-7, 1.77E-7, 2.5E-7, 3.89E-7, 3.06E-7, 2.5E-7, 1.5E-7 / |
---|
[3443] | 79 | |
---|
[10222] | 80 | |
---|
| 81 | |
---|
[3443] | 82 | !! * Routine accessibility |
---|
| 83 | PUBLIC sed_init ! routine called by opa.F90 |
---|
| 84 | |
---|
[5215] | 85 | !! $Id$ |
---|
[3443] | 86 | CONTAINS |
---|
| 87 | |
---|
| 88 | |
---|
| 89 | SUBROUTINE sed_init |
---|
| 90 | !!---------------------------------------------------------------------- |
---|
| 91 | !! *** ROUTINE sed_init *** |
---|
| 92 | !! |
---|
| 93 | !! ** Purpose : Initialization of sediment module |
---|
| 94 | !! - Reading namelist |
---|
| 95 | !! - Read the deepest water layer thickness |
---|
| 96 | !! ( using as mask ) in Netcdf file |
---|
| 97 | !! - Convert unity if necessary |
---|
| 98 | !! - sets initial sediment composition |
---|
| 99 | !! ( only clay or reading restart file ) |
---|
| 100 | !! - sets sediment grid, porosity and others constants |
---|
| 101 | !! |
---|
| 102 | !! History : |
---|
| 103 | !! ! 04-10 (N. Emprin, M. Gehlen ) Original code |
---|
| 104 | !! ! 06-07 (C. Ethe) Re-organization |
---|
| 105 | !!---------------------------------------------------------------------- |
---|
[10222] | 106 | INTEGER :: ji, jj, ikt, ierr |
---|
[3443] | 107 | !!---------------------------------------------------------------------- |
---|
| 108 | |
---|
| 109 | |
---|
| 110 | ! Reading namelist.sed variables |
---|
| 111 | !--------------------------------------- |
---|
| 112 | |
---|
| 113 | CALL ctl_opn( numsed, 'sediment.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) |
---|
| 114 | |
---|
[10222] | 115 | IF (lwp) THEN |
---|
| 116 | WRITE(numsed,*) |
---|
| 117 | WRITE(numsed,*) ' PISCES framework' |
---|
| 118 | WRITE(numsed,*) ' SEDIMENT model' |
---|
| 119 | WRITE(numsed,*) ' version 3.0 (2018) ' |
---|
| 120 | WRITE(numsed,*) |
---|
| 121 | WRITE(numsed,*) |
---|
| 122 | ENDIF |
---|
[3443] | 123 | |
---|
[10222] | 124 | IF(lwp) WRITE(numsed,*) ' sed_init : Initialization of sediment module ' |
---|
| 125 | IF(lwp) WRITE(numsed,*) ' ' |
---|
[3443] | 126 | |
---|
[10222] | 127 | ! Read sediment Namelist |
---|
| 128 | !------------------------- |
---|
| 129 | CALL sed_init_nam |
---|
[3443] | 130 | |
---|
[10222] | 131 | ! Allocate SEDIMENT arrays |
---|
| 132 | ierr = sed_alloc() |
---|
| 133 | ierr = ierr + sed_oce_alloc() |
---|
| 134 | ierr = ierr + sed_adv_alloc() |
---|
| 135 | IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'sed_ini: unable to allocate sediment model arrays' ) |
---|
[3443] | 136 | |
---|
| 137 | ! Determination of sediments number of points and allocate global variables |
---|
| 138 | epkbot(:,:) = 0. |
---|
[13295] | 139 | DO_2D( 1, 1, 1, 1 ) |
---|
[12377] | 140 | ikt = mbkt(ji,jj) |
---|
| 141 | IF( tmask(ji,jj,ikt) == 1 ) epkbot(ji,jj) = e3t_1d(ikt) |
---|
| 142 | gdepbot(ji,jj) = gdepw_0(ji,jj,ikt) |
---|
| 143 | END_2D |
---|
[3443] | 144 | |
---|
| 145 | ! computation of total number of ocean points |
---|
| 146 | !-------------------------------------------- |
---|
[10222] | 147 | sedmask = 0. |
---|
| 148 | IF ( COUNT( epkbot(:,:) > 0. ) == 0 ) THEN |
---|
| 149 | sedmask = 0. |
---|
| 150 | ELSE |
---|
| 151 | sedmask = 1. |
---|
| 152 | ENDIF |
---|
| 153 | jpoce = MAX( COUNT( epkbot(:,:) > 0. ) , 1 ) |
---|
[3443] | 154 | |
---|
| 155 | ! Allocate memory size of global variables |
---|
| 156 | ALLOCATE( pwcp (jpoce,jpksed,jpwat) ) ; ALLOCATE( pwcp0 (jpoce,jpksed,jpwat) ) ; ALLOCATE( pwcp_dta (jpoce,jpwat) ) |
---|
| 157 | ALLOCATE( solcp(jpoce,jpksed,jpsol) ) ; ALLOCATE( solcp0(jpoce,jpksed,jpsol) ) ; ALLOCATE( rainrm_dta(jpoce,jpsol) ) |
---|
| 158 | ALLOCATE( rainrm(jpoce,jpsol) ) ; ALLOCATE( rainrg(jpoce,jpsol) ) ; ALLOCATE( raintg(jpoce) ) |
---|
| 159 | ALLOCATE( dzdep(jpoce) ) ; ALLOCATE( iarroce(jpoce) ) ; ALLOCATE( dzkbot(jpoce) ) |
---|
[10222] | 160 | ALLOCATE( zkbot(jpoce) ) ; ALLOCATE( db(jpoce,jpksed) ) |
---|
| 161 | ALLOCATE( temp(jpoce) ) ; ALLOCATE( salt(jpoce) ) |
---|
| 162 | ALLOCATE( diff(jpoce,jpksed,jpwat ) ) ; ALLOCATE( irrig(jpoce, jpksed) ) |
---|
| 163 | ALLOCATE( wacc(jpoce) ) ; ALLOCATE( fecratio(jpoce) ) |
---|
[3443] | 164 | ALLOCATE( press(jpoce) ) ; ALLOCATE( densSW(jpoce) ) |
---|
[10222] | 165 | ALLOCATE( hipor(jpoce,jpksed) ) ; ALLOCATE( co3por(jpoce,jpksed) ) |
---|
[3443] | 166 | ALLOCATE( dz3d(jpoce,jpksed) ) ; ALLOCATE( volw3d(jpoce,jpksed) ) ; ALLOCATE( vols3d(jpoce,jpksed) ) |
---|
[10222] | 167 | ALLOCATE( sedligand(jpoce, jpksed) ) |
---|
[3443] | 168 | |
---|
| 169 | ! Initialization of global variables |
---|
[10222] | 170 | pwcp (:,:,:) = 0. ; pwcp0 (:,:,:) = 0. ; pwcp_dta (:,:) = 0. |
---|
| 171 | solcp (:,:,:) = 0. ; solcp0(:,:,:) = 0. ; rainrm_dta(:,:) = 0. |
---|
| 172 | rainrm(:,: ) = 0. ; rainrg(:,: ) = 0. ; raintg (: ) = 0. |
---|
| 173 | dzdep (: ) = 0. ; iarroce(: ) = 0 ; dzkbot (: ) = 0. |
---|
| 174 | temp (: ) = 0. ; salt (: ) = 0. ; zkbot (: ) = 0. |
---|
| 175 | press (: ) = 0. ; densSW (: ) = 0. ; db (:,:) = 0. |
---|
| 176 | hipor (:,: ) = 0. ; co3por (:,: ) = 0. ; irrig (:,:) = 0. |
---|
| 177 | dz3d (:,: ) = 0. ; volw3d (:,: ) = 0. ; vols3d (:,:) = 0. |
---|
| 178 | fecratio(:) = 1E-5 |
---|
| 179 | sedligand(:,:) = 0.6E-9 |
---|
[3443] | 180 | |
---|
| 181 | ! Chemical variables |
---|
| 182 | ALLOCATE( akbs (jpoce) ) ; ALLOCATE( ak1s (jpoce) ) ; ALLOCATE( ak2s (jpoce) ) ; ALLOCATE( akws (jpoce) ) |
---|
| 183 | ALLOCATE( ak1ps (jpoce) ) ; ALLOCATE( ak2ps (jpoce) ) ; ALLOCATE( ak3ps (jpoce) ) ; ALLOCATE( aksis (jpoce) ) |
---|
| 184 | ALLOCATE( aksps (jpoce) ) ; ALLOCATE( ak12s (jpoce) ) ; ALLOCATE( ak12ps(jpoce) ) ; ALLOCATE( ak123ps(jpoce) ) |
---|
[10222] | 185 | ALLOCATE( borats(jpoce) ) ; ALLOCATE( calcon2(jpoce) ) ; ALLOCATE( sieqs (jpoce) ) |
---|
| 186 | ALLOCATE( aks3s(jpoce) ) ; ALLOCATE( akf3s(jpoce) ) ; ALLOCATE( sulfats(jpoce) ) |
---|
| 187 | ALLOCATE( fluorids(jpoce) ) |
---|
[3443] | 188 | |
---|
| 189 | akbs (:) = 0. ; ak1s (:) = 0. ; ak2s (:) = 0. ; akws (:) = 0. |
---|
| 190 | ak1ps (:) = 0. ; ak2ps (:) = 0. ; ak3ps (:) = 0. ; aksis (:) = 0. |
---|
| 191 | aksps (:) = 0. ; ak12s (:) = 0. ; ak12ps(:) = 0. ; ak123ps(:) = 0. |
---|
[10222] | 192 | borats(:) = 0. ; calcon2(:) = 0. ; sieqs (:) = 0. |
---|
| 193 | aks3s(:) = 0. ; akf3s(:) = 0. ; sulfats(:) = 0. ; fluorids(:) = 0. |
---|
[3443] | 194 | |
---|
| 195 | ! Mass balance calculation |
---|
| 196 | ALLOCATE( fromsed(jpoce, jpsol) ) ; ALLOCATE( tosed(jpoce, jpsol) ) ; ALLOCATE( rloss(jpoce, jpsol) ) |
---|
| 197 | ALLOCATE( tokbot (jpoce, jpwat) ) |
---|
| 198 | |
---|
| 199 | fromsed(:,:) = 0. ; tosed(:,:) = 0. ; rloss(:,:) = 0. ; tokbot(:,:) = 0. |
---|
| 200 | |
---|
| 201 | ! Initialization of sediment geometry |
---|
| 202 | !------------------------------------ |
---|
| 203 | CALL sed_init_geom |
---|
| 204 | |
---|
[10222] | 205 | ! Offline specific mode |
---|
| 206 | ! --------------------- |
---|
| 207 | ln_sediment_offline = .FALSE. |
---|
[3443] | 208 | |
---|
[10222] | 209 | #if defined key_sed_off |
---|
| 210 | ln_sediment_offline = .TRUE. |
---|
| 211 | IF (lwp) write(numsed,*) 'Sediment module is run in offline mode' |
---|
| 212 | IF (lwp) write(numsed,*) 'key_sed_off is activated at compilation time' |
---|
| 213 | IF (lwp) write(numsed,*) 'ln_sed_2way is forced to false' |
---|
| 214 | IF (lwp) write(numsed,*) '--------------------------------------------' |
---|
| 215 | ln_sed_2way = .FALSE. |
---|
| 216 | #endif |
---|
| 217 | ! Initialisation of tracer damping |
---|
| 218 | ! -------------------------------- |
---|
| 219 | IF (ln_sediment_offline) THEN |
---|
| 220 | CALL trc_dta_ini(jptra) |
---|
| 221 | CALL trc_dmp_sed_ini |
---|
| 222 | ENDIF |
---|
[3443] | 223 | |
---|
| 224 | END SUBROUTINE sed_init |
---|
| 225 | |
---|
| 226 | SUBROUTINE sed_init_geom |
---|
| 227 | !!---------------------------------------------------------------------- |
---|
| 228 | !! *** ROUTINE sed_init_geom *** |
---|
| 229 | !! |
---|
| 230 | !! ** Purpose : Initialization of sediment geometry |
---|
| 231 | !! - Read the deepest water layer thickness |
---|
| 232 | !! ( using as mask ) in Netcdf file |
---|
| 233 | !! - sets sediment grid, porosity and molecular weight |
---|
| 234 | !! and others constants |
---|
| 235 | !! |
---|
| 236 | !! History : |
---|
| 237 | !! ! 06-07 (C. Ethe) Original |
---|
| 238 | !!---------------------------------------------------------------------- |
---|
| 239 | !! * Modules used |
---|
| 240 | !! * local declarations |
---|
[10222] | 241 | INTEGER :: ji, jj, jk, jn |
---|
| 242 | REAL(wp) :: za0, za1, zt, zw, zsum, zsur, zprof, zprofw |
---|
| 243 | REAL(wp) :: ztmp1, ztmp2 |
---|
[3443] | 244 | !---------------------------------------------------------- |
---|
| 245 | |
---|
[10222] | 246 | IF(lwp) WRITE(numsed,*) ' sed_init_geom : Initialization of sediment geometry ' |
---|
| 247 | IF(lwp) WRITE(numsed,*) ' ' |
---|
[3443] | 248 | |
---|
| 249 | ! Computation of 1D array of sediments points |
---|
| 250 | indoce = 0 |
---|
[13295] | 251 | DO_2D( 1, 1, 1, 1 ) |
---|
[12377] | 252 | IF ( epkbot(ji,jj) > 0. ) THEN |
---|
| 253 | indoce = indoce + 1 |
---|
| 254 | iarroce(indoce) = (jj - 1) * jpi + ji |
---|
| 255 | ENDIF |
---|
| 256 | END_2D |
---|
[3443] | 257 | |
---|
[10222] | 258 | IF ( indoce .EQ. 0 ) THEN |
---|
| 259 | indoce = 1 |
---|
| 260 | iarroce(indoce) = 1 |
---|
| 261 | ENDIF |
---|
| 262 | |
---|
[3443] | 263 | IF( indoce .NE. jpoce ) THEN |
---|
[10222] | 264 | CALL ctl_stop( 'STOP', 'sed_ini: number of ocean points indoce doesn''t match number of point' ) |
---|
[3443] | 265 | ELSE |
---|
[10222] | 266 | IF (lwp) WRITE(numsed,*) ' ' |
---|
| 267 | IF (lwp) WRITE(numsed,*) ' total number of ocean points jpoce = ',jpoce |
---|
| 268 | IF (lwp) WRITE(numsed,*) ' ' |
---|
[3443] | 269 | ENDIF |
---|
| 270 | |
---|
| 271 | ! initialization of dzkbot in [cm] |
---|
| 272 | !------------------------------------------------ |
---|
| 273 | CALL pack_arr ( jpoce, dzkbot(1:jpoce), epkbot(1:jpi,1:jpj), iarroce(1:jpoce) ) |
---|
| 274 | dzkbot(1:jpoce) = dzkbot(1:jpoce) * 1.e+2 |
---|
[10222] | 275 | CALL pack_arr ( jpoce, zkbot(1:jpoce), gdepbot(1:jpi,1:jpj), iarroce(1:jpoce) ) |
---|
[3443] | 276 | |
---|
| 277 | ! Geometry and constants |
---|
| 278 | ! sediment layer thickness [cm] |
---|
| 279 | ! (1st layer= diffusive layer = pur water) |
---|
| 280 | !------------------------------------------ |
---|
[10222] | 281 | za1 = ( sedzmin - sedhmax / FLOAT(jpksed-1) ) & |
---|
| 282 | & / ( TANH((1-sedkth)/sedacr) - sedacr/FLOAT(jpksed-1) * ( LOG( COSH( (jpksed - sedkth) / sedacr) ) & |
---|
| 283 | & - LOG( COSH( ( 1 - sedkth) / sedacr) ) ) ) |
---|
| 284 | za0 = sedzmin - za1 * TANH( (1-sedkth) / sedacr ) |
---|
| 285 | zsur = - za0 - za1 * sedacr * LOG( COSH( (1-sedkth) / sedacr ) ) |
---|
[3443] | 286 | |
---|
[10222] | 287 | profsedw(1) = 0.0 |
---|
| 288 | profsed(1) = -dz(1) / 2. |
---|
| 289 | DO jk = 2, jpksed |
---|
| 290 | zw = REAL( jk , wp ) |
---|
| 291 | zt = REAL( jk , wp ) - 0.5_wp |
---|
| 292 | profsed(jk) = ( zsur + za0 * zt + za1 * sedacr * LOG ( COSH( (zt-sedkth) / sedacr ) ) ) |
---|
| 293 | profsedw(jk) = ( zsur + za0 * zw + za1 * sedacr * LOG ( COSH( (zw-sedkth) / sedacr ) ) ) |
---|
| 294 | END DO |
---|
| 295 | |
---|
| 296 | dz(1) = 0.1 |
---|
| 297 | DO jk = 2, jpksed |
---|
| 298 | dz(jk) = profsedw(jk) - profsedw(jk-1) |
---|
| 299 | END DO |
---|
| 300 | |
---|
[3443] | 301 | DO jk = 1, jpksed |
---|
| 302 | DO ji = 1, jpoce |
---|
| 303 | dz3d(ji,jk) = dz(jk) |
---|
| 304 | END DO |
---|
| 305 | ENDDO |
---|
| 306 | |
---|
| 307 | ! Porosity profile [0] |
---|
| 308 | !--------------------- |
---|
[10222] | 309 | por(1) = 1.0 |
---|
| 310 | DO jk = 2, jpksed |
---|
| 311 | por(jk) = porinf + ( porsurf-porinf) * exp(-rhox * (profsed(jk) ) ) |
---|
| 312 | END DO |
---|
[3443] | 313 | |
---|
| 314 | ! inverse of Porosity profile |
---|
| 315 | !----------------------------- |
---|
| 316 | por1(:) = 1. - por(:) |
---|
| 317 | |
---|
| 318 | ! Volumes of pore water and solid fractions (vector and array) |
---|
| 319 | ! WARNING : volw(1) and vols(1) are sublayer volums |
---|
| 320 | volw(:) = dz(:) * por(:) |
---|
| 321 | vols(:) = dz(:) * por1(:) |
---|
| 322 | |
---|
| 323 | ! temporary new value for dz3d(:,1) |
---|
| 324 | dz3d(1:jpoce,1) = dzkbot(1:jpoce) |
---|
| 325 | |
---|
| 326 | ! WARNING : volw3d(:,1) and vols3d(:,1) are deepest water column volums |
---|
| 327 | DO jk = 1, jpksed |
---|
| 328 | volw3d(1:jpoce,jk) = dz3d(1:jpoce,jk) * por (jk) |
---|
| 329 | vols3d(1:jpoce,jk) = dz3d(1:jpoce,jk) * por1(jk) |
---|
| 330 | ENDDO |
---|
| 331 | |
---|
| 332 | ! Back to the old sublayer vlaue for dz3d(:,1) |
---|
| 333 | dz3d(1:jpoce,1) = dz(1) |
---|
| 334 | |
---|
| 335 | !--------------------------------------------- |
---|
| 336 | ! Molecular weight [g/mol] for solid species |
---|
| 337 | !--------------------------------------------- |
---|
| 338 | |
---|
| 339 | ! opal=sio2*0.4(h20)=28+2*16+0.4*(2+16) |
---|
| 340 | !--------------------------------------- |
---|
| 341 | mol_wgt(jsopal) = 28. + 2. * 16. + 0.4 * ( 2. + 16. ) |
---|
| 342 | |
---|
| 343 | ! clay |
---|
| 344 | ! some kind of Illit (according to Pape) |
---|
| 345 | ! K0.58(Al 1.38 Fe(III)0.37Fe(II)0.04Mg0.34)[(OH)2|(Si3.41Al0.59)O10] |
---|
| 346 | !-------------------------------------------------------------------- |
---|
| 347 | mol_wgt(jsclay) = 0.58 * 39. + 1.38 * 27. + ( 0.37 + 0.04 ) * 56.+ & |
---|
| 348 | & 0.34 * 24. + 2. * ( 16. + 1. ) + 3.41 * 38. + & |
---|
| 349 | & 0.59 * 27. + 10. * 16. |
---|
| 350 | |
---|
[10222] | 351 | mol_wgt(jsfeo) = 55.0 + 3.0 * ( 16.0 + 1.0) |
---|
| 352 | |
---|
| 353 | mol_wgt(jsfes) = 55.0 + 32.0 |
---|
| 354 | |
---|
[3443] | 355 | ! for chemistry Poc : C(122)H(244)O(86)N(16)P(1) |
---|
| 356 | ! But den sity of Poc is an Hydrated material (= POC + 30H2O) |
---|
| 357 | ! So C(122)H(355)O(120)N(16)P(1) |
---|
| 358 | !------------------------------------------------------------ |
---|
| 359 | mol_wgt(jspoc) = ( 122. * 12. + 355. + 120. * 16.+ & |
---|
| 360 | & 16. * 14. + 31. ) / 122. |
---|
[10222] | 361 | mol_wgt(jspos) = mol_wgt(jspoc) |
---|
| 362 | mol_wgt(jspor) = mol_wgt(jspoc) |
---|
[3443] | 363 | |
---|
| 364 | ! CaCO3 |
---|
| 365 | !--------- |
---|
| 366 | mol_wgt(jscal) = 40. + 12. + 3. * 16. |
---|
| 367 | |
---|
| 368 | ! Density of solid material in sediment [g/cm**3] |
---|
| 369 | !------------------------------------------------ |
---|
[10222] | 370 | denssol = 2.6 |
---|
[3443] | 371 | |
---|
| 372 | ! Initialization of diffusion coefficient as function of porosity [cm**2/s] |
---|
| 373 | !-------------------------------------------------------------------- |
---|
[10222] | 374 | ! DO jn = 1, jpsol |
---|
| 375 | ! DO jk = 1, jpksed |
---|
| 376 | ! DO ji = 1, jpoce |
---|
| 377 | ! diff(ji,jk,jn) = dcoef / ( 1.0 - 2.0 * log(por(jk)) ) |
---|
| 378 | ! END DO |
---|
| 379 | ! END DO |
---|
| 380 | ! END DO |
---|
[3443] | 381 | |
---|
[10222] | 382 | ! Accumulation rate from Burwicz et al. (2011). This is used to |
---|
| 383 | ! compute the flux of clays and minerals |
---|
| 384 | ! -------------------------------------------------------------- |
---|
| 385 | DO ji = 1, jpoce |
---|
| 386 | ztmp1 = 0.117 / ( 1.0 + ( zkbot(ji) / 200.)**3 ) |
---|
| 387 | ztmp2 = 0.006 / ( 1.0 + ( zkbot(ji) / 4000.)**10 ) |
---|
| 388 | wacc(ji) = ztmp1 + ztmp2 |
---|
| 389 | END DO |
---|
[3443] | 390 | |
---|
[10222] | 391 | |
---|
[3443] | 392 | ! Initialization of time step as function of porosity [cm**2/s] |
---|
| 393 | !------------------------------------------------------------------ |
---|
| 394 | END SUBROUTINE sed_init_geom |
---|
| 395 | |
---|
| 396 | SUBROUTINE sed_init_nam |
---|
| 397 | !!---------------------------------------------------------------------- |
---|
| 398 | !! *** ROUTINE sed_init_nam *** |
---|
| 399 | !! |
---|
| 400 | !! ** Purpose : Initialization of sediment geometry |
---|
| 401 | !! - Reading namelist and defines constants variables |
---|
| 402 | !! |
---|
| 403 | !! History : |
---|
| 404 | !! ! 06-07 (C. Ethe) Original |
---|
| 405 | !!---------------------------------------------------------------------- |
---|
| 406 | |
---|
[12377] | 407 | CHARACTER(:), ALLOCATABLE :: numnamsed_ref !! Character buffer for reference namelist sediment |
---|
| 408 | CHARACTER(:), ALLOCATABLE :: numnamsed_cfg !! Character buffer for configuration namelist sediment |
---|
[10222] | 409 | INTEGER :: ios ! Local integer output status for namelist read |
---|
| 410 | CHARACTER(LEN=20) :: clname |
---|
[3443] | 411 | |
---|
| 412 | TYPE PSED |
---|
| 413 | CHARACTER(len = 20) :: snamesed !: short name |
---|
| 414 | CHARACTER(len = 80 ) :: lnamesed !: long name |
---|
| 415 | CHARACTER(len = 20 ) :: unitsed !: unit |
---|
| 416 | END TYPE PSED |
---|
| 417 | |
---|
| 418 | TYPE(PSED) , DIMENSION(jpsol ) :: sedsol |
---|
| 419 | TYPE(PSED) , DIMENSION(jpwat ) :: sedwat |
---|
| 420 | TYPE(PSED) , DIMENSION(jpdia3dsed) :: seddiag3d |
---|
| 421 | TYPE(PSED) , DIMENSION(jpdia2dsed) :: seddiag2d |
---|
| 422 | |
---|
[10222] | 423 | NAMELIST/nam_run/nrseddt,ln_sed_2way |
---|
| 424 | NAMELIST/nam_geom/jpksed, sedzmin, sedhmax, sedkth, sedacr, porsurf, porinf, rhox |
---|
[3443] | 425 | NAMELIST/nam_trased/sedsol, sedwat |
---|
| 426 | NAMELIST/nam_diased/seddiag3d, seddiag2d |
---|
[10222] | 427 | NAMELIST/nam_inorg/rcopal, dcoef, rccal, ratligc, rcligc |
---|
| 428 | NAMELIST/nam_poc/redO2, redNo3, redPo4, redC, redfep, rcorgl, rcorgs, & |
---|
| 429 | & rcorgr, rcnh4, rch2s, rcfe2, rcfeh2s, rcfes, rcfeso, & |
---|
| 430 | & xksedo2, xksedno3, xksedfeo, xksedso4 |
---|
| 431 | NAMELIST/nam_btb/dbiot, ln_btbz, dbtbzsc, adsnh4, ln_irrig, xirrzsc |
---|
| 432 | NAMELIST/nam_rst/ln_rst_sed, cn_sedrst_indir, cn_sedrst_outdir, cn_sedrst_in, cn_sedrst_out |
---|
[3443] | 433 | |
---|
[10222] | 434 | INTEGER :: ji, jn, jn1 |
---|
[3443] | 435 | !------------------------------------------------------- |
---|
| 436 | |
---|
[10222] | 437 | IF(lwp) WRITE(numsed,*) ' sed_init_nam : Read namelists ' |
---|
| 438 | IF(lwp) WRITE(numsed,*) ' ' |
---|
[3443] | 439 | |
---|
| 440 | ! ryear = 1 year converted in second |
---|
| 441 | !------------------------------------ |
---|
[10222] | 442 | IF (lwp) THEN |
---|
| 443 | WRITE(numsed,*) ' ' |
---|
| 444 | WRITE(numsed,*) 'number of seconds in one year : ryear = ', ryear |
---|
| 445 | WRITE(numsed,*) ' ' |
---|
| 446 | ENDIF |
---|
[3443] | 447 | |
---|
| 448 | ! Reading namelist.sed variables |
---|
| 449 | !--------------------------------- |
---|
[10222] | 450 | clname = 'namelist_sediment' |
---|
| 451 | IF(lwp) WRITE(numsed,*) ' sed_init_nam : read SEDIMENT namelist' |
---|
| 452 | IF(lwp) WRITE(numsed,*) ' ~~~~~~~~~~~~~~' |
---|
[12377] | 453 | CALL load_nml( numnamsed_ref, TRIM( clname )//'_ref', numout, lwm ) |
---|
| 454 | CALL load_nml( numnamsed_cfg, TRIM( clname )//'_cfg', numout, lwm ) |
---|
[3443] | 455 | |
---|
| 456 | nitsed000 = nittrc000 |
---|
| 457 | nitsedend = nitend |
---|
[10222] | 458 | ! Namelist nam_run |
---|
| 459 | READ ( numnamsed_ref, nam_run, IOSTAT = ios, ERR = 901) |
---|
[11536] | 460 | 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_run in reference namelist' ) |
---|
[3443] | 461 | |
---|
[10222] | 462 | READ ( numnamsed_cfg, nam_run, IOSTAT = ios, ERR = 902) |
---|
[11536] | 463 | 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_run in configuration namelist' ) |
---|
[3443] | 464 | |
---|
[10222] | 465 | IF (lwp) THEN |
---|
| 466 | WRITE(numsed,*) ' namelist nam_run' |
---|
| 467 | WRITE(numsed,*) ' Nb of iterations for fast species nrseddt = ', nrseddt |
---|
| 468 | WRITE(numsed,*) ' 2-way coupling between PISCES and Sed ln_sed_2way = ', ln_sed_2way |
---|
| 469 | ENDIF |
---|
[3443] | 470 | |
---|
[10362] | 471 | IF ( ln_p5z .AND. ln_sed_2way ) CALL ctl_stop( '2 ways coupling with sediment cannot be activated with PISCES-QUOTA' ) |
---|
| 472 | |
---|
[10222] | 473 | READ ( numnamsed_ref, nam_geom, IOSTAT = ios, ERR = 903) |
---|
[11536] | 474 | 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_geom in reference namelist' ) |
---|
[3443] | 475 | |
---|
[10222] | 476 | READ ( numnamsed_cfg, nam_geom, IOSTAT = ios, ERR = 904) |
---|
[11536] | 477 | 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_geom in configuration namelist' ) |
---|
[10222] | 478 | |
---|
| 479 | IF (lwp) THEN |
---|
| 480 | WRITE(numsed,*) ' namelist nam_geom' |
---|
| 481 | WRITE(numsed,*) ' Number of vertical layers jpksed = ', jpksed |
---|
| 482 | WRITE(numsed,*) ' Minimum vertical spacing sedzmin = ', sedzmin |
---|
| 483 | WRITE(numsed,*) ' Maximum depth of the sediment sedhmax = ', sedhmax |
---|
| 484 | WRITE(numsed,*) ' Default parameter sedkth = ', sedkth |
---|
| 485 | WRITE(numsed,*) ' Default parameter sedacr = ', sedacr |
---|
| 486 | WRITE(numsed,*) ' Sediment porosity at the surface porsurf = ', porsurf |
---|
| 487 | WRITE(numsed,*) ' Sediment porosity at infinite depth porinf = ', porinf |
---|
| 488 | WRITE(numsed,*) ' Length scale of porosity variation rhox = ', rhox |
---|
| 489 | ENDIF |
---|
| 490 | |
---|
| 491 | jpksedm1 = jpksed - 1 |
---|
[12489] | 492 | dtsed = rDt_trc |
---|
[10222] | 493 | |
---|
| 494 | READ ( numnamsed_ref, nam_trased, IOSTAT = ios, ERR = 905) |
---|
[11536] | 495 | 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_trased in reference namelist' ) |
---|
[10222] | 496 | |
---|
| 497 | READ ( numnamsed_cfg, nam_trased, IOSTAT = ios, ERR = 906) |
---|
[11536] | 498 | 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_trased in configuration namelist' ) |
---|
[10222] | 499 | |
---|
[3443] | 500 | DO jn = 1, jpsol |
---|
| 501 | sedtrcd(jn) = sedsol(jn)%snamesed |
---|
| 502 | sedtrcl(jn) = sedsol(jn)%lnamesed |
---|
| 503 | sedtrcu(jn) = sedsol(jn)%unitsed |
---|
| 504 | END DO |
---|
| 505 | |
---|
| 506 | DO jn = 1, jpwat |
---|
| 507 | jn1 = jn + jpsol |
---|
| 508 | sedtrcd(jn1) = sedwat(jn)%snamesed |
---|
| 509 | sedtrcl(jn1) = sedwat(jn)%lnamesed |
---|
| 510 | sedtrcu(jn1) = sedwat(jn)%unitsed |
---|
| 511 | END DO |
---|
| 512 | |
---|
[10222] | 513 | IF (lwp) THEN |
---|
| 514 | WRITE(numsed,*) ' namelist nam_trased' |
---|
[3443] | 515 | WRITE(numsed,*) ' ' |
---|
[10222] | 516 | DO jn = 1, jptrased |
---|
| 517 | WRITE(numsed,*) 'name of 3d output sediment field number :',jn,' : ',TRIM(sedtrcd(jn)) |
---|
| 518 | WRITE(numsed,*) 'long name ', TRIM(sedtrcl(jn)) |
---|
| 519 | WRITE(numsed,*) ' in unit = ', TRIM(sedtrcu(jn)) |
---|
| 520 | WRITE(numsed,*) ' ' |
---|
| 521 | END DO |
---|
| 522 | WRITE(numsed,*) ' ' |
---|
| 523 | ENDIF |
---|
[3443] | 524 | |
---|
[10222] | 525 | READ ( numnamsed_ref, nam_diased, IOSTAT = ios, ERR = 907) |
---|
[11536] | 526 | 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diased in reference namelist' ) |
---|
[10222] | 527 | |
---|
| 528 | READ ( numnamsed_cfg, nam_diased, IOSTAT = ios, ERR = 908) |
---|
[11536] | 529 | 908 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_diased in configuration namelist' ) |
---|
[3443] | 530 | |
---|
| 531 | DO jn = 1, jpdia3dsed |
---|
| 532 | seddia3d(jn) = seddiag3d(jn)%snamesed |
---|
| 533 | seddia3l(jn) = seddiag3d(jn)%lnamesed |
---|
| 534 | seddia3u(jn) = seddiag3d(jn)%unitsed |
---|
| 535 | END DO |
---|
| 536 | |
---|
| 537 | DO jn = 1, jpdia2dsed |
---|
| 538 | seddia2d(jn) = seddiag2d(jn)%snamesed |
---|
| 539 | seddia2l(jn) = seddiag2d(jn)%lnamesed |
---|
| 540 | seddia2u(jn) = seddiag2d(jn)%unitsed |
---|
| 541 | END DO |
---|
| 542 | |
---|
[10222] | 543 | IF (lwp) THEN |
---|
| 544 | WRITE(numsed,*) ' namelist nam_diased' |
---|
[3443] | 545 | WRITE(numsed,*) ' ' |
---|
[10222] | 546 | DO jn = 1, jpdia3dsed |
---|
| 547 | WRITE(numsed,*) 'name of 3D output diag number :',jn, ' : ', TRIM(seddia3d(jn)) |
---|
| 548 | WRITE(numsed,*) 'long name ', TRIM(seddia3l(jn)) |
---|
| 549 | WRITE(numsed,*) ' in unit = ',TRIM(seddia3u(jn)) |
---|
| 550 | WRITE(numsed,*) ' ' |
---|
| 551 | END DO |
---|
[3443] | 552 | |
---|
[10222] | 553 | DO jn = 1, jpdia2dsed |
---|
| 554 | WRITE(numsed,*) 'name of 2D output diag number :',jn, ' : ', TRIM(seddia2d(jn)) |
---|
| 555 | WRITE(numsed,*) 'long name ', TRIM(seddia2l(jn)) |
---|
| 556 | WRITE(numsed,*) ' in unit = ',TRIM(seddia2u(jn)) |
---|
| 557 | WRITE(numsed,*) ' ' |
---|
| 558 | END DO |
---|
| 559 | |
---|
[3443] | 560 | WRITE(numsed,*) ' ' |
---|
[10222] | 561 | ENDIF |
---|
[3443] | 562 | |
---|
[10222] | 563 | ! Inorganic chemistry parameters |
---|
| 564 | !---------------------------------- |
---|
| 565 | READ ( numnamsed_ref, nam_inorg, IOSTAT = ios, ERR = 909) |
---|
[11536] | 566 | 909 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_inorg in reference namelist' ) |
---|
[3443] | 567 | |
---|
[10222] | 568 | READ ( numnamsed_cfg, nam_inorg, IOSTAT = ios, ERR = 910) |
---|
[11536] | 569 | 910 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_inorg in configuration namelist' ) |
---|
[3443] | 570 | |
---|
[10222] | 571 | IF (lwp) THEN |
---|
| 572 | WRITE(numsed,*) ' namelist nam_inorg' |
---|
| 573 | WRITE(numsed,*) ' reactivity for Si rcopal = ', rcopal |
---|
| 574 | WRITE(numsed,*) ' diff. coef for por. dcoef = ', dcoef |
---|
| 575 | WRITE(numsed,*) ' reactivity for calcite rccal = ', rccal |
---|
| 576 | WRITE(numsed,*) ' L/C ratio in POC ratligc = ', ratligc |
---|
| 577 | WRITE(numsed,*) ' reactivity for ligands rcligc = ', rcligc |
---|
| 578 | WRITE(numsed,*) ' ' |
---|
| 579 | ENDIF |
---|
[3443] | 580 | |
---|
| 581 | ! Unity conversion to get saturation conc. psat in [mol.l-1] |
---|
| 582 | ! and reactivity rc in [l.mol-1.s-1] |
---|
| 583 | !---------------------------------------------------------- |
---|
[10222] | 584 | reac_sil = rcopal / ryear |
---|
| 585 | reac_ligc = rcligc / ryear |
---|
[3443] | 586 | |
---|
| 587 | ! Additional parameter linked to POC/O2/No3/Po4 |
---|
| 588 | !---------------------------------------------- |
---|
[10222] | 589 | READ ( numnamsed_ref, nam_poc, IOSTAT = ios, ERR = 911) |
---|
[11536] | 590 | 911 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_poc in reference namelist' ) |
---|
[3443] | 591 | |
---|
[10222] | 592 | READ ( numnamsed_cfg, nam_poc, IOSTAT = ios, ERR = 912) |
---|
[11536] | 593 | 912 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_poc in configuration namelist' ) |
---|
[3443] | 594 | |
---|
[10222] | 595 | IF (lwp) THEN |
---|
| 596 | WRITE(numsed,*) ' namelist nam_poc' |
---|
| 597 | WRITE(numsed,*) ' Redfield coef for oxy redO2 = ', redO2 |
---|
| 598 | WRITE(numsed,*) ' Redfield coef for no3 redNo3 = ', redNo3 |
---|
| 599 | WRITE(numsed,*) ' Redfield coef for po4 redPo4 = ', redPo4 |
---|
| 600 | WRITE(numsed,*) ' Redfield coef for carbon redC = ', redC |
---|
| 601 | WRITE(numsed,*) ' Ration for iron bound P redfep = ', redfep |
---|
| 602 | WRITE(numsed,*) ' reactivity for labile POC rcorgl = ', rcorgl |
---|
| 603 | WRITE(numsed,*) ' reactivity for semi-refract. POC rcorgs = ', rcorgs |
---|
| 604 | WRITE(numsed,*) ' reactivity for refractory POC rcorgr = ', rcorgr |
---|
| 605 | WRITE(numsed,*) ' reactivity for NH4 rcnh4 = ', rcnh4 |
---|
| 606 | WRITE(numsed,*) ' reactivity for H2S rch2s = ', rch2s |
---|
| 607 | WRITE(numsed,*) ' reactivity for Fe2+ rcfe2 = ', rcfe2 |
---|
| 608 | WRITE(numsed,*) ' reactivity for FeOH/H2S rcfeh2s = ', rcfeh2s |
---|
| 609 | WRITE(numsed,*) ' reactivity for Fe2+/H2S rcfes = ', rcfes |
---|
| 610 | WRITE(numsed,*) ' reactivity for FeS/O2 rcfeso = ', rcfeso |
---|
| 611 | WRITE(numsed,*) ' Half-sat. cste for oxic remin xksedo2 = ', xksedo2 |
---|
| 612 | WRITE(numsed,*) ' Half-sat. cste for denit. xksedno3 = ', xksedno3 |
---|
| 613 | WRITE(numsed,*) ' Half-sat. cste for iron remin xksedfeo = ', xksedfeo |
---|
| 614 | WRITE(numsed,*) ' Half-sat. cste for SO4 remin xksedso4 = ', xksedso4 |
---|
| 615 | WRITE(numsed,*) ' ' |
---|
| 616 | ENDIF |
---|
[3443] | 617 | |
---|
| 618 | |
---|
[10222] | 619 | so2ut = redO2 / redC |
---|
| 620 | srno3 = redNo3 / redC |
---|
| 621 | spo4r = redPo4 / redC |
---|
| 622 | srDnit = ( (redO2 + 32. ) * 0.8 - redNo3 - redNo3 * 0.6 ) / redC |
---|
| 623 | ! reactivity rc in [l.mol-1.s-1] |
---|
| 624 | reac_pocl = rcorgl / ryear |
---|
| 625 | reac_pocs = rcorgs / ryear |
---|
| 626 | reac_pocr = rcorgr / ryear |
---|
| 627 | reac_nh4 = rcnh4 / ryear |
---|
| 628 | reac_h2s = rch2s / ryear |
---|
| 629 | reac_fe2 = rcfe2 / ryear |
---|
| 630 | reac_feh2s = rcfeh2s/ ryear |
---|
| 631 | reac_fes = rcfes / ryear |
---|
| 632 | reac_feso = rcfeso / ryear |
---|
[3443] | 633 | |
---|
| 634 | ! reactivity rc in [l.mol-1.s-1] |
---|
| 635 | reac_cal = rccal / ryear |
---|
| 636 | |
---|
| 637 | ! Bioturbation parameter |
---|
| 638 | !------------------------ |
---|
[10222] | 639 | READ ( numnamsed_ref, nam_btb, IOSTAT = ios, ERR = 913) |
---|
[11536] | 640 | 913 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_btb in reference namelist' ) |
---|
[3443] | 641 | |
---|
[10222] | 642 | READ ( numnamsed_cfg, nam_btb, IOSTAT = ios, ERR = 914) |
---|
[11536] | 643 | 914 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_btb in configuration namelist' ) |
---|
[3443] | 644 | |
---|
[10222] | 645 | IF (lwp) THEN |
---|
| 646 | WRITE(numsed,*) ' namelist nam_btb ' |
---|
| 647 | WRITE(numsed,*) ' coefficient for bioturbation dbiot = ', dbiot |
---|
| 648 | WRITE(numsed,*) ' Depth varying bioturbation ln_btbz = ', ln_btbz |
---|
| 649 | WRITE(numsed,*) ' coefficient for btb attenuation dbtbzsc = ', dbtbzsc |
---|
| 650 | WRITE(numsed,*) ' Adsorption coefficient of NH4 adsnh4 = ', adsnh4 |
---|
| 651 | WRITE(numsed,*) ' Bioirrigation in sediment ln_irrig = ', ln_irrig |
---|
| 652 | WRITE(numsed,*) ' coefficient for irrig attenuation xirrzsc = ', xirrzsc |
---|
| 653 | WRITE(numsed,*) ' ' |
---|
| 654 | ENDIF |
---|
| 655 | |
---|
[3443] | 656 | ! Initial value (t=0) for sediment pore water and solid components |
---|
| 657 | !---------------------------------------------------------------- |
---|
[10222] | 658 | READ ( numnamsed_ref, nam_rst, IOSTAT = ios, ERR = 915) |
---|
[11536] | 659 | 915 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_rst in reference namelist' ) |
---|
[3443] | 660 | |
---|
[10222] | 661 | READ ( numnamsed_cfg, nam_rst, IOSTAT = ios, ERR = 916) |
---|
[11536] | 662 | 916 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_rst in configuration namelist' ) |
---|
[3443] | 663 | |
---|
[10222] | 664 | IF (lwp) THEN |
---|
| 665 | WRITE(numsed,*) ' namelist nam_rst ' |
---|
| 666 | WRITE(numsed,*) ' boolean term for restart (T or F) ln_rst_sed = ', ln_rst_sed |
---|
| 667 | WRITE(numsed,*) ' ' |
---|
[3443] | 668 | ENDIF |
---|
[12377] | 669 | nn_dtsed = 1 |
---|
[3443] | 670 | |
---|
| 671 | |
---|
[10222] | 672 | END SUBROUTINE sed_init_nam |
---|
[3443] | 673 | |
---|
| 674 | END MODULE sedini |
---|