Changeset 7207 for branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM
- Timestamp:
- 2016-11-08T14:26:53+01:00 (7 years ago)
- Location:
- branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90
r7204 r7207 78 78 REAL(wp):: z2dcrsu, z2dcrsv 79 79 REAL(wp):: z1_2dt 80 REAL(wp):: zmin,zmax 80 81 INTEGER :: i,j,ijis,ijie,ijjs,ijje 81 82 INTEGER :: iji,ijj … … 95 96 CALL wrk_alloc( jpi_crs, jpj_crs, z2d_crs ) 96 97 97 98 IF( kt == nit000 ) THEN99 tsn_crs (:,:,:,:) = 0._wp ! temp/sal array, now100 un_crs (:,:,: ) = 0._wp ! u-velocity101 vn_crs (:,:,: ) = 0._wp ! v-velocity102 wn_crs (:,:,: ) = 0._wp ! w103 avt_crs (:,:,: ) = 0._wp ! avt104 hdivb_crs(:,:,: ) = 0._wp ! hdiv105 hdivn_crs(:,:,: ) = 0._wp ! hdiv106 rke_crs (:,:,: ) = 0._wp ! rke107 sshn_crs (:,: ) = 0._wp ! ssh108 utau_crs (:,: ) = 0._wp ! taux109 vtau_crs (:,: ) = 0._wp ! tauy110 wndm_crs (:,: ) = 0._wp ! wind speed111 qsr_crs (:,: ) = 0._wp ! qsr112 emp_crs (:,: ) = 0._wp ! emp113 emp_b_crs(:,: ) = 0._wp ! emp114 rnf_crs (:,: ) = 0._wp ! runoff115 rnf_b_crs(:,: ) = 0._wp ! runoff116 fr_i_crs (:,: ) = 0._wp ! ice cover117 ENDIF118 119 98 CALL iom_swap( "nemo_crs" ) ! swap on the coarse grid 120 99 121 100 !--------------------------------------------------------------------------------------------------- 122 !variables domaine au temps before : swap 123 !--------------------------------------------------------------------------------------------------- 124 #if defined key_vvl 125 e3t_b_crs(:,:,:) = e3t_n_crs(:,:,:) 126 e3u_b_crs(:,:,:) = e3u_n_crs(:,:,:) 127 e3v_b_crs(:,:,:) = e3v_n_crs(:,:,:) 128 e3w_b_crs(:,:,:) = e3w_n_crs(:,:,:) 101 !scale factors: swap 102 !--------------------------------------------------------------------------------------------------- 103 #if defined key_vvl 104 !e3t_b_crs(:,:,:) = e3t_n_crs(:,:,:) 105 !e3u_b_crs(:,:,:) = e3u_n_crs(:,:,:) 106 !e3v_b_crs(:,:,:) = e3v_n_crs(:,:,:) 107 !e3w_b_crs(:,:,:) = e3w_n_crs(:,:,:) 108 !e3t_n_crs(:,:,:) = e3t_a_crs(:,:,:) 109 !e3u_n_crs(:,:,:) = e3u_a_crs(:,:,:) 110 !e3v_n_crs(:,:,:) = e3v_a_crs(:,:,:) 111 !e3w_n_crs(:,:,:) = e3w_a_crs(:,:,:) 112 113 !cbr: ds dynnxt, si (lk_dynspg_ts.AND.ln_bt_fw) on fait un swap simple ( e3X_b_crs=e3X_n_crs ) 114 ! sinon e3X_b_crs passe par le filtre d'asselin !!!!!! 115 ! ds dommvl, swap simple pr e3X_n_crs=e3X_a_crs 116 117 118 IF( kt /= nit000 )THEN 119 zfse3t(:,:,:) = e3t_b(:,:,:) 120 zfse3u(:,:,:) = e3u_b(:,:,:) 121 zfse3v(:,:,:) = e3v_b(:,:,:) 122 zfse3w(:,:,:) = e3w_b(:,:,:) 123 CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=e3t_b_crs, p_e3_max_crs=zs_crs) 124 CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=e3w_b_crs, p_e3_max_crs=zs_crs) 125 CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs , cd_type='U', p_mask=umask, p_e3_crs=e3u_b_crs, p_e3_max_crs=zs_crs) 126 CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs , cd_type='V', p_mask=vmask, p_e3_crs=e3v_b_crs, p_e3_max_crs=zs_crs) 127 DO jk = 1, jpk 128 DO ji = 1, jpi_crs 129 DO jj = 1, jpj_crs 130 IF( e3t_b_crs(ji,jj,jk) == 0._wp ) e3t_b_crs(ji,jj,jk) = e3t_1d(jk) 131 IF( e3w_b_crs(ji,jj,jk) == 0._wp ) e3w_b_crs(ji,jj,jk) = e3w_1d(jk) 132 IF( e3u_b_crs(ji,jj,jk) == 0._wp ) e3u_b_crs(ji,jj,jk) = e3t_1d(jk) 133 IF( e3v_b_crs(ji,jj,jk) == 0._wp ) e3v_b_crs(ji,jj,jk) = e3t_1d(jk) 134 ENDDO 135 ENDDO 136 ENDDO 137 129 138 e3t_n_crs(:,:,:) = e3t_a_crs(:,:,:) 130 139 e3u_n_crs(:,:,:) = e3u_a_crs(:,:,:) 131 140 e3v_n_crs(:,:,:) = e3v_a_crs(:,:,:) 132 141 e3w_n_crs(:,:,:) = e3w_a_crs(:,:,:) 133 #endif 142 143 ENDIF 144 #endif 145 !--------------------------------------------------------------------------------------------------- 146 !variables domaine au temps before : swap 147 !--------------------------------------------------------------------------------------------------- 148 #if defined key_vvl 149 zfse3t(:,:,:) = e3t_b(:,:,:) 150 zfse3u(:,:,:) = e3u_b(:,:,:) 151 zfse3v(:,:,:) = e3v_b(:,:,:) 152 zfse3w(:,:,:) = e3w_b(:,:,:) 153 #else 154 zfse3t(:,:,:) = e3t_0(:,:,:) 155 zfse3u(:,:,:) = e3u_0(:,:,:) 156 zfse3v(:,:,:) = e3v_0(:,:,:) 157 zfse3w(:,:,:) = e3w_0(:,:,:) 158 #endif 159 160 !zmin=MINVAL();zmax=MAXVAL();CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld ",zmin,zmax 161 !zmin=MINVAL();zmax=MAXVAL();CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld ",zmin,zmax 134 162 135 163 IF( kt /= nit000 )THEN 136 tsb_crs(:,:,:,jp_tem) = tsn_crs(:,:,:,jp_tem)137 tsb_crs(:,:,:,jp_sal) = tsn_crs(:,:,:,jp_sal)138 ub_crs(:,:,:) = un_crs(:,:,:)139 vb_crs(:,:,:) = vn_crs(:,:,:)140 sshb_crs(:,:) = sshb_crs(:,:)141 164 emp_b_crs(:,:) = emp_crs(:,:) 142 165 rnf_b_crs(:,:) = rnf_crs(:,:) 143 rb2_crs(:,:,:) = rn2_crs(:,:,:) 166 hdivb_crs(:,:,:) = hdivn_crs(:,:,:) !cbr hdivb_crs pas utile ????????????????????????????????? 167 ELSE 168 emp_b_crs(:,: ) = 0._wp 169 rnf_b_crs(:,: ) = 0._wp 170 hdivb_crs(:,:,: ) = 0._wp !cbr hdivb_crs pas utile ????????????????????????????????? 144 171 ENDIF 145 172 173 ! Temperature 174 zt(:,:,:) = tsb(:,:,:,jp_tem) ; zt_crs(:,:,:) = 0._wp 175 CALL crs_dom_ope( zt, 'VOL', 'T', tmask, zt_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 ) 176 tsb_crs(:,:,:,jp_tem) = zt_crs(:,:,:) 177 178 ! Salinity 179 zs(:,:,:) = tsb(:,:,:,jp_sal) ; zs_crs(:,:,:) = 0._wp 180 CALL crs_dom_ope( zs, 'VOL', 'T', tmask, zs_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 ) 181 tsb_crs(:,:,:,jp_sal) = zs_crs(:,:,:) 182 183 ! U-velocity !cb pas utile ????????????????????????????????? 184 CALL crs_dom_ope( ub, 'SUM', 'U', umask, ub_crs, p_e12=e2u, p_e3=zfse3u, p_surf_crs=e2e3u_msk, psgn=-1.0 ) 185 186 ! V-velocity pas utile ????????????????????????????????? 187 CALL crs_dom_ope( vb, 'SUM', 'V', vmask, vb_crs, p_e12=e1v, p_e3=zfse3v, p_surf_crs=e1e3v_msk, psgn=-1.0 ) 188 189 ! n2 190 CALL crs_dom_ope( rn2b, 'VOL', 'W', tmask, rb2_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 ) 191 192 !ssh !cbr pas utile ?????????????????????????????????????? 193 zfse3t(:,:,:) = 1._wp 194 CALL crs_dom_ope( sshb , 'VOL', 'T', tmask, sshb_crs , p_e12=e1e2t, p_e3=zfse3t , psgn=1.0 ) 195 146 196 !--------------------------------------------------------------------------------------------------- 147 197 !variables domaine au temps now : 148 198 !--------------------------------------------------------------------------------------------------- 149 #if defined key_vvl150 zfse3t(:,:,:) = e3t_n(:,:,:)151 zfse3u(:,:,:) = e3u_n(:,:,:)152 zfse3v(:,:,:) = e3v_n(:,:,:)153 zfse3w(:,:,:) = e3w_n(:,:,:)154 155 CALL crs_dom_sfc( umask, 'U', e2e3u_crs, e2e3u_msk, p_e2=e2u, p_e3=zfse3u )156 CALL crs_dom_sfc( vmask, 'V', e1e3v_crs, e1e3v_msk, p_e1=e1v, p_e3=zfse3v )157 CALL iom_put("e2e3u_crs",e2e3u_crs)158 CALL iom_put("e2e3u_msk",e2e3u_msk)159 CALL iom_put("e1e3v_crs",e1e3v_crs)160 CALL iom_put("e1e3v_msk",e1e3v_msk)161 !162 CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=zs_crs, p_e3_max_crs=e3t_max_0_crs)163 CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=zs_crs, p_e3_max_crs=e3w_max_0_crs)164 CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs , cd_type='U', p_mask=umask, p_e3_crs=zs_crs, p_e3_max_crs=e3u_max_0_crs)165 CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs , cd_type='V', p_mask=vmask, p_e3_crs=zs_crs, p_e3_max_crs=e3v_max_0_crs)166 167 CALL crs_dom_ope( gdepw_n, 'MAX', 'T', tmask, gdept_n_crs, p_e3=zfse3t, psgn=1.0 )168 CALL crs_dom_ope( gdepw_n, 'MAX', 'W', tmask, gdepw_n_crs, p_e3=zfse3w, psgn=1.0 )169 170 CALL crs_dom_facvol( tmask, 'T', e1t, e2t, zfse3t, ocean_volume_crs_t, facvol_t )171 CALL iom_put("cvol_crs_t",ocean_volume_crs_t)172 !173 bt_crs(:,:,:) = ocean_volume_crs_t(:,:,:) * facvol_t(:,:,:)*tmask_crs(:,:,:)174 !175 r1_bt_crs(:,:,:) = 0._wp176 WHERE( bt_crs /= 0._wp ) r1_bt_crs(:,:,:) = 1._wp / bt_crs(:,:,:)177 178 CALL crs_dom_facvol( tmask, 'W', e1t, e2t, zfse3w, ocean_volume_crs_w, facvol_w )179 180 #endif181 182 199 #if defined key_vvl 183 200 zfse3t(:,:,:) = e3t_n(:,:,:) … … 196 213 #endif 197 214 215 #if defined key_vvl 216 CALL crs_dom_sfc( umask, 'U', e2e3u_crs, e2e3u_msk, p_e2=e2u, p_e3=zfse3u ) 217 CALL crs_dom_sfc( vmask, 'V', e1e3v_crs, e1e3v_msk, p_e1=e1v, p_e3=zfse3v ) 218 CALL iom_put("e2e3u_crs",e2e3u_crs) 219 CALL iom_put("e2e3u_msk",e2e3u_msk) 220 CALL iom_put("e1e3v_crs",e1e3v_crs) 221 CALL iom_put("e1e3v_msk",e1e3v_msk) 222 ! 223 CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=zs_crs, p_e3_max_crs=e3t_max_n_crs) 224 CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=zs_crs, p_e3_max_crs=e3w_max_n_crs) 225 CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs , cd_type='U', p_mask=umask, p_e3_crs=zs_crs, p_e3_max_crs=e3u_max_n_crs) 226 CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs , cd_type='V', p_mask=vmask, p_e3_crs=zs_crs, p_e3_max_crs=e3v_max_n_crs) 227 228 WHERE(e3t_max_n_crs == 0._wp) e3t_max_n_crs=r_inf 229 WHERE(e3u_max_n_crs == 0._wp) e3u_max_n_crs=r_inf 230 WHERE(e3v_max_n_crs == 0._wp) e3v_max_n_crs=r_inf 231 WHERE(e3w_max_n_crs == 0._wp) e3w_max_n_crs=r_inf 232 233 CALL crs_dom_ope( gdepw_n, 'MAX', 'T', tmask, gdept_n_crs, p_e3=zfse3t, psgn=1.0 ) 234 CALL crs_dom_ope( gdepw_n, 'MAX', 'W', tmask, gdepw_n_crs, p_e3=zfse3w, psgn=1.0 ) 235 236 CALL crs_dom_facvol( tmask, 'T', e1t, e2t, zfse3t, ocean_volume_crs_t, facvol_t ) 237 CALL iom_put("cvol_crs_t",ocean_volume_crs_t) 238 ! 239 bt_crs(:,:,:) = ocean_volume_crs_t(:,:,:) * facvol_t(:,:,:)*tmask_crs(:,:,:) 240 ! 241 r1_bt_crs(:,:,:) = 0._wp 242 WHERE( bt_crs /= 0._wp ) r1_bt_crs(:,:,:) = 1._wp / bt_crs(:,:,:) 243 244 CALL crs_dom_facvol( tmask, 'W', e1t, e2t, zfse3w, ocean_volume_crs_w, facvol_w ) 245 246 #endif 247 198 248 ! Temperature 199 249 zt(:,:,:) = tsn(:,:,:,jp_tem) ; zt_crs(:,:,:) = 0._wp … … 214 264 ! U-velocity 215 265 CALL crs_dom_ope( un, 'SUM', 'U', umask, un_crs, p_e12=e2u, p_e3=zfse3u, p_surf_crs=e2e3u_msk, psgn=-1.0 ) 216 un_crs(:,:,:) = un_crs(:,:,:)*umask_crs(:,:,:) 266 un_crs(:,:,:) = un_crs(:,:,:)*umask_crs(:,:,:) !cbr utile ?????????????????? 217 267 CALL iom_put( "uoce" , un_crs ) ! i-current 218 268 219 269 ! V-velocity 220 270 CALL crs_dom_ope( vn, 'SUM', 'V', vmask, vn_crs, p_e12=e1v, p_e3=zfse3v, p_surf_crs=e1e3v_msk, psgn=-1.0 ) 221 vn_crs(:,:,:) = vn_crs(:,:,:)*vmask_crs(:,:,:) 271 vn_crs(:,:,:) = vn_crs(:,:,:)*vmask_crs(:,:,:) !cbr utile ?????????????????? 222 272 CALL iom_put( "voce" , vn_crs ) ! i-current 273 274 !n2 275 CALL crs_dom_ope( rn2 , 'VOL', 'W', tmask, rn2_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 ) 223 276 224 277 ! Horizontal divergence ( following OPA_SRC/DYN/divcur.F90 ) 225 278 hdivn_crs(:,:,:)=0._wp 226 227 279 DO jk = 1, jpkm1 228 280 DO jj = 2,jpj_crs … … 268 320 CALL iom_put( "avt", avt_crs ) ! Kz 269 321 270 CALL crs_dom_ope( sshn , 'VOL', 'T', tmask, sshn_crs , p_e12=e1e2t, p_e3=zfse3t , psgn=1.0 )322 !2D fields 271 323 CALL crs_dom_ope( utau , 'SUM', 'U', umask, utau_crs , p_e12=e2u , p_surf_crs=e2u_crs , psgn=1.0 ) 272 324 CALL crs_dom_ope( vtau , 'SUM', 'V', vmask, vtau_crs , p_e12=e1v , p_surf_crs=e1v_crs , psgn=1.0 ) … … 279 331 CALL crs_dom_ope( gdepw_0, 'MAX', 'W', tmask, gdepw_0_crs, p_e3=zfse3w, psgn=1.0 ) 280 332 #endif 281 282 CALL crs_dom_ope( emp , 'SUM', 'T', tmask, emp_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 283 333 CALL crs_dom_ope( emp ,'SUM', 'T', tmask, emp_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 284 334 CALL crs_dom_ope( fmmflx,'SUM', 'T', tmask, fmmflx_crs, p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 285 CALL crs_dom_ope( sfx , 'SUM', 'T', tmask, sfx_crs, p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 )286 CALL crs_dom_ope( fr_i , 'SUM', 'T', tmask, fr_i_crs, p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 )335 CALL crs_dom_ope( sfx ,'SUM', 'T', tmask, sfx_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 336 CALL crs_dom_ope( fr_i ,'SUM', 'T', tmask, fr_i_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 287 337 288 338 z2d=REAL(nmln,wp) … … 291 341 nmln_crs=MAX(nlb10,nmln_crs) 292 342 293 CALL iom_put( "ssh" , sshn_crs ) ! ssh output294 343 CALL iom_put( "utau" , utau_crs ) ! i-tau output 295 344 CALL iom_put( "vtau" , vtau_crs ) ! j-tau output … … 301 350 CALL iom_put( "ice_cover", fr_i_crs ) ! ice cover output 302 351 303 #if defined key_vvl 304 !--------------------------------------------------------------------------------------------------- 305 !variables au temps after 306 !--------------------------------------------------------------------------------------------------- 307 308 zfse3t(:,:,:) = 1._wp 309 zt(:,:,:) = tmask(:,:,:) 310 ssha(:,:) = ssha(:,:) * tmask(:,:,1) 311 CALL crs_dom_ope( ssha , 'VOL', 'T', zt, ssha_crs , p_e12=e1e2t, p_e3=zfse3t , psgn=1.0 ) 312 CALL crs_lbc_lnk( ssha_crs, 'T', 1.0 ) !!!!!!!!!!!!!!!!!!! pas utile !!!!!!!!!!!!!!!!!!!!!!!!! 313 314 zfse3t(:,:,:) = e3t_a(:,:,:) 315 zfse3u(:,:,:) = e3u_a(:,:,:) 316 zfse3v(:,:,:) = e3v_a(:,:,:) 317 CALL dom_vvl_interpol( zfse3t(:,:,:), zfse3w(:,:,:), 'W' ) 318 319 CALL crs_dom_sfc( umask, 'U', zt_crs, zs_crs, p_e2=e2u, p_e3=zfse3u ) ! zt_crs=e2e3u_crs,zs_crs=e2e3u_msk 320 CALL crs_dom_sfc( vmask, 'V', zt_crs, zs_crs, p_e1=e2v, p_e3=zfse3v ) ! zt_crs=e1e3v_crs,zs_crs=e1e3v_msk 321 CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=e3t_a_crs, p_e3_max_crs=zs_crs) 322 CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=e3w_a_crs, p_e3_max_crs=zs_crs) 323 CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs , cd_type='U', p_mask=umask, p_e3_crs=e3u_a_crs, p_e3_max_crs=zs_crs) 324 CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs , cd_type='V', p_mask=vmask, p_e3_crs=e3v_a_crs, p_e3_max_crs=zs_crs) 325 326 327 DO jk = 1, jpk 328 DO ji = 1, jpi_crs 329 DO jj = 1, jpj_crs 330 IF( e3t_a_crs(ji,jj,jk) == 0._wp ) e3t_a_crs(ji,jj,jk) = e3t_1d(jk) 331 IF( e3w_a_crs(ji,jj,jk) == 0._wp ) e3w_a_crs(ji,jj,jk) = e3w_1d(jk) 332 IF( e3u_a_crs(ji,jj,jk) == 0._wp ) e3u_a_crs(ji,jj,jk) = e3t_1d(jk) 333 IF( e3v_a_crs(ji,jj,jk) == 0._wp ) e3v_a_crs(ji,jj,jk) = e3t_1d(jk) 334 ENDDO 335 ENDDO 336 ENDDO 337 338 !zt_crs=ocean_volume_crs_t ; zs_crs=facvol_t after time !!! 339 CALL crs_dom_facvol( tmask, 'T', e1t, e2t, zfse3t, zt_crs, zs_crs ) 352 zfse3t(:,:,:) = 1._wp 353 CALL crs_dom_ope( sshn , 'VOL', 'T', tmask, sshn_crs , p_e12=e1e2t, p_e3=zfse3t , psgn=1.0 ) 354 CALL iom_put( "ssh" , sshn_crs ) ! ssh output 355 356 zmin=MINVAL(emp);zmax=MAXVAL(emp);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld emp",zmin,zmax 357 zmin=MINVAL(emp_b);zmax=MAXVAL(emp_b);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld emp_b",zmin,zmax 358 zmin=MINVAL(emp_crs);zmax=MAXVAL(emp_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld emp_crs",zmin,zmax 359 zmin=MINVAL(emp_b_crs);zmax=MAXVAL(emp_b_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld emp_b_crs",zmin,zmax 360 361 #if defined key_vvl 362 !--------------------------------------------------------------------------------------------------- 363 !variables au temps after 364 !--------------------------------------------------------------------------------------------------- 365 366 !cbr ssha_crs utile ?????????????????? 367 zfse3t(:,:,:) = 1._wp 368 zt(:,:,:) = tmask(:,:,:) 369 ssha(:,:) = ssha(:,:) * tmask(:,:,1) !cbr utile ?????????????????? 370 CALL crs_dom_ope( ssha , 'VOL', 'T', zt, ssha_crs , p_e12=e1e2t, p_e3=zfse3t , psgn=1.0 ) 371 !CALL crs_lbc_lnk( ssha_crs, 'T', 1.0 ) !!!!!!!!!!!!!!!!!!! pas utile !!!!!!!!!!!!!!!!!!!!!!!!! 372 373 374 zfse3t(:,:,:) = e3t_a(:,:,:) 375 zfse3u(:,:,:) = e3u_a(:,:,:) 376 zfse3v(:,:,:) = e3v_a(:,:,:) 377 CALL dom_vvl_interpol( zfse3t(:,:,:), zfse3w(:,:,:), 'W' ) 378 379 CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=e3t_a_crs, p_e3_max_crs=zs_crs) 380 CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=e3w_a_crs, p_e3_max_crs=zs_crs) 381 CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs , cd_type='U', p_mask=umask, p_e3_crs=e3u_a_crs, p_e3_max_crs=zs_crs) 382 CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs , cd_type='V', p_mask=vmask, p_e3_crs=e3v_a_crs, p_e3_max_crs=zs_crs) 383 384 385 !DO ji=1,jpi_crs 386 ! DO jj=1,jpj_crs 387 ! fse3t_a_crs(ji,jj,jk),fse3t_b_crs(ji,jj,jk)+fse3t_n_crs(ji,jj,jk)*(ssha_crs(ji,jj)-sshb_crs(ji,jj))/(ht_0_crs(ji,jj)+sshn_crs(ji,jj)) 388 ! ENDDO 389 !ENDDO 390 !CALL dom_vvl_interpol_crs( fse3t_a_crs(:,:,:), fse3u_a(:,:,:), 'U' ) 391 !CALL dom_vvl_interpol_crs( fse3t_a_crs(:,:,:), fse3v_a(:,:,:), 'V' ) 392 !CALL dom_vvl_interpol_crs( fse3t_a_crs(:,:,:), fse3w_a(:,:,:), 'W' ) 393 394 !CALL crs_dom_sfc( umask, 'U', zt_crs, zs_crs, p_e2=e2u, p_e3=zfse3u ) ! zt_crs=e2e3u_crs,zs_crs=e2e3u_msk ça sert à quoi ??????????????????????????????????????????? 395 !CALL crs_dom_sfc( vmask, 'V', zt_crs, zs_crs, p_e1=e2v, p_e3=zfse3v ) ! zt_crs=e1e3v_crs,zs_crs=e1e3v_msk ça sert à quoi ??????????????????????????????????????????? 396 397 DO jk = 1, jpk 398 DO ji = 1, jpi_crs 399 DO jj = 1, jpj_crs 400 IF( e3t_a_crs(ji,jj,jk) == 0._wp ) e3t_a_crs(ji,jj,jk) = e3t_1d(jk) 401 IF( e3w_a_crs(ji,jj,jk) == 0._wp ) e3w_a_crs(ji,jj,jk) = e3w_1d(jk) 402 IF( e3u_a_crs(ji,jj,jk) == 0._wp ) e3u_a_crs(ji,jj,jk) = e3t_1d(jk) 403 IF( e3v_a_crs(ji,jj,jk) == 0._wp ) e3v_a_crs(ji,jj,jk) = e3t_1d(jk) 404 ENDDO 405 ENDDO 406 ENDDO 407 408 zmin=MINVAL(e3t_b);zmax=MAXVAL(e3t_b);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld e3t_b",zmin,zmax 409 zmin=MINVAL(e3t_n);zmax=MAXVAL(e3t_n);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld e3t_n",zmin,zmax 410 zmin=MINVAL(e3t_a);zmax=MAXVAL(e3t_a);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld e3t_a",zmin,zmax 411 zmin=MINVAL(e3t_b_crs);zmax=MAXVAL(e3t_b_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld e3t_b_crs",zmin,zmax 412 zmin=MINVAL(e3t_n_crs);zmax=MAXVAL(e3t_n_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld e3t_n_crs",zmin,zmax 413 zmin=MINVAL(e3t_a_crs);zmax=MAXVAL(e3t_a_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld e3t_a_crs",zmin,zmax 414 zmin=MINVAL(sshb);zmax=MAXVAL(sshb);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld sshb",zmin,zmax 415 zmin=MINVAL(sshn);zmax=MAXVAL(sshn);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld sshn",zmin,zmax 416 zmin=MINVAL(ssha);zmax=MAXVAL(ssha);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld ssha",zmin,zmax 417 zmin=MINVAL(sshb_crs);zmax=MAXVAL(sshb_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld sshb_crs",zmin,zmax 418 zmin=MINVAL(sshn_crs);zmax=MAXVAL(sshn_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld sshn_crs",zmin,zmax 419 zmin=MINVAL(ssha_crs);zmax=MAXVAL(ssha_crs);CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"crsfld ssha_crs",zmin,zmax 420 421 !zt_crs=ocean_volume_crs_t ; zs_crs=facvol_t after time !!! ça sert à quoi ??????????????????????????????????????????? 422 CALL crs_dom_facvol( tmask, 'T', e1t, e2t, zfse3t, zt_crs, zs_crs ) 340 423 341 424 #endif … … 349 432 & + z1_2dt * e1e2w_crs(:,:,jk) * ( e3t_a_crs(:,:,jk) - e3t_b_crs(:,:,jk) ) ) * tmask_crs(:,:,jk) 350 433 WHERE( e1e2w_msk(:,:,jk) .NE. 0._wp ) wn_crs(:,:,jk) = wn_crs(:,:,jk) /e1e2w_msk(:,:,jk) 434 435 351 436 ENDDO 352 437 #else … … 363 448 #endif 364 449 CALL crs_lbc_lnk( wn_crs, 'W', 1.0 ) !!!!!!!pas utile, nan ?????????????????????? 365 wn_crs(:,:,:) = wn_crs(:,:,:) * tmask_crs(:,:,:) 450 wn_crs(:,:,:) = wn_crs(:,:,:) * tmask_crs(:,:,:) !!!!!!!pas utile, nan ?????????????????????? 451 366 452 CALL iom_put( "woce", wn_crs ) ! vertical velocity 367 453 -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90
r6797 r7207 201 201 CALL crs_dom_sfc( vmask, 'V', e1e3v_crs, e1e3v_msk, p_e1=e1v, p_e3=zfse3v ) 202 202 203 !cbr utile ???????????????????????????????? 203 204 DO jk=1,jpk 204 205 DO ji=1,jpi_crs … … 221 222 CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs , cd_type='U', p_mask=umask, p_e3_crs=e3u_0_crs, p_e3_max_crs=e3u_max_0_crs) 222 223 CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs , cd_type='V', p_mask=vmask, p_e3_crs=e3v_0_crs, p_e3_max_crs=e3v_max_0_crs) 224 223 225 WHERE(e3t_max_0_crs == 0._wp) e3t_max_0_crs=r_inf 224 226 WHERE(e3u_max_0_crs == 0._wp) e3u_max_0_crs=r_inf … … 257 259 ENDDO 258 260 261 !cbr utile ???????? on le fait ds crsfld, nan ? 259 262 #if defined key_vvl 260 263 e3t_b_crs(:,:,:) = e3t_0_crs(:,:,:) -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl_crs.F90
r6772 r7207 89 89 ! depth of the mixing and mixed layers 90 90 hmld_crs(:,:) = 0._wp 91 hmlp_crs(:,:) = 0._wp 91 92 hmlpt_crs(:,:) = 0._wp 92 93 DO jj = 1, jpj_crs … … 94 95 iiki = imld(ji,jj) 95 96 iikn = nmln_crs(ji,jj) 96 hmld_crs (ji,jj) = ( fsdepw_crs(ji,jj,iiki ) - fsdepw_crs(ji,jj,1 ) ) * tmask_crs(ji,jj,1) ! Turbocline depth97 hmlp_crs (ji,jj) = ( fsdepw_crs(ji,jj,iikn ) - fsdepw_crs(ji,jj,nla10) ) * tmask_crs(ji,jj,1) ! Mixed layer depth98 hmlpt_crs(ji,jj) = ( fsdept_crs(ji,jj,iikn-1) - fsdepw_crs(ji,jj,1 ) ) * tmask_crs(ji,jj,1) ! depth of the last T-point inside the mixed layer97 IF(iiki .NE. 0 ) hmld_crs (ji,jj) = ( fsdepw_crs(ji,jj,iiki ) - fsdepw_crs(ji,jj,1 ) ) * tmask_crs(ji,jj,1) ! Turbocline depth 98 IF(iikn .NE. 0 ) hmlp_crs (ji,jj) = ( fsdepw_crs(ji,jj,iikn ) - fsdepw_crs(ji,jj,nla10) ) * tmask_crs(ji,jj,1) ! Mixed layer depth 99 IF(iikn-1 .NE. 0 ) hmlpt_crs(ji,jj) = ( fsdept_crs(ji,jj,iikn-1) - fsdepw_crs(ji,jj,1 ) ) * tmask_crs(ji,jj,1) ! depth of the last T-point inside the mixed layer 99 100 END DO 100 101 END DO -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r6772 r7207 154 154 IF(lwp)WRITE(numout,*)"trctrp a ",kt,i,zmin,zmax 155 155 156 DO ji=1,jpi 157 DO jj=1,jpj 158 DO jk=1,jpk 159 IF( ieee_is_nan(tra(ji,jj,jk,1)))WRITE(narea+200,*)"test nan a",kt,i,ji,jj,jk,tmask(ji,jj,jk) 160 IF( ieee_is_nan(trn(ji,jj,jk,1)))WRITE(narea+200,*)"test nan n",kt,i,ji,jj,jk,tmask(ji,jj,jk) 161 IF( ieee_is_nan(trb(ji,jj,jk,1)))WRITE(narea+200,*)"test nan b",kt,i,ji,jj,jk,tmask(ji,jj,jk) 162 ENDDO 163 ENDDO 164 ENDDO 165 156 166 END SUBROUTINE test 157 167 #else
Note: See TracChangeset
for help on using the changeset viewer.