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 2819 for branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90 – NEMO

Ignore:
Timestamp:
2011-08-09T10:29:53+02:00 (13 years ago)
Author:
cetlod
Message:

Improvment of branch dev_r2787_LOCEAN3_TRA_TRP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90

    r2715 r2819  
    4343 
    4444      ! 
    45       IF( lk_dtatrc .AND. ln_pisclo ) CALL pis_dmp_clo  ! restoring of nutrients on close seas 
     45      IF( ln_trcdta .AND. ln_pisclo ) CALL pis_dmp_clo  ! restoring of nutrients on close seas 
    4646      IF( ln_pisdmp )                 CALL pis_dmp_ini  ! relaxation of some tracers 
    4747      ! 
     
    5353         CALL iom_get( knum, jpdom_autoglo, 'PH' , hi(:,:,:)  ) 
    5454      ELSE 
     55         hi(:,:,:) = 1.e-9  
    5556         ! Set PH from  total alkalinity, borat (???), akb3 (???) and ak23 (???) 
    5657         ! -------------------------------------------------------- 
    57          DO jk = 1, jpk 
    58             DO jj = 1, jpj 
    59                DO ji = 1, jpi 
    60                   ztmas   = tmask(ji,jj,jk) 
    61                   ztmas1  = 1. - tmask(ji,jj,jk) 
    62                   zcaralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  ) 
    63                   zco3    = ( zcaralk - trn(ji,jj,jk,jpdic) ) * ztmas + 0.5e-3 * ztmas1 
    64                   zbicarb = ( 2. * trn(ji,jj,jk,jpdic) - zcaralk ) 
    65                   hi(ji,jj,jk) = ( ak23(ji,jj,jk) * zbicarb / zco3 ) * ztmas + 1.e-9 * ztmas1 
    66                END DO 
    67             END DO 
    68          END DO 
     58      !   DO jk = 1, jpk 
     59      !      DO jj = 1, jpj 
     60      !         DO ji = 1, jpi 
     61      !            ztmas   = tmask(ji,jj,jk) 
     62      !            ztmas1  = 1. - tmask(ji,jj,jk) 
     63      !            zcaralk = trn(ji,jj,jk,jptal) - borat(ji,jj,jk) / (  1. + 1.E-8 / ( rtrn + akb3(ji,jj,jk) )  ) 
     64      !            zco3    = ( zcaralk - trn(ji,jj,jk,jpdic) ) * ztmas + 0.5e-3 * ztmas1 
     65      !            zbicarb = ( 2. * trn(ji,jj,jk,jpdic) - zcaralk ) 
     66      !           hi(ji,jj,jk) = ( ak23(ji,jj,jk) * zbicarb / zco3 ) * ztmas + 1.e-9 * ztmas1 
     67      !         END DO 
     68      !      END DO 
     69      !   END DO 
    6970      ENDIF 
    7071      CALL iom_get( knum, jpdom_autoglo, 'Silicalim', xksi(:,:) )  
     
    120121 
    121122         zarea   = 1. / areatot * 1.e6 
    122 # if defined key_degrad 
    123          zalksum = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) * facvol(:,:,:) ) * zarea 
    124          zpo4sum = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) * facvol(:,:,:) ) * zarea / 122. 
    125          zno3sum = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) * facvol(:,:,:) ) * zarea / 7.6 
    126          zsilsum = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) * facvol(:,:,:) ) * zarea 
    127 # else 
    128          zalksum = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:)  ) * zarea 
    129          zpo4sum = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:)  ) * zarea / 122. 
    130          zno3sum = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:)  ) * zarea / 7.6 
    131          zsilsum = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:)  ) * zarea 
    132 # endif 
     123         IF( lk_degrad ) THEN 
     124            zalksum = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) * facvol(:,:,:) ) * zarea 
     125            zpo4sum = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) * facvol(:,:,:) ) * zarea / 122. 
     126            zno3sum = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) * facvol(:,:,:) ) * zarea / 7.6 
     127            zsilsum = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) * facvol(:,:,:) ) * zarea 
     128         ELSE 
     129            zalksum = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:)  ) * zarea 
     130            zpo4sum = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:)  ) * zarea / 122. 
     131            zno3sum = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:)  ) * zarea / 7.6 
     132            zsilsum = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:)  ) * zarea 
     133         ENDIF 
    133134 
    134135         IF(lwp) WRITE(numout,*) '       TALK mean : ', zalksum 
     
    168169      !!                ictsi2(), ictsj2() : north-east Closed sea limits (i,j) 
    169170      !!---------------------------------------------------------------------- 
    170       INTEGER, PARAMETER           ::   npicts   = 4       !: number of closed sea 
    171       INTEGER, DIMENSION(npicts)   ::   ictsi1, ictsj1     !: south-west closed sea limits (i,j) 
    172       INTEGER, DIMENSION(npicts)   ::   ictsi2, ictsj2     !: north-east closed sea limits (i,j) 
    173       INTEGER :: ji, jj, jk, jn, jc            ! dummy loop indices 
     171      INTEGER, PARAMETER           ::   npicts   = 4        ! number of closed sea 
     172      INTEGER, DIMENSION(npicts)   ::   ictsi1, ictsj1      ! south-west closed sea limits (i,j) 
     173      INTEGER, DIMENSION(npicts)   ::   ictsi2, ictsj2      ! north-east closed sea limits (i,j) 
     174      INTEGER :: ji, jj, jk, jn, jl, jc                     ! dummy loop indices 
     175      INTEGER :: ierr                                       ! local integer 
     176      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::  ztrcdta ! 4D  workspace 
    174177      !!---------------------------------------------------------------------- 
    175178 
     
    243246      END DO 
    244247 
    245 #if defined key_dtatrc 
    246248      ! Restore close seas values to initial data 
    247       CALL trc_dta( nit000 )  
    248       DO jn = 1, jptra 
    249          IF( lutini(jn) ) THEN 
    250             DO jc = 1, npicts 
    251                DO jk = 1, jpkm1 
    252                   DO jj = ictsj1(jc), ictsj2(jc) 
    253                      DO ji = ictsi1(jc), ictsi2(jc) 
    254                         trn(ji,jj,jk,jn) = trdta(ji,jj,jk,jn) * tmask(ji,jj,jk)  
    255                         trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
    256                      ENDDO 
    257                   ENDDO 
    258                ENDDO 
    259             ENDDO 
    260          ENDIF 
    261       ENDDO 
    262 #endif 
    263    ! 
     249      IF( nb_trcdta > 0 ) THEN  ! Initialisation of tracer from a file that may also be used for damping 
     250        ALLOCATE( ztrcdta(jpi,jpj,jpk,nb_trcdta), STAT=ierr ) 
     251        IF( ierr > 0 ) THEN 
     252           CALL ctl_stop( 'trc_ini: unable to allocate ztrcdta array' )   ;   RETURN 
     253        ENDIF 
     254        ! 
     255        CALL trc_dta( nit000, ztrcdta )   ! read tracer data at nit000 
     256        ! 
     257        DO jn = 1, jptra 
     258           IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file 
     259              jl = n_trc_index(jn) 
     260              DO jc = 1, npicts 
     261                 DO jk = 1, jpkm1 
     262                    DO jj = ictsj1(jc), ictsj2(jc) 
     263                       DO ji = ictsi1(jc), ictsi2(jc) 
     264                          trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk,jl) * tmask(ji,jj,jk)  
     265                          trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
     266                       ENDDO 
     267                    ENDDO 
     268                 ENDDO 
     269              ENDDO 
     270           ENDIF 
     271        ENDDO 
     272        DEALLOCATE( ztrcdta ) 
     273      ENDIF 
     274      ! 
    264275   END SUBROUTINE pis_dmp_clo 
    265276 
Note: See TracChangeset for help on using the changeset viewer.