Changeset 1482 for trunk/NEMO/OPA_SRC/DIA/diawri.F90
- Timestamp:
- 2009-07-03T17:28:06+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DIA/diawri.F90
r1465 r1482 28 28 USE iom 29 29 USE ioipsl 30 30 #if defined key_lim2 31 USE limwri_2 32 #endif 31 33 IMPLICIT NONE 32 34 PRIVATE … … 72 74 !! instantaeous ocean state and forcing fields 73 75 !!---------------------------------------------------------------------- 74 76 # if defined key_iomput 77 SUBROUTINE dia_wri( kt, kindic ) 78 !!--------------------------------------------------------------------- 79 !! *** ROUTINE dia_wri *** 80 !! 81 !! ** Purpose : Standard output of opa: dynamics and tracer fields 82 !! NETCDF format is used by default 83 !! 84 !! ** Method : use iom_put 85 !! 86 !! History : 87 !! 3.2 ! 05-11 (B. Lemaire) creation from old diawri 88 !!---------------------------------------------------------------------- 89 INTEGER, INTENT( in ) :: kt ! ocean time-step index 90 INTEGER, INTENT( in ) :: kindic ! 91 !!---------------------------------------------------------------------- 92 ! 93 ! Output the initial state and forcings 94 IF( ninist == 1 ) THEN 95 CALL dia_wri_state( 'output.init', kt ) 96 ninist = 0 97 ENDIF 98 99 CALL iom_put( "toce" , tn ) ! temperature 100 CALL iom_put( "soce" , sn ) ! salinity 101 CALL iom_put( "sst" , tn(:,:,1) ) ! sea surface temperature 102 CALL iom_put( "sss" , sn(:,:,1) ) ! sea surface salinity 103 CALL iom_put( "uoce" , un ) ! i-current 104 CALL iom_put( "voce" , vn ) ! j-current 105 106 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. 107 CALL iom_put( "avm" , avmu ) ! T vert. eddy visc. coef. 108 IF( lk_zdfddm ) THEN 109 CALL iom_put( "avs", fsavs(:,:,:) ) ! S vert. eddy diff. coef. 110 ENDIF 111 112 END SUBROUTINE dia_wri 113 114 #else 75 115 SUBROUTINE dia_wri( kt, kindic ) 76 116 !!--------------------------------------------------------------------- … … 118 158 CHARACTER (len=80) :: clname 119 159 !!---------------------------------------------------------------------- 120 160 ! 161 ! Output the initial state and forcings 162 IF( ninist == 1 ) THEN 163 CALL dia_wri_state( 'output.init', kt ) 164 ninist = 0 165 ENDIF 166 ! 121 167 ! 0. Initialisation 122 168 ! ----------------- … … 417 463 WRITE(numout,*) '~~~~~~ ' 418 464 ENDIF 419 420 !---------------------------------------------------------------------------421 422 CALL iom_put("votemper",tn)423 CALL iom_put("vosaline",sn)424 CALL iom_put("sosstsst",tn(:,:,1)) ! sea surface temperature425 CALL iom_put("sosaline",sn(:,:,1)) ! sea surface salinity426 #if defined key_dynspg_rl427 CALL iom_put("sobarstf",bsfn) ! barotropic streamfunction428 #else429 CALL iom_put("sossheig",sshn) ! sea surface height430 #endif431 432 CALL iom_put("sowaflup",emp ) ! upward water flux433 CALL iom_put("sowaflcd",emps) ! c/d water flux434 zw2d(:,:) = emps(:,:) * sn(:,:,1) * tmask(:,:,1)435 CALL iom_put("sosalflx",zw2d) ! c/d salt flux436 CALL iom_put("sohefldo",qns + qsr ) ! total heat flux437 CALL iom_put("soshfldo",qsr) ! solar heat flux438 CALL iom_put("somxl010",hmlp) ! mixed layer depth439 CALL iom_put("somixhgt",hmld) ! turbocline depth440 CALL iom_put("soicecov",fr_i) ! ice fraction441 #if ! defined key_coupled442 CALL iom_put("sohefldp",qrp) ! heat flux damping443 CALL iom_put("sowafldp",erp) ! freshwater flux damping444 zw2d(:,:) = erp(:,:) * sn(:,:,1) * tmask(:,:,1)445 CALL iom_put("sosafldp", zw2d) ! salt flux damping446 #endif447 448 #if ( defined key_coupled && ! defined key_lim3 && ! defined key_lim2 )449 CALL iom_put("sohefldp",qrp) ! heat flux damping450 CALL iom_put("sowafldp",erp) ! freshwater flux damping451 zw2d(:,:) = erp(:,:) * sn(:,:,1) * tmask(:,:,1)452 CALL iom_put("sosafldp",zw2d) ! salt flux damping453 #endif454 #if defined key_diaspr455 CALL iom_put("sosurfps",gps) ! surface pressure456 #endif457 zw2d(:,:) = FLOAT( nmln(:,:) ) * tmask(:,:,1)458 CALL iom_put("sobowlin",zw2d) ! ???459 460 #if defined key_diahth461 CALL iom_put("sothedep",hth) ! depth of the thermocline462 CALL iom_put("so20chgt",hd20) ! depth of the 20 isotherm463 CALL iom_put("so28chgt",hd28) ! depth of the 28 isotherm464 CALL iom_put("sohtc300",htc3) ! first 300m heaat content465 #endif466 467 #if defined key_coupled468 # if defined key_lim3469 Must be adapted for LIM3470 # else471 CALL iom_put("soicetem",tn_ice) ! surf. ice temperature472 CALL iom_put("soicealb",alb_ice) ! ice albedo473 # endif474 #endif475 ! Write fields on U grid476 CALL iom_put("vozocrtx",un) ! i-current477 #if defined key_diaeiv478 CALL iom_put("vozoeivu",u_eiv) ! i-eiv current479 #endif480 CALL iom_put("sozotaux",utau) ! i-wind stress481 #if defined key_dynspg_rl482 CALL lbc_lnk( spgu, 'U', -1. )483 CALL iom_put("sozospgx",spgu) ! i-surf. press. grad.484 #endif485 486 ! Write fields on V grid487 CALL iom_put("vomecrty",vn) ! j-current488 #if defined key_diaeiv489 CALL iom_put("vomeeivv",v_eiv) ! j-eiv current490 #endif491 CALL iom_put("sometauy", vtau) ! j-wind stress492 #if defined key_dynspg_rl493 CALL lbc_lnk( spgv, 'V', -1. )494 CALL iom_put("somespgy",spgv) ! j-surf. pressure grad.495 #endif496 497 ! Write fields on W grid498 CALL iom_put("vovecrtz",wn) ! vert. current499 # if defined key_diaeiv500 CALL iom_put("voveeivw",w_eiv) ! vert. eiv current501 # endif502 CALL iom_put("votkeavt",avt) ! T vert. eddy diff. coef.503 CALL iom_put("votkeevd",avt_evd) ! T enhan. vert. eddy diff. coef.504 CALL iom_put("votkeavm",avmu) ! T vert. eddy visc. coef.505 CALL iom_put("votkeevm",avmu_evd) ! T enhan. vert. eddy visc. coef.506 # if defined key_zdftmx507 CALL iom_put("votidavt",av_tide) ! vert. mix. related to internal tides508 CALL iom_put("voitfavt",av_tide_itf) ! ITF vert. mix. related to internal tides509 # endif510 IF( lk_zdfddm ) THEN511 CALL iom_put("voddmavs",fsavs(:,:,:) ) ! S vert. eddy diff. coef.512 ENDIF513 #if defined key_traldf_c2d514 CALL iom_put("soleahtw",ahtw) ! lateral eddy diff. coef.515 # if defined key_traldf_eiv516 CALL iom_put("soleaeiw",aeiw) ! EIV coefficient at w-point517 # endif518 #endif519 !---------------------------------------------------------------------------520 465 521 466 ! Write fields on T grid … … 623 568 #endif 624 569 625 ! Create an output files (output.abort.nc) if S < 0 or u > 20 m/s626 IF( kindic < 0 ) CALL dia_wri_state( 'output.abort', kt )627 628 570 ! 3. Close all files 629 571 ! --------------------------------------- … … 636 578 637 579 END SUBROUTINE dia_wri 638 580 # endif 639 581 640 582 SUBROUTINE dia_wri_state( cdfile_name, kt ) … … 736 678 & jpi, jpj, nh_i, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 737 679 680 #if defined key_lim2 681 CALL lim_wri_state_2( kt, id_i, nh_i ) 682 #else 738 683 CALL histend( id_i ) 684 #endif 739 685 740 686 ! 2. Start writing data
Note: See TracChangeset
for help on using the changeset viewer.