Changeset 9433
- Timestamp:
- 2018-03-26T17:38:31+02:00 (6 years ago)
- Location:
- branches/2017/dev_merge_2017/NEMOGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/file_def_nemo-lim.xml
r9152 r9433 33 33 <!-- heat --> 34 34 <field field_ref="icetemp" name="sitemp" /> 35 <field field_ref="snwtemp" name="sntemp" /> 35 36 <field field_ref="icettop" name="sittop" /> 36 37 <field field_ref="icetbot" name="sitbot" /> … … 85 86 <field field_ref="icesalt_cat" name="sisalcat"/> 86 87 <field field_ref="icetemp_cat" name="sitemcat"/> 87 88 <field field_ref="snwtemp_cat" name="sntemcat"/> 89 <field field_ref="icettop_cat" name="sitopcat"/> 90 88 91 </file> 89 92 -
branches/2017/dev_merge_2017/NEMOGCM/CONFIG/SHARED/field_def_nemo-lim.xml
r9152 r9433 42 42 <!-- heat --> 43 43 <field id="icetemp" long_name="Mean ice temperature" unit="degC" /> 44 <field id="snwtemp" long_name="Mean snow temperature" unit="degC" /> 44 45 <field id="icettop" long_name="temperature at the ice surface" unit="degC" /> 45 46 <field id="icetbot" long_name="temperature at the ice bottom" unit="degC" /> … … 165 166 <field id="icetemp_cat" long_name="Ice temperature per category" unit="degC" grid_ref="grid_T_3D_ncatice" /> 166 167 <field id="snwtemp_cat" long_name="Snow temperature per category" unit="degC" grid_ref="grid_T_3D_ncatice" /> 168 <field id="icettop_cat" long_name="Ice/snow surface temperature per category" unit="degC" grid_ref="grid_T_3D_ncatice" /> 167 169 <field id="iceapnd_cat" long_name="Ice melt pond concentration per category" unit="%" grid_ref="grid_T_3D_ncatice" /> 168 170 <field id="icehpnd_cat" long_name="Ice melt pond thickness per category" unit="m" grid_ref="grid_T_3D_ncatice" /> -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r9076 r9433 145 145 !! sm_i | - | Mean sea ice salinity | ppt | 146 146 !! tm_i | - | Mean sea ice temperature | K | 147 !! tm_s | - | Mean snow temperature | K | 147 148 !! et_i ! - ! Total ice enthalpy | J/m2 | 148 149 !! et_s ! - ! Total snow enthalpy | J/m2 | … … 340 341 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: et_i , et_s !: ice and snow total heat content 341 342 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tm_i !: mean ice temperature over all categories 343 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tm_s !: mean snw temperature over all categories 342 344 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: bvm_i !: brine volume averaged over all categories 343 345 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sm_i !: mean sea ice salinity averaged over all categories [PSU] … … 458 460 ALLOCATE( u_ice(jpi,jpj) , v_ice(jpi,jpj) , & 459 461 & vt_i (jpi,jpj) , vt_s (jpi,jpj) , at_i(jpi,jpj) , ato_i(jpi,jpj) , & 460 & et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i(jpi,jpj) , bvm_i(jpi,jpj) ,&462 & et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i(jpi,jpj) , tm_s (jpi,jpj) , bvm_i(jpi,jpj) , & 461 463 & sm_i (jpi,jpj) , tm_su(jpi,jpj) , hm_i(jpi,jpj) , hm_s (jpi,jpj) , & 462 464 & om_i (jpi,jpj) , tau_icebfr(jpi,jpj) , STAT=ierr(ii) ) -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icevar.F90
r9271 r9433 24 24 !! - vt_s(jpi,jpj) 25 25 !! - at_i(jpi,jpj) 26 !! - et_s(jpi,jpj) !total snow heat content 27 !! - et_i(jpi,jpj) !total ice thermal content 28 !! - sm_i(jpi,jpj) !mean ice salinity 29 !! - tm_i (jpi,jpj) !mean ice temperature 26 !! - et_s(jpi,jpj) total snow heat content 27 !! - et_i(jpi,jpj) total ice thermal content 28 !! - sm_i(jpi,jpj) mean ice salinity 29 !! - tm_i(jpi,jpj) mean ice temperature 30 !! - tm_s(jpi,jpj) mean snw temperature 30 31 !!====================================================================== 31 32 !! History : - ! 2006-01 (M. Vancoppenolle) Original code … … 91 92 ! 92 93 INTEGER :: ji, jj, jk, jl ! dummy loop indices 93 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z1_at_i, z1_vt_i 94 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z1_at_i, z1_vt_i, z1_vt_s 94 95 !!------------------------------------------------------------------- 95 96 ! … … 108 109 IF( kn > 1 ) THEN 109 110 ! 110 ALLOCATE( z1_at_i(jpi,jpj) , z1_vt_i(jpi,jpj) )111 ALLOCATE( z1_at_i(jpi,jpj) , z1_vt_i(jpi,jpj) , z1_vt_s(jpi,jpj) ) 111 112 WHERE( at_i(:,:) > epsi20 ) ; z1_at_i(:,:) = 1._wp / at_i(:,:) 112 113 ELSEWHERE ; z1_at_i(:,:) = 0._wp … … 114 115 WHERE( vt_i(:,:) > epsi20 ) ; z1_vt_i(:,:) = 1._wp / vt_i(:,:) 115 116 ELSEWHERE ; z1_vt_i(:,:) = 0._wp 117 END WHERE 118 WHERE( vt_s(:,:) > epsi20 ) ; z1_vt_s(:,:) = 1._wp / vt_s(:,:) 119 ELSEWHERE ; z1_vt_s(:,:) = 0._wp 116 120 END WHERE 117 121 ! … … 127 131 ! 128 132 tm_i(:,:) = 0._wp 133 tm_s(:,:) = 0._wp 129 134 DO jl = 1, jpl 130 135 DO jk = 1, nlay_i 131 136 tm_i(:,:) = tm_i(:,:) + r1_nlay_i * t_i (:,:,jk,jl) * v_i(:,:,jl) * z1_vt_i(:,:) 137 END DO 138 DO jk = 1, nlay_s 139 tm_s(:,:) = tm_s(:,:) + r1_nlay_s * t_s (:,:,jk,jl) * v_s(:,:,jl) * z1_vt_s(:,:) 132 140 END DO 133 141 END DO … … 138 146 tm_si(:,:) = rt0 139 147 tm_i (:,:) = rt0 140 END WHERE 141 142 DEALLOCATE( z1_at_i , z1_vt_i ) 148 tm_s (:,:) = rt0 149 END WHERE 150 151 DEALLOCATE( z1_at_i , z1_vt_i , z1_vt_s ) 143 152 ENDIF 144 153 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icewri.F90
r9124 r9433 50 50 REAL(wp) :: z2da, z2db, zrho1, zrho2 51 51 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 52 REAL(wp), DIMENSION(jpi,jpj) :: zmsk00, zmsk05, zmsk15 ! O%, 5% and 15% concentrationmask53 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zmsk00l ! cat masks52 REAL(wp), DIMENSION(jpi,jpj) :: zmsk00, zmsk05, zmsk15, zmsksn ! O%, 5% and 15% concentration mask and snow mask 53 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zmsk00l, zmsksnl ! cat masks 54 54 ! 55 55 ! Global ice diagnostics (SIMIP) … … 72 72 zmsk05(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.05_wp ) ) ! 1 if 5% ice , 0 if less 73 73 zmsk15(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.15_wp ) ) ! 1 if 15% ice, 0 if less 74 zmsksn(ji,jj) = MAX( 0._wp , SIGN( 1._wp , vt_s(ji,jj) - epsi06 ) ) ! 1 if snow , 0 if no snow 74 75 END DO 75 76 END DO … … 78 79 DO ji = 1, jpi 79 80 zmsk00l(ji,jj,jl) = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) ) 81 zmsksnl(ji,jj,jl) = MAX( 0._wp , SIGN( 1._wp , v_s(ji,jj,jl) - epsi06 ) ) 80 82 END DO 81 83 END DO … … 93 95 ! general fields 94 96 IF( iom_use('icemass' ) ) CALL iom_put( "icemass", rhoic * vt_i * zmsk00 ) ! Ice mass per cell area 95 IF( iom_use('snwmass' ) ) CALL iom_put( "snwmass", rhosn * vt_s * zmsk 00) ! Snow mass per cell area97 IF( iom_use('snwmass' ) ) CALL iom_put( "snwmass", rhosn * vt_s * zmsksn ) ! Snow mass per cell area 96 98 IF( iom_use('icepres' ) ) CALL iom_put( "icepres", zmsk00 ) ! Ice presence (1 or 0) 97 99 IF( iom_use('iceconc' ) ) CALL iom_put( "iceconc", at_i * zmsk00 ) ! ice concentration … … 102 104 IF( iom_use('iceage' ) ) CALL iom_put( "iceage" , om_i * zmsk00 / rday ) ! ice age 103 105 IF( iom_use('icehnew' ) ) CALL iom_put( "icehnew", ht_i_new ) ! new ice thickness formed in the leads 104 IF( iom_use('snwvolu' ) ) CALL iom_put( "snwvolu", vt_s * zmsk 00) ! snow volume106 IF( iom_use('snwvolu' ) ) CALL iom_put( "snwvolu", vt_s * zmsksn ) ! snow volume 105 107 IF( iom_use('icefrb') ) THEN 106 108 z2d(:,:) = ( zrho1 * hm_i(:,:) - zrho2 * hm_s(:,:) ) … … 119 121 ! heat 120 122 IF( iom_use('icetemp' ) ) CALL iom_put( "icetemp", ( tm_i - rt0 ) * zmsk00 ) ! ice mean temperature 123 IF( iom_use('snwtemp' ) ) CALL iom_put( "snwtemp", ( tm_s - rt0 ) * zmsksn ) ! snw mean temperature 121 124 IF( iom_use('icettop' ) ) CALL iom_put( "icettop", ( tm_su - rt0 ) * zmsk00 ) ! temperature at the ice surface 122 125 IF( iom_use('icetbot' ) ) CALL iom_put( "icetbot", ( t_bo - rt0 ) * zmsk00 ) ! temperature at the ice bottom 123 126 IF( iom_use('icetsni' ) ) CALL iom_put( "icetsni", ( tm_si - rt0 ) * zmsk00 ) ! temperature at the snow-ice interface 124 127 IF( iom_use('icehc' ) ) CALL iom_put( "icehc" , -et_i * zmsk00 ) ! ice heat content 125 IF( iom_use('snwhc' ) ) CALL iom_put( "snwhc" , -et_s * zmsk 00) ! snow heat content128 IF( iom_use('snwhc' ) ) CALL iom_put( "snwhc" , -et_s * zmsksn ) ! snow heat content 126 129 127 130 ! momentum … … 147 150 IF( iom_use('iceconc_cat' ) ) CALL iom_put( "iceconc_cat" , a_i * zmsk00l ) ! area for categories 148 151 IF( iom_use('icethic_cat' ) ) CALL iom_put( "icethic_cat" , h_i * zmsk00l ) ! thickness for categories 149 IF( iom_use('snwthic_cat' ) ) CALL iom_put( "snwthic_cat" , h_s * zmsk 00l ) ! snow depth for categories152 IF( iom_use('snwthic_cat' ) ) CALL iom_put( "snwthic_cat" , h_s * zmsksnl ) ! snow depth for categories 150 153 IF( iom_use('icesalt_cat' ) ) CALL iom_put( "icesalt_cat" , s_i * zmsk00l ) ! salinity for categories 151 154 IF( iom_use('iceage_cat' ) ) CALL iom_put( "iceage_cat" , o_i * zmsk00l / rday ) ! ice age 152 155 IF( iom_use('icetemp_cat' ) ) CALL iom_put( "icetemp_cat" , ( SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i - rt0 ) * zmsk00l ) ! ice temperature 153 IF( iom_use('snwtemp_cat' ) ) CALL iom_put( "snwtemp_cat" , ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zmsk00l ) ! snow temperature 154 IF( iom_use('icebrv_cat' ) ) CALL iom_put( "icebrv_cat" , bv_i * 100. * zmsk00l ) ! brine volume 155 IF( iom_use('iceapnd_cat' ) ) CALL iom_put( "iceapnd_cat" , a_ip * zmsk00l ) ! melt pond frac for categories 156 IF( iom_use('icehpnd_cat' ) ) CALL iom_put( "icehpnd_cat" , h_ip * zmsk00l ) ! melt pond frac for categories 157 IF( iom_use('iceafpnd_cat') ) CALL iom_put( "iceafpnd_cat", a_ip_frac * zmsk00l ) ! melt pond frac for categories 156 IF( iom_use('snwtemp_cat' ) ) CALL iom_put( "snwtemp_cat" , ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zmsksnl ) ! snow temperature 157 IF( iom_use('icettop_cat' ) ) CALL iom_put( "icettop_cat" , ( t_su - rt0 ) * zmsk00l ) ! surface temperature 158 IF( iom_use('icebrv_cat' ) ) CALL iom_put( "icebrv_cat" , bv_i * 100. * zmsk00l ) ! brine volume 159 IF( iom_use('iceapnd_cat' ) ) CALL iom_put( "iceapnd_cat" , a_ip * zmsk00l ) ! melt pond frac for categories 160 IF( iom_use('icehpnd_cat' ) ) CALL iom_put( "icehpnd_cat" , h_ip * zmsk00l ) ! melt pond frac for categories 161 IF( iom_use('iceafpnd_cat') ) CALL iom_put( "iceafpnd_cat", a_ip_frac * zmsk00l ) ! melt pond frac for categories 158 162 159 163 !------------------
Note: See TracChangeset
for help on using the changeset viewer.