103 |
_RL drKp1, drKp2, recip_drLoc |
_RL drKp1, drKp2, recip_drLoc |
104 |
_RL recip_latentHeat |
_RL recip_latentHeat |
105 |
_RL tmpFac |
_RL tmpFac |
106 |
_RL SHICEHAF |
_RL massMin, mass, mass_eff, DELZ |
107 |
_RL SHC,SHW,SHA |
_RL SHA,FACTOR1,FACTOR2,FACTOR3 |
108 |
|
_RL GMSL,ETACOUNT |
109 |
#ifdef SHI_ALLOW_GAMMAFRICT |
#ifdef SHI_ALLOW_GAMMAFRICT |
110 |
_RL shiPr, shiSc, shiLo, recip_shiKarman, shiTwoThirds |
_RL shiPr, shiSc, shiLo, recip_shiKarman, shiTwoThirds |
111 |
_RL gammaTmoleT, gammaTmoleS, gammaTurb, gammaTurbConst |
_RL gammaTmoleT, gammaTmoleS, gammaTurb, gammaTurbConst |
730 |
|
|
731 |
C-- Calculate new loading anomaly (in case the ice-shelf mass was updated) |
C-- Calculate new loading anomaly (in case the ice-shelf mass was updated) |
732 |
#ifndef ALLOW_AUTODIFF |
#ifndef ALLOW_AUTODIFF |
733 |
c IF ( SHELFICEloadAnomalyFile .EQ. ' ' ) THEN |
|
734 |
|
|
735 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
736 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
737 |
DO j = 1-OLy, sNy+OLy |
DO j = 1-OLy, sNy+OLy |
738 |
DO i = 1-OLx, sNx+OLx |
DO i = 1-OLx, sNx+OLx |
739 |
c shelficeLoadAnomaly(i,j,bi,bj) = gravity |
shelficeLoadAnomaly(i,j,bi,bj) = gravity |
740 |
c & *( shelficeMass(i,j,bi,bj) + rhoConst*Ro_surf(i,j,bi,bj) ) |
& *( shelficeMass(i,j,bi,bj) + rhoConst*Ro_surf(i,j,bi,bj) ) |
741 |
#ifdef ALLOW_STREAMICE |
#ifdef ALLOW_STREAMICE |
|
c IF ( R_shelfice(i,j,bi,bj) .EQ. R_grounding(i,j,bi,bj) ) THEN |
|
|
|
|
|
|
|
|
SHICEHAF=(H_streamice(i,j,bi,bj)+R_low(i,j,bi,bj)) |
|
|
& *(streamice_density_ocean_avg/streamice_density) |
|
|
|
|
|
SHC=0.1 |
|
|
SHW=5 |
|
|
SHA=SHC/SQRT(1+(shelficeLoadAnomaly(i,j,bi,bj)* |
|
|
& shelficeLoadAnomaly(i,j,bi,bj))) |
|
742 |
|
|
743 |
shelficeLoadAnomaly(i,j,bi,bj)=((1-SHA)/2)*tanh(SHW/2+8* |
delZ = drF(kLowC(i,j,bi,bj)) |
744 |
& SHICEHAF/SHW)+((1+SHA)/2) |
massMin = -1*streamice_density_ocean_avg |
745 |
|
& *(R_low(i,j,bi,bj)+hfacMin*delZ) |
746 |
|
mass = shelficemass(i,j,bi,bj) |
747 |
|
|
748 |
|
SHA=massMin/ |
749 |
|
& SQRT(.01+mass**2) |
750 |
|
|
751 |
|
FACTOR1 = (1-sha)/2. |
752 |
|
FACTOR2 = (1+sha)/2. |
753 |
|
FACTOR3 = tanh((massMin - mass)*4./delZ) |
754 |
|
|
755 |
|
mass_eff= |
756 |
|
& (FACTOR1*FACTOR3 + FACTOR2)*mass |
757 |
|
|
758 |
|
shelficeLoadAnomaly(i,j,bi,bj) = gravity |
759 |
|
& *( mass_eff + rhoConst*Ro_surf(i,j,bi,bj) ) |
760 |
|
|
761 |
|
EFFMASS(i,j,bi,bj)=mass_eff |
762 |
|
|
|
ENDIF |
|
763 |
#endif /* ALLOW_STREAMICE */ |
#endif /* ALLOW_STREAMICE */ |
764 |
|
|
765 |
ENDDO |
ENDDO |
766 |
ENDDO |
ENDDO |
767 |
ENDDO |
ENDDO |
768 |
ENDDO |
ENDDO |
769 |
c ENDIF |
|
770 |
|
|
771 |
#endif /* ndef ALLOW_AUTODIFF */ |
#endif /* ndef ALLOW_AUTODIFF */ |
772 |
|
|
773 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
797 |
ENDIF |
ENDIF |
798 |
CALL DIAGNOSTICS_FILL(R_shelfice,'SHI_Rshelfice', |
CALL DIAGNOSTICS_FILL(R_shelfice,'SHI_Rshelfice', |
799 |
& 0,1,0,1,1,myThid) |
& 0,1,0,1,1,myThid) |
800 |
|
CALL DIAGNOSTICS_FILL(EFFMASS,'SHI_MassEff', |
801 |
|
& 0,1,0,1,1,myThid) |
802 |
#endif /* ALLOW_DIAGNOSTICS */ |
|
803 |
|
#endif |
804 |
|
|
805 |
|
|
806 |
#endif /* ALLOW_SHELFICE */ |
#endif /* ALLOW_SHELFICE */ |
807 |
RETURN |
RETURN |