New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 6829 for branches/NERC – NEMO

Changeset 6829 for branches/NERC


Ignore:
Timestamp:
2016-08-01T18:30:32+02:00 (8 years ago)
Author:
jpalmier
Message:

JPALM -- 01-08-2016 -- debug dust dep forcing reading : allowed non climatological forcing

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  
    133133               DO ji = 2,jpim1 
    134134             
    135                  IF (trn(ji,jj,jk,jn) > 0.0) THEN 
     135                 !! IF (trn(ji,jj,jk,jn) > 0.0) THEN 
    136136                    WTEMP = trn(ji,jj,jk,jn) * (1. - FDEC ) 
    137137                    tra(ji,jj,jk,jn) = (tra(ji,jj,jk,jn) - WTEMP/rdt ) * & 
    138138                                     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  
    143140              ENDDO  
    144141            ENDDO 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90

    r6810 r6829  
    2323   !! AXY (10/02/09) 
    2424   USE iom 
    25    !! 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 
     25   !! 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 
    2828   USE lbclnk 
    29    USE prtctl_trc      ! Print control for debbuging 
     29   USE prtctl_trc                       ! Print control for debbuging 
    3030   !! JPALM (27-06-2016): add lk_oasis for CO2 and DMS coupling with atm 
    3131   USE sbc_oce, ONLY: lk_oasis 
    3232   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 
    3337 
    3438 
     
    4953      sedfeinput = 1.e-9_wp  ,         & 
    5054      dustsolub  = 0.014_wp 
    51  
    52    INTEGER , PARAMETER :: nbtimes = 365  !: maximum number of times record in a file 
    53    INTEGER  :: ntimes_dust               ! number of time steps in a file 
     55   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 
    5458 
    5559   INTEGER ::                          & 
     
    98102 
    99103      !! AXY (10/02/09) 
    100       !! REAL(wp), DIMENSION(jpi,jpj)     ::   zsidep    !! Si deposition 
    101       !! REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zirondep  !! Fe deposition 
    102104      REAL(wp) ::   rfact2 
    103105 
     
    106108      !! JPALM - 26-11-2015 -add iom_use for diagnostic 
    107109       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    108       !! JPALM -- 20-07-2016 -- 
    109       REAL(wp), PARAMETER :: Fe_dust_mratio = 0.035   !! Fe:dust mass ratio = 0.035 
    110110      !!--------------------------------------------------------------------- 
    111111      !! 
     
    150150      !! IF (kt == nittrc000 ) CALL trc_sed_medusa_sbc  
    151151 
    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 
    158157      IF( bdustfer ) THEN 
    159158         IF( kt == nittrc000 .OR. ( kt /= nittrc000 .AND. ntimes_dust > 1 ) ) THEN 
     
    167166      ENDIF 
    168167      !! 
    169  
    170168      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 
    179180      !! ------------------------------------- 
    180181      !! 
    181182      !! 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 
    182197      !!    DO ji = 1, jpi 
    183198      !!       zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) & 
     
    218233               IF (lk_iomput .AND. .NOT. ln_diatrc) THEN 
    219234                     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. 
    221236                      ENDIF    
    222237               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. 
    224239               ENDIF     
    225240                 
     
    328343      INTEGER  :: numdust 
    329344      INTEGER  :: ierr  
     345      INTEGER  :: jfld                ! dummy loop arguments 
    330346      INTEGER  :: ios                 ! Local integer output status for namelist read 
    331       INTEGER  :: isrow             ! index for ORCA1 starting row 
     347      INTEGER  :: isrow               ! index for ORCA1 starting row 
    332348      REAL(wp) :: ztimes_dust 
    333349      REAL(wp), DIMENSION(nbtimes) :: zsteps                 ! times records 
    334350      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zdust 
    335351      ! 
    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 
    338355      ! 
    339356      NAMELIST/nammedsbc/cn_dir, sn_dust, bdustfer  
     
    354371 
    355372      IF(lwp) THEN 
    356          WRITE(numout,*) ' ' 
    357          WRITE(numout,*) ' namelist : nammedsbc ' 
    358          WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~ ' 
    359          WRITE(numout,*) '    dust input from the atmosphere          bdustfer     = ', bdustfer 
     373          WRITE(numout,*) ' ' 
     374          WRITE(numout,*) ' namelist : nammedsbc ' 
     375          WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~ ' 
     376          WRITE(numout,*) '    dust input from the atmosphere bdustfer     = ', bdustfer 
    360377      END IF 
    361378 
     
    370387         !!ALLOCATE( dust(jpi,jpj) )    ! allocation 
    371388         ! 
     389         slf_d(1) = sn_dust                          ! store namelist information in an array 
     390         ! 
    372391         ALLOCATE( sf_dust(1), STAT=ierr )           !* allocate and fill sf_sst (forcing structure) with sn_sst 
    373392         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' ) 
    390397         ! 
    391398         CALL fld_read( kt, 1, sf_dust ) 
    392399         dust(:,:) = sf_dust(1)%fnow(:,:,1) 
    393400         ! 
     401      ELSEIF (lk_oasis) THEN 
     402         dust = Dust_in_cpl 
    394403      ELSE 
    395404         dust(:,:) = 0.0 
    396405      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 
    397409      ! 
    398410      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  
    414414      call trc_rst_dia_stat(zn_dms_srf(:,:), 'DMS surf') 
    415415      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') 
    416420      !!  
    417421#endif 
Note: See TracChangeset for help on using the changeset viewer.