Changeset 6829 for branches/NERC
- Timestamp:
- 2016-08-01T18:30:32+02:00 (8 years ago)
- Location:
- branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/IDTRA/trcsms_idtra.F90
r6810 r6829 133 133 DO ji = 2,jpim1 134 134 135 IF (trn(ji,jj,jk,jn) > 0.0) THEN135 !! IF (trn(ji,jj,jk,jn) > 0.0) THEN 136 136 WTEMP = trn(ji,jj,jk,jn) * (1. - FDEC ) 137 137 tra(ji,jj,jk,jn) = (tra(ji,jj,jk,jn) - WTEMP/rdt ) * & 138 138 tmask(ji,jj,jk) 139 ELSE 140 trn(ji,jj,jk,jn) = 0.0 141 tra(ji,jj,jk,jn) = 0.0 142 ENDIF 139 !! ENDIF 143 140 ENDDO 144 141 ENDDO -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90
r6810 r6829 23 23 !! AXY (10/02/09) 24 24 USE iom 25 !! USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag26 !! USE trc_nam_iom_medusa ! JPALM 13-11-2015 -- if iom_use for diag27 USE fldread ! time interpolation25 !! USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag 26 !! USE trc_nam_iom_medusa ! JPALM 13-11-2015 -- if iom_use for diag 27 USE fldread ! time interpolation 28 28 USE lbclnk 29 USE prtctl_trc ! Print control for debbuging29 USE prtctl_trc ! Print control for debbuging 30 30 !! JPALM (27-06-2016): add lk_oasis for CO2 and DMS coupling with atm 31 31 USE sbc_oce, ONLY: lk_oasis 32 32 USE oce, ONLY: Dust_in_cpl 33 !! Check Dust dep 34 # if defined key_debug_medusa 35 !! USE trcrst, ONLY: trc_rst_dia_stat !! variable stat 36 # endif 33 37 34 38 … … 49 53 sedfeinput = 1.e-9_wp , & 50 54 dustsolub = 0.014_wp 51 52 INTEGER , PARAMETER :: nbtimes = 365!: maximum number of times record in a file53 INTEGER :: ntimes_dust ! number of time steps in a file55 REAL(wp), PARAMETER :: Fe_dust_mratio = 0.035 !! Fe:dust mass ratio = 0.035 56 INTEGER , PARAMETER :: nbtimes = 365 !: maximum number of times record in a file 57 INTEGER :: ntimes_dust ! number of time steps in a file 54 58 55 59 INTEGER :: & … … 98 102 99 103 !! AXY (10/02/09) 100 !! REAL(wp), DIMENSION(jpi,jpj) :: zsidep !! Si deposition101 !! REAL(wp), DIMENSION(jpi,jpj,jpk) :: zirondep !! Fe deposition102 104 REAL(wp) :: rfact2 103 105 … … 106 108 !! JPALM - 26-11-2015 -add iom_use for diagnostic 107 109 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d 108 !! JPALM -- 20-07-2016 --109 REAL(wp), PARAMETER :: Fe_dust_mratio = 0.035 !! Fe:dust mass ratio = 0.035110 110 !!--------------------------------------------------------------------- 111 111 !! … … 150 150 !! IF (kt == nittrc000 ) CALL trc_sed_medusa_sbc 151 151 152 !! JPALM -- 20-07-2016 -- change the dust dep conversion. 153 !! now all dust dep forcings and coupling are in SI units : 154 !! kg-dust/m2/s instead of g-Fe/m2/month. 155 !! and we convert them here into mmol-Fe/m2/day 156 !! what will be changed into mmol-Fe/m3/d in trcbio_med 157 !! 152 !! JPALM -- 20-07-2016 -- adapt dust forcing fields reading and conversion 153 !! To read dust dep in kg-dust/m2/s instead of g-Fe/m2/month 154 !! So all forcings and coupling dust dep are in the same SI units 155 !! and then convert in mmol-Fe/m2/day 156 158 157 IF( bdustfer ) THEN 159 158 IF( kt == nittrc000 .OR. ( kt /= nittrc000 .AND. ntimes_dust > 1 ) ) THEN … … 167 166 ENDIF 168 167 !! 169 170 168 zirondep(:,:) = 0.e0 !! Initialisation of deposition variables 171 zirondep(:,:) = dust(:,:) * Fe_dust_mratio / xfe_mass * 1.e6 * 86400 !! mmol-Fe/m2/d 172 173 !! 174 !! JPALM -- 20-07-2016 -- previous Fe and Si deposition. 175 !! not used --> commented. 176 !! but may want to use it later on. 177 !! 178 !! Iron and Si deposition at the surface 169 zirondep(:,:) = dust(:,:) * Fe_dust_mratio / xfe_mass * 1.e6 * 86400. !! mmol-Fe/m2/d 170 171 !! JPALM -- 20-07-2016 -- Zirondep and zsidep are not used. 172 !! So comment out the following lines. but keep them 173 !! as we may want to used them later on 174 !!================================================ 175 !! 176 !! zirondep(:,:,:) = 0.e0 !! Initialisation of deposition variables 177 !! zsidep (:,:) = 0.e0 178 !! 179 !! Iron and Si deposition at the surface 179 180 !! ------------------------------------- 180 181 !! 181 182 !! DO jj = 1, jpj 183 !! DO ji = 1, jpi 184 !! zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) & 185 !! & * rfact2 / fse3t(ji,jj,1) 186 !! zsidep (ji,jj) = 8.8 * 0.075 * dust(ji,jj) * rfact2 / & 187 !! & (fse3t(ji,jj,1) * 28.1 * rmtss) 188 !! END DO 189 !! END DO 190 191 ! sedimentation of detrital nitrogen : upstream scheme 192 ! ---------------------------------------------------- 193 ! 194 zwork(:,:,:) = 0.e0 ! initialisation of sinking variable 195 ! for detrital nitrogen sedimentation only - jpdet 196 zwork(:,:,1 ) = 0.e0 ! surface value set to zero 182 197 !! DO ji = 1, jpi 183 198 !! zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) & … … 218 233 IF (lk_iomput .AND. .NOT. ln_diatrc) THEN 219 234 IF( med_diag%DSED%dgsave ) THEN 220 zw2d(ji,jj) = zw2d(ji,jj) + ztra * fse3t(ji,jj,jk) * 86400 235 zw2d(ji,jj) = zw2d(ji,jj) + ztra * fse3t(ji,jj,jk) * 86400. 221 236 ENDIF 222 237 ELSE IF( ln_diatrc ) THEN 223 trc2d(ji,jj,8) = trc2d(ji,jj,8) + ztra * fse3t(ji,jj,jk) * 86400 238 trc2d(ji,jj,8) = trc2d(ji,jj,8) + ztra * fse3t(ji,jj,jk) * 86400. 224 239 ENDIF 225 240 … … 328 343 INTEGER :: numdust 329 344 INTEGER :: ierr 345 INTEGER :: jfld ! dummy loop arguments 330 346 INTEGER :: ios ! Local integer output status for namelist read 331 INTEGER :: isrow ! index for ORCA1 starting row347 INTEGER :: isrow ! index for ORCA1 starting row 332 348 REAL(wp) :: ztimes_dust 333 349 REAL(wp), DIMENSION(nbtimes) :: zsteps ! times records 334 350 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zdust 335 351 ! 336 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 337 TYPE(FLD_N) :: sn_dust ! informations about the fields to be read 352 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 353 TYPE(FLD_N), DIMENSION(1) :: slf_d ! array of namelist informations on the fields to read 354 TYPE(FLD_N) :: sn_dust ! informations about the fields to be read 338 355 ! 339 356 NAMELIST/nammedsbc/cn_dir, sn_dust, bdustfer … … 354 371 355 372 IF(lwp) THEN 356 WRITE(numout,*) ' '357 WRITE(numout,*) ' namelist : nammedsbc '358 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~ '359 WRITE(numout,*) ' dust input from the atmospherebdustfer = ', bdustfer373 WRITE(numout,*) ' ' 374 WRITE(numout,*) ' namelist : nammedsbc ' 375 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~ ' 376 WRITE(numout,*) ' dust input from the atmosphere bdustfer = ', bdustfer 360 377 END IF 361 378 … … 370 387 !!ALLOCATE( dust(jpi,jpj) ) ! allocation 371 388 ! 389 slf_d(1) = sn_dust ! store namelist information in an array 390 ! 372 391 ALLOCATE( sf_dust(1), STAT=ierr ) !* allocate and fill sf_sst (forcing structure) with sn_sst 373 392 IF( ierr > 0 ) CALL ctl_stop( 'STOP', 'trc_sed_medusa_sbc: unable to allocate sf_dust structure' ) 374 ! 375 CALL fld_fill( sf_dust, (/ sn_dust /), cn_dir, 'trc_sed_medusa_sbc', 'Atmospheric dust deposition', 'nammedsed' ) 376 ALLOCATE( sf_dust(1)%fnow(jpi,jpj,1) ) 377 IF( sn_dust%ln_tint ) ALLOCATE( sf_dust(1)%fdta(jpi,jpj,1,2) ) 378 ! 379 IF( Agrif_Root() ) THEN ! Only on the master grid 380 ! Get total input dust ; need to compute total atmospheric supply of Si in a year 381 CALL iom_open ( TRIM( sn_dust%clname ) , numdust ) 382 CALL iom_gettime( numdust, zsteps, kntime=ntimes_dust) ! get number of record in file 383 ALLOCATE( zdust(jpi,jpj,ntimes_dust) ) 384 DO jm = 1, ntimes_dust 385 CALL iom_get( numdust, jpdom_data, TRIM( sn_dust%clvar ), zdust(:,:,jm), jm ) 386 END DO 387 CALL iom_close( numdust ) 388 DEALLOCATE( zdust) 389 ENDIF 393 ALLOCATE( sf_dust(1)%fnow(jpi,jpj,1)) 394 IF( slf_d(1)%ln_tint ) ALLOCATE( sf_dust(1)%fdta(jpi,jpj,1,2) ) 395 ! 396 CALL fld_fill( sf_dust, slf_d, cn_dir, 'trc_sed_medusa_sbc', 'Atmospheric dust deposition', 'nammedsed' ) 390 397 ! 391 398 CALL fld_read( kt, 1, sf_dust ) 392 399 dust(:,:) = sf_dust(1)%fnow(:,:,1) 393 400 ! 401 ELSEIF (lk_oasis) THEN 402 dust = Dust_in_cpl 394 403 ELSE 395 404 dust(:,:) = 0.0 396 405 END IF 406 ! 407 zirondep(:,:) = 0.e0 !! Initialisation of deposition variables 408 zirondep(:,:) = dust(:,:) * Fe_dust_mratio / xfe_mass * 1.e6 * 86400. !! mmol-Fe/m2/d 397 409 ! 398 410 IF( nn_timing == 1 ) CALL timing_stop('trc_sed_medusa_sbc') -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r6745 r6829 414 414 call trc_rst_dia_stat(zn_dms_srf(:,:), 'DMS surf') 415 415 call trc_rst_dia_stat(zn_co2_flx(:,:), 'CO2 flux') 416 !! 417 IF(lwp) WRITE(numout,*) ' MEDUSA averaged prop. for dust and iron dep.' 418 call trc_rst_dia_stat(dust(:,:), 'Dust dep') 419 call trc_rst_dia_stat(zirondep(:,:), 'Iron dep') 416 420 !! 417 421 #endif
Note: See TracChangeset
for help on using the changeset viewer.