Ignore:
Timestamp:
Jun 16, 2017, 6:03:16 PM (7 years ago)
Author:
jbmadeleine
Message:

Improved the way thermal inertia works in simulations using imposed SST and sea ice.
Removed inertie_ice which was confusing; Added inertie_sic for sea-ice and inertie_lic for
land-ice. When snow is present, inertie_sno is used instead of inertie_sol, inertie_sic or
inertie_lic. For sea-ice, added a flag called iflag_sic:
If iflag_sic=0, thermal inertia is changed over sea-ice when snow is present
If iflag_sic=1, thermal inertia is kept constant and equal to inertie_sic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/soil.F90

    r2311 r2915  
    152152!-----------------------------------------------------------------------
    153153!   Calcul de l'inertie thermique a partir de la variable rnat.
    154 !   on initialise a inertie_ice meme au-dessus d'un point de mer au cas
     154!   on initialise a inertie_sic meme au-dessus d'un point de mer au cas
    155155!   ou le point de mer devienne point de glace au pas suivant
    156156!   on corrige si on a un point de terre avec ou sans glace
    157157!
    158 !-----------------------------------------------------------------------
     158!   iophys can be used to write the ztherm_i variable in a phys.nc file
     159!   and check the results; to do so, add "CALL iophys_ini" in physiq_mod
     160!   and add knindex to the list of inputs in all the calls to soil.F90
     161!   (and to soil.F90 itself !)
     162!-----------------------------------------------------------------------
     163
    159164  IF (indice == is_sic) THEN
    160165     DO ig = 1, knon
    161         ztherm_i(ig)   = inertie_ice
     166        ztherm_i(ig)   = inertie_sic
     167     ENDDO
     168     IF (iflag_sic == 0) THEN
     169       DO ig = 1, knon
     170         IF (snow(ig) > 0.0) ztherm_i(ig)   = inertie_sno
     171       ENDDO
     172!      Otherwise sea-ice keeps the same inertia, even when covered by snow
     173     ENDIF
     174!    CALL iophys_ecrit_index('ztherm_sic', 1, 'ztherm_sic', 'USI', &
     175!      knon, knindex, ztherm_i)
     176  ELSE IF (indice == is_lic) THEN
     177     DO ig = 1, knon
     178        ztherm_i(ig)   = inertie_lic
    162179        IF (snow(ig) > 0.0) ztherm_i(ig)   = inertie_sno
    163180     ENDDO
    164   ELSE IF (indice == is_lic) THEN
    165      DO ig = 1, knon
    166         ztherm_i(ig)   = inertie_ice
    167         IF (snow(ig) > 0.0) ztherm_i(ig)   = inertie_sno
    168      ENDDO
     181!    CALL iophys_ecrit_index('ztherm_lic', 1, 'ztherm_lic', 'USI', &
     182!      knon, knindex, ztherm_i)
    169183  ELSE IF (indice == is_ter) THEN
    170184     DO ig = 1, knon
     
    172186        IF (snow(ig) > 0.0) ztherm_i(ig)   = inertie_sno
    173187     ENDDO
     188!    CALL iophys_ecrit_index('ztherm_ter', 1, 'ztherm_ter', 'USI', &
     189!      knon, knindex, ztherm_i)
    174190  ELSE IF (indice == is_oce) THEN
    175191     DO ig = 1, knon
    176         ztherm_i(ig)   = inertie_ice
    177      ENDDO
     192!       This is just in case, but SST should be used by the model anyway
     193        ztherm_i(ig)   = inertie_sic
     194     ENDDO
     195!    CALL iophys_ecrit_index('ztherm_oce', 1, 'ztherm_oce', 'USI', &
     196!      knon, knindex, ztherm_i)
    178197  ELSE
    179198     WRITE(lunout,*) "valeur d indice non prevue", indice
Note: See TracChangeset for help on using the changeset viewer.