/[MITgcm]/MITgcm/pkg/seaice/seaice_budget_ocean.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/seaice_budget_ocean.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.8 by mlosch, Wed Jun 24 08:25:05 2009 UTC revision 1.11 by mlosch, Fri Nov 19 16:21:08 2010 UTC
# Line 24  C     === Global variables === Line 24  C     === Global variables ===
24  #include "EEPARAMS.h"  #include "EEPARAMS.h"
25  #include "FFIELDS.h"  #include "FFIELDS.h"
26  #include "SEAICE_PARAMS.h"  #include "SEAICE_PARAMS.h"
 #ifdef SEAICE_VARIABLE_FREEZING_POINT  
 # include "DYNVARS.h"  
 #endif  
27  #ifdef ALLOW_EXF  #ifdef ALLOW_EXF
28  # include "EXF_OPTIONS.h"  # include "EXF_OPTIONS.h"
29  # include "EXF_FIELDS.h"  # include "EXF_FIELDS.h"
30  #endif  #endif
 #ifdef SEAICE_CLIM_AIR  
       COMMON/SEAICE_DYNVARS_1/AREA  
       _RL AREA       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,3,nSx,nSy)  
 #endif  
31    
32  C     === Routine arguments ===  C     === Routine arguments ===
33  C     INPUT:  C     INPUT:
# Line 59  C     === Local variables === Line 52  C     === Local variables ===
52  C     i,j - Loop counters  C     i,j - Loop counters
53        INTEGER i, j        INTEGER i, j
54  #ifndef SEAICE_EXTERNAL_FLUXES  #ifndef SEAICE_EXTERNAL_FLUXES
55        INTEGER ITER        _RL  QS1, D1, D1W, D3, TMELT
       _RL  QS1, TB, D1, D1W, D3, TMELT  
 C     effective conductivity of combined ice and snow  
       _RL  effConduct  
 C     specific humidity at ice surface  
       _RL  qhIce  
 C     powers of temperature  
       _RL  t1, t2, t3, t4  
56    
57  C     local copies of global variables  C     local copies of global variables
58        _RL tsurfLoc   (1:sNx,1:sNy)        _RL tsurfLoc   (1:sNx,1:sNy)
# Line 79  C     coefficients of Hibler (1980), app Line 65  C     coefficients of Hibler (1980), app
65  C     auxiliary variable  C     auxiliary variable
66        _RL B          (1:sNx,1:sNy)        _RL B          (1:sNx,1:sNy)
67    
 #ifdef SEAICE_CLIM_AIR  
       _RL aqhLoc     (1:sNx,1:sNy)  
       _RL fac  
       logical first, changed  
       integer count0, count1  
   
 C--   Compute indices and weights for seasonal interpolation  
       call cal_GetMonthsRec(  
      O     fac, first, changed,  
      O     count0, count1,  
      I     mytime, myiter, mythid  
      &     )  
 #endif /* SEAICE_CLIM_AIR */  
   
68  C NOW DEFINE ASSORTED CONSTANTS  C NOW DEFINE ASSORTED CONSTANTS
69  C SATURATION VAPOR PRESSURE CONSTANT  C SATURATION VAPOR PRESSURE CONSTANT
70        QS1=0.622 _d +00/1013.0 _d +00        QS1=0.622 _d +00/1013.0 _d +00
 C FREEZING TEMPERATURE OF SEAWATER  
       TB=271.2 _d +00  
