- Timestamp:
- 2017-09-19T10:01:20+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_lim3/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r6498 r8540 17 17 USE sbc_oce ! Surface boundary condition: ocean fields 18 18 USE sbc_ice ! Surface boundary condition: ice fields 19 USE dom_ice20 19 USE ice 21 20 USE limvar … … 36 35 !!---------------------------------------------------------------------- 37 36 !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011) 38 !! $Id $37 !! $Id: limwri.F90 6965 2016-09-30 13:34:19Z clem $ 39 38 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 40 39 !!---------------------------------------------------------------------- 41 40 CONTAINS 42 43 #if defined key_dimgout44 # include "limwri_dimg.h90"45 #else46 41 47 42 SUBROUTINE lim_wri( kindic ) … … 59 54 INTEGER :: ji, jj, jk, jl ! dummy loop indices 60 55 REAL(wp) :: z1_365 61 REAL(wp) :: z tmp62 REAL(wp), POINTER, DIMENSION(:,:,:) :: z oi, zei, zt_i, zt_s63 REAL(wp), POINTER, DIMENSION(:,:) :: z2d, z 2da, z2db, zswi ! 2D workspace56 REAL(wp) :: z2da, z2db, ztmp 57 REAL(wp), POINTER, DIMENSION(:,:,:) :: zswi2 58 REAL(wp), POINTER, DIMENSION(:,:) :: z2d, zswi ! 2D workspace 64 59 !!------------------------------------------------------------------- 65 60 66 61 IF( nn_timing == 1 ) CALL timing_start('limwri') 67 62 68 CALL wrk_alloc( jpi, jpj, jpl, z oi, zei, zt_i, zt_s)69 CALL wrk_alloc( jpi, jpj , z2d, z 2da, z2db, zswi )63 CALL wrk_alloc( jpi, jpj, jpl, zswi2 ) 64 CALL wrk_alloc( jpi, jpj , z2d, zswi ) 70 65 71 66 !----------------------------- … … 74 69 z1_365 = 1._wp / 365._wp 75 70 76 CALL lim_var_icetm ! mean sea ice temperature77 78 CALL lim_var_bv ! brine volume 79 80 DO jj = 1, jpj ! presence indicator of ice71 ! brine volume 72 CALL lim_var_bv 73 74 ! tresholds for outputs 75 DO jj = 1, jpj 81 76 DO ji = 1, jpi 82 77 zswi(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) 83 78 END DO 84 79 END DO 85 ! 86 ! 87 ! 88 IF ( iom_use( "icethic_cea" ) ) THEN ! mean ice thickness 89 DO jj = 1, jpj 80 DO jl = 1, jpl 81 DO jj = 1, jpj 90 82 DO ji = 1, jpi 91 z 2d(ji,jj) = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zswi(ji,jj)83 zswi2(ji,jj,jl) = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) ) 92 84 END DO 93 85 END DO 94 CALL iom_put( "icethic_cea" , z2d ) 95 ENDIF 96 97 IF ( iom_use( "snowthic_cea" ) ) THEN ! snow thickness = mean snow thickness over the cell 98 DO jj = 1, jpj 99 DO ji = 1, jpi 100 z2d(ji,jj) = vt_s(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zswi(ji,jj) 101 END DO 102 END DO 103 CALL iom_put( "snowthic_cea" , z2d ) 104 ENDIF 86 END DO 105 87 ! 88 ! fluxes 89 ! pfrld is the lead fraction at the previous time step (actually between TRP and THD) 90 IF( iom_use('qsr_oce') ) CALL iom_put( "qsr_oce" , qsr_oce(:,:) * pfrld(:,:) ) ! solar flux at ocean surface 91 IF( iom_use('qns_oce') ) CALL iom_put( "qns_oce" , qns_oce(:,:) * pfrld(:,:) + qemp_oce(:,:) ) ! non-solar flux at ocean surface 92 IF( iom_use('qsr_ice') ) CALL iom_put( "qsr_ice" , SUM( qsr_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) ) ! solar flux at ice surface 93 IF( iom_use('qns_ice') ) CALL iom_put( "qns_ice" , SUM( qns_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) + qemp_ice(:,:) ) ! non-solar flux at ice surface 94 IF( iom_use('qtr_ice') ) CALL iom_put( "qtr_ice" , SUM( ftr_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) ) ! solar flux transmitted thru ice 95 IF( iom_use('qt_oce' ) ) CALL iom_put( "qt_oce" , ( qsr_oce(:,:) + qns_oce(:,:) ) * pfrld(:,:) + qemp_oce(:,:) ) 96 IF( iom_use('qt_ice' ) ) CALL iom_put( "qt_ice" , SUM( ( qns_ice(:,:,:) + qsr_ice(:,:,:) ) & 97 & * a_i_b(:,:,:),dim=3 ) + qemp_ice(:,:) ) 98 IF( iom_use('qemp_oce') ) CALL iom_put( "qemp_oce" , qemp_oce(:,:) ) 99 IF( iom_use('qemp_ice') ) CALL iom_put( "qemp_ice" , qemp_ice(:,:) ) 100 IF( iom_use('emp_oce' ) ) CALL iom_put( "emp_oce" , emp_oce(:,:) ) !emp over ocean (taking into account the snow blown away from the ice) 101 IF( iom_use('emp_ice' ) ) CALL iom_put( "emp_ice" , emp_ice(:,:) ) !emp over ice (taking into account the snow blown away from the ice) 102 103 ! velocity 106 104 IF ( iom_use( "uice_ipa" ) .OR. iom_use( "vice_ipa" ) .OR. iom_use( "icevel" ) ) THEN 107 105 DO jj = 2 , jpjm1 108 106 DO ji = 2 , jpim1 109 z2da(ji,jj) = ( u_ice(ji,jj) * umask(ji,jj,1) + u_ice(ji-1,jj) * umask(ji-1,jj,1) ) * 0.5_wp 110 z2db(ji,jj) = ( v_ice(ji,jj) * vmask(ji,jj,1) + v_ice(ji,jj-1) * vmask(ji,jj-1,1) ) * 0.5_wp 107 z2da = ( u_ice(ji,jj) * umask(ji,jj,1) + u_ice(ji-1,jj) * umask(ji-1,jj,1) ) * 0.5_wp 108 z2db = ( v_ice(ji,jj) * vmask(ji,jj,1) + v_ice(ji,jj-1) * vmask(ji,jj-1,1) ) * 0.5_wp 109 z2d(ji,jj) = SQRT( z2da * z2da + z2db * z2db ) 111 110 END DO 112 111 END DO 113 CALL lbc_lnk( z2da, 'T', -1. ) 114 CALL lbc_lnk( z2db, 'T', -1. ) 115 CALL iom_put( "uice_ipa" , z2da ) ! ice velocity u component 116 CALL iom_put( "vice_ipa" , z2db ) ! ice velocity v component 117 DO jj = 1, jpj 118 DO ji = 1, jpi 119 z2d(ji,jj) = SQRT( z2da(ji,jj) * z2da(ji,jj) + z2db(ji,jj) * z2db(ji,jj) ) 120 END DO 121 END DO 122 CALL iom_put( "icevel" , z2d ) ! ice velocity module 112 CALL lbc_lnk( z2d, 'T', 1. ) 113 CALL iom_put( "uice_ipa" , u_ice ) ! ice velocity u component 114 CALL iom_put( "vice_ipa" , v_ice ) ! ice velocity v component 115 CALL iom_put( "icevel" , z2d ) ! ice velocity module 123 116 ENDIF 124 117 ! 125 IF ( iom_use( "miceage" ) ) THEN 126 z2d(:,:) = 0.e0 127 DO jl = 1, jpl 128 DO jj = 1, jpj 129 DO ji = 1, jpi 130 rswitch = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.1 ) ) 131 z2d(ji,jj) = z2d(ji,jj) + rswitch * oa_i(ji,jj,jl) / MAX( at_i(ji,jj), 0.1 ) 132 END DO 133 END DO 134 END DO 135 CALL iom_put( "miceage" , z2d * z1_365 ) ! mean ice age 136 ENDIF 137 138 IF ( iom_use( "micet" ) ) THEN 139 DO jj = 1, jpj 140 DO ji = 1, jpi 141 z2d(ji,jj) = ( tm_i(ji,jj) - rt0 ) * zswi(ji,jj) 142 END DO 143 END DO 144 CALL iom_put( "micet" , z2d ) ! mean ice temperature 145 ENDIF 118 IF ( iom_use( "miceage" ) ) CALL iom_put( "miceage" , om_i * zswi * z1_365 ) ! mean ice age 119 IF ( iom_use( "icethic_cea" ) ) CALL iom_put( "icethic_cea" , htm_i * zswi ) ! ice thickness mean 120 IF ( iom_use( "snowthic_cea" ) ) CALL iom_put( "snowthic_cea", htm_s * zswi ) ! snow thickness mean 121 IF ( iom_use( "micet" ) ) CALL iom_put( "micet" , ( tm_i - rt0 ) * zswi ) ! ice mean temperature 122 IF ( iom_use( "icest" ) ) CALL iom_put( "icest" , ( tm_su - rt0 ) * zswi ) ! ice surface temperature 123 IF ( iom_use( "icecolf" ) ) CALL iom_put( "icecolf" , hicol ) ! frazil ice collection thickness 146 124 ! 147 IF ( iom_use( "icest" ) ) THEN148 z2d(:,:) = 0.e0149 DO jl = 1, jpl150 DO jj = 1, jpj151 DO ji = 1, jpi152 z2d(ji,jj) = z2d(ji,jj) + zswi(ji,jj) * ( t_su(ji,jj,jl) - rt0 ) * a_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi06 )153 END DO154 END DO155 END DO156 CALL iom_put( "icest" , z2d ) ! ice surface temperature157 ENDIF158 159 IF ( iom_use( "icecolf" ) ) CALL iom_put( "icecolf", hicol ) ! frazil ice collection thickness160 161 125 CALL iom_put( "isst" , sst_m ) ! sea surface temperature 162 126 CALL iom_put( "isss" , sss_m ) ! sea surface salinity 163 CALL iom_put( "iceconc" , at_i 164 CALL iom_put( "icevolu" , vt_i 165 CALL iom_put( "icehc" , et_i 166 CALL iom_put( "isnowhc" , et_s 167 CALL iom_put( "ibrinv" , bv _i * 100._wp) ! brine volume127 CALL iom_put( "iceconc" , at_i * zswi ) ! ice concentration 128 CALL iom_put( "icevolu" , vt_i * zswi ) ! ice volume = mean ice thickness over the cell 129 CALL iom_put( "icehc" , et_i * zswi ) ! ice total heat content 130 CALL iom_put( "isnowhc" , et_s * zswi ) ! snow total heat content 131 CALL iom_put( "ibrinv" , bvm_i * zswi * 100. ) ! brine volume 168 132 CALL iom_put( "utau_ice" , utau_ice ) ! wind stress over ice along i-axis at I-point 169 133 CALL iom_put( "vtau_ice" , vtau_ice ) ! wind stress over ice along j-axis at I-point 170 134 CALL iom_put( "snowpre" , sprecip * 86400. ) ! snow precipitation 171 CALL iom_put( "micesalt" , smt_i 172 173 CALL iom_put( "icestr" , strength * 0.001 )! ice strength174 CALL iom_put( "idive" , divu_i * 1.0e8 ) 175 CALL iom_put( "ishear" , shear_i * 1.0e8 ) 176 CALL iom_put( "snowvol" , vt_s 135 CALL iom_put( "micesalt" , smt_i * zswi ) ! mean ice salinity 136 137 CALL iom_put( "icestr" , strength * zswi ) ! ice strength 138 CALL iom_put( "idive" , divu_i * 1.0e8 ) ! divergence 139 CALL iom_put( "ishear" , shear_i * 1.0e8 ) ! shear 140 CALL iom_put( "snowvol" , vt_s * zswi ) ! snow volume 177 141 178 142 CALL iom_put( "icetrp" , diag_trp_vi * rday ) ! ice volume transport … … 183 147 184 148 CALL iom_put( "sfxbog" , sfx_bog * rday ) ! salt flux from bottom growth 185 CALL iom_put( "sfxbom" , sfx_bom * rday ) ! salt flux from bottom melt 186 CALL iom_put( "sfxsum" , sfx_sum * rday ) ! salt flux from surface melt 149 CALL iom_put( "sfxbom" , sfx_bom * rday ) ! salt flux from bottom melting 150 CALL iom_put( "sfxsum" , sfx_sum * rday ) ! salt flux from surface melting 187 151 CALL iom_put( "sfxsni" , sfx_sni * rday ) ! salt flux from snow ice formation 188 152 CALL iom_put( "sfxopw" , sfx_opw * rday ) ! salt flux from open water formation 189 153 CALL iom_put( "sfxdyn" , sfx_dyn * rday ) ! salt flux from ridging rafting 190 CALL iom_put( "sfxres" , sfx_res * rday ) ! salt flux from residual154 CALL iom_put( "sfxres" , sfx_res * rday ) ! salt flux from limupdate (resultant) 191 155 CALL iom_put( "sfxbri" , sfx_bri * rday ) ! salt flux from brines 192 156 CALL iom_put( "sfxsub" , sfx_sub * rday ) ! salt flux from sublimation … … 202 166 CALL iom_put( "vfxbom" , wfx_bom * ztmp ) ! bottom melt 203 167 CALL iom_put( "vfxice" , wfx_ice * ztmp ) ! total ice growth/melt 168 169 IF ( iom_use( "vfxthin" ) ) THEN ! ice production for open water + thin ice (<20cm) => comparable to observations 170 WHERE( htm_i(:,:) < 0.2 .AND. htm_i(:,:) > 0. ) ; z2d = wfx_bog 171 ELSEWHERE ; z2d = 0._wp 172 END WHERE 173 CALL iom_put( "vfxthin", ( wfx_opw + z2d ) * ztmp ) 174 ENDIF 175 176 ztmp = rday / rhosn 177 CALL iom_put( "vfxspr" , wfx_spr * ztmp ) ! precip (snow) 204 178 CALL iom_put( "vfxsnw" , wfx_snw * ztmp ) ! total snw growth/melt 205 CALL iom_put( "vfxsub" , wfx_sub * ztmp ) ! sublimation (snow )206 CALL iom_put( "vfxs pr" , wfx_spr * ztmp ) ! precip (snow)207 179 CALL iom_put( "vfxsub" , wfx_sub * ztmp ) ! sublimation (snow/ice) 180 CALL iom_put( "vfxsub_err" , wfx_err_sub * ztmp ) ! "excess" of sublimation sent to ocean 181 208 182 CALL iom_put( "afxtot" , afx_tot * rday ) ! concentration tendency (total) 209 183 CALL iom_put( "afxdyn" , afx_dyn * rday ) ! concentration tendency (dynamics) … … 225 199 CALL iom_put ('hfxdif' , hfx_dif(:,:) ) ! 226 200 CALL iom_put ('hfxopw' , hfx_opw(:,:) ) ! 227 CALL iom_put ('hfxtur' , fhtur(:,:) * SUM( a_i_b(:,:,:), dim=3) ) ! turbulent heat flux at ice base201 CALL iom_put ('hfxtur' , fhtur(:,:) * SUM( a_i_b(:,:,:), dim=3 ) ) ! turbulent heat flux at ice base 228 202 CALL iom_put ('hfxdhc' , diag_heat(:,:) ) ! Heat content variation in snow and ice 229 203 CALL iom_put ('hfxspr' , hfx_spr(:,:) ) ! Heat content of snow precip 230 204 231 232 IF ( iom_use( "vfxthin" ) ) THEN ! ice production for open water + thin ice (<20cm) => comparable to observations233 DO jj = 1, jpj234 DO ji = 1, jpi235 z2d(ji,jj) = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zswi(ji,jj) ! mean ice thickness236 END DO237 END DO238 WHERE( z2d(:,:) < 0.2 .AND. z2d(:,:) > 0. ) ; z2da = wfx_bog239 ELSEWHERE ; z2da = 0._wp240 END WHERE241 CALL iom_put( "vfxthin", ( wfx_opw + z2da ) * ztmp )242 ENDIF243 205 244 206 !-------------------------------- 245 207 ! Output values for each category 246 208 !-------------------------------- 247 CALL iom_put( "iceconc_cat" , a_i ) ! area for categories 248 CALL iom_put( "icethic_cat" , ht_i ) ! thickness for categories 249 CALL iom_put( "snowthic_cat" , ht_s ) ! snow depth for categories 250 CALL iom_put( "salinity_cat" , sm_i ) ! salinity for categories 251 209 IF ( iom_use( "iceconc_cat" ) ) CALL iom_put( "iceconc_cat" , a_i * zswi2 ) ! area for categories 210 IF ( iom_use( "icethic_cat" ) ) CALL iom_put( "icethic_cat" , ht_i * zswi2 ) ! thickness for categories 211 IF ( iom_use( "snowthic_cat" ) ) CALL iom_put( "snowthic_cat" , ht_s * zswi2 ) ! snow depth for categories 212 IF ( iom_use( "salinity_cat" ) ) CALL iom_put( "salinity_cat" , sm_i * zswi2 ) ! salinity for categories 252 213 ! ice temperature 253 IF ( iom_use( "icetemp_cat" ) ) THEN 254 zt_i(:,:,:) = SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i 255 CALL iom_put( "icetemp_cat" , zt_i - rt0 ) 256 ENDIF 257 214 IF ( iom_use( "icetemp_cat" ) ) CALL iom_put( "icetemp_cat", ( SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i - rt0 ) * zswi2 ) 258 215 ! snow temperature 259 IF ( iom_use( "snwtemp_cat" ) ) THEN 260 zt_s(:,:,:) = SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s 261 CALL iom_put( "snwtemp_cat" , zt_s - rt0 ) 262 ENDIF 263 264 ! Compute ice age 265 IF ( iom_use( "iceage_cat" ) ) THEN 266 DO jl = 1, jpl 267 DO jj = 1, jpj 268 DO ji = 1, jpi 269 rswitch = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.1 ) ) 270 rswitch = rswitch * MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - 0.1 ) ) 271 zoi(ji,jj,jl) = oa_i(ji,jj,jl) / MAX( a_i(ji,jj,jl) , 0.1 ) * rswitch 272 END DO 273 END DO 274 END DO 275 CALL iom_put( "iceage_cat" , zoi * z1_365 ) ! ice age for categories 276 ENDIF 277 278 ! Compute brine volume 279 IF ( iom_use( "brinevol_cat" ) ) THEN 280 zei(:,:,:) = 0._wp 281 DO jl = 1, jpl 282 DO jk = 1, nlay_i 283 DO jj = 1, jpj 284 DO ji = 1, jpi 285 rswitch = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) ) 286 zei(ji,jj,jl) = zei(ji,jj,jl) + 100.0 * & 287 ( - tmut * s_i(ji,jj,jk,jl) / MIN( ( t_i(ji,jj,jk,jl) - rt0 ), - epsi06 ) ) * & 288 rswitch * r1_nlay_i 289 END DO 290 END DO 291 END DO 292 END DO 293 CALL iom_put( "brinevol_cat" , zei ) ! brine volume for categories 294 ENDIF 216 IF ( iom_use( "snwtemp_cat" ) ) CALL iom_put( "snwtemp_cat", ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zswi2 ) 217 ! ice age 218 IF ( iom_use( "iceage_cat" ) ) CALL iom_put( "iceage_cat" , o_i * zswi2 * z1_365 ) 219 ! brine volume 220 IF ( iom_use( "brinevol_cat" ) ) CALL iom_put( "brinevol_cat", bv_i * 100. * zswi2 ) 295 221 296 222 ! ! Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s … … 298 224 ! not yet implemented 299 225 300 CALL wrk_dealloc( jpi, jpj, jpl, z oi, zei, zt_i, zt_s)301 CALL wrk_dealloc( jpi, jpj , z2d, zswi , z2da, z2db)226 CALL wrk_dealloc( jpi, jpj, jpl, zswi2 ) 227 CALL wrk_dealloc( jpi, jpj , z2d, zswi ) 302 228 303 229 IF( nn_timing == 1 ) CALL timing_stop('limwri') 304 230 305 231 END SUBROUTINE lim_wri 306 #endif307 232 308 233 … … 319 244 !! 4.0 ! 2013-06 (C. Rousset) 320 245 !!---------------------------------------------------------------------- 321 INTEGER, INTENT( in ) :: kt ! ocean time-step index) 322 INTEGER, INTENT( in ) :: kid , kh_i 246 INTEGER, INTENT( in ) :: kt ! ocean time-step index) 247 INTEGER, INTENT( in ) :: kid , kh_i 248 INTEGER :: nz_i, jl 249 REAL(wp), DIMENSION(jpl) :: jcat 323 250 !!---------------------------------------------------------------------- 324 325 CALL histdef( kid, "iicethic", "Ice thickness" , "m" , & 326 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 327 CALL histdef( kid, "iiceconc", "Ice concentration" , "%" , & 328 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 329 CALL histdef( kid, "iicetemp", "Ice temperature" , "C" , & 330 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 331 CALL histdef( kid, "iicevelu", "i-Ice speed (I-point)" , "m/s" , & 332 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 333 CALL histdef( kid, "iicevelv", "j-Ice speed (I-point)" , "m/s" , & 334 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 335 CALL histdef( kid, "iicestru", "i-Wind stress over ice (I-pt)", "Pa", & 336 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 337 CALL histdef( kid, "iicestrv", "j-Wind stress over ice (I-pt)", "Pa", & 338 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 339 CALL histdef( kid, "iicesflx", "Solar flux over ocean" , "w/m2" , & 340 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 341 CALL histdef( kid, "iicenflx", "Non-solar flux over ocean" , "w/m2" , & 251 DO jl = 1, jpl 252 jcat(jl) = REAL(jl) 253 ENDDO 254 255 CALL histvert( kid, "ncatice", "Ice Categories","", jpl, jcat, nz_i, "up") 256 257 CALL histdef( kid, "sithic", "Ice thickness" , "m" , & 258 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 259 CALL histdef( kid, "siconc", "Ice concentration" , "%" , & 260 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 261 CALL histdef( kid, "sitemp", "Ice temperature" , "C" , & 262 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 263 CALL histdef( kid, "sivelu", "i-Ice speed " , "m/s" , & 264 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 265 CALL histdef( kid, "sivelv", "j-Ice speed " , "m/s" , & 266 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 267 CALL histdef( kid, "sistru", "i-Wind stress over ice " , "Pa" , & 268 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 269 CALL histdef( kid, "sistrv", "j-Wind stress over ice " , "Pa" , & 270 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 271 CALL histdef( kid, "sisflx", "Solar flux over ocean" , "w/m2" , & 272 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 273 CALL histdef( kid, "sinflx", "Non-solar flux over ocean" , "w/m2" , & 342 274 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 343 275 CALL histdef( kid, "isnowpre", "Snow precipitation" , "kg/m2/s", & 344 276 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 345 CALL histdef( kid, "iicesali", "Ice salinity" , "PSU" , & 346 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 347 CALL histdef( kid, "iicevolu", "Ice volume" , "m" , & 348 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 349 CALL histdef( kid, "iicedive", "Ice divergence" , "10-8s-1", & 350 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 351 CALL histdef( kid, "iicebopr", "Ice bottom production" , "m/s" , & 352 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 353 CALL histdef( kid, "iicedypr", "Ice dynamic production" , "m/s" , & 354 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 355 CALL histdef( kid, "iicelapr", "Ice open water prod" , "m/s" , & 277 CALL histdef( kid, "sisali", "Ice salinity" , "PSU" , & 278 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 279 CALL histdef( kid, "sivolu", "Ice volume" , "m" , & 280 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 281 CALL histdef( kid, "sidive", "Ice divergence" , "10-8s-1", & 282 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 283 284 CALL histdef( kid, "vfxbog", "Ice bottom production" , "m/s" , & 285 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 286 CALL histdef( kid, "vfxdyn", "Ice dynamic production" , "m/s" , & 287 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 288 CALL histdef( kid, "vfxopw", "Ice open water prod" , "m/s" , & 356 289 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 357 CALL histdef( kid, "iicesipr", "Snow ice production " , "m/s" , & 358 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 359 CALL histdef( kid, "iicerepr", "Ice prod from limupdate" , "m/s" , & 360 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 361 CALL histdef( kid, "iicebome", "Ice bottom melt" , "m/s" , & 362 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 363 CALL histdef( kid, "iicesume", "Ice surface melt" , "m/s" , & 364 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 365 CALL histdef( kid, "iisfxdyn", "Salt flux from dynmics" , "" , & 366 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 367 CALL histdef( kid, "iisfxres", "Salt flux from limupdate", "" , & 368 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 290 CALL histdef( kid, "vfxsni", "Snow ice production " , "m/s" , & 291 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 292 CALL histdef( kid, "vfxres", "Ice prod from limupdate" , "m/s" , & 293 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 294 CALL histdef( kid, "vfxbom", "Ice bottom melt" , "m/s" , & 295 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 296 CALL histdef( kid, "vfxsum", "Ice surface melt" , "m/s" , & 297 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 298 299 CALL histdef( kid, "sithicat", "Ice thickness" , "m" , & 300 & jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt ) 301 CALL histdef( kid, "siconcat", "Ice concentration" , "%" , & 302 & jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt ) 303 CALL histdef( kid, "sisalcat", "Ice salinity" , "" , & 304 & jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt ) 305 CALL histdef( kid, "sitemcat", "Ice temperature" , "C" , & 306 & jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt ) 307 CALL histdef( kid, "snthicat", "Snw thickness" , "m" , & 308 & jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt ) 309 CALL histdef( kid, "sntemcat", "Snw temperature" , "C" , & 310 & jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt ) 369 311 370 312 CALL histend( kid, snc4set ) ! end of the file definition 371 313 372 CALL histwrite( kid, " iicethic", kt, icethi, jpi*jpj, (/1/) )373 CALL histwrite( kid, " iiceconc", kt, at_i , jpi*jpj, (/1/) )374 CALL histwrite( kid, " iicetemp", kt, tm_i - rt0 , jpi*jpj, (/1/) )375 CALL histwrite( kid, " iicevelu", kt, u_ice , jpi*jpj, (/1/) )376 CALL histwrite( kid, " iicevelv", kt, v_ice , jpi*jpj, (/1/) )377 CALL histwrite( kid, " iicestru", kt, utau_ice , jpi*jpj, (/1/) )378 CALL histwrite( kid, " iicestrv", kt, vtau_ice , jpi*jpj, (/1/) )379 CALL histwrite( kid, " iicesflx", kt, qsr , jpi*jpj, (/1/) )380 CALL histwrite( kid, " iicenflx", kt, qns , jpi*jpj, (/1/) )314 CALL histwrite( kid, "sithic", kt, htm_i , jpi*jpj, (/1/) ) 315 CALL histwrite( kid, "siconc", kt, at_i , jpi*jpj, (/1/) ) 316 CALL histwrite( kid, "sitemp", kt, tm_i - rt0 , jpi*jpj, (/1/) ) 317 CALL histwrite( kid, "sivelu", kt, u_ice , jpi*jpj, (/1/) ) 318 CALL histwrite( kid, "sivelv", kt, v_ice , jpi*jpj, (/1/) ) 319 CALL histwrite( kid, "sistru", kt, utau_ice , jpi*jpj, (/1/) ) 320 CALL histwrite( kid, "sistrv", kt, vtau_ice , jpi*jpj, (/1/) ) 321 CALL histwrite( kid, "sisflx", kt, qsr , jpi*jpj, (/1/) ) 322 CALL histwrite( kid, "sinflx", kt, qns , jpi*jpj, (/1/) ) 381 323 CALL histwrite( kid, "isnowpre", kt, sprecip , jpi*jpj, (/1/) ) 382 CALL histwrite( kid, "iicesali", kt, smt_i , jpi*jpj, (/1/) ) 383 CALL histwrite( kid, "iicevolu", kt, vt_i , jpi*jpj, (/1/) ) 384 CALL histwrite( kid, "iicedive", kt, divu_i*1.0e8 , jpi*jpj, (/1/) ) 385 386 CALL histwrite( kid, "iicebopr", kt, wfx_bog , jpi*jpj, (/1/) ) 387 CALL histwrite( kid, "iicedypr", kt, wfx_dyn , jpi*jpj, (/1/) ) 388 CALL histwrite( kid, "iicelapr", kt, wfx_opw , jpi*jpj, (/1/) ) 389 CALL histwrite( kid, "iicesipr", kt, wfx_sni , jpi*jpj, (/1/) ) 390 CALL histwrite( kid, "iicerepr", kt, wfx_res , jpi*jpj, (/1/) ) 391 CALL histwrite( kid, "iicebome", kt, wfx_bom , jpi*jpj, (/1/) ) 392 CALL histwrite( kid, "iicesume", kt, wfx_sum , jpi*jpj, (/1/) ) 393 CALL histwrite( kid, "iisfxdyn", kt, sfx_dyn , jpi*jpj, (/1/) ) 394 CALL histwrite( kid, "iisfxres", kt, sfx_res , jpi*jpj, (/1/) ) 324 CALL histwrite( kid, "sisali", kt, smt_i , jpi*jpj, (/1/) ) 325 CALL histwrite( kid, "sivolu", kt, vt_i , jpi*jpj, (/1/) ) 326 CALL histwrite( kid, "sidive", kt, divu_i*1.0e8 , jpi*jpj, (/1/) ) 327 328 CALL histwrite( kid, "vfxbog", kt, wfx_bog , jpi*jpj, (/1/) ) 329 CALL histwrite( kid, "vfxdyn", kt, wfx_dyn , jpi*jpj, (/1/) ) 330 CALL histwrite( kid, "vfxopw", kt, wfx_opw , jpi*jpj, (/1/) ) 331 CALL histwrite( kid, "vfxsni", kt, wfx_sni , jpi*jpj, (/1/) ) 332 CALL histwrite( kid, "vfxres", kt, wfx_res , jpi*jpj, (/1/) ) 333 CALL histwrite( kid, "vfxbom", kt, wfx_bom , jpi*jpj, (/1/) ) 334 CALL histwrite( kid, "vfxsum", kt, wfx_sum , jpi*jpj, (/1/) ) 335 336 CALL histwrite( kid, "sithicat", kt, ht_i , jpi*jpj*jpl, (/1/) ) 337 CALL histwrite( kid, "siconcat", kt, a_i , jpi*jpj*jpl, (/1/) ) 338 CALL histwrite( kid, "sisalcat", kt, sm_i , jpi*jpj*jpl, (/1/) ) 339 CALL histwrite( kid, "sitemcat", kt, tm_i - rt0 , jpi*jpj*jpl, (/1/) ) 340 CALL histwrite( kid, "snthicat", kt, ht_s , jpi*jpj*jpl, (/1/) ) 341 CALL histwrite( kid, "sntemcat", kt, tm_su - rt0 , jpi*jpj*jpl, (/1/) ) 395 342 396 343 ! Close the file
Note: See TracChangeset
for help on using the changeset viewer.