New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12744 for NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icedyn_adv_pra.F90 – NEMO

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

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

File:
1 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         ! 
Note: See TracChangeset for help on using the changeset viewer.