71  C SENSIBLE HEAT CONSTANT  C SENSIBLE HEAT CONSTANT
72        D1=SEAICE_sensHeat        D1=SEAICE_dalton*SEAICE_cpAir*SEAICE_rhoAir
73  C WATER LATENT HEAT CONSTANT  C WATER LATENT HEAT CONSTANT
74        D1W=SEAICE_latentWater        D1W=SEAICE_dalton*SEAICE_lhEvap*SEAICE_rhoAir
75  C STEFAN BOLTZMAN CONSTANT TIMES 0.97 EMISSIVITY  C STEFAN BOLTZMAN CONSTANT TIMES 0.97 EMISSIVITY
76        D3=SEAICE_emissivity        D3=SEAICE_emissivity
77  C MELTING TEMPERATURE OF ICE  C MELTING TEMPERATURE OF ICE
# Line 117  C Line 87  C
87  C     Is this necessary?  C     Is this necessary?
88          atempLoc (I,J) = MAX(273.16 _d 0+MIN_ATEMP,ATEMP(I,J,bi,bj))          atempLoc (I,J) = MAX(273.16 _d 0+MIN_ATEMP,ATEMP(I,J,bi,bj))
89  # endif  # endif
 #ifdef SEAICE_CLIM_AIR  
         atempLoc (I,J) = AREA(I,J,bi,bj) *  
      &       ( fac * SEAICE_clim_atemp(count0) + (1-fac) *  
      &       SEAICE_clim_atemp(count1) ) +  
      &       (1-AREA(I,J,bi,bj)) * atempLoc(I,J)  
         aqhLoc (I,J)   = AREA(I,J,bi,bj) *  
      &       ( fac * SEAICE_clim_aqh(count0) + (1-fac) *  
      &       SEAICE_clim_aqh(count1) ) +  
      &       (1-AREA(I,J,bi,bj)) * aqh(I,J,bi,bj)  
 #endif /* SEAICE_CLIM_AIR */  
90  # ifdef ALLOW_DOWNWARD_RADIATION  # ifdef ALLOW_DOWNWARD_RADIATION
91          lwdownLoc(I,J) = MAX(MIN_LWDOWN,LWDOWN(I,J,bi,bj))          lwdownLoc(I,J) = MAX(MIN_LWDOWN,LWDOWN(I,J,bi,bj))
92  # endif  # endif
# Line 144  C WATER ALBEDO IS ASSUMED TO BE THE CONS Line 104  C WATER ALBEDO IS ASSUMED TO BE THE CONS
104  #else /* SEAICE_EXTERNAL_FLUXES undefined */  #else /* SEAICE_EXTERNAL_FLUXES undefined */
105          ALB(I,J)=SEAICE_waterAlbedo                                          ALB(I,J)=SEAICE_waterAlbedo                                
106  # ifdef ALLOW_DOWNWARD_RADIATION  # ifdef ALLOW_DOWNWARD_RADIATION
 # ifdef SEAICE_CLIM_AIR  
         A1(I,J)=(ONE-ALB(I,J))*SWDOWN(I,J,bi,bj)  
      &       +lwdownLoc(I,J)*0.97 _d 0  
      &       +D1*UG(I,J)*atempLoc(I,J)+D1W*UG(I,J)*aqhLoc (I,J)  
 #else  
107          A1(I,J)=(ONE-ALB(I,J))*SWDOWN(I,J,bi,bj)          A1(I,J)=(ONE-ALB(I,J))*SWDOWN(I,J,bi,bj)
108       &       +lwdownLoc(I,J)*0.97 _d 0       &       +lwdownLoc(I,J)*0.97 _d 0
109       &       +D1*UG(I,J)*atempLoc(I,J)+D1W*UG(I,J)*AQH(I,J,bi,bj)       &       +D1*UG(I,J)*atempLoc(I,J)+D1W*UG(I,J)*AQH(I,J,bi,bj)
 #endif /* SEAICE_CLIM_AIR */  
110          B(I,J)=QS1*6.11 _d +00*EXP(17.2694 _d +00          B(I,J)=QS1*6.11 _d +00*EXP(17.2694 _d +00
111       &       *(tsurfLoc(I,J)-TMELT)       &       *(tsurfLoc(I,J)-TMELT)
112       &       /(tsurfLoc(I,J)-TMELT+237.3 _d +00))       &       /(tsurfLoc(I,J)-TMELT+237.3 _d +00))

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22