Changeset 7982


Ignore:
Timestamp:
2017-04-27T18:43:29+02:00 (3 years ago)
Author:
mathiot
Message:

commit following ticket #1893

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r7963 r7982  
    168168          
    169169         ! salt effect already take into account in vertical advection 
    170          risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * stbl(:,:) * r1_rau0 
    171  
    172          ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 
    173          fwfisf(:,:) = rdivisf * fwfisf(:,:)          
    174   
     170         risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * soce * r1_rau0 
     171 
    175172         ! lbclnk 
    176173         CALL lbc_lnk(risf_tsc(:,:,jp_tem),'T',1.) 
     
    194191            zqhcisf3d(:,:,:) = 0.0_wp                         ! 3d heat content flux (W/m2) 
    195192            zqlatisf3d(:,:,:)= 0.0_wp                         ! 3d ice shelf melting latent heat flux (W/m2) 
    196             zqhcisf2d(:,:)   = fwfisf(:,:) * zt_frz * rcp     ! 2d heat content flux (W/m2) 
     193            zqhcisf2d(:,:)   = rdivisf * fwfisf(:,:) * zt_frz * rcp     ! 2d heat content flux (W/m2) 
    197194            ! 
    198195            DO jj = 1,jpj 
     
    223220            ! 
    224221         END IF 
     222 
     223         ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 
     224         fwfisf(:,:) = rdivisf * fwfisf(:,:)          
     225  
    225226         !  
    226227      END IF 
     
    446447              
    447448             fwfisf(ji,jj) = qisf(ji,jj) / lfusisf          !fresh water flux kg/(m2s)                   
    448              fwfisf(ji,jj) = fwfisf(ji,jj) * ( soce / stbl(ji,jj) ) 
    449              !add to salinity trend 
     449 
    450450          ELSE 
    451451             qisf(ji,jj) = 0._wp ; fwfisf(ji,jj) = 0._wp 
     
    546546                  qisf(ji,jj) = - zhtflx 
    547547! For genuine ISOMIP protocol this should probably be something like 
    548                   fwfisf(ji,jj) = zfwflx  * ( soce / MAX(stbl(ji,jj),zeps)) 
     548                  fwfisf(ji,jj) = zfwflx 
    549549               ELSE 
    550550                  fwfisf(ji,jj) = 0._wp 
     
    584584! zfwflx is upward water flux 
    585585                     zfwflx= rau0 * zgammas * ( (zsfrz-stbl(ji,jj)) / zsfrz ) 
     586                     IF ( rdivisf==0 ) THEN  
    586587! zhtflx is upward heat flux (out of ocean) 
    587588! If non conservative we have zcfac=0.0 so zhtflx is as ISOMIP but with different zfrz value 
    588                      zhtflx = ( zgammat*rau0 - zcfac*zfwflx ) * rcp * (zti(ji,jj) - zfrz(ji,jj) )  
     589                        zhtflx = ( zgammat*rau0 - zcfac*zfwflx ) * rcp * (zti(ji,jj) - zfrz(ji,jj) )  
    589590! zwflx is upward water flux 
    590591! If non conservative we have zcfac=0.0 so what follows is then zfwflx*sss_m/zsfrz 
    591                      zfwflx = ( zgammas*rau0 - zcfac*zfwflx ) * (zsfrz - stbl(ji,jj)) / stbl(ji,jj) 
     592                        zfwflx = ( zgammas*rau0 - zcfac*zfwflx ) * (zsfrz - stbl(ji,jj)) / stbl(ji,jj) 
     593                     ELSE 
     594                        zhtflx = zgammat*rau0 * rcp * (zti(ji,jj) - zfrz(ji,jj) )                      
     595                        ! nothing to do for fwf 
     596                     END IF 
    592597! test convergence and compute gammat 
    593598                     IF (( zhtflx - zhtflx_b) .LE. 0.01 ) lit = .FALSE. 
Note: See TracChangeset for help on using the changeset viewer.