Changeset 2819 for branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90
- Timestamp:
- 2011-08-09T10:29:53+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90
r2715 r2819 43 43 44 44 ! 45 IF( l k_dtatrc.AND. ln_pisclo ) CALL pis_dmp_clo ! restoring of nutrients on close seas45 IF( ln_trcdta .AND. ln_pisclo ) CALL pis_dmp_clo ! restoring of nutrients on close seas 46 46 IF( ln_pisdmp ) CALL pis_dmp_ini ! relaxation of some tracers 47 47 ! … … 53 53 CALL iom_get( knum, jpdom_autoglo, 'PH' , hi(:,:,:) ) 54 54 ELSE 55 hi(:,:,:) = 1.e-9 55 56 ! Set PH from total alkalinity, borat (???), akb3 (???) and ak23 (???) 56 57 ! -------------------------------------------------------- 57 DO jk = 1, jpk58 DO jj = 1, jpj59 DO ji = 1, jpi60 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 * ztmas164 zbicarb = ( 2. * trn(ji,jj,jk,jpdic) - zcaralk )65 66 END DO67 END DO68 END DO58 ! 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 69 70 ENDIF 70 71 CALL iom_get( knum, jpdom_autoglo, 'Silicalim', xksi(:,:) ) … … 120 121 121 122 zarea = 1. / areatot * 1.e6 122 # if defined key_degrad 123 zalksum = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) * facvol(:,:,:) ) * zarea124 zpo4sum = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) * facvol(:,:,:) ) * zarea / 122.125 zno3sum = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) * facvol(:,:,:) ) * zarea / 7.6126 zsilsum = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) * facvol(:,:,:) ) * zarea127 # else 128 zalksum = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea129 zpo4sum = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea / 122.130 zno3sum = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea / 7.6131 zsilsum = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea132 # 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 133 134 134 135 IF(lwp) WRITE(numout,*) ' TALK mean : ', zalksum … … 168 169 !! ictsi2(), ictsj2() : north-east Closed sea limits (i,j) 169 170 !!---------------------------------------------------------------------- 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 174 177 !!---------------------------------------------------------------------- 175 178 … … 243 246 END DO 244 247 245 #if defined key_dtatrc246 248 ! 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 ! 264 275 END SUBROUTINE pis_dmp_clo 265 276
Note: See TracChangeset
for help on using the changeset viewer.