Changeset 4655
- Timestamp:
- 2014-06-03T17:28:33+02:00 (10 years ago)
- Location:
- branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r4649 r4655 85 85 ! 86 86 ! 87 CALL iom_put( "iceconc" , at_i ) ! ice concentration88 87 ! 89 DO jj = 1, jpj ! mean ice thickness 90 DO ji = 1, jpi 91 z2d(ji,jj) = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zind(ji,jj) 92 END DO 93 END DO 94 CALL iom_put( "icethic_cea" , z2d ) ! ice thickness (i.e. icethi(:,:)) 95 CALL iom_put( "icevolu" , vt_i ) ! ice volume = mean ice thickness over the cell 96 DO jj = 1, jpj 97 DO ji = 1, jpi 98 z2d(ji,jj) = vt_s(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zind(ji,jj) 99 END DO 100 END DO 101 CALL iom_put( "snowthic_cea" , z2d ) ! snow thickness = mean snow thickness over the cell 102 CALL iom_put( "isst" , sst_m ) ! sea surface temperature 103 CALL iom_put( "isss" , sss_m ) ! sea surface salinity 104 ! 105 DO jj = 2 , jpjm1 106 DO ji = 2 , jpim1 107 z2da(ji,jj) = ( u_ice(ji,jj) * tmu(ji,jj) + u_ice(ji-1,jj) * tmu(ji-1,jj) ) * 0.5_wp 108 z2db(ji,jj) = ( v_ice(ji,jj) * tmv(ji,jj) + v_ice(ji,jj-1) * tmv(ji,jj-1) ) * 0.5_wp 109 END DO 110 END DO 111 CALL lbc_lnk( z2da, 'T', -1. ) 112 CALL lbc_lnk( z2db, 'T', -1. ) 113 DO jj = 1, jpj 114 DO ji = 1, jpi 115 z2d(ji,jj) = SQRT( z2da(ji,jj) * z2da(ji,jj) + z2db(ji,jj) * z2db(ji,jj) ) 116 END DO 117 END DO 118 CALL iom_put( "uice_ipa" , z2da ) ! ice velocity u component 119 CALL iom_put( "vice_ipa" , z2db ) ! ice velocity v component 120 CALL iom_put( "icevel" , z2d ) ! ice velocity module 121 CALL iom_put( "utau_ice" , utau_ice ) ! wind stress over ice along i-axis at I-point 122 CALL iom_put( "vtau_ice" , vtau_ice ) ! wind stress over ice along j-axis at I-point 123 CALL iom_put( "snowpre" , sprecip ) ! snow precipitation 124 CALL iom_put( "micesalt" , smt_i ) ! mean ice salinity 125 ! 126 z2d(:,:) = 0.e0 127 DO jl = 1, jpl 88 IF ( iom_use( "icethic_cea" ) ) THEN ! mean ice thickness 89 DO jj = 1, jpj 90 DO ji = 1, jpi 91 z2d(ji,jj) = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zind(ji,jj) 92 END DO 93 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 ) * zind(ji,jj) 101 END DO 102 END DO 103 CALL iom_put( "snowthic_cea" , z2d ) 104 ENDIF 105 ! 106 IF ( iom_use( "uice_ipa" ) .OR. iom_use( "vice_ipa" ) .OR. iom_use( "icevel" ) ) THEN 107 DO jj = 2 , jpjm1 108 DO ji = 2 , jpim1 109 z2da(ji,jj) = ( u_ice(ji,jj) * tmu(ji,jj) + u_ice(ji-1,jj) * tmu(ji-1,jj) ) * 0.5_wp 110 z2db(ji,jj) = ( v_ice(ji,jj) * tmv(ji,jj) + v_ice(ji,jj-1) * tmv(ji,jj-1) ) * 0.5_wp 111 END DO 112 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 123 ENDIF 124 ! 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 z2d(ji,jj) = z2d(ji,jj) + zind(ji,jj) * oa_i(ji,jj,jl) 131 END DO 132 END DO 133 END DO 134 z1_365 = 1._wp / 365._wp 135 CALL iom_put( "miceage" , z2d * z1_365 ) ! mean ice age 136 ENDIF 137 138 IF ( iom_use( "micet" ) ) THEN 128 139 DO jj = 1, jpj 129 140 DO ji = 1, jpi 130 z2d(ji,jj) = z2d(ji,jj) + zind(ji,jj) * oa_i(ji,jj,jl) 131 END DO 132 END DO 133 END DO 134 z1_365 = 1._wp / 365._wp 135 CALL iom_put( "miceage" , z2d * z1_365 ) ! mean ice age 136 DO jj = 1, jpj 137 DO ji = 1, jpi 138 z2d(ji,jj) = ( tm_i(ji,jj) - rtt ) * zind(ji,jj) 139 END DO 140 END DO 141 142 CALL iom_put( "micet" , z2d ) ! mean ice temperature 143 CALL iom_put( "icehc" , et_i ) ! ice total heat content 144 CALL iom_put( "isnowhc" , et_s ) ! snow total heat content 145 ! 146 z2d(:,:) = 0.e0 147 DO jl = 1, jpl 141 z2d(ji,jj) = ( tm_i(ji,jj) - rtt ) * zind(ji,jj) 142 END DO 143 END DO 144 CALL iom_put( "micet" , z2d ) ! mean ice temperature 145 ENDIF 146 ! 147 IF ( iom_use( "icest" ) ) THEN 148 z2d(:,:) = 0.e0 149 DO jl = 1, jpl 150 DO jj = 1, jpj 151 DO ji = 1, jpi 152 z2d(ji,jj) = z2d(ji,jj) + zind(ji,jj) * ( t_su(ji,jj,jl) - rtt ) * a_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi06 ) 153 END DO 154 END DO 155 END DO 156 CALL iom_put( "icest" , z2d ) ! ice surface temperature 157 ENDIF 158 159 IF ( iom_use( "icecolf" ) ) THEN 148 160 DO jj = 1, jpj 149 161 DO ji = 1, jpi 150 z2d(ji,jj) = z2d(ji,jj) + zind(ji,jj) * ( t_su(ji,jj,jl) - rtt ) * a_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi06 ) 151 END DO 152 END DO 153 END DO 154 CALL iom_put( "icest" , z2d ) ! ice surface temperature 162 zindb = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) ) ) 163 z2d(ji,jj) = hicol(ji,jj) * zindb 164 END DO 165 END DO 166 CALL iom_put( "icecolf" , z2d ) ! frazil ice collection thickness 167 ENDIF 168 169 CALL iom_put( "isst" , sst_m ) ! sea surface temperature 170 CALL iom_put( "isss" , sss_m ) ! sea surface salinity 171 CALL iom_put( "iceconc" , at_i ) ! ice concentration 172 CALL iom_put( "icevolu" , vt_i ) ! ice volume = mean ice thickness over the cell 173 CALL iom_put( "icehc" , et_i ) ! ice total heat content 174 CALL iom_put( "isnowhc" , et_s ) ! snow total heat content 155 175 CALL iom_put( "ibrinv" , bv_i * 100._wp ) ! brine volume 156 DO jj = 1, jpj 157 DO ji = 1, jpi 158 zindb = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) ) ) 159 z2d(ji,jj) = hicol(ji,jj) * zindb 160 END DO 161 END DO 162 CALL iom_put( "icecolf" , z2d ) ! frazil ice collection thickness 176 CALL iom_put( "utau_ice" , utau_ice ) ! wind stress over ice along i-axis at I-point 177 CALL iom_put( "vtau_ice" , vtau_ice ) ! wind stress over ice along j-axis at I-point 178 CALL iom_put( "snowpre" , sprecip ) ! snow precipitation 179 CALL iom_put( "micesalt" , smt_i ) ! mean ice salinity 180 163 181 CALL iom_put( "icestr" , strength * 0.001 ) ! ice strength 164 182 CALL iom_put( "idive" , divu_i * 1.0e8 ) ! divergence 165 183 CALL iom_put( "ishear" , shear_i * 1.0e8 ) ! shear 166 184 CALL iom_put( "snowvol" , vt_s ) ! snow volume 167 185 168 186 CALL iom_put( "icetrp" , diag_trp_vi * rday ) ! ice volume transport 169 187 CALL iom_put( "snwtrp" , diag_trp_vs * rday ) ! snw volume transport … … 193 211 CALL iom_put( "vfxspr" , wfx_spr * rday / rhoic ) ! precip (snow) 194 212 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 213 CALL iom_put ('hfxthd', hfx_thd(:,:) ) ! 214 CALL iom_put ('hfxdyn', hfx_dyn(:,:) ) ! 215 CALL iom_put ('hfxres', hfx_res(:,:) ) ! 216 CALL iom_put ('hfxout', hfx_out(:,:) ) ! 217 CALL iom_put ('hfxin' , hfx_in(:,:) ) ! 218 CALL iom_put ('hfxsnw', hfx_snw(:,:) ) ! 219 CALL iom_put ('hfxsub', hfx_sub(:,:) ) ! 220 CALL iom_put ('hfxerr', hfx_err(:,:) ) ! 221 CALL iom_put ('hfxerr_rem', hfx_err_rem(:,:) ) ! 222 223 CALL iom_put ('hfxsum', hfx_sum(:,:) ) ! 224 CALL iom_put ('hfxbom', hfx_bom(:,:) ) ! 225 CALL iom_put ('hfxbog', hfx_bog(:,:) ) ! 226 CALL iom_put ('hfxdif', hfx_dif(:,:) ) ! 227 CALL iom_put ('hfxopw', hfx_opw(:,:) ) ! 228 CALL iom_put ('hfxtur', fhtur(:,:) * at_i(:,:) ) ! turbulent heat flux at ice base 229 CALL iom_put ('hfxdhc', diag_heat_dhc(:,:) ) ! Heat content variation in snow and ice 230 CALL iom_put ('hfxspr', hfx_spr(:,:) ) ! Heat content of snow precip 231 214 232 !-------------------------------- 215 233 ! Output values for each category 216 234 !-------------------------------- 217 218 DO jl = 1, jpl 219 CALL lbc_lnk( a_i(:,:,jl) , 'T' , 1. ) 220 CALL lbc_lnk( sm_i(:,:,jl) , 'T' , 1. ) 221 CALL lbc_lnk( oa_i(:,:,jl) , 'T' , 1. ) 222 CALL lbc_lnk( ht_i(:,:,jl) , 'T' , 1. ) 223 CALL lbc_lnk( ht_s(:,:,jl) , 'T' , 1. ) 224 END DO 225 226 ! Compute ice age 235 CALL iom_put( "iceconc_cat" , a_i ) ! area for categories 236 CALL iom_put( "icethic_cat" , ht_i ) ! thickness for categories 237 CALL iom_put( "snowthic_cat" , ht_s ) ! snow depth for categories 238 CALL iom_put( "salinity_cat" , sm_i ) ! salinity for categories 239 240 ! Compute ice age 241 IF ( iom_use( "iceage_cat" ) ) THEN 227 242 DO jl = 1, jpl 228 243 DO jj = 1, jpj … … 233 248 END DO 234 249 END DO 235 236 250 CALL iom_put( "iceage_cat" , zoi ) ! ice age for categories 237 238 ! Compute brine volume 251 ENDIF 252 253 ! Compute brine volume 254 IF ( iom_use( "iceage_cat" ) ) THEN 239 255 zei(:,:,:) = 0._wp 240 256 DO jl = 1, jpl … … 250 266 END DO 251 267 END DO 252 253 DO jl = 1, jpl254 CALL lbc_lnk( zei(:,:,jl) , 'T' , 1. )255 END DO256 257 CALL iom_put( "iceconc_cat" , a_i ) ! area for categories258 CALL iom_put( "icethic_cat" , ht_i ) ! thickness for categories259 CALL iom_put( "snowthic_cat" , ht_s ) ! snow depth for categories260 CALL iom_put( "salinity_cat" , sm_i ) ! salinity for categories261 268 CALL iom_put( "brinevol_cat" , zei ) ! brine volume for categories 262 263 ! ! Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s 264 ! IF( kindic < 0 ) CALL lim_wri_state( 'output.abort' ) 265 ! not yet implemented 266 269 ENDIF 270 271 ! ! Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s 272 ! IF( kindic < 0 ) CALL lim_wri_state( 'output.abort' ) 273 ! not yet implemented 274 267 275 CALL wrk_dealloc( jpi, jpj, jpl, zoi, zei ) 268 276 CALL wrk_dealloc( jpi, jpj , z2d, zind, z2da, z2db ) … … 289 297 INTEGER, INTENT( in ) :: kid , kh_i 290 298 !!---------------------------------------------------------------------- 291 292 299 293 300 CALL histdef( kid, "iicethic", "Ice thickness" , "m" , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r4634 r4655 49 49 #endif 50 50 PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 51 PUBLIC iom_getatt 51 PUBLIC iom_getatt, iom_use 52 52 53 53 PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d … … 1446 1446 1447 1447 #endif 1448 1449 LOGICAL FUNCTION iom_use( cdname ) 1450 CHARACTER(LEN=*), INTENT(in) :: cdname 1451 #if defined key_iomput 1452 iom_use = xios_field_is_active( cdname ) 1453 #else 1454 iom_use = .FALSE. 1455 #endif 1456 END FUNCTION iom_use 1448 1457 1449 1458 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.