Changeset 12816
- Timestamp:
- 2020-04-25T14:32:42+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icedyn_adv_pra.F90
r12744 r12816 870 870 ! 871 871 IF( ln_pnd_H12 ) THEN ! melt pond fraction 872 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap ) 873 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap ) 874 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap ) 875 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap ) 876 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap ) 877 ! ! melt pond volume 878 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp ) 879 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp ) 880 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp ) 881 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 882 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 883 ! 872 IF( iom_varid( numror, 'sxap', ldstop = .FALSE. ) > 0 ) THEN 873 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap ) 874 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap ) 875 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap ) 876 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap ) 877 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap ) 878 ! ! melt pond volume 879 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp ) 880 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp ) 881 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp ) 882 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 883 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 884 ELSE 885 sxap = 0._wp ; syap = 0._wp ; sxxap = 0._wp ; syyap = 0._wp ; sxyap = 0._wp ! melt pond fraction 886 sxvp = 0._wp ; syvp = 0._wp ; sxxvp = 0._wp ; syyvp = 0._wp ; sxyvp = 0._wp ! melt pond volume 887 ENDIF 888 ! 884 889 IF ( ln_pnd_lids ) THEN ! melt pond lid volume 885 CALL iom_get( numrir, jpdom_autoglo, 'sxvl' , sxvl ) 886 CALL iom_get( numrir, jpdom_autoglo, 'syvl' , syvl ) 887 CALL iom_get( numrir, jpdom_autoglo, 'sxxvl', sxxvl ) 888 CALL iom_get( numrir, jpdom_autoglo, 'syyvl', syyvl ) 889 CALL iom_get( numrir, jpdom_autoglo, 'sxyvl', sxyvl ) 890 IF( iom_varid( numror, 'sxvl', ldstop = .FALSE. ) > 0 ) THEN 891 CALL iom_get( numrir, jpdom_autoglo, 'sxvl' , sxvl ) 892 CALL iom_get( numrir, jpdom_autoglo, 'syvl' , syvl ) 893 CALL iom_get( numrir, jpdom_autoglo, 'sxxvl', sxxvl ) 894 CALL iom_get( numrir, jpdom_autoglo, 'syyvl', syyvl ) 895 CALL iom_get( numrir, jpdom_autoglo, 'sxyvl', sxyvl ) 896 ELSE 897 sxvl = 0._wp; syvl = 0._wp ; sxxvl = 0._wp ; syyvl = 0._wp ; sxyvl = 0._wp ! melt pond lid volume 898 ENDIF 890 899 ENDIF 891 900 ENDIF -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/iceistate.F90
r12744 r12816 182 182 ! 183 183 ! -- mandatory fields -- ! 184 zht_i_ini(:,:) = si(jp_hti)%fnow(:,:,1) 185 zht_s_ini(:,:) = si(jp_hts)%fnow(:,:,1) 186 zat_i_ini(:,:) = si(jp_ati)%fnow(:,:,1) 184 zht_i_ini(:,:) = si(jp_hti)%fnow(:,:,1) * tmask(:,:,1) 185 zht_s_ini(:,:) = si(jp_hts)%fnow(:,:,1) * tmask(:,:,1) 186 zat_i_ini(:,:) = si(jp_ati)%fnow(:,:,1) * tmask(:,:,1) 187 187 188 188 ! -- optional fields -- ! … … 226 226 & si(jp_hld)%fnow(:,:,1) = ( rn_hld_ini_n * zswitch + rn_hld_ini_s * (1._wp - zswitch) ) * tmask(:,:,1) 227 227 ! 228 zsm_i_ini(:,:) = si(jp_smi)%fnow(:,:,1) 229 ztm_i_ini(:,:) = si(jp_tmi)%fnow(:,:,1) 230 zt_su_ini(:,:) = si(jp_tsu)%fnow(:,:,1) 231 ztm_s_ini(:,:) = si(jp_tms)%fnow(:,:,1) 232 zapnd_ini(:,:) = si(jp_apd)%fnow(:,:,1) 233 zhpnd_ini(:,:) = si(jp_hpd)%fnow(:,:,1) 234 zhlid_ini(:,:) = si(jp_hld)%fnow(:,:,1) 228 zsm_i_ini(:,:) = si(jp_smi)%fnow(:,:,1) * tmask(:,:,1) 229 ztm_i_ini(:,:) = si(jp_tmi)%fnow(:,:,1) * tmask(:,:,1) 230 zt_su_ini(:,:) = si(jp_tsu)%fnow(:,:,1) * tmask(:,:,1) 231 ztm_s_ini(:,:) = si(jp_tms)%fnow(:,:,1) * tmask(:,:,1) 232 zapnd_ini(:,:) = si(jp_apd)%fnow(:,:,1) * tmask(:,:,1) 233 zhpnd_ini(:,:) = si(jp_hpd)%fnow(:,:,1) * tmask(:,:,1) 234 zhlid_ini(:,:) = si(jp_hld)%fnow(:,:,1) * tmask(:,:,1) 235 235 ! 236 236 ! change the switch for the following -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/NST/agrif_oce_interp.F90
r10068 r12816 96 96 i1 = 1 ; i2 = nlci 97 97 j1 = 1 ; j2 = nlcj 98 IF( nbondj == -1 .OR. nbondj == 2) j1 = 2 + nbghostcells99 IF( nbondj == +1 .OR. nbondj == 2) j2 = nlcj - nbghostcells - 1100 IF( nbondi == -1 .OR. nbondi == 2 )i1 = 2 + nbghostcells101 IF( nbondi == +1 .OR. nbondi == 2 )i2 = nlci - nbghostcells - 198 IF( l_Northedge ) j1 = 2 + nbghostcells 99 IF( l_Southedge ) j2 = nlcj - nbghostcells - 1 100 IF( l_Westedge ) i1 = 2 + nbghostcells 101 IF( l_Eastedge ) i2 = nlci - nbghostcells - 1 102 102 103 103 ! --- West --- ! 104 IF( nbondi == -1 .OR. nbondi == 2) THEN104 IF( l_Westedge ) THEN 105 105 ibdy1 = 2 106 106 ibdy2 = 1+nbghostcells … … 173 173 174 174 ! --- East --- ! 175 IF( nbondi == 1 .OR. nbondi == 2) THEN175 IF( l_Eastedge ) THEN 176 176 ibdy1 = nlci-1-nbghostcells 177 177 ibdy2 = nlci-2 … … 246 246 247 247 ! --- South --- ! 248 IF ( nbondj == -1 .OR. nbondj == 2) THEN248 IF ( l_Southedge ) THEN 249 249 jbdy1 = 2 250 250 jbdy2 = 1+nbghostcells … … 318 318 319 319 ! --- North --- ! 320 IF( nbondj == 1 .OR. nbondj == 2) THEN320 IF( l_Northedge ) THEN 321 321 jbdy1 = nlcj-1-nbghostcells 322 322 jbdy2 = nlcj-2 … … 405 405 IF( Agrif_Root() ) RETURN 406 406 ! 407 IF( (nbondi == -1).OR.(nbondi == 2)) THEN407 IF( l_Westedge ) THEN 408 408 DO jj=1,jpj 409 409 va_e(2:nbghostcells+1,jj) = vbdy_w(1:nbghostcells,jj) * hvr_e(2:nbghostcells+1,jj) … … 416 416 ENDIF 417 417 ! 418 IF( (nbondi == 1).OR.(nbondi == 2)) THEN418 IF( l_Eastedge ) THEN 419 419 DO jj=1,jpj 420 420 va_e(nlci-nbghostcells:nlci-1,jj) = vbdy_e(1:nbghostcells,jj) * hvr_e(nlci-nbghostcells:nlci-1,jj) … … 427 427 ENDIF 428 428 ! 429 IF ((nbondj == -1).OR.(nbondj == 2)) THEN429 IF ( l_Southedge ) THEN 430 430 DO ji=1,jpi 431 431 ua_e(ji,2:nbghostcells+1) = ubdy_s(ji,1:nbghostcells) * hur_e(ji,2:nbghostcells+1) … … 438 438 ENDIF 439 439 ! 440 IF ((nbondj == 1).OR.(nbondj == 2)) THEN440 IF ( l_Northedge ) THEN 441 441 DO ji=1,jpi 442 442 ua_e(ji,nlcj-nbghostcells:nlcj-1) = ubdy_n(ji,1:nbghostcells) * hur_e(ji,nlcj-nbghostcells:nlcj-1) … … 516 516 ! 517 517 ! --- West --- ! 518 IF( (nbondi == -1).OR.(nbondi == 2)) THEN518 IF( l_Westedge ) THEN 519 519 indx = 1+nbghostcells 520 520 DO jj = 1, jpj … … 526 526 ! 527 527 ! --- East --- ! 528 IF( (nbondi == 1).OR.(nbondi == 2)) THEN528 IF( l_Eastedge ) THEN 529 529 indx = nlci-nbghostcells 530 530 DO jj = 1, jpj … … 536 536 ! 537 537 ! --- South --- ! 538 IF ((nbondj == -1).OR.(nbondj == 2)) THEN538 IF ( l_Southedge ) THEN 539 539 indy = 1+nbghostcells 540 540 DO jj = 2, indy … … 546 546 ! 547 547 ! --- North --- ! 548 IF ((nbondj == 1).OR.(nbondj == 2)) THEN548 IF ( l_Northedge ) THEN 549 549 indy = nlcj-nbghostcells 550 550 DO jj = indy, nlcj-1 … … 571 571 ! 572 572 ! --- West --- ! 573 IF( (nbondi == -1).OR.(nbondi == 2)) THEN573 IF( l_Westedge ) THEN 574 574 indx = 1+nbghostcells 575 575 DO jj = 1, jpj … … 581 581 ! 582 582 ! --- East --- ! 583 IF( (nbondi == 1).OR.(nbondi == 2)) THEN583 IF( l_Eastedge ) THEN 584 584 indx = nlci-nbghostcells 585 585 DO jj = 1, jpj … … 591 591 ! 592 592 ! --- South --- ! 593 IF( (nbondj == -1).OR.(nbondj == 2)) THEN593 IF( l_Southedge ) THEN 594 594 indy = 1+nbghostcells 595 595 DO jj = 2, indy … … 601 601 ! 602 602 ! --- North --- ! 603 IF( (nbondj == 1).OR.(nbondj == 2)) THEN603 IF( l_Northedge ) THEN 604 604 indy = nlcj-nbghostcells 605 605 DO jj = indy, nlcj-1 … … 722 722 ! 723 723 ! Remove CORNERS 724 IF( (nbondj == -1).OR.(nbondj == 2)) jmin = 2 + nbghostcells725 IF( (nbondj == +1).OR.(nbondj == 2)) jmax = nlcj - nbghostcells - 1726 IF( (nbondi == -1).OR.(nbondi == 2))imin = 2 + nbghostcells727 IF( (nbondi == +1).OR.(nbondi == 2))imax = nlci - nbghostcells - 1724 IF( l_Southedge ) jmin = 2 + nbghostcells 725 IF( l_Northedge ) jmax = nlcj - nbghostcells - 1 726 IF( l_Westedge ) imin = 2 + nbghostcells 727 IF( l_Eastedge ) imax = nlci - nbghostcells - 1 728 728 ! 729 729 IF( eastern_side ) THEN -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/NST/agrif_oce_sponge.F90
r10425 r12816 109 109 110 110 ! --- West --- ! 111 IF( (nbondi == -1) .OR. (nbondi == 2)) THEN111 IF( l_Westedge ) THEN 112 112 ind1 = 1+nbghostcells 113 113 ind2 = 1+nbghostcells + ispongearea … … 120 120 121 121 ! --- East --- ! 122 IF( (nbondi == 1) .OR. (nbondi == 2)) THEN122 IF( l_Eastedge ) THEN 123 123 ind1 = nlci - nbghostcells - ispongearea 124 124 ind2 = nlci - nbghostcells … … 131 131 132 132 ! --- South --- ! 133 IF( (nbondj == -1) .OR. (nbondj == 2)) THEN133 IF( l_Southedge ) THEN 134 134 ind1 = 1+nbghostcells 135 135 ind2 = 1+nbghostcells + ispongearea … … 142 142 143 143 ! --- North --- ! 144 IF( (nbondj == 1) .OR. (nbondj == 2)) THEN144 IF( l_Northedge ) THEN 145 145 ind1 = nlcj - nbghostcells - ispongearea 146 146 ind2 = nlcj - nbghostcells … … 454 454 455 455 jmax = j2-1 456 IF ( (nbondj == 1).OR.(nbondj == 2)) jmax = MIN(jmax,nlcj-nbghostcells-2) ! North456 IF ( l_Northedge ) jmax = MIN(jmax,nlcj-nbghostcells-2) ! North 457 457 458 458 DO jj = j1+1, jmax … … 580 580 581 581 imax = i2 - 1 582 IF ( (nbondi == 1).OR.(nbondi == 2)) imax = MIN(imax,nlci-nbghostcells-2) ! East582 IF ( l_Eastedge ) imax = MIN(imax,nlci-nbghostcells-2) ! East 583 583 584 584 DO jj = j1+1, j2 -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/NST/agrif_top_interp.F90
r10068 r12816 136 136 ! 137 137 ! Remove CORNERS 138 IF( (nbondj == -1).OR.(nbondj == 2)) jmin = 2 + nbghostcells139 IF( (nbondj == +1).OR.(nbondj == 2)) jmax = nlcj - nbghostcells - 1140 IF( (nbondi == -1).OR.(nbondi == 2))imin = 2 + nbghostcells141 IF( (nbondi == +1).OR.(nbondi == 2))imax = nlci - nbghostcells - 1138 IF( l_Southedge ) jmin = 2 + nbghostcells 139 IF( l_Northedge ) jmax = nlcj - nbghostcells - 1 140 IF( l_Westedge ) imin = 2 + nbghostcells 141 IF( l_Eastedge ) imax = nlci - nbghostcells - 1 142 142 ! 143 143 IF( eastern_side ) THEN -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DOM/dom_oce.F90
r10068 r12816 74 74 ! ! = 7 bi-cyclic East-West AND North-South 75 75 LOGICAL, PUBLIC :: l_Iperio, l_Jperio ! should we explicitely take care I/J periodicity 76 LOGICAL, PUBLIC :: l_Westedge, l_Eastedge, l_Northedge, l_Southedge ! flag to detect global domain edges 77 ! on local domain (needed for AGRIF) 76 78 77 79 ! ! domain MPP decomposition parameters -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DOM/dommsk.F90
r11536 r12816 273 273 #if defined key_agrif 274 274 IF( .NOT. AGRIF_Root() ) THEN 275 IF ( (nbondi == 1).OR.(nbondi == 2))fmask(nlci-1 , : ,jk) = 0.e0 ! east276 IF ( (nbondi == -1).OR.(nbondi == 2))fmask(1 , : ,jk) = 0.e0 ! west277 IF ( (nbondj == 1).OR.(nbondj == 2)) fmask(: ,nlcj-1 ,jk) = 0.e0 ! north278 IF ( (nbondj == -1).OR.(nbondj == 2)) fmask(: ,1 ,jk) = 0.e0 ! south275 IF ( l_Eastedge ) fmask(nlci-1 , : ,jk) = 0.e0 ! east 276 IF ( l_Westedge ) fmask(1 , : ,jk) = 0.e0 ! west 277 IF ( l_Northedge ) fmask(: ,nlcj-1 ,jk) = 0.e0 ! north 278 IF ( l_Southedge ) fmask(: ,1 ,jk) = 0.e0 ! south 279 279 ENDIF 280 280 #endif -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DYN/divhor.F90
r12141 r12816 88 88 #if defined key_agrif 89 89 IF( .NOT. Agrif_Root() ) THEN 90 IF( nbondi == -1 .OR. nbondi == 2) hdivn( 2 , : ,:) = 0._wp ! west91 IF( nbondi == 1 .OR. nbondi == 2) hdivn( nlci-1, : ,:) = 0._wp ! east92 IF( nbondj == -1 .OR. nbondj == 2 )hdivn( : , 2 ,:) = 0._wp ! south93 IF( nbondj == 1 .OR. nbondj == 2 )hdivn( : ,nlcj-1,:) = 0._wp ! north90 IF( l_Westedge ) hdivn( 2 , : ,:) = 0._wp ! west 91 IF( l_Eastedge ) hdivn( nlci-1, : ,:) = 0._wp ! east 92 IF( l_Southedge ) hdivn( : , 2 ,:) = 0._wp ! south 93 IF( l_Northedge ) hdivn( : ,nlcj-1,:) = 0._wp ! north 94 94 ENDIF 95 95 #endif -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DYN/dynldf_lap_blp.F90
r10425 r12816 74 74 DO ji = fs_2, jpi ! vector opt. 75 75 ! ! ahm * e3 * curl (computed from 1 to jpim1/jpjm1) 76 !!gm open question here : e3f at before or now ? probably now... 77 !!gm note that ahmf has already been multiplied by fmask 78 zcur(ji-1,jj-1) = ahmf(ji-1,jj-1,jk) * e3f_n(ji-1,jj-1,jk) * r1_e1e2f(ji-1,jj-1) & 76 zcur(ji-1,jj-1) = ahmf(ji-1,jj-1,jk) * e3f_n(ji-1,jj-1,jk) * r1_e1e2f(ji-1,jj-1) & ! ahmf already * by fmask 79 77 & * ( e2v(ji ,jj-1) * pvb(ji ,jj-1,jk) - e2v(ji-1,jj-1) * pvb(ji-1,jj-1,jk) & 80 78 & - e1u(ji-1,jj ) * pub(ji-1,jj ,jk) + e1u(ji-1,jj-1) * pub(ji-1,jj-1,jk) ) 81 79 ! ! ahm * div (computed from 2 to jpi/jpj) 82 !!gm note that ahmt has already been multiplied by tmask 83 zdiv(ji,jj) = ahmt(ji,jj,jk) * r1_e1e2t(ji,jj) / e3t_b(ji,jj,jk) & 80 zdiv(ji,jj) = ahmt(ji,jj,jk) * r1_e1e2t(ji,jj) / e3t_b(ji,jj,jk) & ! ahmt already * by tmask 84 81 & * ( e2u(ji,jj)*e3u_b(ji,jj,jk) * pub(ji,jj,jk) - e2u(ji-1,jj)*e3u_b(ji-1,jj,jk) * pub(ji-1,jj,jk) & 85 82 & + e1v(ji,jj)*e3v_b(ji,jj,jk) * pvb(ji,jj,jk) - e1v(ji,jj-1)*e3v_b(ji,jj-1,jk) * pvb(ji,jj-1,jk) ) … … 89 86 DO jj = 2, jpjm1 ! - curl( curl) + grad( div ) 90 87 DO ji = fs_2, fs_jpim1 ! vector opt. 91 pua(ji,jj,jk) = pua(ji,jj,jk) + zsign * ( &88 pua(ji,jj,jk) = pua(ji,jj,jk) + zsign * umask(ji,jj,jk) * ( & ! * by umask is mandatory for dyn_ldf_blp use 92 89 & - ( zcur(ji ,jj) - zcur(ji,jj-1) ) * r1_e2u(ji,jj) / e3u_n(ji,jj,jk) & 93 90 & + ( zdiv(ji+1,jj) - zdiv(ji,jj ) ) * r1_e1u(ji,jj) ) 94 91 ! 95 pva(ji,jj,jk) = pva(ji,jj,jk) + zsign * ( &92 pva(ji,jj,jk) = pva(ji,jj,jk) + zsign * vmask(ji,jj,jk) * ( & ! * by vmask is mandatory for dyn_ldf_blp use 96 93 & ( zcur(ji,jj ) - zcur(ji-1,jj) ) * r1_e1v(ji,jj) / e3v_n(ji,jj,jk) & 97 94 & + ( zdiv(ji,jj+1) - zdiv(ji ,jj) ) * r1_e2v(ji,jj) ) -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DYN/dynspg_ts.F90
r12206 r12816 487 487 ! Set fluxes during predictor step to ensure volume conservation 488 488 IF( .NOT.Agrif_Root() .AND. ln_bt_fw ) THEN 489 IF( (nbondi == -1).OR.(nbondi == 2)) THEN489 IF( l_Westedge ) THEN 490 490 DO jj = 1, jpj 491 491 zhU(2:nbghostcells+1,jj) = ubdy_w(1:nbghostcells,jj) * e2u(2:nbghostcells+1,jj) … … 493 493 END DO 494 494 ENDIF 495 IF( (nbondi == 1).OR.(nbondi == 2)) THEN495 IF( l_Eastedge ) THEN 496 496 DO jj=1,jpj 497 497 zhU(nlci-nbghostcells-1:nlci-2,jj) = ubdy_e(1:nbghostcells,jj) * e2u(nlci-nbghostcells-1:nlci-2,jj) … … 499 499 END DO 500 500 ENDIF 501 IF( (nbondj == -1).OR.(nbondj == 2)) THEN501 IF( l_Southedge ) THEN 502 502 DO ji=1,jpi 503 503 zhV(ji,2:nbghostcells+1) = vbdy_s(ji,1:nbghostcells) * e1v(ji,2:nbghostcells+1) … … 505 505 END DO 506 506 ENDIF 507 IF( (nbondj == 1).OR.(nbondj == 2)) THEN507 IF( l_Northedge ) THEN 508 508 DO ji=1,jpi 509 509 zhV(ji,nlcj-nbghostcells-1:nlcj-2) = vbdy_n(ji,1:nbghostcells) * e1v(ji,nlcj-nbghostcells-1:nlcj-2) -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DYN/dynvor.F90
r11536 r12816 881 881 DO ji = 1, jpim1 882 882 IF( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 883 & + tmask(ji,jj ,jk) + tmask(ji+1,jj +1,jk) == 3._wp ) fmask(ji,jj,jk) = 1._wp883 & + tmask(ji,jj ,jk) + tmask(ji+1,jj ,jk) == 3._wp ) fmask(ji,jj,jk) = 1._wp 884 884 END DO 885 885 END DO -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/DYN/sshwzv.F90
r11414 r12816 203 203 #if defined key_agrif 204 204 IF( .NOT. AGRIF_Root() ) THEN 205 IF ( (nbondi == 1).OR.(nbondi == 2))wn(nlci-1 , : ,:) = 0.e0 ! east206 IF ( (nbondi == -1).OR.(nbondi == 2))wn(2 , : ,:) = 0.e0 ! west207 IF ( (nbondj == 1).OR.(nbondj == 2)) wn(: ,nlcj-1 ,:) = 0.e0 ! north208 IF ( (nbondj == -1).OR.(nbondj == 2)) wn(: ,2 ,:) = 0.e0 ! south205 IF ( l_Eastedge ) wn(nlci-1 , : ,:) = 0.e0 ! east 206 IF ( l_Westedge ) wn(2 , : ,:) = 0.e0 ! west 207 IF ( l_Northedge ) wn(: ,nlcj-1 ,:) = 0.e0 ! north 208 IF ( l_Southedge ) wn(: ,2 ,:) = 0.e0 ! south 209 209 ENDIF 210 210 #endif -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/LBC/mppini.F90
r11640 r12816 90 90 l_Jperio = jpnj == 1 .AND. (jperio == 2 .OR. jperio == 7) 91 91 ! 92 ! Set flags to detect global domain edges for AGRIF 93 l_Westedge = .true. ; l_Eastedge = .true. ; l_Northedge = .true.; l_Southedge = .true. 94 ! 92 95 IF(lwp) THEN 93 96 WRITE(numout,*) … … 162 165 INTEGER, ALLOCATABLE, DIMENSION(:,:) :: ilej, ildj, ioso, iowe ! - - 163 166 LOGICAL, ALLOCATABLE, DIMENSION(:,:) :: llisoce ! - - 167 LOGICAL, ALLOCATABLE, DIMENSION(:,:) :: lliswest, lliseast, llisnorth, llissouth ! - - 164 168 NAMELIST/nambdy/ ln_bdy, nb_bdy, ln_coords_file, cn_coords_file, & 165 169 & ln_mask_file, cn_mask_file, cn_dyn2d, nn_dyn2d_dta, & … … 331 335 & ilei(jpni,jpnj), ildi(jpni,jpnj), iono(jpni,jpnj), ioea(jpni,jpnj), & 332 336 & ilej(jpni,jpnj), ildj(jpni,jpnj), ioso(jpni,jpnj), iowe(jpni,jpnj), & 337 #if defined key_agrif 338 lliswest(jpni,jpnj), lliseast(jpni,jpnj), & 339 & llisnorth(jpni,jpnj),llissouth(jpni,jpnj), & 340 #endif 333 341 & STAT=ierr ) 334 342 CALL mpp_sum( 'mppini', ierr ) … … 343 351 IF( ln_use_jattr ) CALL ctl_stop( 'STOP', 'mpp_init:Agrif children requires ln_use_jattr = .false. ' ) 344 352 ENDIF 353 lliswest(:,:) = .false. ; lliseast(:,:) = .false. ; llisnorth(:,:) = .false. ; llissouth(:,:) = .false. 345 354 #endif 346 355 ! … … 430 439 ENDIF 431 440 ! 441 #if defined key_agrif 442 IF ((ibondi(ii,ij) == 1).OR.(ibondi(ii,ij) == 2)) lliseast(ii,ij) = .true. ! east 443 IF ((ibondi(ii,ij) == -1).OR.(ibondi(ii,ij) == 2)) lliswest(ii,ij) = .true. ! west 444 IF ((ibondj(ii,ij) == 1).OR.(ibondj(ii,ij) == 2)) llisnorth(ii,ij) = .true. ! north 445 IF ((ibondj(ii,ij) == -1).OR.(ibondj(ii,ij) == 2)) llissouth(ii,ij) = .true. ! south 446 #endif 432 447 END DO 433 434 448 ! 4. deal with land subdomains 435 449 ! ---------------------------- … … 601 615 ! Suppress once vertical online interpolation is ok 602 616 !!$ IF(.NOT.Agrif_Root()) jpkglo = Agrif_Parent( jpkglo ) 617 l_Westedge = lliswest(ii,ij) 618 l_Eastedge = lliseast(ii,ij) 619 l_Northedge = llisnorth(ii,ij) 620 l_Southedge = llissouth(ii,ij) 603 621 #endif 604 622 jpim1 = jpi-1 ! inner domain indices … … 716 734 & ilci, ilcj, ilei, ilej, ildi, ildj, & 717 735 & iono, ioea, ioso, iowe, llisoce) 736 #if defined key_agrif 737 DEALLOCATE(lliswest, lliseast, llisnorth, llissouth) 738 #endif 718 739 ! 719 740 END SUBROUTINE mpp_init -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/SBC/sbcwave.F90
r11536 r12816 233 233 #if defined key_agrif 234 234 IF( .NOT. Agrif_Root() ) THEN 235 IF( nbondi == -1 .OR. nbondi == 2 )ze3divh( 2:nbghostcells+1,: ,:) = 0._wp ! west236 IF( nbondi == 1 .OR. nbondi == 2 )ze3divh( nlci-nbghostcells:nlci-1,:,:) = 0._wp ! east237 IF( nbondj == -1 .OR. nbondj == 2) ze3divh( :,2:nbghostcells+1 ,:) = 0._wp ! south238 IF( nbondj == 1 .OR. nbondj == 2) ze3divh( :,nlcj-nbghostcells:nlcj-1,:) = 0._wp ! north235 IF( l_Westedge ) ze3divh( 2:nbghostcells+1,: ,:) = 0._wp ! west 236 IF( l_Eastedge ) ze3divh( nlci-nbghostcells:nlci-1,:,:) = 0._wp ! east 237 IF( l_Southedge ) ze3divh( :,2:nbghostcells+1 ,:) = 0._wp ! south 238 IF( l_Northedge ) ze3divh( :,nlcj-nbghostcells:nlcj-1,:) = 0._wp ! north 239 239 ENDIF 240 240 #endif
Note: See TracChangeset
for help on using the changeset viewer.