Changeset 12744


Ignore:
Timestamp:
2020-04-12T16:11:29+02:00 (7 months ago)
Author:
clem
Message:

make sure all pond lids are set to 0 when not using this option

Location:
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icedyn_adv_pra.F90

    r12720 r12744  
    163163               z0ap(:,:,jl) = pa_ip(:,:,jl) * e1e2t(:,:)      ! Melt pond fraction 
    164164               z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:)      ! Melt pond volume 
    165                z0vl(:,:,jl) = pv_il(:,:,jl) * e1e2t(:,:)      ! Melt pond lid volume 
     165               IF ( ln_pnd_lids ) THEN 
     166                  z0vl(:,:,jl) = pv_il(:,:,jl) * e1e2t(:,:)   ! Melt pond lid volume 
     167               ENDIF 
    166168            ENDIF 
    167169         END DO 
     
    199201               CALL adv_x( zdt , zudy , 1._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp )    !--- melt pond volume 
    200202               CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp )  
    201                CALL adv_x( zdt , zudy , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl )    !--- melt pond lid volume 
    202                CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl )  
     203               IF ( ln_pnd_lids ) THEN 
     204                  CALL adv_x( zdt , zudy , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) !--- melt pond lid volume 
     205                  CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl )  
     206               ENDIF 
    203207            ENDIF 
    204208            !                                                               !--------------------------------------------! 
     
    232236               CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp )    !--- melt pond volume 
    233237               CALL adv_x( zdt , zudy , 0._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) 
    234                CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) 
    235                CALL adv_x( zdt , zudy , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl )    !--- melt pond lid volume  
     238               IF ( ln_pnd_lids ) THEN 
     239                  CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) !--- melt pond lid volume 
     240                  CALL adv_x( zdt , zudy , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl )  
     241               ENDIF 
    236242           ENDIF 
    237243            ! 
     
    254260               pa_ip(:,:,jl) = z0ap(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
    255261               pv_ip(:,:,jl) = z0vp(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
    256                pv_il(:,:,jl) = z0vl(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
     262               IF ( ln_pnd_lids ) THEN 
     263                  pv_il(:,:,jl) = z0vl(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
     264               ENDIF 
    257265            ENDIF 
    258266         END DO 
     
    873881               CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 
    874882               CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 
    875                !                                                     ! melt pond lid volume 
    876                CALL iom_get( numrir, jpdom_autoglo, 'sxvl' , sxvl  ) 
    877                CALL iom_get( numrir, jpdom_autoglo, 'syvl' , syvl  ) 
    878                CALL iom_get( numrir, jpdom_autoglo, 'sxxvl', sxxvl ) 
    879                CALL iom_get( numrir, jpdom_autoglo, 'syyvl', syyvl ) 
    880                CALL iom_get( numrir, jpdom_autoglo, 'sxyvl', sxyvl ) 
     883               ! 
     884               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               ENDIF 
    881891            ENDIF 
    882892            ! 
     
    893903            sxe   = 0._wp   ;   sye   = 0._wp   ;   sxxe   = 0._wp   ;   syye   = 0._wp   ;   sxye   = 0._wp      ! ice layers heat content 
    894904            IF( ln_pnd_H12 ) THEN 
    895                sxap  = 0._wp   ;   syap  = 0._wp   ;   sxxap  = 0._wp   ;   syyap  = 0._wp   ;   sxyap  = 0._wp   ! melt pond fraction 
    896                sxvp  = 0._wp   ;   syvp  = 0._wp   ;   sxxvp  = 0._wp   ;   syyvp  = 0._wp   ;   sxyvp  = 0._wp   ! melt pond volume 
    897                sxvl  = 0._wp   ;   syvl  = 0._wp   ;   sxxvl  = 0._wp   ;   syyvl  = 0._wp   ;   sxyvl  = 0._wp   ! melt pond lid volume 
     905               sxap = 0._wp ;   syap = 0._wp    ;   sxxap = 0._wp    ;   syyap = 0._wp    ;   sxyap = 0._wp       ! melt pond fraction 
     906               sxvp = 0._wp ;   syvp = 0._wp    ;   sxxvp = 0._wp    ;   syyvp = 0._wp    ;   sxyvp = 0._wp       ! melt pond volume 
     907               IF ( ln_pnd_lids ) THEN 
     908                  sxvl = 0._wp; syvl = 0._wp    ;   sxxvl = 0._wp    ;   syyvl = 0._wp    ;   sxyvl = 0._wp       ! melt pond lid volume 
     909               ENDIF 
    898910            ENDIF 
    899911         ENDIF 
     
    970982            CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp ) 
    971983            CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp ) 
    972             !                                                        ! melt pond lid volume 
    973             CALL iom_rstput( iter, nitrst, numriw, 'sxvl' , sxvl  ) 
    974             CALL iom_rstput( iter, nitrst, numriw, 'syvl' , syvl  ) 
    975             CALL iom_rstput( iter, nitrst, numriw, 'sxxvl', sxxvl ) 
    976             CALL iom_rstput( iter, nitrst, numriw, 'syyvl', syyvl ) 
    977             CALL iom_rstput( iter, nitrst, numriw, 'sxyvl', sxyvl ) 
     984            ! 
     985            IF ( ln_pnd_lids ) THEN                                  ! melt pond lid volume 
     986               CALL iom_rstput( iter, nitrst, numriw, 'sxvl' , sxvl  ) 
     987               CALL iom_rstput( iter, nitrst, numriw, 'syvl' , syvl  ) 
     988               CALL iom_rstput( iter, nitrst, numriw, 'sxxvl', sxxvl ) 
     989               CALL iom_rstput( iter, nitrst, numriw, 'syyvl', syyvl ) 
     990               CALL iom_rstput( iter, nitrst, numriw, 'sxyvl', sxyvl ) 
     991            ENDIF 
    978992         ENDIF 
    979993         ! 
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icedyn_adv_umx.F90

    r12720 r12744  
    336336               &                                      zhvar, pv_ip, zua_ups, zva_ups ) 
    337337            ! lid 
    338             zamsk = 0._wp 
    339             zhvar(:,:,:) = pv_il(:,:,:) * z1_aip(:,:,:) 
    340             CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zua_ho , zva_ho , zcu_box, zcv_box, & 
    341                &                                      zhvar, pv_il, zua_ups, zva_ups )             
     338            IF ( ln_pnd_lids ) THEN 
     339               zamsk = 0._wp 
     340               zhvar(:,:,:) = pv_il(:,:,:) * z1_aip(:,:,:) 
     341               CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zua_ho , zva_ho , zcu_box, zcv_box, & 
     342                  &                                      zhvar, pv_il, zua_ups, zva_ups ) 
     343            ENDIF 
    342344         ENDIF 
    343345         ! 
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icedyn_rdgrft.F90

    r12720 r12744  
    569569                  aprdg2(ji) = a_ip_2d(ji,jl1) * afrdg * hi_hrdg(ji,jl1) 
    570570                  vprdg (ji) = v_ip_2d(ji,jl1) * afrdg 
    571                   vlrdg (ji) = v_il_2d(ji,jl1) * afrdg 
    572571                  aprft1     = a_ip_2d(ji,jl1) * afrft 
    573572                  aprft2(ji) = a_ip_2d(ji,jl1) * afrft * hi_hrft 
    574573                  vprft (ji) = v_ip_2d(ji,jl1) * afrft 
    575                   vlrft (ji) = v_il_2d(ji,jl1) * afrft 
     574                  IF ( ln_pnd_lids ) THEN 
     575                     vlrdg (ji) = v_il_2d(ji,jl1) * afrdg 
     576                     vlrft (ji) = v_il_2d(ji,jl1) * afrft 
     577                  ENDIF 
    576578               ENDIF 
    577579 
     
    603605                  a_ip_2d(ji,jl1) = a_ip_2d(ji,jl1) - aprdg1    - aprft1 
    604606                  v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - vprdg(ji) - vprft(ji) 
    605                   v_il_2d(ji,jl1) = v_il_2d(ji,jl1) - vlrdg(ji) - vlrft(ji) 
     607                  IF ( ln_pnd_lids ) THEN 
     608                     v_il_2d(ji,jl1) = v_il_2d(ji,jl1) - vlrdg(ji) - vlrft(ji) 
     609                  ENDIF 
    606610               ENDIF 
    607611            ENDIF 
     
    700704                     a_ip_2d (ji,jl2) = a_ip_2d(ji,jl2) + (   aprdg2(ji) * rn_fpndrdg * farea         &  
    701705                        &                                   + aprft2(ji) * rn_fpndrft * zswitch(ji)   ) 
    702                      v_il_2d (ji,jl2) = v_il_2d(ji,jl2) + (   vlrdg (ji) * rn_fpndrdg * fvol   (ji)   & 
    703                         &                                   + vlrft (ji) * rn_fpndrft * zswitch(ji)   ) 
     706                     IF ( ln_pnd_lids ) THEN 
     707                        v_il_2d (ji,jl2) = v_il_2d(ji,jl2) + (   vlrdg (ji) * rn_fpndrdg * fvol   (ji)   & 
     708                           &                                   + vlrft (ji) * rn_fpndrft * zswitch(ji)   ) 
     709                     ENDIF 
    704710                  ENDIF 
    705711                   
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/iceistate.F90

    r12728 r12744  
    277277            zapnd_ini(:,:) = 0._wp 
    278278            zhpnd_ini(:,:) = 0._wp 
     279            zhlid_ini(:,:) = 0._wp 
     280         ENDIF 
     281 
     282         IF ( .NOT.ln_pnd_lids ) THEN 
    279283            zhlid_ini(:,:) = 0._wp 
    280284         ENDIF 
     
    554558      ENDIF 
    555559      ! 
     560      IF( .NOT.ln_pnd_lids ) THEN 
     561         rn_hld_ini_n = 0. ; rn_hld_ini_s = 0. 
     562      ENDIF 
     563      ! 
    556564   END SUBROUTINE ice_istate_init 
    557565 
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/iceitd.F90

    r12720 r12744  
    483483                  v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - ztrans 
    484484                  v_ip_2d(ji,jl2) = v_ip_2d(ji,jl2) + ztrans 
    485                   !                                               
    486                   ztrans          = v_il_2d(ji,jl1) * zworka(ji)     ! Pond lid volume 
    487                   v_il_2d(ji,jl1) = v_il_2d(ji,jl1) - ztrans 
    488                   v_il_2d(ji,jl2) = v_il_2d(ji,jl2) + ztrans 
     485                  ! 
     486                  IF ( ln_pnd_lids ) THEN                            ! Pond lid volume 
     487                     ztrans          = v_il_2d(ji,jl1) * zworka(ji) 
     488                     v_il_2d(ji,jl1) = v_il_2d(ji,jl1) - ztrans 
     489                     v_il_2d(ji,jl2) = v_il_2d(ji,jl2) + ztrans 
     490                  ENDIF 
    489491               ENDIF 
    490492               ! 
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icevar.F90

    r12725 r12744  
    683683         WHERE( pa_ip(1:npti,:) < 0._wp .AND. pa_ip(1:npti,:) > -epsi10 )    pa_ip(1:npti,:)   = 0._wp   ! a_ip must be >= 0 
    684684         WHERE( pv_ip(1:npti,:) < 0._wp .AND. pv_ip(1:npti,:) > -epsi10 )    pv_ip(1:npti,:)   = 0._wp   ! v_ip must be >= 0 
    685          WHERE( pv_il(1:npti,:) < 0._wp .AND. pv_il(1:npti,:) > -epsi10 )    pv_il(1:npti,:)   = 0._wp   ! v_il must be >= 0 
     685         IF( ln_pnd_lids ) THEN 
     686            WHERE( pv_il(1:npti,:) < 0._wp .AND. pv_il(1:npti,:) > -epsi10 ) pv_il(1:npti,:)   = 0._wp   ! v_il must be >= 0 
     687         ENDIF 
    686688      ENDIF 
    687689      ! 
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/BDY/bdydta.F90

    r12720 r12744  
    321321               bf_alias(jp_bdyaip)%fnow(:,1,:) = 0._wp 
    322322               bf_alias(jp_bdyhip)%fnow(:,1,:) = 0._wp 
     323               bf_alias(jp_bdyhil)%fnow(:,1,:) = 0._wp 
     324            ENDIF 
     325            IF ( .NOT.ln_pnd_lids ) THEN 
    323326               bf_alias(jp_bdyhil)%fnow(:,1,:) = 0._wp 
    324327            ENDIF 
     
    459462            CALL ctl_warn( 'rn_ice_apnd & rn_ice_hpnd = 0 & rn_ice_hlid = 0 when no ponds' ) 
    460463         ENDIF 
     464         IF( .NOT.ln_pnd_lids ) THEN 
     465            rn_ice_hlid = 0. 
     466         ENDIF 
    461467#endif 
    462468 
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/BDY/bdyice.F90

    r12726 r12744  
    171171               a_ip(ji,jj,jl) = 0._wp 
    172172               h_ip(ji,jj,jl) = 0._wp 
     173               h_il(ji,jj,jl) = 0._wp 
     174            ENDIF 
     175 
     176            IF( .NOT.ln_pnd_lids ) THEN 
    173177               h_il(ji,jj,jl) = 0._wp 
    174178            ENDIF 
Note: See TracChangeset for help on using the changeset viewer.