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 1254 – NEMO

Changeset 1254


Ignore:
Timestamp:
2009-01-13T10:58:39+01:00 (15 years ago)
Author:
cetlod
Message:

update parameter files to take into account the new C14 bomb tracer model, see ticket:298

Location:
trunk/NEMO/TOP_SRC
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/par_trc.F90

    r1146 r1254  
    1919   USE par_pisces    ! PISCES  model 
    2020   USE par_cfc       ! CFC 11 and 12 tracers 
     21   USE par_c14b      ! C14 bomb tracer  
    2122   USE par_my_trc    ! user defined passive tracers 
    2223 
     
    2627   ! Passive tracers : Total size 
    2728   ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays 
    28    INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_my_trc 
    29    INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_my_trc_2d 
    30    INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_my_trc_3d 
     29   INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_c14b     + jp_my_trc 
     30   INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  + jp_my_trc_2d 
     31   INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  + jp_my_trc_3d 
    3132   !                     ! total number of sms diagnostic arrays 
    32    INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd 
     33   INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd 
    3334    
    3435   !  1D configuration ("key_c1d") 
  • trunk/NEMO/TOP_SRC/trc.F90

    r1146 r1254  
    3939   !! passive tracers fields (before,now,after) 
    4040   !! -------------------------------------------------- 
    41    REAL(wp), PUBLIC ::   trai       !: initial total tracer 
    42    REAL(wp), PUBLIC ::   areatot    !: total volume  
     41   REAL(wp), PUBLIC ::   trai                         !: initial total tracer 
     42   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) :: cvol  !: masked grid volume  
     43   REAL(wp), PUBLIC ::   areatot                      !: total volume  
    4344 
    4445   REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trn   !: traceur concentration for actual time step 
     
    4950   !! passive tracers restart (input and output) 
    5051   !! ------------------------------------------   
    51    INTEGER , PUBLIC ::   ndttrc     !: frequency of step on passive tracers 
    52    INTEGER , PUBLIC ::   nittrc000  !: first time step of passive tracers model 
    53    LOGICAL , PUBLIC ::   lrsttr     !: boolean term for restart i/o for passive tracers (namelist) 
    54    INTEGER , PUBLIC ::   nutwrs     !: output FILE for passive tracers restart 
    55    INTEGER , PUBLIC ::   nutrst     !: logical unit for restart FILE for passive tracers 
    56    INTEGER , PUBLIC ::   nrsttr     !: control of the time step ( 0 or 1 ) for pass. tr. 
    57     
     52   INTEGER , PUBLIC  ::  ndttrc     !: frequency of step on passive tracers 
     53   INTEGER , PUBLIC  ::  nittrc000  !: first time step of passive tracers model 
     54   LOGICAL , PUBLIC  ::  lrsttr     !: boolean term for restart i/o for passive tracers (namelist) 
     55   LOGICAL , PUBLIC  ::  lrst_trc   !: logical to control the trc restart write 
     56   INTEGER , PUBLIC  ::  nutwrs     !: output FILE for passive tracers restart 
     57   INTEGER , PUBLIC  ::  nutrst     !: logical unit for restart FILE for passive tracers 
     58   INTEGER , PUBLIC  ::  nrsttr     !: control of the time step ( 0 or 1 ) for pass. tr. 
     59   CHARACTER(len=32) ::  cn_trcrst_in  !: suffix of pass. tracer restart name (input) 
     60   CHARACTER(len=32) ::  cn_trcrst_out !: suffix of pass. tracer restart name (output) 
    5861    
    5962   !! information for outputs 
  • trunk/NEMO/TOP_SRC/trcctl.F90

    r1152 r1254  
    1818   USE trcctl_pisces 
    1919   USE trcctl_cfc 
     20   USE trcctl_c14b 
    2021   USE trcctl_my_trc 
    2122 
     
    8586      ENDIF 
    8687 
     88      IF( lk_c14b    ) THEN   ;   CALL trc_ctl_c14b        ! C14 bomb   tracers 
     89      ELSE                    ;   IF(lwp) WRITE(numout,*) '          C14b not used' 
     90      ENDIF 
     91 
     92 
    8793      IF( lk_my_trc  ) THEN   ;   CALL trc_ctl_my_trc      ! MY_TRC  tracers 
    8894      ELSE                    ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used' 
  • trunk/NEMO/TOP_SRC/trcini.F90

    r1177 r1254  
    2121   USE trcctl 
    2222   USE trclec 
    23    USE trcini_cfc      ! CFC     initialisation 
    24    USE trcini_lobster  ! LOBSTER initialisation 
    25    USE trcini_pisces   ! PISCES  initialisation 
    26    USE trcini_my_trc   ! MY_TRC  initialisation 
     23   USE trcini_cfc      ! CFC      initialisation 
     24   USE trcini_lobster  ! LOBSTER  initialisation 
     25   USE trcini_pisces   ! PISCES   initialisation 
     26   USE trcini_c14b     ! C14 bomb initialisation 
     27   USE trcini_my_trc   ! MY_TRC   initialisation 
    2728   USE trcdta          !  
    2829   USE trdmld_trc_oce 
     
    6162      !!--------------------------------------------------------------------- 
    6263      INTEGER ::   jk, jn    ! dummy loop indices 
    63       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zbt   ! workspace: masked grid volume 
    6464      CHARACTER (len=25) :: charout 
    6565 
     
    7272      !                 ! masked grid volume 
    7373      DO jk = 1, jpk 
    74          zbt(:,:,jk) = e1t(:,:) * e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) 
     74         cvol(:,:,jk) = e1t(:,:) * e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) 
    7575      END DO 
    76 #if defined key_off_degrad 
    77       DO jk = 1, jpk 
    78          zbt(:,:,:) = zbt(:,:,:) * facvol(:,:,jk)      ! degrad option: reduction by facvol 
    79       ENDDO 
     76 
     77      ! total volume of the ocean 
     78#if ! defined key_off_degrad 
     79      areatot = SUM( cvol(:,:,:) ) 
     80#else 
     81      areatot = SUM( cvol(:,:,:) * facvol(:,:,:) ) ! degrad option: reduction by facvol 
    8082#endif 
    81  
    82       !                 ! total volume of the ocean 
    83       areatot = SUM( zbt(:,:,:) ) 
    8483      IF( lk_mpp )   CALL mpp_sum( areatot )     ! sum over the global domain   
    8584 
     
    9897      IF( lk_cfc     ) THEN   ;   CALL trc_ini_cfc          ! CFC     tracers 
    9998      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used' 
     99      ENDIF 
     100 
     101      IF( lk_c14b    ) THEN   ;   CALL trc_ini_c14b         ! C14 bomb  tracer 
     102      ELSE                    ;   IF(lwp) WRITE(numout,*) '          C14 not used' 
    100103      ENDIF 
    101104       
     
    126129      trai = 0.e0 
    127130      DO jn = 1, jptra 
    128          trai = trai + SUM( trn(:,:,:,jn) * zbt(:,:,:) ) 
     131#if ! defined key_off_degrad 
     132         trai = trai + SUM( trn(:,:,:,jn) * cvol(:,:,:) ) 
     133#else 
     134         trai = trai + SUM( trn(:,:,:,jn) * cvol(:,:,:) * facvol(:,:,:) ) ! degrad option: reduction by facvol 
     135#endif 
    129136      END DO       
    130137      IF( lk_mpp )   CALL mpp_sum( trai )     ! sum over the global domain   
  • trunk/NEMO/TOP_SRC/trclec.F90

    r1177 r1254  
    2525   USE trclsm_pisces     ! PISCES namelist 
    2626   USE trclsm_cfc        ! CFC SMS namelist 
     27   USE trclsm_c14b       ! C14 SMS namelist 
    2728   USE trclsm_my_trc     ! MY_TRC SMS namelist 
    2829   USE in_out_manager    ! I/O manager 
     
    6970 
    7071      !! 
    71       NAMELIST/namtoptrc/ ndttrc, nwritetrc, lrsttr, nrsttr, tracer 
     72      NAMELIST/namtoptrc/ ndttrc, nwritetrc, lrsttr, nrsttr, & 
     73                          cn_trcrst_in, cn_trcrst_out, tracer 
    7274#if defined key_trdmld_trc || defined key_trc_diatrd 
    7375      NAMELIST/namtoptrd/ ntrd_trc, nctls_trc, ucf_trc, & 
     
    8284 
    8385      clname = 'namelist_top' 
    84       CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    85          &         1, numout, .FALSE., 1 ) 
    86  
     86      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', 1, numout, .FALSE., 1 ) 
    8787 
    8888      ! Namelist nattrc (files) 
     
    9292      lrsttr    = .FALSE. 
    9393      nrsttr    =  0 
     94      cn_trcrst_in  = 'restart_trc' 
     95      cn_trcrst_out = 'restart_trc' 
    9496      DO jn = 1, jptra 
    9597         WRITE(ctrcnm(jn),'("TR_",I1)'           ) jn 
     
    123125         WRITE(numout,*) '    restart LOGICAL for passive tr. lrsttr             = ', lrsttr 
    124126         WRITE(numout,*) '    control of time step for p. tr. nrsttr             = ', nrsttr 
     127         WRITE(numout,*) ' ' 
    125128         DO jn = 1, jptra 
    126129            WRITE(numout,*) '   tracer nb             : ', jn  
     
    213216      ENDIF 
    214217 
     218      IF( lk_c14b     ) THEN   ;   CALL trc_lsm_c14b         ! C14 bomb     tracers 
     219      ELSE                    ;   IF(lwp) WRITE(numout,*) '          C14 not used' 
     220      ENDIF 
     221 
    215222      IF( lk_my_trc  ) THEN   ;   CALL trc_lsm_my_trc      ! MY_TRC  tracers 
    216223      ELSE                    ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used' 
  • trunk/NEMO/TOP_SRC/trcrst.F90

    r1177 r1254  
    1919   USE sms_pisces          ! PISCES variables 
    2020   USE trcsms_cfc          ! CFC variables 
     21   USE trcsms_c14b         ! C14 variables 
     22   USE trcsms_my_trc       ! MY_TRC variables 
    2123   USE trctrp_lec    
    2224   USE lib_mpp 
     
    3032   PUBLIC   trc_rst_wri       ! called by ??? 
    3133    
    32    LOGICAL, PUBLIC ::   lrst_trc         !: logical to control the trc restart write  
    3334   INTEGER, PUBLIC ::   numrtr, numrtw   !: logical unit for trc restart (read and write) 
    3435 
     
    7374         ! create the file 
    7475         IF(lwp) WRITE(numout,*) 
    75          clname = TRIM(cexper)//"_"//TRIM(ADJUSTL(clkt))//"_restart_trc" 
     76         clname = TRIM(cexper)//"_"//TRIM(ADJUSTL(clkt))//"_"//TRIM(cn_trcrst_out) 
    7677         IF(lwp) WRITE(numout,*) '             open trc restart.output NetCDF file: '//clname 
    7778         CALL iom_open( clname, numrtw, ldwrt = .TRUE., kiolib = jprstlib ) 
     
    122123      END SELECT 
    123124 
    124       CALL iom_open( 'restart_trc', numrtr, kiolib = jprstlib ) 
     125      CALL iom_open( cn_trcrst_in, numrtr, kiolib = jprstlib ) 
    125126 
    126127      CALL iom_get( numrtr, 'kt'   , zkt    ) 
     
    165166#if defined key_cfc 
    166167      DO jn = jp_cfc0, jp_cfc1 
    167          CALL iom_get( numrtr, jpdom_autoglo, 'qint'//ctrcnm(jn), qint(:,:,jn) )  
    168          CALL iom_get( numrtr, jpdom_autoglo, 'qtr'//ctrcnm(jn) , qtr( :,:,jn) )  
    169       END DO 
    170 #endif 
     168         CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jn) )  
     169      END DO 
     170#endif 
     171 
     172#if defined key_c14b 
     173      CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn) , qint_c14(:,:) )  
     174#endif 
     175 
     176#if defined key_my_trc 
     177#endif 
     178 
    171179 
    172180      CALL iom_close( numrtr ) 
     
    222230#if defined key_cfc 
    223231      DO jn = jp_cfc0, jp_cfc1 
    224          CALL iom_rstput( kt, nitrst, numrtw, 'qint'//ctrcnm(jn), qint(:,:,jn) ) 
    225          CALL iom_rstput( kt, nitrst, numrtw, 'qtr'//ctrcnm(jn) , qtr (:,:,jn) ) 
    226       END DO 
    227 #endif 
     232         CALL iom_rstput( kt, nitrst, numrtw, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jn) ) 
     233      END DO 
     234#endif 
     235 
     236#if defined key_c14b 
     237      CALL iom_rstput( kt, nitrst, numrtw, 'qint_'//ctrcnm(jn), qint_c14(:,:) ) 
     238#endif 
     239 
     240#if defined key_my_trc 
     241#endif 
     242 
    228243 
    229244       IF( kt == nitrst ) THEN 
     
    252267         siomean = 91.51      ! mean value of silicate 
    253268       
    254       REAL(wp) ::   ztrasum 
     269      REAL(wp) ::   zvol, ztrasum 
    255270      REAL(wp) ::   caralk, bicarb, co3 
    256271 
     
    266281            DO jj = 1, jpj 
    267282               DO ji = 1, jpi 
    268                   ztrasum = ztrasum + trn(ji,jj,jk,jptal) * tmask(ji,jj,jk) * tmask_i(ji,jj)  & 
     283                  zvol = cvol(ji,jj,jk) 
    269284#  if defined key_off_degrad 
    270                      &              * facvol(ji,jj,jk)   & 
     285                  zvol = zvol * facvol(ji,jj,jk) 
    271286#  endif 
    272                      &              * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
     287                  ztrasum = ztrasum + trn(ji,jj,jk,jptal) * zvol 
    273288               END DO 
    274289            END DO 
     
    285300            DO jj = 1, jpj 
    286301               DO ji = 1, jpi 
    287                   ztrasum = ztrasum + trn(ji,jj,jk,jppo4) * tmask(ji,jj,jk) * tmask_i(ji,jj)  & 
     302                  zvol = cvol(ji,jj,jk) 
    288303#  if defined key_off_degrad 
    289                      &              * facvol(ji,jj,jk)   & 
     304                  zvol = zvol * facvol(ji,jj,jk) 
    290305#  endif 
    291                      &              * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
     306                  ztrasum = ztrasum + trn(ji,jj,jk,jppo4) * zvol 
    292307               END DO 
    293308            END DO 
     
    304319            DO jj = 1, jpj 
    305320               DO ji = 1, jpi 
    306                   ztrasum = ztrasum + trn(ji,jj,jk,jpno3) * tmask(ji,jj,jk) * tmask_i(ji,jj)  & 
     321                  zvol = cvol(ji,jj,jk) 
    307322#  if defined key_off_degrad 
    308                      &              * facvol(ji,jj,jk)   & 
     323                  zvol = zvol * facvol(ji,jj,jk) 
    309324#  endif 
    310                      &              * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
     325                  ztrasum = ztrasum + trn(ji,jj,jk,jpno3) * zvol 
    311326               END DO 
    312327            END DO 
     
    323338            DO jj = 1, jpj 
    324339               DO ji = 1, jpi 
    325                   ztrasum = ztrasum + trn(ji,jj,jk,jpsil) * tmask(ji,jj,jk) * tmask_i(ji,jj)   & 
     340                  zvol = cvol(ji,jj,jk) 
    326341#  if defined key_off_degrad 
    327                      &              * facvol(ji,jj,jk)   & 
     342                  zvol = zvol * facvol(ji,jj,jk) 
    328343#  endif 
    329                      &              * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
     344                  ztrasum = ztrasum + trn(ji,jj,jk,jpsil) * zvol 
    330345               END DO 
    331346            END DO 
     
    374389      INTEGER  :: ji, jj, jk, jn 
    375390      REAL(wp) :: zdiag_var, zdiag_varmin, zdiag_varmax, zdiag_tot 
    376       REAL(wp) :: zder 
     391      REAL(wp) :: zder, zvol 
    377392      !!---------------------------------------------------------------------- 
    378393 
     
    392407            DO jj = 1, jpj 
    393408               DO jk = 1,jpk 
    394                   zdiag_var = zdiag_var + trn(ji,jj,jk,jn) * tmask(ji,jj,jk) * tmask_i(ji,jj)   & 
    395 #if defined key_off_degrad 
    396                      &   * facvol(ji,jj,jk)   & 
    397 #endif 
    398                      &   * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
     409                  zvol = cvol(ji,jj,jk) 
     410#  if defined key_off_degrad 
     411                  zvol = zvol * facvol(ji,jj,jk) 
     412#  endif 
     413                  zdiag_var = zdiag_var + trn(ji,jj,jk,jn) * zvol 
    399414               END DO 
    400415            END DO 
  • trunk/NEMO/TOP_SRC/trcsms.F90

    r1152 r1254  
    1717   USE trcsms_lobster     ! LOBSTER bio-model 
    1818   USE trcsms_pisces      ! PISCES biogeo-model 
    19    USE trcsms_cfc         ! CFC 11 & 12  
     19   USE trcsms_cfc         ! CFC 11 & 12 
     20   USE trcsms_c14b        ! C14b tracer  
    2021   USE trcsms_my_trc      ! MY_TRC  tracers 
    2122   USE prtctl_trc         ! Print control for debbuging 
     
    5253      IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES  
    5354      IF( lk_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC 
     55      IF( lk_c14b    )   CALL trc_sms_c14b   ( kt )    ! surface fluxes of C14 
    5456      IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers 
    5557 
Note: See TracChangeset for help on using the changeset viewer.