Changeset 616 for trunk/NEMO/TOP_SRC
- Timestamp:
- 2007-02-21T13:59:08+01:00 (17 years ago)
- Location:
- trunk/NEMO/TOP_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/TRP/trcstp.F90
r439 r616 52 52 IF( MOD( kt , ndttrc ) /= 0 ) RETURN 53 53 54 ! tracers: sink and source 54 CALL trc_rst_opn( kt ) ! Open tracer restart file 55 56 ! tracers: sink and source 55 57 IF(ln_ctl) THEN 56 58 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 57 59 CALL prt_ctl_trc_info(charout) 58 60 ENDIF 59 60 61 61 62 CALL trc_sms( kt ) … … 76 77 ENDIF 77 78 78 CALL trc_wri( kt ) ! outputs79 IF( lrst_trc ) CALL trc_rst_wri( kt ) ! write tracer restart file 79 80 80 81 CALL trc_dia( kt, kindic ) ! diagnostics -
trunk/NEMO/TOP_SRC/trcrst.F90
r561 r616 20 20 USE trctrp_lec 21 21 USE lib_mpp 22 USE iom 22 23 23 24 IMPLICIT NONE … … 25 26 26 27 !! * Accessibility 27 PUBLIC trc_rst 28 PUBLIC trc_wri 28 PUBLIC trc_rst_opn 29 PUBLIC trc_rst_read 30 PUBLIC trc_rst_wri 29 31 30 32 !! * Module variables 31 CHARACTER (len=48) :: & 32 trestart = 'initial.trc.nc' ! restart file name 33 LOGICAL, PUBLIC :: lrst_trc !: logical to control the trc restart write 34 INTEGER, PUBLIC :: numrtr, numrtw !: logical unit for trc restart (read and write) 35 33 36 34 37 !! * Substitutions … … 36 39 37 40 CONTAINS 38 39 #if defined key_fdir 40 !!---------------------------------------------------------------------- 41 !! 'key_fdir' direct access file 42 !!---------------------------------------------------------------------- 43 #include "trcrst_fdir.h90" 44 45 #else 46 47 SUBROUTINE trc_rst 41 42 SUBROUTINE trc_rst_opn( kt ) 43 !!---------------------------------------------------------------------- 44 !! *** trc_rst_opn *** 45 !! 46 !! ** purpose : output of sea-trc variable in a netcdf file 47 !!---------------------------------------------------------------------- 48 INTEGER, INTENT(in) :: kt ! number of iteration 49 ! 50 CHARACTER(LEN=20) :: clkt ! ocean time-step define as a character 51 CHARACTER(LEN=50) :: clname ! trc output restart file name 52 !!---------------------------------------------------------------------- 53 ! 54 55 IF( kt == nit000 ) THEN 56 lrst_trc = .FALSE. 57 #if defined key_off_tra 58 nitrst = nitend ! in online version, already done in rst_opn routine defined in restart.F90 module 59 #endif 60 ENDIF 61 62 IF( kt == nitrst - ndttrc .OR. nitend - nit000 + 1 < 2 * ndttrc ) THEN 63 ! beware if model runs less than 2*ndttrc time step 64 ! beware of the format used to write kt (default is i8.8, that should be large enough) 65 IF( nitrst > 1.0e9 ) THEN 66 WRITE(clkt,*) nitrst 67 ELSE 68 WRITE(clkt,'(i8.8)') nitrst 69 ENDIF 70 ! create the file 71 IF(lwp) WRITE(numout,*) 72 clname = TRIM(cexper)//"_"//TRIM(ADJUSTL(clkt))//"_restart_trc" 73 IF(lwp) WRITE(numout,*) ' open trc restart.output NetCDF file: '//clname 74 CALL iom_open( clname, numrtw, ldwrt = .TRUE., kiolib = jprstlib ) 75 lrst_trc = .TRUE. 76 ENDIF 77 ! 78 END SUBROUTINE trc_rst_opn 79 80 81 SUBROUTINE trc_rst_read 48 82 !!=========================================================================================== 49 83 !! 50 !! ROUTINE trc_rst 51 !! *******************84 !! ROUTINE trc_rst_read 85 !! ******************* 52 86 !! 53 87 !! PURPOSE : … … 70 104 !! 05-03 (O. Aumont and A. El Moussaoui) F90 71 105 !!------------------------------------------------------------------------ 72 !! * Modules used 73 USE iom 74 75 76 !! local declarations 77 !! ================== 78 79 INTEGER :: & 80 ji, jj, jk, jn 81 INTEGER :: & 82 inum, iarak0 ! temporary logical unit 83 REAL(wp), DIMENSION(1, 1, 3) :: zinfo 84 85 CHARACTER (len=32) :: clname1,clname2,clname 86 REAL(wp) :: caralk,bicarb 106 INTEGER :: ji, jj, jk, jn 107 INTEGER :: iarak0 108 REAL(wp) :: zkt, zarak0 109 REAL(wp) :: caralk, bicarb, co3 87 110 88 111 #if defined key_trc_pisces 89 112 # if ! defined key_cfg_1d && ( defined key_orca_r4 || defined key_orca_r2 || defined key_orca_r05 || defined key_orca_r025 ) 90 REAL(wp) :: zareatot,ztrasum113 REAL(wp) :: ztrasum 91 114 # endif 92 115 #endif … … 110 133 IF(lwp) WRITE(numout,*) ' passive tracer' 111 134 IF(lwp) WRITE(numout,*) ' the present run :' 112 IF(lwp) WRITE(numout,*) ' number job is : ',no113 135 IF(lwp) WRITE(numout,*) ' with the time nit000 : ',nit000 114 136 IF(lwp) THEN … … 137 159 END SELECT 138 160 139 140 141 CALL iom_open ( 'restart.trc', inum ) 142 143 CALL iom_get ( inum, jpdom_unknown, 'info', zinfo ) 161 CALL iom_open ( 'restart.trc', numrtr, kiolib = jprstlib ) 162 163 CALL iom_get( numrtr, 'kt' , zkt ) 164 CALL iom_get( numrtr, 'arak0', zarak0 ) 144 165 145 166 IF(lwp) WRITE(numout,*) 146 167 IF(lwp) WRITE(numout,*) ' Info on the restart file read : ' 147 IF(lwp) WRITE(numout,*) ' job number : ', NINT( zinfo(1, 1, 1) ) 148 IF(lwp) WRITE(numout,*) ' time-step : ', NINT( zinfo(1, 1, 2) ) 149 IF(lwp) WRITE(numout,*) ' arakawa option : ', NINT( zinfo(1, 1, 3) ) 168 IF(lwp) WRITE(numout,*) ' time-step : ', NINT( zkt ) 169 IF(lwp) WRITE(numout,*) ' arakawa option : ', NINT( zarak0 ) 150 170 IF(lwp) WRITE(numout,*) 151 171 … … 154 174 !! ------------------- 155 175 156 IF( nittrc000 - NINT( z info( 1, 1, 2 )) /= 1 .AND. nrsttr /= 0 ) &176 IF( nittrc000 - NINT( zkt ) /= 1 .AND. nrsttr /= 0 ) & 157 177 & CALL ctl_stop( ' ===>>>> : problem with nit000 for the restart', & 158 178 & ' verify the restart file or rerun with nrstdt = 0 (namelist)' ) … … 161 181 !! ------------------------ 162 182 163 IF( iarak0 /= NINT( z info(1, 1, 3 )) ) &183 IF( iarak0 /= NINT( zarak0 ) ) & 164 184 & CALL ctl_stop( ' ===>>>> : problem with advection scheme', & 165 185 & ' it must be the same type for both restart and previous run', & … … 171 191 172 192 DO jn = 1, jptra 173 clname = 'TRN'//ctrcnm(jn) 174 CALL iom_get( inum, jpdom_local, clname, trn(:,:,:,jn) ) 193 CALL iom_get( numrtr, jpdom_local, 'TRN'//ctrcnm(jn), trn(:,:,:,jn) ) 175 194 END DO 176 195 177 196 DO jn = 1, jptra 178 clname = 'TRB'//ctrcnm(jn) 179 CALL iom_get( inum, jpdom_local, clname, trb(:,:,:,jn) ) 197 CALL iom_get( numrtr, jpdom_local, 'TRB'//ctrcnm(jn), trb(:,:,:,jn) ) 180 198 END DO 181 199 182 200 #if defined key_trc_lobster1 183 clname = 'SEDB'//ctrcnm(jpdet) 184 clname1 = 'SEDN'//ctrcnm(jpdet) 185 CALL iom_get( inum, jpdom_local, clname , sedpocb(:,:) ) 186 CALL iom_get( inum, jpdom_local, clname1, sedpocn(:,:) ) 201 CALL iom_get( numrtr, jpdom_local, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:) ) 202 CALL iom_get( numrtr, jpdom_local, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:) ) 187 203 188 204 #elif defined key_trc_pisces 189 clname = 'Silicalim' 190 CALL iom_get( inum, jpdom_local, clname, xksi(:,:) ) 205 CALL iom_get( numrtr, jpdom_local, 'Silicalim', xksi(:,:) ) 191 206 xksimax = xksi 192 207 193 clname = 'SED'//ctrcnm(jppoc) 194 clname1 = 'SED'//ctrcnm(jpcal) 195 clname2 = 'SED'//ctrcnm(jpsil) 196 197 CALL iom_get( inum, jpdom_local, clname , sedpoc(:,:) ) 198 CALL iom_get( inum, jpdom_local, clname1, sedcal(:,:) ) 199 CALL iom_get( inum, jpdom_local, clname2, sedsil(:,:) ) 208 CALL iom_get( numrtr, jpdom_local, 'SED'//ctrcnm(jppoc), sedpoc(:,:) ) 209 CALL iom_get( numrtr, jpdom_local, 'SED'//ctrcnm(jpcal), sedcal(:,:) ) 210 CALL iom_get( numrtr, jpdom_local, 'SED'//ctrcnm(jpsil), sedsil(:,:) ) 200 211 201 212 #elif defined key_cfc 202 clname = 'qint'203 clname1 = 'qtr'204 213 DO jn = 1, jptra 205 CALL iom_get( inum, jpdom_unknown, clname, qint(:,:,jn), jn ) 206 CALL iom_get( inum, jpdom_unknown, clname1, qtr (:,:,jn), jn ) 207 ENDDO 208 #endif 214 CALL iom_get( numrtr, jpdom_local, 'qint'//ctrcnm(jn),qint(:,:,jn)) 215 END DO 216 DO jn = 1, jptra 217 CALL iom_get( numrtr, jpdom_local, 'qtr'//ctrcnm(jn) ,qtr( :,:,jn)) 218 END DO 219 #endif 220 209 221 210 222 #if defined key_trc_pisces 211 223 212 224 #if ! defined key_cfg_1d && ( defined key_orca_r4 || defined key_orca_r2 || defined key_orca_r05 || defined key_orca_r025 ) 213 214 zareatot = 0.215 DO jk = 1, jpk216 DO jj = 1, jpj217 DO ji = 1, jpi218 zareatot = zareatot + tmask(ji,jj,jk) * tmask_i(ji,jj) &219 #if defined key_off_degrad220 & * facvol(ji,jj,jk) &221 #endif222 223 & * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)224 END DO225 END DO226 END DO227 228 IF( lk_mpp ) THEN229 CALL mpp_sum( zareatot ) ! sum over the global domain230 END IF231 225 232 226 ztrasum = 0. … … 234 228 DO jj = 1, jpj 235 229 DO ji = 1, jpi 236 ztrasum = ztrasum + trn(ji,jj,jk,jptal) * tmask(ji,jj,jk) * tmask_i(ji,jj) 230 ztrasum = ztrasum + trn(ji,jj,jk,jptal) * tmask(ji,jj,jk) * tmask_i(ji,jj) & 237 231 #if defined key_off_degrad 238 232 & * facvol(ji,jj,jk) & … … 248 242 END IF 249 243 250 WRITE(0,*) 'TALK moyen ', ztrasum/ zareatot*1E6251 ztrasum = ztrasum/ zareatot*1E6244 WRITE(0,*) 'TALK moyen ', ztrasum/areatot*1E6 245 ztrasum = ztrasum/areatot*1E6 252 246 trn(:,:,:,jptal) = trn(:,:,:,jptal)*2391./ztrasum 253 247 … … 271 265 272 266 273 WRITE(0,*) 'PO4 moyen ', ztrasum/ zareatot*1E6/122.274 ztrasum = ztrasum/ zareatot*1E6/122.267 WRITE(0,*) 'PO4 moyen ', ztrasum/areatot*1E6/122. 268 ztrasum = ztrasum/areatot*1E6/122. 275 269 trn(:,:,:,jppo4) = trn(:,:,:,jppo4)*2.165/ztrasum 276 270 … … 294 288 295 289 296 WRITE(0,*) 'NO3 moyen ', ztrasum/ zareatot*1E6/7.6297 ztrasum = ztrasum/ zareatot*1E6/7.6290 WRITE(0,*) 'NO3 moyen ', ztrasum/areatot*1E6/7.6 291 ztrasum = ztrasum/areatot*1E6/7.6 298 292 trn(:,:,:,jpno3) = trn(:,:,:,jpno3)*30.9/ztrasum 299 293 … … 316 310 END IF 317 311 318 WRITE(0,*) 'SiO3 moyen ', ztrasum/ zareatot*1E6319 ztrasum = ztrasum/ zareatot*1E6312 WRITE(0,*) 'SiO3 moyen ', ztrasum/areatot*1E6 313 ztrasum = ztrasum/areatot*1E6 320 314 trn(:,:,:,jpsil) = MIN( 400E-6,trn(:,:,:,jpsil)*91.51/ztrasum) 321 315 322 316 #endif 317 318 !#if defined key_trc_kriest 319 ! !! Initialize number of particles from a standart restart file 320 ! !! The name of big organic particles jpgoc has been only change 321 ! !! and replace by jpnum but the values here are concentration 322 ! trn(:,:,:,jppoc) = trn(:,:,:,jppoc) + trn(:,:,:,jpnum) 323 ! trn(:,:,:,jpnum) = trn(:,:,:,jppoc) / ( 6. * xkr_massp ) 324 !#endif 323 325 !! Initialization of chemical variables of the carbon cycle 324 326 !! -------------------------------------------------------- … … 328 330 caralk = trn(ji,jj,jk,jptal)- & 329 331 & borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk))) 330 co3 (ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk) &332 co3 = (caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk) & 331 333 & +(1.-tmask(ji,jj,jk))*.5e-3 332 334 bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) 333 hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3 (ji,jj,jk)) &335 hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3) & 334 336 & *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9 335 h2co3(ji,jj) = 1.e-5336 337 ENDDO 337 338 ENDDO … … 340 341 trb(:,:,:,:) = trn(:,:,:,:) 341 342 342 CALL iom_close( inum)343 344 345 END SUBROUTINE trc_rst 346 347 SUBROUTINE trc_ wri(kt)343 CALL iom_close( numrtr ) 344 345 346 END SUBROUTINE trc_rst_read 347 348 SUBROUTINE trc_rst_wri(kt) 348 349 !! ================================================================================== 349 350 !! 350 !! ROUTINE trc_ wri351 !! ******************351 !! ROUTINE trc_rst_wri 352 !! ****************** 352 353 !! 353 354 !! PURPOSE : … … 377 378 !! WORKSPACE : 378 379 !! --------- 379 !! ji,jj,jk,j l,ino0,it0,iarak0380 !! ji,jj,jk,jn 380 381 !! 381 382 !! History: … … 392 393 !! 05-03 (O. Aumont and A. El Moussaoui) F90 393 394 !!========================================================================================! 394 !! * Modules used395 USE ioipsl396 395 397 396 !! * Arguments … … 402 401 !! ==================== 403 402 404 LOGICAL :: clbon !!! 405 CHARACTER (len=50) :: clname,clname1,clname2,cln 406 407 INTEGER :: jn, & 408 ino0,it0,iarak0, & 409 ic,jc,ji,jj,jk, & 410 itime 411 412 REAL(wp) :: zdate0, zinfo(3),zdiag_var, & 413 zdiag_varmin, zdiag_varmax, zdiag_tot, zder 403 INTEGER :: ji,jj,jk,jn 404 REAL(wp) :: zdiag_var, zdiag_varmin, zdiag_varmax, zdiag_tot 405 REAL(wp) :: zder 414 406 415 407 416 408 !! 1. OUTPUT of restart fields (nutwrs) 417 409 !! --------------------------- 418 419 IF( kt == nittrc000 ) THEN420 IF(lwp) WRITE(numout,*)421 IF(lwp) WRITE(numout,*) 'trc_wri : write passive tracers restart.output NetCDF file'422 IF(lwp) WRITE(numout,*) '~~~~~~~'423 424 425 areatot = 0.426 DO jk = 1, jpk427 DO jj = 1, jpj428 DO ji = 1, jpi429 areatot = areatot + tmask(ji,jj,jk)*tmask_i(ji,jj)*e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,jk)430 END DO431 END DO432 END DO433 434 IF( lk_mpp ) THEN435 CALL mpp_sum(areatot) ! sum over the global domain436 END IF437 438 trai = 0.439 DO jn = 1, jptra440 DO jk = 1,jpk441 DO jj = 1, jpj442 DO ji = 1, jpi443 trai=trai+tmask(ji,jj,jk)*trn(ji,jj,jk,jn)* &444 & tmask_i(ji,jj)* e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)445 END DO446 END DO447 END DO448 END DO449 450 IF( lk_mpp ) THEN451 CALL mpp_sum(trai) ! sum over the global domain452 END IF453 454 IF (lwp) WRITE(numout,*) 'Integral of all tracers over the full domain at NIT000 =',trai455 456 ENDIF457 458 410 459 411 IF( MOD(kt,nstock) == 0 .OR. kt == nitend ) THEN … … 468 420 469 421 470 ino0 =no471 it0 =kt 422 CALL iom_rstput( kt, nitrst, numrtw, 'kt' , REAL( kt, wp ) ) 423 472 424 IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN 473 iarak0 = 1425 CALL iom_rstput( kt, nitrst, numrtw, 'arak0', 1. ) 474 426 ELSE 475 iarak0=0427 CALL iom_rstput( kt, nitrst, numrtw, 'arak0', 0. ) 476 428 ENDIF 477 429 478 zinfo(1)=FLOAT(ino0)479 zinfo(2)=FLOAT(it0)480 zinfo(3)=FLOAT(iarak0)481 482 !! 1. WRITE in nutwrs483 !! ------------------484 !!... first information485 486 INQUIRE (FILE=trestart,EXIST=clbon)487 IF(clbon) THEN488 OPEN(UNIT=nutwrs,FILE=trestart,STATUS='old')489 CLOSE(nutwrs,STATUS='delete')490 ENDIF491 492 ic=1493 DO jc=1,16494 IF(cexper(jc:jc) /= ' ') ic = jc495 END DO496 WRITE(cln,'("_",i4.4,i2.2,i2.2,"_restart.trc")') nyear, nmonth, nday497 clname=cexper(1:ic)//cln498 ic=1499 DO jc=1,48500 IF(clname(jc:jc) /= ' ') ic=jc501 END DO502 trestart=clname(1:ic)//".nc"503 itime=0504 CALL ymds2ju(nyear,nmonth,nday,0.0,zdate0)505 CALL restini('NONE',jpi,jpj,glamt,gphit,jpk,gdept_0,clname &506 & ,itime,zdate0,rdt*nstock,nutwrs,domain_id=nidom)507 508 CALL restput(nutwrs,'info',1,1,3,0,zinfo)509 430 510 431 ! prognostic variables 511 432 ! -------------------- 512 433 434 DO jn=1,jptra 435 CALL iom_rstput( kt, nitrst, numrtw, 'TRN'//ctrcnm(jn), trn(:,:,:,jn) ) 436 ENDDO 437 438 DO jn=1,jptra 439 CALL iom_rstput( kt, nitrst, numrtw, 'TRB'//ctrcnm(jn), trb(:,:,:,jn) ) 440 END DO 441 442 #if defined key_trc_lobster1 443 CALL iom_rstput( kt, nitrst, numrtw, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:) ) 444 CALL iom_rstput( kt, nitrst, numrtw, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:) ) 445 #elif defined key_trc_pisces 446 CALL iom_rstput( kt, nitrst, numrtw, 'Silicalim', xksi(:,:) ) 447 448 CALL iom_rstput( kt, nitrst, numrtw, 'SED'//ctrcnm(jppoc), sedpoc(:,:) ) 449 CALL iom_rstput( kt, nitrst, numrtw, 'SED'//ctrcnm(jpcal), sedcal(:,:) ) 450 CALL iom_rstput( kt, nitrst, numrtw, 'SED'//ctrcnm(jpsil), sedsil(:,:) ) 451 452 #elif defined key_cfc 453 DO jn=1,jptra 454 CALL iom_rstput( kt, nitrst, numrtw, 'qint'//ctrcnm(jn), qint(:,:,jn) ) 455 END DO 456 DO jn=1,jptra 457 CALL iom_rstput( kt, nitrst, numrtw, 'qtr'//ctrcnm(jn) , qtr( :,:,jn) ) 458 END DO 459 #endif 460 513 461 IF (lwp) WRITE(numout,*) '----TRACER STAT----' 462 514 463 zdiag_tot=0. 515 464 DO jn=1,jptra 516 clname='TRN'//ctrcnm(jn)517 CALL restput(nutwrs,clname,jpi,jpj,jpk,0,trn(:,:,:,jn))518 519 465 zdiag_var=0. 520 466 zdiag_varmin=0. … … 524 470 DO jj=1, jpj 525 471 DO jk=1,jpk 526 zdiag_var=zdiag_var+tmask(ji,jj,jk)*trn(ji,jj,jk,jn)* & 527 tmask_i(ji,jj)* e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 472 zdiag_var=zdiag_var+trn(ji,jj,jk,jn)*tmask(ji,jj,jk)*tmask_i(ji,jj) & 473 #if defined key_off_degrad 474 & * facvol(ji,jj,jk) & 475 #endif 476 & * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 528 477 529 478 END DO … … 534 483 zdiag_varmax=MAXVAL(trn(:,:,:,jn), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.))) 535 484 536 IF( lk_mpp ) THEN 537 CALL mpp_min(zdiag_varmin) ! min over the global domain 538 CALL mpp_max(zdiag_varmax) ! max over the global domain 539 CALL mpp_sum(zdiag_var) ! sum over the global domain 485 IF( lk_mpp ) THEN 486 CALL mpp_min(zdiag_varmin) ! min over the global domain 487 CALL mpp_max(zdiag_varmax) ! max over the global domain 488 CALL mpp_sum(zdiag_var) ! sum over the global domain 540 489 END IF 541 490 … … 550 499 zdiag_tot=zdiag_tot 551 500 zder=((zdiag_tot-trai)/trai)*100._wp 552 IF (lwp) WRITE(numout,*) 'Integral of all tracers over the full domain =',zdiag_tot 553 IF (lwp) WRITE(numout,*) 'Drift of the sum of all tracers =',zder, '%' 554 555 DO jn=1,jptra 556 clname='TRB'//ctrcnm(jn) 557 CALL restput(nutwrs,clname,jpi,jpj,jpk,0,trb(:,:,:,jn)) 558 END DO 559 560 #if defined key_trc_lobster1 561 clname='SEDB'//ctrcnm(jpdet) 562 clname1='SEDN'//ctrcnm(jpdet) 563 CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpocb(:,:)) 564 CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedpocn(:,:)) 565 #elif defined key_trc_pisces 566 clname='SED'//ctrcnm(jppoc) 567 clname1='SED'//ctrcnm(jpcal) 568 clname2='SED'//ctrcnm(jpsil) 569 CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedcal(:,:)) 570 CALL restput(nutwrs,clname2,jpi,jpj,1,0,sedsil(:,:)) 571 CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpoc(:,:)) 572 573 clname='Silicalim' 574 CALL restput(nutwrs,clname,jpi,jpj,1,0,xksi(:,:)) 575 #elif defined key_cfc 576 clname='qint' 577 CALL restput(nutwrs,clname,jpi,jpj,jptra,0,qint(:,:,:)) 578 clname1='qtr' 579 CALL restput(nutwrs,clname1,jpi,jpj,jptra,0,qtr(:,:,:)) 580 #endif 581 582 583 CALL restclo(nutwrs) 501 IF (lwp) WRITE(numout,*) 'Integral of all tracers over the full domain =',zdiag_tot 502 IF (lwp) WRITE(numout,*) 'Drift of the sum of all tracers =',zder, '%' 503 504 CALL iom_close(numrtw) 584 505 585 506 ENDIF 586 507 587 END SUBROUTINE trc_wri 588 589 #endif 508 END SUBROUTINE trc_rst_wri 509 590 510 591 511 #else … … 595 515 CONTAINS 596 516 597 SUBROUTINE trc_rst 517 SUBROUTINE trc_rst_read 598 518 !! no passive tracers 599 END SUBROUTINE trc_rst 600 601 SUBROUTINE trc_ wri(kt)519 END SUBROUTINE trc_rst_read 520 521 SUBROUTINE trc_rst_wri(kt) 602 522 !! no passive tracers 603 523 INTEGER, INTENT ( in ) :: kt 604 WRITE(*,*) 'trc_ wri: You should not have seen this print! error?', kt605 END SUBROUTINE trc_ wri524 WRITE(*,*) 'trc_rst_wri: You should not have seen this print! error?', kt 525 END SUBROUTINE trc_rst_wri 606 526 607 527 #endif
Note: See TracChangeset
for help on using the changeset viewer.