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 9675 – NEMO

Changeset 9675


Ignore:
Timestamp:
2018-05-29T15:47:05+02:00 (6 years ago)
Author:
dancopsey
Message:

Apply changes as suggested by Alex West - renaming coupling variables.

Location:
branches/UKMO/dev_merge_2017_CICE_interface/NEMOGCM/NEMO/OPA_SRC/SBC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_merge_2017_CICE_interface/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90

    r9503 r9675  
    4242   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qns_ice        !: non solar heat flux over ice                  [W/m2] 
    4343   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qsr_ice        !: solar heat flux over ice                      [W/m2] 
    44    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qla_ice        !: latent flux over ice                          [W/m2] 
     44   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   zevap_ice        !: latent flux over ice                          [W/m2] 
    4545   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dqla_ice       !: latent sensibility over ice                 [W/m2/K] 
    4646   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dqns_ice       !: non solar heat flux over ice (LW+SEN+LA)    [W/m2/K] 
    47    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tn_ice         !: ice surface temperature                          [K] 
     47   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   t1_ice         !: ice surface temperature                          [K] 
    4848   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   alb_ice        !: ice albedo                                       [-] 
    4949 
     
    5555   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   vtau_ice       !: atmos-ice v-stress. VP: I-pt ; EVP: U,V-pts   [N/m2] 
    5656   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   emp_ice        !: sublimation - precip over sea ice          [kg/m2/s] 
    57  
    58    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   topmelt            !: category topmelt 
    59    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   botmelt            !: category botmelt 
    6057 
    6158#if defined  key_lim3 
     
    9087   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sstfrz             !: sea surface freezing temperature 
    9188   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tsfc_ice           !: sea-ice surface skin temperature (on categories) 
    92    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   kn_ice             !: sea-ice surface layer thermal conductivity (on cats) 
     89   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   cnd_ice             !: sea-ice surface layer thermal conductivity (on cats) 
    9390 
    9491   ! variables used in the coupled interface 
    9592   INTEGER , PUBLIC, PARAMETER ::   jpl = ncat 
    9693   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   u_ice, v_ice          ! jpi, jpj 
    97    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  a_p, ht_p ! Meltpond fraction and depth 
     94   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  a_ip, v_ip ! Meltpond fraction and depth 
    9895    
    9996   ! 
     
    140137#if defined key_lim3 
    141138      ALLOCATE( qns_ice (jpi,jpj,jpl) , qsr_ice  (jpi,jpj,jpl) ,     & 
    142          &      qla_ice (jpi,jpj,jpl) , dqla_ice (jpi,jpj,jpl) ,     & 
    143          &      dqns_ice(jpi,jpj,jpl) , tn_ice   (jpi,jpj,jpl) , alb_ice   (jpi,jpj,jpl) ,   & 
     139         &      zevap_ice (jpi,jpj,jpl) , dqla_ice (jpi,jpj,jpl) ,     & 
     140         &      dqns_ice(jpi,jpj,jpl) , t1_ice   (jpi,jpj,jpl) , alb_ice   (jpi,jpj,jpl) ,   & 
    144141         &      qml_ice (jpi,jpj,jpl) , qcn_ice  (jpi,jpj,jpl) , qsr_ice_tr(jpi,jpj,jpl) ,   & 
    145142         &      utau_ice(jpi,jpj)     , vtau_ice (jpi,jpj)     , wndm_ice  (jpi,jpj)     ,   & 
     
    151148 
    152149#if defined key_cice 
    153       ALLOCATE( qla_ice(jpi,jpj,ncat) , qlw_ice(jpi,jpj,1)    , qsr_ice(jpi,jpj,1)    , & 
     150      ALLOCATE( zevap_ice(jpi,jpj,ncat) , qlw_ice(jpi,jpj,1)    , qsr_ice(jpi,jpj,1)    , & 
    154151                wndi_ice(jpi,jpj)     , tatm_ice(jpi,jpj)     , qatm_ice(jpi,jpj)     , & 
    155152                wndj_ice(jpi,jpj)     , nfrzmlt(jpi,jpj)      , ss_iou(jpi,jpj)       , & 
    156153                ss_iov(jpi,jpj)       , fr_iu(jpi,jpj)        , fr_iv(jpi,jpj)        , & 
    157                 a_i(jpi,jpj,ncat)     , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat) , & 
     154                a_i(jpi,jpj,ncat)     , qml_ice(jpi,jpj,ncat) , qcn_ice(jpi,jpj,ncat) , & 
    158155#if defined key_asminc 
    159156               ndaice_da(jpi,jpj)    , nfresh_da(jpi,jpj)    , nfsalt_da(jpi,jpj)    , & 
    160157#endif 
    161158               sstfrz(jpi,jpj)       , STAT= ierr(2) ) 
    162       IF( ln_cpl )   ALLOCATE( u_ice(jpi,jpj)        , tn_ice (jpi,jpj,jpl)    , & 
     159      IF( ln_cpl )   ALLOCATE( u_ice(jpi,jpj)        , t1_ice (jpi,jpj,jpl)    , & 
    163160         &                     v_ice(jpi,jpj)        , alb_ice(jpi,jpj,1)      , & 
    164161         &                     emp_ice(jpi,jpj)      , qns_ice(jpi,jpj,1)      , dqns_ice(jpi,jpj,1)   , & 
    165          &                     a_p(jpi,jpj,jpl)      , ht_p(jpi,jpj,jpl)     , tsfc_ice(jpi,jpj,jpl) , & 
    166          &                     kn_ice(jpi,jpj,jpl) ,    STAT=ierr(3) ) 
     162         &                     a_ip(jpi,jpj,jpl)      , v_ip(jpi,jpj,jpl)     , tsfc_ice(jpi,jpj,jpl) , & 
     163         &                     cnd_ice(jpi,jpj,jpl) ,    STAT=ierr(3) ) 
    167164      IF( ln_cpl )   ALLOCATE( h_i(jpi,jpj,jpl) , h_s(jpi,jpj,jpl) , STAT=ierr(4) ) 
    168165#endif 
     
    191188   INTEGER         , PUBLIC, PARAMETER ::   jpl = 1  
    192189   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   u_ice, v_ice                        ! jpi, jpj 
    193    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tn_ice, alb_ice, qns_ice, dqns_ice  ! (jpi,jpj,jpl) 
     190   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   t1_ice, alb_ice, qns_ice, dqns_ice  ! (jpi,jpj,jpl) 
    194191   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   a_i 
    195192   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   emp_ice 
    196193   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qsr_ice 
    197194   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_i, h_s 
    198    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   topmelt, botmelt 
     195   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qml_ice, qcn_ice 
    199196   ! 
    200197   !! arrays related to embedding ice in the ocean.  
  • branches/UKMO/dev_merge_2017_CICE_interface/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r9631 r9675  
    367367         IF (ksbc == jp_flx) THEN 
    368368            DO jl=1,ncat 
    369                ztmpn(:,:,jl)=qla_ice(:,:,1)*a_i(:,:,jl) 
     369               ztmpn(:,:,jl)=zevap_ice(:,:,1)*a_i(:,:,jl) 
    370370            ENDDO 
    371371         ELSE IF (ksbc == jp_purecpl) THEN 
    372372            DO jl=1,ncat 
    373                ztmpn(:,:,jl)=qla_ice(:,:,jl)*a_i(:,:,jl) 
     373               ztmpn(:,:,jl)=zevap_ice(:,:,jl)*a_i(:,:,jl) * (-1.0*Lsub) 
    374374            ENDDO 
    375375    ELSE 
    376            !In coupled mode - qla_ice calculated in sbc_cpl for each category 
    377            ztmpn(:,:,1:ncat)=qla_ice(:,:,1:ncat) 
     376           !In coupled mode - zevap_ice calculated in sbc_cpl for each category 
     377           ztmpn(:,:,1:ncat)=zevap_ice(:,:,1:ncat) 
    378378         ENDIF 
    379379 
     
    384384!  Convert to GBM 
    385385            IF (ksbc == jp_flx .OR. ksbc == jp_purecpl) THEN 
    386                ztmp(:,:) = botmelt(:,:,jl)*a_i(:,:,jl) 
     386               ztmp(:,:) = qcn_ice(:,:,jl)*a_i(:,:,jl) 
    387387            ELSE 
    388                ztmp(:,:) = botmelt(:,:,jl) 
     388               ztmp(:,:) = qcn_ice(:,:,jl) 
    389389            ENDIF 
    390390            CALL nemo2cice(ztmp,fcondtopn_f(:,:,jl,:),'T', 1. ) 
     
    393393!  Convert to GBM 
    394394            IF (ksbc == jp_flx .OR. ksbc == jp_purecpl) THEN 
    395                ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl))*a_i(:,:,jl)  
     395               ztmp(:,:) = (qml_ice(:,:,jl)+qcn_ice(:,:,jl))*a_i(:,:,jl)  
    396396            ELSE 
    397                ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl)) 
     397               ztmp(:,:) = (qml_ice(:,:,jl)+qcn_ice(:,:,jl)) 
    398398            ENDIF 
    399399            CALL nemo2cice(ztmp,fsurfn_f(:,:,jl,:),'T', 1. ) 
     
    738738! Meltpond fraction and depth 
    739739      DO jl = 1,ncat 
    740          CALL cice2nemo(apeffn(:,:,jl,:),a_p(:,:,jl),'T', 1. ) 
    741          CALL cice2nemo(trcrn(:,:,nt_hpnd,jl,:),ht_p(:,:,jl),'T', 1. ) 
     740         CALL cice2nemo(apeffn(:,:,jl,:),a_ip(:,:,jl),'T', 1. ) 
     741         CALL cice2nemo(trcrn(:,:,nt_hpnd,jl,:),v_ip(:,:,jl),'T', 1. ) 
    742742      ENDDO 
    743743#endif 
     
    752752      IF (heat_capacity) THEN 
    753753         DO jl = 1,ncat 
    754             CALL cice2nemo(Tn_top(:,:,jl,:),tn_ice(:,:,jl),'T', 1. ) 
    755             CALL cice2nemo(keffn_top(:,:,jl,:),kn_ice(:,:,jl),'T', 1. ) 
     754            CALL cice2nemo(Tn_top(:,:,jl,:),t1_ice(:,:,jl),'T', 1. ) 
     755            CALL cice2nemo(keffn_top(:,:,jl,:),cnd_ice(:,:,jl),'T', 1. ) 
    756756         ENDDO 
    757757! Convert surface temperature to Kelvin 
    758          tn_ice(:,:,:)=tn_ice(:,:,:)+rt0 
     758         t1_ice(:,:,:)=t1_ice(:,:,:)+rt0 
    759759      ELSE 
    760          tn_ice(:,:,:) = 0.0 
    761          kn_ice(:,:,:) = 0.0 
     760         t1_ice(:,:,:) = 0.0 
     761         cnd_ice(:,:,:) = 0.0 
    762762      ENDIF        
    763763 
     
    877877      tprecip(:,:) = sf(jp_snow)%fnow(:,:,1)+sf(jp_rain)%fnow(:,:,1) 
    878878! May be better to do this conversion somewhere else 
    879       qla_ice(:,:,1) = -Lsub*sf(jp_sblm)%fnow(:,:,1) 
    880       topmelt(:,:,1) = sf(jp_top1)%fnow(:,:,1) 
    881       topmelt(:,:,2) = sf(jp_top2)%fnow(:,:,1) 
    882       topmelt(:,:,3) = sf(jp_top3)%fnow(:,:,1) 
    883       topmelt(:,:,4) = sf(jp_top4)%fnow(:,:,1) 
    884       topmelt(:,:,5) = sf(jp_top5)%fnow(:,:,1) 
    885       botmelt(:,:,1) = sf(jp_bot1)%fnow(:,:,1) 
    886       botmelt(:,:,2) = sf(jp_bot2)%fnow(:,:,1) 
    887       botmelt(:,:,3) = sf(jp_bot3)%fnow(:,:,1) 
    888       botmelt(:,:,4) = sf(jp_bot4)%fnow(:,:,1) 
    889       botmelt(:,:,5) = sf(jp_bot5)%fnow(:,:,1) 
     879      zevap_ice(:,:,1) = -Lsub*sf(jp_sblm)%fnow(:,:,1) 
     880      qml_ice(:,:,1) = sf(jp_top1)%fnow(:,:,1) 
     881      qml_ice(:,:,2) = sf(jp_top2)%fnow(:,:,1) 
     882      qml_ice(:,:,3) = sf(jp_top3)%fnow(:,:,1) 
     883      qml_ice(:,:,4) = sf(jp_top4)%fnow(:,:,1) 
     884      qml_ice(:,:,5) = sf(jp_top5)%fnow(:,:,1) 
     885      qcn_ice(:,:,1) = sf(jp_bot1)%fnow(:,:,1) 
     886      qcn_ice(:,:,2) = sf(jp_bot2)%fnow(:,:,1) 
     887      qcn_ice(:,:,3) = sf(jp_bot3)%fnow(:,:,1) 
     888      qcn_ice(:,:,4) = sf(jp_bot4)%fnow(:,:,1) 
     889      qcn_ice(:,:,5) = sf(jp_bot5)%fnow(:,:,1) 
    890890 
    891891      ! control print (if less than 100 time-step asked) 
Note: See TracChangeset for help on using the changeset viewer.