Changeset 11741 for NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/NST/agrif_oce_update.F90
- Timestamp:
- 2019-10-21T12:26:39+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/NST/agrif_oce_update.F90
r11625 r11741 1 #undef DECAL_FEEDBACK /* SEPARATION of INTERFACES*/ 2 #undef VOL_REFLUX /* VOLUME REFLUXING*/ 1 #undef DECAL_FEEDBACK /* SEPARATION of INTERFACES */ 2 #undef DECAL_FEEDBACK_2D /* SEPARATION of INTERFACES (Barotropic mode) */ 3 #undef VOL_REFLUX /* VOLUME REFLUXING*/ 3 4 4 5 MODULE agrif_oce_update … … 48 49 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update tracers from grid Number',Agrif_Fixed() 49 50 51 ! jc_alt Agrif_UseSpecialValueInUpdate = .FALSE. 50 52 Agrif_UseSpecialValueInUpdate = .TRUE. 51 53 Agrif_SpecialValueFineGrid = 0._wp … … 92 94 # endif 93 95 94 # if ! defined DECAL_FEEDBACK 96 # if ! defined DECAL_FEEDBACK_2D 95 97 CALL Agrif_Update_Variable(e1u_id,procname = updateU2d) 96 98 CALL Agrif_Update_Variable(e2v_id,procname = updateV2d) … … 100 102 # endif 101 103 ! 102 # if ! defined DECAL_FEEDBACK 104 # if ! defined DECAL_FEEDBACK_2D 103 105 ! Account for updated thicknesses at boundary edges 104 106 IF (.NOT.ln_linssh) THEN … … 110 112 IF ( ln_dynspg_ts .AND. ln_bt_fw ) THEN 111 113 ! Update time integrated transports 112 # if ! defined DECAL_FEEDBACK 114 # if ! defined DECAL_FEEDBACK_2D 113 115 CALL Agrif_Update_Variable(ub2b_update_id,procname = updateub2b) 114 116 CALL Agrif_Update_Variable(vb2b_update_id,procname = updatevb2b) … … 130 132 Agrif_UseSpecialValueInUpdate = .TRUE. 131 133 Agrif_SpecialValueFineGrid = 0. 132 # if ! defined DECAL_FEEDBACK 134 # if ! defined DECAL_FEEDBACK_2D 133 135 CALL Agrif_Update_Variable(sshn_id,procname = updateSSH) 134 136 # else … … 141 143 IF ( ln_dynspg_ts.AND.ln_bt_fw ) THEN 142 144 ! Refluxing on ssh: 143 # if defined DECAL_FEEDBACK 145 # if defined DECAL_FEEDBACK_2D 144 146 CALL Agrif_Update_Variable(ub2b_update_id,locupdate1=(/0, 0/),locupdate2=(/1, 1/),procname = reflux_sshu) 145 147 CALL Agrif_Update_Variable(vb2b_update_id,locupdate1=(/1, 1/),locupdate2=(/0, 0/),procname = reflux_sshv) … … 299 301 DO ji=i1,i2 300 302 tabres(ji,jj,jk,jn) = (tsn(ji,jj,jk,jn) * e3t_n(ji,jj,jk) ) & 301 * tmask(ji,jj,jk) + (tmask(ji,jj,jk)-1._wp)*999._wp 303 & * tmask(ji,jj,jk) + (tmask(ji,jj,jk)-1._wp) * 999._wp 304 !jc_alt tabres(ji,jj,jk,jn) = tsn(ji,jj,jk,jn) * e3t_n(ji,jj,jk) 302 305 END DO 303 306 END DO … … 307 310 DO jj=j1,j2 308 311 DO ji=i1,i2 309 tabres(ji,jj,jk,n2) = tmask(ji,jj,jk) * e3t_n(ji,jj,jk) & 310 + (tmask(ji,jj,jk)-1)*999._wp 312 tabres(ji,jj,jk,n2) = tmask(ji,jj,jk) * e3t_n(ji,jj,jk) & 313 & + (tmask(ji,jj,jk) - 1._wp) * 999._wp 314 ! jc_alt tabres(ji,jj,jk,n2) = tmask(ji,jj,jk) * e3t_n(ji,jj,jk) 311 315 END DO 312 316 END DO … … 320 324 DO jk=k1,k2 !k2 = jpk of child grid 321 325 IF (tabres(ji,jj,jk,n2) < -900._wp ) EXIT 326 ! jc_alt IF (tabres(ji,jj,jk,n2) == 0._wp ) EXIT 322 327 N_in = N_in + 1 323 328 tabin(jk,:) = tabres(ji,jj,jk,n1:n2-1)/tabres(ji,jj,jk,n2) … … 476 481 DO ji=i1,i2 477 482 tabres(ji,jj,jk,1) = zrhoy * e2u(ji,jj) * e3u_n(ji,jj,jk) * umask(ji,jj,jk) * un(ji,jj,jk) & 478 + (umask(ji,jj,jk)-1)*999._wp 483 & + (umask(ji,jj,jk)-1._wp)*999._wp 484 ! jc_alt tabres(ji,jj,jk,1) = zrhoy * e2u(ji,jj) * e3u_n(ji,jj,jk) * umask(ji,jj,jk) * un(ji,jj,jk) 479 485 tabres(ji,jj,jk,2) = zrhoy * umask(ji,jj,jk) * e2u(ji,jj) * e3u_n(ji,jj,jk) & 480 + (umask(ji,jj,jk)-1)*999._wp 486 & + (umask(ji,jj,jk)-1._wp)*999._wp 487 ! jc_alt tabres(ji,jj,jk,2) = zrhoy * umask(ji,jj,jk) * e2u(ji,jj) * e3u_n(ji,jj,jk) 481 488 END DO 482 489 END DO … … 491 498 tabin(:) = 0._wp 492 499 DO jk=k1,k2 !k2=jpk of child grid 493 IF( tabres(ji,jj,jk,2) < -900) EXIT 500 IF( tabres(ji,jj,jk,2) < -900._wp) EXIT 501 ! jc_alt IF( tabres(ji,jj,jk,2) == 0.) EXIT 494 502 N_in = N_in + 1 495 503 tabin(jk) = tabres(ji,jj,jk,1)/tabres(ji,jj,jk,2) … … 671 679 DO ji=i1,i2 672 680 tabres(ji,jj,jk,1) = zrhox * e1v(ji,jj) * e3v_n(ji,jj,jk) * vmask(ji,jj,jk) * vn(ji,jj,jk) & 673 + (vmask(ji,jj,jk)-1)*999._wp 674 tabres(ji,jj,jk,2) = vmask(ji,jj,jk) * zrhox * e1v(ji,jj) * e3v_n(ji,jj,jk) & 675 + (vmask(ji,jj,jk)-1)*999._wp 681 & + (vmask(ji,jj,jk)-1._wp) * 999._wp 682 ! jc_alt tabres(ji,jj,jk,1) = zrhox * e1v(ji,jj) * e3v_n(ji,jj,jk) * vmask(ji,jj,jk) * vn(ji,jj,jk) 683 tabres(ji,jj,jk,1) = zrhox * e1v(ji,jj) * e3v_n(ji,jj,jk) * vmask(ji,jj,jk) * vn(ji,jj,jk) & 684 & + (vmask(ji,jj,jk)-1._wp) * 999._wp 685 ! jc_alt tabres(ji,jj,jk,1) = zrhox * e1v(ji,jj) * e3v_n(ji,jj,jk) * vmask(ji,jj,jk) * vn(ji,jj,jk) 676 686 END DO 677 687 END DO … … 684 694 N_in = 0 685 695 DO jk=k1,k2 686 IF (tabres(ji,jj,jk,2) < -900) EXIT 696 IF (tabres(ji,jj,jk,2) < -900._wp) EXIT 697 ! jc_alt IF (tabres(ji,jj,jk,2) == 0) EXIT 687 698 N_in = N_in + 1 688 699 tabin(jk) = tabres(ji,jj,jk,1)/tabres(ji,jj,jk,2)
Note: See TracChangeset
for help on using the changeset viewer.