Changeset 1353
- Timestamp:
- 2009-03-31T10:15:02+02:00 (15 years ago)
- Location:
- trunk/NEMO/TOP_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/TRP/trcldf_iso_zps.F90
r1328 r1353 81 81 REAL(wp) :: & 82 82 zabe1, zabe2, zcof1, zcof2, & ! temporary scalars 83 zmsku, zmskv, zbtr, ztra, & 84 ztagu, ztagv 83 zmsku, zmskv, zbtr, ztra 85 84 86 85 REAL(wp), DIMENSION(jpi,jpj) :: & … … 93 92 REAL(wp), DIMENSION(jpi,jpj) :: & 94 93 zftug, zftvg ! temporary workspace 95 REAL(wp) :: z_hdivn_x, z_hdivn_y96 94 REAL(wp) :: & 97 zuwk, zvwk, & 98 zuwk1, zvwk1, & 99 zcg1,zcg2 95 z_hdivn_x, z_hdivn_y, zcg1, zcg2, & 96 zuwk, zvwk, zuwk1, zvwk1 100 97 #endif 101 98 CHARACTER (len=22) :: charout … … 222 219 DO jj = 2 , jpjm1 223 220 DO ji = fs_2, fs_jpim1 ! vector opt. 224 zbtr = 1. / ( e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,jk) )221 zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 225 222 ztra = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) 226 tra (ji,jj,jk,jn) = tra (ji,jj,jk,jn) + ztra 223 tra(ji,jj,jk,jn) = tra (ji,jj,jk,jn) + ztra 224 END DO 225 END DO 226 227 227 #if defined key_trc_diatrd 228 IF (luttrd(jn)) trtrd (ji,jj,jk,ikeep(jn),4) = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1, jj,jk) )229 IF (luttrd(jn)) trtrd (ji,jj,jk,ikeep(jn),5) = zbtr * ( zftv(ji,jj,jk) - zftv(ji ,jj-1,jk) )230 #endif231 END DO232 END DO233 #if defined key_trc_diatrd234 # if defined key_trcldf_eiv235 228 DO jj = 2 , jpjm1 236 229 DO ji = fs_2, fs_jpim1 ! vector opt. 237 zbtr= 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 238 ztagu = ( zftug(ji,jj) - zftug(ji-1,jj ) ) * zbtr 239 ztagv = ( zftvg(ji,jj) - zftvg(ji ,jj-1) ) * zbtr 240 IF (luttrd(jn)) trtrd (ji,jj,jk,ikeep(jn),4) = trtrd(ji,jj,jk,ikeep(jn),4) - ztagu 241 IF (luttrd(jn)) trtrd (ji,jj,jk,ikeep(jn),5) = trtrd(ji,jj,jk,ikeep(jn),5) - ztagv 242 END DO 243 END DO 244 # endif 230 zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 231 IF( luttrd(jn) ) THEN 232 trtrd (ji,jj,jk,ikeep(jn),4) = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1, jj,jk) ) 233 trtrd (ji,jj,jk,ikeep(jn),5) = zbtr * ( zftv(ji,jj,jk) - zftv(ji ,jj-1,jk) ) 234 ENDIF 235 # if defined key_trcldf_eiv 236 IF( luttrd(jn) ) THEN 237 trtrd (ji,jj,jk,ikeep(jn),4) = trtrd(ji,jj,jk,ikeep(jn),4) & 238 & - zbtr * ( zftug(ji,jj) - zftug(ji-1,jj ) ) 239 trtrd (ji,jj,jk,ikeep(jn),5) = trtrd(ji,jj,jk,ikeep(jn),5) & 240 & - zbtr * ( zftvg(ji,jj) - zftvg(ji ,jj-1) ) 241 ENDIF 242 # endif 243 END DO 244 END DO 245 245 #endif 246 246 -
trunk/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r1334 r1353 406 406 !!---------------------------------------------------------------------- 407 407 INTEGER, INTENT( in ) :: kt ! ocean time-step index 408 INTEGER :: ji, jj, jk, jl, ik, it, jn, itmod408 INTEGER :: ji, jj, jk, jl, ik, it, itmod, jn 409 409 REAL(wp) :: zavt, zfn, zfn2 410 410 !! … … 575 575 tmltrd_trc(:,:,:,:) = tmltrd_trc(:,:,:,:) * ucf_trc 576 576 577 ! define time axis 578 it = kt 579 itmod = kt - nit000 + 1 577 itmod = kt - nittrc000 + 1 578 it = kt 580 579 581 580 MODULO_NTRD : IF( MOD( itmod, ntrd_trc ) == 0 ) THEN ! nitend MUST be multiple of ntrd_trc … … 1061 1060 tmltrd_bio(:,:,:) = tmltrd_bio(:,:,:) * ucf_trc 1062 1061 1063 ! define time axis 1064 it = kt 1065 itmod = kt - nit000 + 1 1066 1067 MODULO_NTRD : IF( MOD( itmod, ntrd_trc ) == 0 ) THEN ! nitend MUST be multiple of ntrd 1062 MODULO_NTRD : IF( MOD( kt, ntrd_trc ) == 0 ) THEN ! nitend MUST be multiple of ntrd 1068 1063 ! 1069 1064 zfn = float(nmoymltrdbio) ; zfn2 = zfn * zfn … … 1138 1133 1139 1134 ! define time axis 1140 it = kt1141 it mod = kt - nit000 + 11135 itmod = kt - nittrc000 + 1 1136 it = kt 1142 1137 1143 1138 IF( lwp .AND. MOD( itmod , ntrd_trc ) == 0 ) THEN … … 1462 1457 CALL dia_nam( clhstnam, ntrd_trc, csuff ) 1463 1458 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 1464 & 1, jpi, 1, jpj, nit 000-1, zjulian, rdt, nh_t(jn), nidtrd(jn), domain_id=nidom )1459 & 1, jpi, 1, jpj, nittrc000-ndttrc, zjulian, rdt, nh_t(jn), nidtrd(jn), domain_id=nidom ) 1465 1460 1466 1461 !-- Define the ML depth variable … … 1475 1470 CALL dia_nam( clhstnam, ntrd_trc, 'trdbio' ) 1476 1471 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 1477 & 1, jpi, 1, jpj, nit 000-1, zjulian, rdt, nh_tb, nidtrdbio, domain_id=nidom )1472 & 1, jpi, 1, jpj, nittrc000-ndttrc, zjulian, rdt, nh_tb, nidtrdbio, domain_id=nidom ) 1478 1473 #endif 1479 1474 -
trunk/NEMO/TOP_SRC/trcdia.F90
r1334 r1353 141 141 142 142 ! define time axis 143 it = kt144 143 itmod = kt - nittrc000 + 1 144 it = kt 145 145 146 146 ! Define NETCDF files and fields at beginning of first time step … … 157 157 IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000 & 158 158 & ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday & 159 & ,'Julian day : ', xjulian 159 & ,'Julian day : ', xjulian 160 160 161 IF(lwp) WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma, & 161 162 & ' limit storage in depth = ', ipk 162 163 163 164 164 ! Define the NETCDF files for passive tracer concentration 165 165 ! Define the NETCDF files for passive tracer concentration 166 166 CALL dia_nam( clhstnam, nwritetrc, 'ptrc_T' ) 167 167 IF(lwp)WRITE(numout,*)" Name of NETCDF file ", clhstnam 168 ! Horizontal grid : glamt and gphit 168 169 ! Horizontal grid : glamt and gphit 169 170 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 170 171 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 171 & nittrc000-1, xjulian, zdt, nhorit5, nit5 , domain_id=nidom) 172 ! Vertical grid for tracer : gdept 173 CALL histvert( nit5, 'deptht', 'Vertical T levels', & 174 & 'm', ipk, gdept_0, ndepit5, 'down') 175 176 ! Index of ocean points in 3D and 2D (surface) 177 CALL wheneq( jpi*jpj*ipk,tmask,1,1.,ndext50,ndimt50 ) 178 CALL wheneq( jpi*jpj,tmask,1,1.,ndext51,ndimt51 ) 179 180 ! Declare all the output fields as NETCDF variables 181 182 ! tracer concentrations 172 & nittrc000-ndttrc, xjulian, zdt, nhorit5, nit5 , domain_id=nidom) 173 174 ! Vertical grid for tracer : gdept 175 CALL histvert( nit5, 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepit5) 176 177 ! Index of ocean points in 3D and 2D (surface) 178 CALL wheneq( jpi*jpj*ipk, tmask, 1, 1., ndext50, ndimt50 ) 179 CALL wheneq( jpi*jpj , tmask, 1, 1., ndext51, ndimt51 ) 180 181 ! Declare all the output fields as NETCDF variables 183 182 DO jn = 1, jptra 184 183 IF( lutsav(jn) ) THEN … … 187 186 cltrau = ctrcun(jn) ! UNIT for tracer 188 187 CALL histdef( nit5, cltra, cltral, cltrau, jpi, jpj, nhorit5, & 189 & ipk, 1, ipk, ndepit5, 32, clop, zsto, zout)188 & ipk, 1, ipk, ndepit5, 32, clop, zsto, zout ) 190 189 ENDIF 191 190 END DO … … 278 277 279 278 ! define time axis 280 it = kt281 279 itmod = kt - nittrc000 + 1 280 it = kt 282 281 283 282 ! Define the NETCDF files (one per tracer) … … 300 299 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 301 300 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 302 & nittrc000- 1, xjulian, rdt, nhorit6(jn),&301 & nittrc000-ndttrc, xjulian, zdt, nhorit6(jn), & 303 302 & nit6(jn) , domain_id=nidom ) 304 303 305 304 ! Vertical grid for tracer trend - one per each tracer IF needed 306 CALL histvert( nit6(jn), 'deptht', 'Vertical T levels', & 307 & 'm', ipk, gdept_0, ndepit6(jn), 'down' ) 305 CALL histvert( nit6(jn), 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepit6(jn) ) 308 306 END IF 309 307 END DO … … 504 502 ENDIF 505 503 # if defined key_diainstant 506 zsto =nwritedia*zdt504 zsto = nwritedia * zdt 507 505 clop = "inst("//TRIM(clop)//")" 508 506 # else 509 zsto =zdt507 zsto = zdt 510 508 clop = "ave("//TRIM(clop)//")" 511 509 # endif 512 zout =nwritedia*zdt510 zout = nwritedia * zdt 513 511 514 512 ! Define indices of the horizontal output zoom and vertical limit storage … … 518 516 519 517 ! define time axis 520 it = kt521 518 itmod = kt - nittrc000 + 1 519 it = kt 522 520 523 521 ! 1. Define NETCDF files and fields at beginning of first time step … … 539 537 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 540 538 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 541 & nittrc000- 1, xjulian, zdt, nhoritd, nitd , domain_id=nidom )539 & nittrc000-ndttrc, xjulian, zdt, nhoritd, nitd , domain_id=nidom ) 542 540 543 541 ! Vertical grid for 2d and 3d arrays 544 542 545 CALL histvert( nitd, 'deptht', 'Vertical T levels', & 546 & 'm', ipk, gdept_0, ndepitd, 'down') 543 CALL histvert( nitd, 'deptht', 'Vertical T levels','m', ipk, gdept_0, ndepitd) 547 544 548 545 ! Declare all the output fields as NETCDF variables … … 655 652 ENDIF 656 653 # if defined key_diainstant 657 zsto =nwritebio*zdt654 zsto = nwritebio * zdt 658 655 clop = "inst("//TRIM(clop)//")" 659 656 # else 660 zsto =zdt657 zsto = zdt 661 658 clop = "ave("//TRIM(clop)//")" 662 659 # endif 663 zout =nwritebio*zdt664 665 ! Define indices of the horizontal output zoom and vertical limit storage iimi = 1 ; iima = jpi660 zout = nwritebio * zdt 661 662 ! Define indices of the horizontal output zoom and vertical limit storage 666 663 iimi = 1 ; iima = jpi 667 664 ijmi = 1 ; ijma = jpj … … 669 666 670 667 ! define time axis 671 it = kt672 668 itmod = kt - nittrc000 + 1 669 it = kt 673 670 674 671 ! Define NETCDF files and fields at beginning of first time step … … 684 681 IF(lwp)WRITE(numout,*) " Name of NETCDF file for biological trends ", clhstnam 685 682 ! Horizontal grid : glamt and gphit 686 CALL histbeg(clhstnam, jpi, glamt, jpj, gphit, &683 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 687 684 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 688 & nittrc000- 1, xjulian, rdt, nhoritb, nitb , domain_id=nidom)685 & nittrc000-ndttrc, xjulian, zdt, nhoritb, nitb , domain_id=nidom ) 689 686 ! Vertical grid for biological trends 690 CALL histvert(nitb, 'deptht', 'Vertical T levels', & 691 & 'm', ipk, gdept_0, ndepitb, 'down') 687 CALL histvert(nitb, 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepitb) 692 688 693 689 ! Declare all the output fields as NETCDF variables … … 697 693 cltral = ctrbil(jn) ! long title for biological diagnostic 698 694 cltrau = ctrbiu(jn) ! UNIT for biological diagnostic 699 CALL histdef( nitb, cltra, cltral, cltrau, jpi, jpj, nhoritb, &695 CALL histdef( nitb, cltra, cltral, cltrau, jpi, jpj, nhoritb, & 700 696 & ipk, 1, ipk, ndepitb, 32, clop, zsto, zout) 701 697 END DO 702 698 703 699 ! CLOSE netcdf Files 704 CALL histend( nitb)700 CALL histend( nitb ) 705 701 706 702 IF(lwp) WRITE(numout,*) … … 720 716 721 717 DO jn = 1, jpdiabio 722 cltra =ctrbio(jn) ! short title for biological diagnostic718 cltra = ctrbio(jn) ! short title for biological diagnostic 723 719 CALL histwrite(nitb, cltra, it, trbio(:,:,:,jn), ndimt50,ndext50) 724 720 END DO
Note: See TracChangeset
for help on using the changeset viewer.