- Timestamp:
- 2016-06-27T19:20:57+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r6515 r6746 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 … … 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 tmp56 REAL(wp) :: z2da, z2db, ztmp 62 57 REAL(wp), POINTER, DIMENSION(:,:,:) :: zswi2 63 REAL(wp), POINTER, DIMENSION(:,:) :: z2d, z 2da, z2db, zswi ! 2D workspace58 REAL(wp), POINTER, DIMENSION(:,:) :: z2d, zswi ! 2D workspace 64 59 !!------------------------------------------------------------------- 65 60 … … 67 62 68 63 CALL wrk_alloc( jpi, jpj, jpl, zswi2 ) 69 CALL wrk_alloc( jpi, jpj , z2d, z 2da, z2db, zswi )64 CALL wrk_alloc( jpi, jpj , z2d, zswi ) 70 65 71 66 !----------------------------- … … 95 90 DO jj = 2 , jpjm1 96 91 DO ji = 2 , jpim1 97 z2da(ji,jj) = ( u_ice(ji,jj) * umask(ji,jj,1) + u_ice(ji-1,jj) * umask(ji-1,jj,1) ) * 0.5_wp 98 z2db(ji,jj) = ( v_ice(ji,jj) * vmask(ji,jj,1) + v_ice(ji,jj-1) * vmask(ji,jj-1,1) ) * 0.5_wp 92 z2da = ( u_ice(ji,jj) * umask(ji,jj,1) + u_ice(ji-1,jj) * umask(ji-1,jj,1) ) * 0.5_wp 93 z2db = ( v_ice(ji,jj) * vmask(ji,jj,1) + v_ice(ji,jj-1) * vmask(ji,jj-1,1) ) * 0.5_wp 94 z2d(ji,jj) = SQRT( z2da * z2da + z2db * z2db ) 99 95 END DO 100 96 END DO 101 CALL lbc_lnk( z2da, 'T', -1. ) 102 CALL lbc_lnk( z2db, 'T', -1. ) 103 CALL iom_put( "uice_ipa" , z2da ) ! ice velocity u component 104 CALL iom_put( "vice_ipa" , z2db ) ! ice velocity v component 105 DO jj = 1, jpj 106 DO ji = 1, jpi 107 z2d(ji,jj) = SQRT( z2da(ji,jj) * z2da(ji,jj) + z2db(ji,jj) * z2db(ji,jj) ) 108 END DO 109 END DO 110 CALL iom_put( "icevel" , z2d * zswi ) ! ice velocity module 97 CALL lbc_lnk( z2d, 'T', 1. ) 98 CALL iom_put( "uice_ipa" , u_ice * zswi ) ! ice velocity u component 99 CALL iom_put( "vice_ipa" , v_ice * zswi ) ! ice velocity v component 100 CALL iom_put( "icevel" , z2d * zswi ) ! ice velocity module 111 101 ENDIF 112 102 ! … … 130 120 CALL iom_put( "micesalt" , smt_i * zswi ) ! mean ice salinity 131 121 132 CALL iom_put( "icestr" , strength * 0.001 *zswi ) ! ice strength122 CALL iom_put( "icestr" , strength * zswi ) ! ice strength 133 123 CALL iom_put( "idive" , divu_i * 1.0e8 * zswi ) ! divergence 134 124 CALL iom_put( "ishear" , shear_i * 1.0e8 * zswi ) ! shear … … 163 153 CALL iom_put( "vfxlam" , wfx_lam * ztmp ) ! lateral melt 164 154 CALL iom_put( "vfxice" , wfx_ice * ztmp ) ! total ice growth/melt 155 156 IF ( iom_use( "vfxthin" ) ) THEN ! ice production for open water + thin ice (<20cm) => comparable to observations 157 WHERE( htm_i(:,:) < 0.2 .AND. htm_i(:,:) > 0. ) ; z2d = wfx_bog 158 ELSEWHERE ; z2d = 0._wp 159 END WHERE 160 CALL iom_put( "vfxthin", ( wfx_opw + z2d ) * ztmp ) 161 ENDIF 162 163 ztmp = rday / rhosn 164 CALL iom_put( "vfxspr" , wfx_spr * ztmp ) ! precip (snow) 165 165 CALL iom_put( "vfxsnw" , wfx_snw * ztmp ) ! total snw growth/melt 166 CALL iom_put( "vfxsub" , wfx_sub * ztmp ) ! sublimation (snow) 167 CALL iom_put( "vfxspr" , wfx_spr * ztmp ) ! precip (snow) 166 CALL iom_put( "vfxsub" , wfx_sub * ztmp ) ! sublimation (snow/ice) 168 167 169 168 CALL iom_put( "afxtot" , afx_tot * rday ) ! concentration tendency (total) … … 190 189 CALL iom_put ('hfxspr' , hfx_spr(:,:) ) ! Heat content of snow precip 191 190 192 193 IF ( iom_use( "vfxthin" ) ) THEN ! ice production for open water + thin ice (<20cm) => comparable to observations194 WHERE( htm_i(:,:) < 0.2 .AND. htm_i(:,:) > 0. ) ; z2d = wfx_bog195 ELSEWHERE ; z2d = 0._wp196 END WHERE197 CALL iom_put( "vfxthin", ( wfx_opw + z2d ) * ztmp )198 ENDIF199 191 200 192 !-------------------------------- … … 223 215 224 216 CALL wrk_dealloc( jpi, jpj, jpl, zswi2 ) 225 CALL wrk_dealloc( jpi, jpj , z2d, zswi , z2da, z2db)217 CALL wrk_dealloc( jpi, jpj , z2d, zswi ) 226 218 227 219 IF( nn_timing == 1 ) CALL timing_stop('limwri') 228 220 229 221 END SUBROUTINE lim_wri 230 #endif231 222 232 223
Note: See TracChangeset
for help on using the changeset viewer.