- Timestamp:
- 2012-02-25T16:50:01+01:00 (12 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD/trdglo.F90
r3317 r3318 1 MODULE trd icp1 MODULE trdglo 2 2 !!====================================================================== 3 !! *** MODULE trd icp***4 !! Ocean diagnostics: ocean tracers and dynamictrends3 !! *** MODULE trdglo *** 4 !! Ocean diagnostics: global domain averaged tracer and momentum trends 5 5 !!===================================================================== 6 6 !! History : 1.0 ! 2004-08 (C. Talandier) New trends organization … … 9 9 10 10 !!---------------------------------------------------------------------- 11 !! trd_budget : domain averaged budget of trends (including kinetic energy and T^2 trends) 12 !! trd_icp : compute the basin averaged properties for tra/dyn 13 !! trd_dwr : print dynmaic trends in ocean.output file 14 !! trd_twr : print tracers trends in ocean.output file 15 !! trd_icp_init : initialization step 11 !! trd_glo : domain averaged budget of trends (including kinetic energy and T^2 trends) 12 !! glo_dyn_wri : print dynamic trends in ocean.output file 13 !! glo_tra_wri : print global T & T^2 trends in ocean.output file 14 !! trd_glo_init : initialization step 16 15 !!---------------------------------------------------------------------- 17 16 USE oce ! ocean dynamics and tracers variables 18 17 USE dom_oce ! ocean space and time domain variables 19 18 USE sbc_oce ! surface boundary condition: ocean 19 USE trd_oce ! trends: ocean variables 20 20 USE phycst ! physical constants 21 USE trdmod_oce ! ocean variables trends22 21 USE ldftra_oce ! ocean active tracers: lateral physics 23 22 USE ldfdyn_oce ! ocean dynamics: lateral physics … … 35 34 PRIVATE 36 35 37 PUBLIC trd_budget ! called by trdmod.F90 38 PUBLIC trd_dwr ! called by step.F90 39 PUBLIC trd_twr ! called by step.F90 40 PUBLIC trd_icp_init ! called by opa.F90 36 PUBLIC trd_glo ! called by trdtra and trddyn modules 37 PUBLIC trd_glo_init ! called by trdini module 41 38 42 39 ! !!! Variables used for diagnostics … … 64 61 CONTAINS 65 62 66 SUBROUTINE trd_ budget( ptrdx, ptrdy, ktrd, ctype, kt )63 SUBROUTINE trd_glo( ptrdx, ptrdy, ktrd, ctype, kt ) 67 64 !!--------------------------------------------------------------------- 68 !! *** ROUTINE trd_ budget***65 !! *** ROUTINE trd_glo *** 69 66 !! 70 !! ** Purpose : integral constraint diagnostics for momentum and/or tracer trends 71 !! 67 !! ** Purpose : compute and print global domain averaged trends for 68 !! T, T^2, momentum, KE, and KE<->PE 69 !! 72 70 !!---------------------------------------------------------------------- 73 71 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: ptrdx ! Temperature or U trend 74 72 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: ptrdy ! Salinity or V trend 75 73 INTEGER , INTENT(in ) :: ktrd ! tracer trend index 76 CHARACTER(len=3) , INTENT(in ) :: ctype ! momentum or tracers trends type 'DYN'/'TRA'74 CHARACTER(len=3) , INTENT(in ) :: ctype ! momentum or tracers trends type (='DYN'/'TRA') 77 75 INTEGER , INTENT(in ) :: kt ! time step 78 76 !! … … 104 102 END DO 105 103 ! ! linear free surface: diagnose advective flux trough the fixed k=1 w-surface 106 IF( .NOT.lk_vvl .AND. ktrd == jptra_ trd_zad ) THEN107 tmo(jptra_ trd_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * e1e2t(:,:) )108 smo(jptra_ trd_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * e1e2t(:,:) )109 t2 (jptra_ trd_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * tsn(:,:,1,jp_tem) * e1e2t(:,:) )110 s2 (jptra_ trd_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * tsn(:,:,1,jp_sal) * e1e2t(:,:) )104 IF( .NOT.lk_vvl .AND. ktrd == jptra_zad ) THEN 105 tmo(jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * e1e2t(:,:) ) 106 smo(jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * e1e2t(:,:) ) 107 t2 (jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * tsn(:,:,1,jp_tem) * e1e2t(:,:) ) 108 s2 (jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * tsn(:,:,1,jp_sal) * e1e2t(:,:) ) 111 109 ENDIF 112 110 ! 113 IF( ktrd == jptra_ trd_atf ) THEN ! last trend (asselin time filter)111 IF( ktrd == jptra_atf ) THEN ! last trend (asselin time filter) 114 112 ! 115 CALL trd_twr( kt )! print the results in ocean.output113 CALL glo_tra_wri( kt ) ! print the results in ocean.output 116 114 ! 117 tmo(:) = 0._wp ! prepare the next time step (domain averaged array reset to zero)115 tmo(:) = 0._wp ! prepare the next time step (domain averaged array reset to zero) 118 116 smo(:) = 0._wp 119 117 t2 (:) = 0._wp … … 137 135 END DO 138 136 ! 139 IF( ktrd == jpdyn_ trd_zdf ) THEN ! zdf trend: compute separately the surface forcing trend137 IF( ktrd == jpdyn_zdf ) THEN ! zdf trend: compute separately the surface forcing trend 140 138 z1_2rau0 = 0.5_wp / rau0 141 139 DO jj = 1, jpjm1 … … 145 143 zvs = ( vtau_b(ji,jj) + vtau(ji,jj) ) * tmask_i(ji ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) & 146 144 & * z1_2rau0 * e1v (ji ,jj ) * e2v (ji,jj) * fse3u(ji,jj,jk) 147 umo(jpdyn_t rd_tau) = umo(jpdyn_trd_tau) + zvt148 vmo(jpdyn_t rd_tau) = vmo(jpdyn_trd_tau) + zvs149 hke(jpdyn_t rd_tau) = hke(jpdyn_trd_tau) + un(ji,jj,1) * zvt + vn(ji,jj,1) * zvs145 umo(jpdyn_tau) = umo(jpdyn_tau) + zvt 146 vmo(jpdyn_tau) = vmo(jpdyn_tau) + zvs 147 hke(jpdyn_tau) = hke(jpdyn_tau) + un(ji,jj,1) * zvt + vn(ji,jj,1) * zvs 150 148 END DO 151 149 END DO 152 150 ENDIF 153 151 ! 154 IF( ktrd == jpdyn_ trd_atf ) THEN ! last trend (asselin time filter)152 IF( ktrd == jpdyn_atf ) THEN ! last trend (asselin time filter) 155 153 ! 156 154 IF( ln_bfrimp ) THEN ! implicit bfr case: compute separately the bottom friction … … 162 160 zvt = bfrua(ji,jj) * un(ji,jj,ikbu) * e1u(ji,jj) * e2v(ji,jj) 163 161 zvs = bfrva(ji,jj) * vn(ji,jj,ikbv) * e1v(ji,jj) * e2v(ji,jj) 164 umo(jpdyn_ trd_bfr) = umo(jpdyn_trd_bfr) + zvt165 vmo(jpdyn_ trd_bfr) = vmo(jpdyn_trd_bfr) + zvs166 hke(jpdyn_ trd_bfr) = hke(jpdyn_trd_bfr) + un(ji,jj,ikbu) * zvt + vn(ji,jj,ikbv) * zvs162 umo(jpdyn_bfr) = umo(jpdyn_bfr) + zvt 163 vmo(jpdyn_bfr) = vmo(jpdyn_bfr) + zvs 164 hke(jpdyn_bfr) = hke(jpdyn_bfr) + un(ji,jj,ikbu) * zvt + vn(ji,jj,ikbv) * zvs 167 165 END DO 168 166 END DO 169 167 ENDIF 170 168 ! 171 CALL trd_dwr( kt )! print the results in ocean.output169 CALL glo_dyn_wri( kt ) ! print the results in ocean.output 172 170 ! 173 171 umo(:) = 0._wp ! reset for the next time step … … 183 181 CALL wrk_dealloc( jpi, jpj, ztswu, ztswv, z2dx, z2dy ) 184 182 ! 185 END SUBROUTINE trd_ budget186 187 188 SUBROUTINE trd_ icp_init183 END SUBROUTINE trd_glo 184 185 186 SUBROUTINE trd_glo_init 189 187 !!--------------------------------------------------------------------- 190 !! *** ROUTINE trd_ icp_init ***188 !! *** ROUTINE trd_glo_init *** 191 189 !! 192 190 !! ** Purpose : Read the namtrd namelist … … 197 195 IF(lwp) THEN 198 196 WRITE(numout,*) 199 WRITE(numout,*) 'trd_ icp_init : integral constraints properties trends'197 WRITE(numout,*) 'trd_glo_init : integral constraints properties trends' 200 198 WRITE(numout,*) '~~~~~~~~~~~~~' 201 199 ENDIF … … 210 208 IF(lwp) WRITE(numout,*) ' total ocean volume at T-point tvolt = ',tvolt 211 209 212 #if defined key_trddyn213 210 ! Initialization of potential to kinetic energy conversion 214 211 rpktrd = 0._wp … … 233 230 WRITE(numout,*) ' total ocean volume at V-point tvolv = ',tvolv 234 231 ENDIF 235 #endif 236 ! 237 END SUBROUTINE trd_icp_init 238 239 240 SUBROUTINE trd_dwr( kt ) 232 ! 233 END SUBROUTINE trd_glo_init 234 235 236 SUBROUTINE glo_dyn_wri( kt ) 241 237 !!--------------------------------------------------------------------- 242 !! *** ROUTINE trd_dwr***238 !! *** ROUTINE glo_dyn_wri *** 243 239 !! 244 !! ** Purpose : write dynamictrends in ocean.output240 !! ** Purpose : write global averaged U, KE, PE<->KE trends in ocean.output 245 241 !!---------------------------------------------------------------------- 246 242 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 319 315 WRITE (numout,*) 320 316 WRITE (numout,9500) kt 321 WRITE (numout,9501) umo(jpdyn_ trd_hpg) / tvolu, vmo(jpdyn_trd_hpg) / tvolv322 WRITE (numout,9509) umo(jpdyn_ trd_spg) / tvolu, vmo(jpdyn_trd_spg) / tvolv323 WRITE (numout,9502) umo(jpdyn_ trd_keg) / tvolu, vmo(jpdyn_trd_keg) / tvolv324 WRITE (numout,9503) umo(jpdyn_ trd_rvo) / tvolu, vmo(jpdyn_trd_rvo) / tvolv325 WRITE (numout,9504) umo(jpdyn_ trd_pvo) / tvolu, vmo(jpdyn_trd_pvo) / tvolv326 WRITE (numout,9507) umo(jpdyn_ trd_zad) / tvolu, vmo(jpdyn_trd_zad) / tvolv327 WRITE (numout,9505) umo(jpdyn_ trd_ldf) / tvolu, vmo(jpdyn_trd_ldf) / tvolv328 WRITE (numout,9508) umo(jpdyn_ trd_zdf) / tvolu, vmo(jpdyn_trd_zdf) / tvolv329 WRITE (numout,9510) umo(jpdyn_t rd_tau) / tvolu, vmo(jpdyn_trd_tau) / tvolv330 WRITE (numout,9511) umo(jpdyn_ trd_bfr) / tvolu, vmo(jpdyn_trd_bfr) / tvolv331 WRITE (numout,9512) umo(jpdyn_ trd_atf) / tvolu, vmo(jpdyn_trd_atf) / tvolv317 WRITE (numout,9501) umo(jpdyn_hpg) / tvolu, vmo(jpdyn_hpg) / tvolv 318 WRITE (numout,9509) umo(jpdyn_spg) / tvolu, vmo(jpdyn_spg) / tvolv 319 WRITE (numout,9502) umo(jpdyn_keg) / tvolu, vmo(jpdyn_keg) / tvolv 320 WRITE (numout,9503) umo(jpdyn_rvo) / tvolu, vmo(jpdyn_rvo) / tvolv 321 WRITE (numout,9504) umo(jpdyn_pvo) / tvolu, vmo(jpdyn_pvo) / tvolv 322 WRITE (numout,9507) umo(jpdyn_zad) / tvolu, vmo(jpdyn_zad) / tvolv 323 WRITE (numout,9505) umo(jpdyn_ldf) / tvolu, vmo(jpdyn_ldf) / tvolv 324 WRITE (numout,9508) umo(jpdyn_zdf) / tvolu, vmo(jpdyn_zdf) / tvolv 325 WRITE (numout,9510) umo(jpdyn_tau) / tvolu, vmo(jpdyn_tau) / tvolv 326 WRITE (numout,9511) umo(jpdyn_bfr) / tvolu, vmo(jpdyn_bfr) / tvolv 327 WRITE (numout,9512) umo(jpdyn_atf) / tvolu, vmo(jpdyn_atf) / tvolv 332 328 WRITE (numout,9513) 333 329 WRITE (numout,9514) & 334 & ( umo(jpdyn_ trd_hpg) + umo(jpdyn_trd_spg) + umo(jpdyn_trd_keg) + umo(jpdyn_trd_rvo) &335 & + umo(jpdyn_ trd_pvo) + umo(jpdyn_trd_zad) + umo(jpdyn_trd_ldf) + umo(jpdyn_trd_zdf) &336 & + umo(jpdyn_t rd_tau) + umo(jpdyn_trd_bfr) + umo(jpdyn_trd_atf) ) / tvolu, &337 & ( vmo(jpdyn_ trd_hpg) + vmo(jpdyn_trd_spg) + vmo(jpdyn_trd_keg) + vmo(jpdyn_trd_rvo) &338 & + vmo(jpdyn_ trd_pvo) + vmo(jpdyn_trd_zad) + vmo(jpdyn_trd_ldf) + vmo(jpdyn_trd_zdf) &339 & + vmo(jpdyn_t rd_tau) + vmo(jpdyn_trd_bfr) + vmo(jpdyn_trd_atf) ) / tvolv330 & ( umo(jpdyn_hpg) + umo(jpdyn_spg) + umo(jpdyn_keg) + umo(jpdyn_rvo) & 331 & + umo(jpdyn_pvo) + umo(jpdyn_zad) + umo(jpdyn_ldf) + umo(jpdyn_zdf) & 332 & + umo(jpdyn_tau) + umo(jpdyn_bfr) + umo(jpdyn_atf) ) / tvolu, & 333 & ( vmo(jpdyn_hpg) + vmo(jpdyn_spg) + vmo(jpdyn_keg) + vmo(jpdyn_rvo) & 334 & + vmo(jpdyn_pvo) + vmo(jpdyn_zad) + vmo(jpdyn_ldf) + vmo(jpdyn_zdf) & 335 & + vmo(jpdyn_tau) + vmo(jpdyn_bfr) + vmo(jpdyn_atf) ) / tvolv 340 336 ENDIF 341 337 … … 359 355 WRITE (numout,*) 360 356 WRITE (numout,9520) kt 361 WRITE (numout,9521) hke(jpdyn_ trd_hpg) / tvolt362 WRITE (numout,9529) hke(jpdyn_ trd_spg) / tvolt363 WRITE (numout,9522) hke(jpdyn_ trd_keg) / tvolt364 WRITE (numout,9523) hke(jpdyn_ trd_rvo) / tvolt365 WRITE (numout,9524) hke(jpdyn_ trd_pvo) / tvolt366 WRITE (numout,9527) hke(jpdyn_ trd_zad) / tvolt367 WRITE (numout,9525) hke(jpdyn_ trd_ldf) / tvolt368 WRITE (numout,9528) hke(jpdyn_ trd_zdf) / tvolt369 WRITE (numout,9530) hke(jpdyn_t rd_tau) / tvolt370 WRITE (numout,9531) hke(jpdyn_ trd_bfr) / tvolt371 WRITE (numout,9532) hke(jpdyn_ trd_atf) / tvolt357 WRITE (numout,9521) hke(jpdyn_hpg) / tvolt 358 WRITE (numout,9529) hke(jpdyn_spg) / tvolt 359 WRITE (numout,9522) hke(jpdyn_keg) / tvolt 360 WRITE (numout,9523) hke(jpdyn_rvo) / tvolt 361 WRITE (numout,9524) hke(jpdyn_pvo) / tvolt 362 WRITE (numout,9527) hke(jpdyn_zad) / tvolt 363 WRITE (numout,9525) hke(jpdyn_ldf) / tvolt 364 WRITE (numout,9528) hke(jpdyn_zdf) / tvolt 365 WRITE (numout,9530) hke(jpdyn_tau) / tvolt 366 WRITE (numout,9531) hke(jpdyn_bfr) / tvolt 367 WRITE (numout,9532) hke(jpdyn_atf) / tvolt 372 368 WRITE (numout,9533) 373 369 WRITE (numout,9534) & 374 & ( hke(jpdyn_ trd_hpg) + hke(jpdyn_trd_spg) + hke(jpdyn_trd_keg) + hke(jpdyn_trd_rvo) &375 & + hke(jpdyn_ trd_pvo) + hke(jpdyn_trd_zad) + hke(jpdyn_trd_ldf) + hke(jpdyn_trd_zdf) &376 & + hke(jpdyn_t rd_tau) + hke(jpdyn_trd_bfr) + hke(jpdyn_trd_atf) ) / tvolt370 & ( hke(jpdyn_hpg) + hke(jpdyn_spg) + hke(jpdyn_keg) + hke(jpdyn_rvo) & 371 & + hke(jpdyn_pvo) + hke(jpdyn_zad) + hke(jpdyn_ldf) + hke(jpdyn_zdf) & 372 & + hke(jpdyn_tau) + hke(jpdyn_bfr) + hke(jpdyn_atf) ) / tvolt 377 373 ENDIF 378 374 … … 396 392 WRITE (numout,*) 397 393 WRITE (numout,9540) kt 398 WRITE (numout,9541) ( hke(jpdyn_ trd_keg) + hke(jpdyn_trd_rvo) + hke(jpdyn_trd_zad) ) / tvolt399 WRITE (numout,9542) ( hke(jpdyn_ trd_keg) + hke(jpdyn_trd_zad) ) / tvolt400 WRITE (numout,9543) ( hke(jpdyn_ trd_pvo) ) / tvolt401 WRITE (numout,9544) ( hke(jpdyn_ trd_rvo) ) / tvolt402 WRITE (numout,9545) ( hke(jpdyn_ trd_spg) ) / tvolt403 WRITE (numout,9546) ( hke(jpdyn_ trd_ldf) ) / tvolt404 WRITE (numout,9547) ( hke(jpdyn_ trd_zdf) ) / tvolt405 WRITE (numout,9548) ( hke(jpdyn_ trd_hpg) ) / tvolt, rpktrd / tvolt394 WRITE (numout,9541) ( hke(jpdyn_keg) + hke(jpdyn_rvo) + hke(jpdyn_zad) ) / tvolt 395 WRITE (numout,9542) ( hke(jpdyn_keg) + hke(jpdyn_zad) ) / tvolt 396 WRITE (numout,9543) ( hke(jpdyn_pvo) ) / tvolt 397 WRITE (numout,9544) ( hke(jpdyn_rvo) ) / tvolt 398 WRITE (numout,9545) ( hke(jpdyn_spg) ) / tvolt 399 WRITE (numout,9546) ( hke(jpdyn_ldf) ) / tvolt 400 WRITE (numout,9547) ( hke(jpdyn_zdf) ) / tvolt 401 WRITE (numout,9548) ( hke(jpdyn_hpg) ) / tvolt, rpktrd / tvolt 406 402 WRITE (numout,*) 407 403 WRITE (numout,*) … … 425 421 CALL wrk_dealloc( jpi, jpj, jpk, zkx, zky, zkz, zkepe ) 426 422 ! 427 END SUBROUTINE trd_dwr428 429 430 SUBROUTINE trd_twr( kt )423 END SUBROUTINE glo_dyn_wri 424 425 426 SUBROUTINE glo_tra_wri( kt ) 431 427 !!--------------------------------------------------------------------- 432 !! *** ROUTINE trd_twr***428 !! *** ROUTINE glo_tra_wri *** 433 429 !! 434 !! ** Purpose : write active tracerstrends in ocean.output430 !! ** Purpose : write global domain averaged of T and T^2 trends in ocean.output 435 431 !!---------------------------------------------------------------------- 436 432 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 460 456 WRITE (numout,*) 461 457 WRITE (numout,9400) kt 462 WRITE (numout,9401) tmo(jptra_ trd_xad) / tvolt, smo(jptra_trd_xad) / tvolt463 WRITE (numout,9411) tmo(jptra_ trd_yad) / tvolt, smo(jptra_trd_yad) / tvolt464 WRITE (numout,9402) tmo(jptra_ trd_zad) / tvolt, smo(jptra_trd_zad) / tvolt465 WRITE (numout,9403) tmo(jptra_ trd_ldf) / tvolt, smo(jptra_trd_ldf) / tvolt466 WRITE (numout,9404) tmo(jptra_ trd_zdf) / tvolt, smo(jptra_trd_zdf) / tvolt467 WRITE (numout,9405) tmo(jptra_ trd_npc) / tvolt, smo(jptra_trd_npc) / tvolt468 WRITE (numout,9406) tmo(jptra_ trd_dmp) / tvolt, smo(jptra_trd_dmp) / tvolt469 WRITE (numout,9407) tmo(jptra_ trd_qsr) / tvolt470 WRITE (numout,9408) tmo(jptra_ trd_nsr) / tvolt, smo(jptra_trd_nsr) / tvolt458 WRITE (numout,9401) tmo(jptra_xad) / tvolt, smo(jptra_xad) / tvolt 459 WRITE (numout,9411) tmo(jptra_yad) / tvolt, smo(jptra_yad) / tvolt 460 WRITE (numout,9402) tmo(jptra_zad) / tvolt, smo(jptra_zad) / tvolt 461 WRITE (numout,9403) tmo(jptra_ldf) / tvolt, smo(jptra_ldf) / tvolt 462 WRITE (numout,9404) tmo(jptra_zdf) / tvolt, smo(jptra_zdf) / tvolt 463 WRITE (numout,9405) tmo(jptra_npc) / tvolt, smo(jptra_npc) / tvolt 464 WRITE (numout,9406) tmo(jptra_dmp) / tvolt, smo(jptra_dmp) / tvolt 465 WRITE (numout,9407) tmo(jptra_qsr) / tvolt 466 WRITE (numout,9408) tmo(jptra_nsr) / tvolt, smo(jptra_nsr) / tvolt 471 467 WRITE (numout,9409) 472 WRITE (numout,9410) ( tmo(jptra_ trd_xad) + tmo(jptra_trd_yad) + tmo(jptra_trd_zad) + tmo(jptra_trd_ldf) + tmo(jptra_trd_zdf) &473 & + tmo(jptra_ trd_npc) + tmo(jptra_trd_dmp) + tmo(jptra_trd_qsr) + tmo(jptra_trd_nsr) ) / tvolt, &474 & ( smo(jptra_ trd_xad) + smo(jptra_trd_yad) + smo(jptra_trd_zad) + smo(jptra_trd_ldf) + smo(jptra_trd_zdf) &475 & + smo(jptra_ trd_npc) + smo(jptra_trd_dmp) + smo(jptra_trd_nsr) ) / tvolt468 WRITE (numout,9410) ( tmo(jptra_xad) + tmo(jptra_yad) + tmo(jptra_zad) + tmo(jptra_ldf) + tmo(jptra_zdf) & 469 & + tmo(jptra_npc) + tmo(jptra_dmp) + tmo(jptra_qsr) + tmo(jptra_nsr) ) / tvolt, & 470 & ( smo(jptra_xad) + smo(jptra_yad) + smo(jptra_zad) + smo(jptra_ldf) + smo(jptra_zdf) & 471 & + smo(jptra_npc) + smo(jptra_dmp) + smo(jptra_nsr) ) / tvolt 476 472 ENDIF 477 473 … … 495 491 WRITE (numout,*) 496 492 WRITE (numout,9420) kt 497 WRITE (numout,9421) t2(jptra_ trd_xad) / tvolt, s2(jptra_trd_xad) / tvolt498 WRITE (numout,9431) t2(jptra_ trd_yad) / tvolt, s2(jptra_trd_yad) / tvolt499 WRITE (numout,9422) t2(jptra_ trd_zad) / tvolt, s2(jptra_trd_zad) / tvolt500 WRITE (numout,9423) t2(jptra_ trd_ldf) / tvolt, s2(jptra_trd_ldf) / tvolt501 WRITE (numout,9424) t2(jptra_ trd_zdf) / tvolt, s2(jptra_trd_zdf) / tvolt502 WRITE (numout,9425) t2(jptra_ trd_npc) / tvolt, s2(jptra_trd_npc) / tvolt503 WRITE (numout,9426) t2(jptra_ trd_dmp) / tvolt, s2(jptra_trd_dmp) / tvolt504 WRITE (numout,9427) t2(jptra_ trd_qsr) / tvolt505 WRITE (numout,9428) t2(jptra_ trd_nsr) / tvolt, s2(jptra_trd_nsr) / tvolt493 WRITE (numout,9421) t2(jptra_xad) / tvolt, s2(jptra_xad) / tvolt 494 WRITE (numout,9431) t2(jptra_yad) / tvolt, s2(jptra_yad) / tvolt 495 WRITE (numout,9422) t2(jptra_zad) / tvolt, s2(jptra_zad) / tvolt 496 WRITE (numout,9423) t2(jptra_ldf) / tvolt, s2(jptra_ldf) / tvolt 497 WRITE (numout,9424) t2(jptra_zdf) / tvolt, s2(jptra_zdf) / tvolt 498 WRITE (numout,9425) t2(jptra_npc) / tvolt, s2(jptra_npc) / tvolt 499 WRITE (numout,9426) t2(jptra_dmp) / tvolt, s2(jptra_dmp) / tvolt 500 WRITE (numout,9427) t2(jptra_qsr) / tvolt 501 WRITE (numout,9428) t2(jptra_nsr) / tvolt, s2(jptra_nsr) / tvolt 506 502 WRITE (numout,9429) 507 WRITE (numout,9430) ( t2(jptra_ trd_xad) + t2(jptra_trd_yad) + t2(jptra_trd_zad) + t2(jptra_trd_ldf) + t2(jptra_trd_zdf) &508 & + t2(jptra_ trd_npc) + t2(jptra_trd_dmp) + t2(jptra_trd_qsr) + t2(jptra_trd_nsr) ) / tvolt, &509 & ( s2(jptra_ trd_xad) + s2(jptra_trd_yad) + s2(jptra_trd_zad) + s2(jptra_trd_ldf) + s2(jptra_trd_zdf) &510 & + s2(jptra_ trd_npc) + s2(jptra_trd_dmp) + s2(jptra_trd_nsr) ) / tvolt503 WRITE (numout,9430) ( t2(jptra_xad) + t2(jptra_yad) + t2(jptra_zad) + t2(jptra_ldf) + t2(jptra_zdf) & 504 & + t2(jptra_npc) + t2(jptra_dmp) + t2(jptra_qsr) + t2(jptra_nsr) ) / tvolt, & 505 & ( s2(jptra_xad) + s2(jptra_yad) + s2(jptra_zad) + s2(jptra_ldf) + s2(jptra_zdf) & 506 & + s2(jptra_npc) + s2(jptra_dmp) + s2(jptra_nsr) ) / tvolt 511 507 ENDIF 512 508 … … 530 526 WRITE (numout,*) 531 527 WRITE (numout,9440) kt 532 WRITE (numout,9441) ( tmo(jptra_ trd_xad)+tmo(jptra_trd_yad)+tmo(jptra_trd_zad) )/tvolt, &533 & ( smo(jptra_ trd_xad)+smo(jptra_trd_yad)+smo(jptra_trd_zad) )/tvolt534 WRITE (numout,9442) tmo(jptra_ trd_sad)/tvolt, smo(jptra_trd_sad)/tvolt535 WRITE (numout,9443) tmo(jptra_ trd_ldf)/tvolt, smo(jptra_trd_ldf)/tvolt536 WRITE (numout,9444) tmo(jptra_ trd_zdf)/tvolt, smo(jptra_trd_zdf)/tvolt537 WRITE (numout,9445) tmo(jptra_ trd_npc)/tvolt, smo(jptra_trd_npc)/tvolt538 WRITE (numout,9446) ( t2(jptra_ trd_xad)+t2(jptra_trd_yad)+t2(jptra_trd_zad) )/tvolt, &539 & ( s2(jptra_ trd_xad)+s2(jptra_trd_yad)+s2(jptra_trd_zad) )/tvolt540 WRITE (numout,9447) t2(jptra_ trd_ldf)/tvolt, s2(jptra_trd_ldf)/tvolt541 WRITE (numout,9448) t2(jptra_ trd_zdf)/tvolt, s2(jptra_trd_zdf)/tvolt542 WRITE (numout,9449) t2(jptra_ trd_npc)/tvolt, s2(jptra_trd_npc)/tvolt528 WRITE (numout,9441) ( tmo(jptra_xad)+tmo(jptra_yad)+tmo(jptra_zad) )/tvolt, & 529 & ( smo(jptra_xad)+smo(jptra_yad)+smo(jptra_zad) )/tvolt 530 WRITE (numout,9442) tmo(jptra_sad)/tvolt, smo(jptra_sad)/tvolt 531 WRITE (numout,9443) tmo(jptra_ldf)/tvolt, smo(jptra_ldf)/tvolt 532 WRITE (numout,9444) tmo(jptra_zdf)/tvolt, smo(jptra_zdf)/tvolt 533 WRITE (numout,9445) tmo(jptra_npc)/tvolt, smo(jptra_npc)/tvolt 534 WRITE (numout,9446) ( t2(jptra_xad)+t2(jptra_yad)+t2(jptra_zad) )/tvolt, & 535 & ( s2(jptra_xad)+s2(jptra_yad)+s2(jptra_zad) )/tvolt 536 WRITE (numout,9447) t2(jptra_ldf)/tvolt, s2(jptra_ldf)/tvolt 537 WRITE (numout,9448) t2(jptra_zdf)/tvolt, s2(jptra_zdf)/tvolt 538 WRITE (numout,9449) t2(jptra_npc)/tvolt, s2(jptra_npc)/tvolt 543 539 ENDIF 544 540 … … 558 554 ENDIF 559 555 ! 560 END SUBROUTINE trd_twr556 END SUBROUTINE glo_tra_wri 561 557 562 558 !!====================================================================== 563 END MODULE trd icp559 END MODULE trdglo
Note: See TracChangeset
for help on using the changeset viewer.