Ignore:
Timestamp:
Jul 24, 2024, 2:54:37 PM (7 months ago)
Author:
abarral
Message:

rename modules properly lmdz_*
move ismin, ismax, minmax into new lmdz_libmath.f90
(lint) uppercase fortran keywords

Location:
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/inlandsis.f90

    r5113 r5116  
    186186  logical :: BloMod
    187187  logical :: debut
    188   integer :: jjtime
     188  INTEGER :: jjtime
    189189
    190190
     
    195195  ! ---------
    196196
    197   real :: TBr_sv(klonv)                 ! Brightness Temperature
    198   real :: IRdwsv(klonv)                 ! DOWNward   IR Flux
    199   real :: IRupsv(klonv)                 ! UPward     IR Flux
    200   real :: d_Bufs,Bufs_N                 ! Buffer Snow Layer Increment
    201   real :: Buf_ro,Bros_N                 ! Buffer Snow Layer Density
    202   real :: BufPro                        ! Buffer Snow Layer Density
    203   real :: Buf_G1,BG1__N                 ! Buffer Snow Layer Dendr/Sphe[-]
    204   real :: Buf_G2,BG2__N                 ! Buffer Snow Layer Spher/Size[-]
    205   real :: Bdzssv(klonv)                 ! Buffer Snow Layer Thickness
    206   real :: z_snsv(klonv)                 ! Snow-Ice, current Thickness
     197  REAL :: TBr_sv(klonv)                 ! Brightness Temperature
     198  REAL :: IRdwsv(klonv)                 ! DOWNward   IR Flux
     199  REAL :: IRupsv(klonv)                 ! UPward     IR Flux
     200  REAL :: d_Bufs,Bufs_N                 ! Buffer Snow Layer Increment
     201  REAL :: Buf_ro,Bros_N                 ! Buffer Snow Layer Density
     202  REAL :: BufPro                        ! Buffer Snow Layer Density
     203  REAL :: Buf_G1,BG1__N                 ! Buffer Snow Layer Dendr/Sphe[-]
     204  REAL :: Buf_G2,BG2__N                 ! Buffer Snow Layer Spher/Size[-]
     205  REAL :: Bdzssv(klonv)                 ! Buffer Snow Layer Thickness
     206  REAL :: z_snsv(klonv)                 ! Snow-Ice, current Thickness
    207207
    208208
     
    211211  ! -----
    212212
    213   integer :: iwr
    214   integer :: ikl   ,isn   ,isl   ,ist      !
    215   integer :: ist__s,ist__w                 ! Soil/Water Body Identifier
    216   integer :: growth                        ! Seasonal               Mask
    217   integer :: LISmsk                        ! Land+Ice / Open    Sea Mask
    218   integer :: LSnMsk                        ! Snow-Ice / No Snow-Ice Mask
    219   integer :: IceMsk,IcIndx(klonv)          !      Ice / No      Ice Mask
    220   integer :: SnoMsk                        ! Snow     / No Snow     Mask
    221   real :: roSMin,roSMax,roSn_1,roSn_2,roSn_3   ! Fallen Snow Density (PAHAUT)
    222   real :: Dendr1,Dendr2,Dendr3          ! Fallen Snow Dendric.(GIRAUD)
    223   real :: Spher1,Spher2,Spher3,Spher4   ! Fallen Snow Spheric.(GIRAUD)
    224   real :: Polair                        ! Polar  Snow Switch
    225   real :: PorSno,Salt_f,PorRef   !
     213  INTEGER :: iwr
     214  INTEGER :: ikl   ,isn   ,isl   ,ist      !
     215  INTEGER :: ist__s,ist__w                 ! Soil/Water Body Identifier
     216  INTEGER :: growth                        ! Seasonal               Mask
     217  INTEGER :: LISmsk                        ! Land+Ice / Open    Sea Mask
     218  INTEGER :: LSnMsk                        ! Snow-Ice / No Snow-Ice Mask
     219  INTEGER :: IceMsk,IcIndx(klonv)          !      Ice / No      Ice Mask
     220  INTEGER :: SnoMsk                        ! Snow     / No Snow     Mask
     221  REAL :: roSMin,roSMax,roSn_1,roSn_2,roSn_3   ! Fallen Snow Density (PAHAUT)
     222  REAL :: Dendr1,Dendr2,Dendr3          ! Fallen Snow Dendric.(GIRAUD)
     223  REAL :: Spher1,Spher2,Spher3,Spher4   ! Fallen Snow Spheric.(GIRAUD)
     224  REAL :: Polair                        ! Polar  Snow Switch
     225  REAL :: PorSno,Salt_f,PorRef   !
    226226  ! #sw real      PorVol,rWater                 !
    227227  ! #sw real      rusNEW,rdzNEW,etaNEW          !
    228   real :: ro_new                        !
    229   real :: TaPole                        ! Maximum     Polar Temperature
    230   real :: T__Min                        ! Minimum realistic Temperature
    231   real :: EmiSol                        ! Emissivity of       Soil
    232   real :: EmiSno                        ! Emissivity of            Snow
    233   real :: EmiWat                        ! Emissivity of a Water Area
    234   real :: vk2                           ! Square of Von Karman Constant
    235   real :: u2star                        !(u*)**2
    236   real :: Z0mLnd                        !          Land Roughness Length
     228  REAL :: ro_new                        !
     229  REAL :: TaPole                        ! Maximum     Polar Temperature
     230  REAL :: T__Min                        ! Minimum realistic Temperature
     231  REAL :: EmiSol                        ! Emissivity of       Soil
     232  REAL :: EmiSno                        ! Emissivity of            Snow
     233  REAL :: EmiWat                        ! Emissivity of a Water Area
     234  REAL :: vk2                           ! Square of Von Karman Constant
     235  REAL :: u2star                        !(u*)**2
     236  REAL :: Z0mLnd                        !          Land Roughness Length
    237237  ! #ZN real      sqrrZ0                        ! u*t/u*
    238   real :: f_eff                         ! Marticorena & B. 1995 JGR (20)
    239   real :: A_Fact                        ! Fundamental * Roughness
    240   real :: Z0m_nu                        ! Smooth R Snow Roughness Length
    241   real :: Z0mBSn                        !         BSnow Roughness Length
    242   real :: Z0mBS0                        ! Mimimum BSnow Roughness Length
    243   real :: Z0m_S0                        ! Mimimum  Snow Roughness Length
    244   real :: Z0m_S1                        ! Maximum  Snow Roughness Length
     238  REAL :: f_eff                         ! Marticorena & B. 1995 JGR (20)
     239  REAL :: A_Fact                        ! Fundamental * Roughness
     240  REAL :: Z0m_nu                        ! Smooth R Snow Roughness Length
     241  REAL :: Z0mBSn                        !         BSnow Roughness Length
     242  REAL :: Z0mBS0                        ! Mimimum BSnow Roughness Length
     243  REAL :: Z0m_S0                        ! Mimimum  Snow Roughness Length
     244  REAL :: Z0m_S1                        ! Maximum  Snow Roughness Length
    245245  ! #SZ real      Z0Sa_N                        ! Regime   Snow Roughness Length
    246246  ! #SZ real      Z0SaSi                        ! 1.IF Rgm Snow Roughness Length
    247247  ! #GL real      Z0_GIM                        ! Mimimum GIMEX Roughness Length
    248   real :: Z0_ICE                        ! Ice ISW   Roughness Length
    249   real :: Z0m_Sn,Z0m_90                 ! Snow  Surface Roughness Length
    250   real :: SnoWat                        ! Snow Layer    Switch
    251   real :: rstar,alors                   !
    252   real :: rstar0,rstar1,rstar2          !
    253   real :: SameOK                        ! 1. => Same Type of Grains
    254   real :: G1same                        ! Averaged G1,  same Grains
    255   real :: G2same                        ! Averaged G2,  same Grains
    256   real :: typ__1                        ! 1. => Lay1 Type: Dendritic
    257   real :: zroNEW                        ! dz X ro, if fresh Snow
    258   real :: G1_NEW                        ! G1,      if fresh Snow
    259   real :: G2_NEW                        ! G2,      if fresh Snow
    260   real :: zroOLD                        ! dz X ro, if old   Snow
    261   real :: G1_OLD                        ! G1,      if old   Snow
    262   real :: G2_OLD                        ! G2,      if old   Snow
    263   real :: SizNEW                        ! Size,    if fresh Snow
    264   real :: SphNEW                        ! Spheric.,if fresh Snow
    265   real :: SizOLD                        ! Size,    if old   Snow
    266   real :: SphOLD                        ! Spheric.,if old   Snow
    267   real :: Siz_av                        ! Averaged    Grain Size
    268   real :: Sph_av                        ! Averaged    Grain Spher.
    269   real :: Den_av                        ! Averaged    Grain Dendr.
    270   real :: G1diff                        ! Averaged G1, diff. Grains
    271   real :: G2diff                        ! Averaged G2, diff. Grains
    272   real :: G1                            ! Averaged G1
    273   real :: G2                            ! Averaged G2
    274   real :: param                         ! Polynomial   fit z0=f(T)
    275   real :: Z0_obs                        ! Fit Z0_obs=f(T) (m)
    276   real :: tamin                         ! min T of linear fit (K)
    277   real :: tamax                         ! max T of linear fit (K)
    278   real :: coefa,coefb,coefc,coefd       ! Coefs for z0=f(T)
    279   real :: ta1,ta2,ta3                   ! Air temperature thresholds
    280   real :: z01,z02,z03                   ! z0 thresholds
    281   real :: tt_c,vv_c                     ! Critical param.
    282   real :: tt_tmp,vv_tmp,vv_virt         ! Temporary variables
    283   real :: e_prad,e1pRad,A_Rad0,absg_V,absgnI,exdRad ! variables for SoSosv calculations
    284   real :: zm1, zm2, coefslope                    ! variables for surface temperature extrapolation
     248  REAL :: Z0_ICE                        ! Ice ISW   Roughness Length
     249  REAL :: Z0m_Sn,Z0m_90                 ! Snow  Surface Roughness Length
     250  REAL :: SnoWat                        ! Snow Layer    Switch
     251  REAL :: rstar,alors                   !
     252  REAL :: rstar0,rstar1,rstar2          !
     253  REAL :: SameOK                        ! 1. => Same Type of Grains
     254  REAL :: G1same                        ! Averaged G1,  same Grains
     255  REAL :: G2same                        ! Averaged G2,  same Grains
     256  REAL :: typ__1                        ! 1. => Lay1 Type: Dendritic
     257  REAL :: zroNEW                        ! dz X ro, if fresh Snow
     258  REAL :: G1_NEW                        ! G1,      if fresh Snow
     259  REAL :: G2_NEW                        ! G2,      if fresh Snow
     260  REAL :: zroOLD                        ! dz X ro, if old   Snow
     261  REAL :: G1_OLD                        ! G1,      if old   Snow
     262  REAL :: G2_OLD                        ! G2,      if old   Snow
     263  REAL :: SizNEW                        ! Size,    if fresh Snow
     264  REAL :: SphNEW                        ! Spheric.,if fresh Snow
     265  REAL :: SizOLD                        ! Size,    if old   Snow
     266  REAL :: SphOLD                        ! Spheric.,if old   Snow
     267  REAL :: Siz_av                        ! Averaged    Grain Size
     268  REAL :: Sph_av                        ! Averaged    Grain Spher.
     269  REAL :: Den_av                        ! Averaged    Grain Dendr.
     270  REAL :: G1diff                        ! Averaged G1, diff. Grains
     271  REAL :: G2diff                        ! Averaged G2, diff. Grains
     272  REAL :: G1                            ! Averaged G1
     273  REAL :: G2                            ! Averaged G2
     274  REAL :: param                         ! Polynomial   fit z0=f(T)
     275  REAL :: Z0_obs                        ! Fit Z0_obs=f(T) (m)
     276  REAL :: tamin                         ! min T of linear fit (K)
     277  REAL :: tamax                         ! max T of linear fit (K)
     278  REAL :: coefa,coefb,coefc,coefd       ! Coefs for z0=f(T)
     279  REAL :: ta1,ta2,ta3                   ! Air temperature thresholds
     280  REAL :: z01,z02,z03                   ! z0 thresholds
     281  REAL :: tt_c,vv_c                     ! Critical param.
     282  REAL :: tt_tmp,vv_tmp,vv_virt         ! Temporary variables
     283  REAL :: e_prad,e1pRad,A_Rad0,absg_V,absgnI,exdRad ! variables for SoSosv calculations
     284  REAL :: zm1, zm2, coefslope                    ! variables for surface temperature extrapolation
    285285  ! for Aeolian erosion and blowing snow
    286   integer :: nit   ,iit
    287   real :: Fac                           ! Correc. factor for drift ratio
    288   real :: dusuth,signus
    289   real :: sss__F,sss__N
    290   real :: sss__K,sss__G
    291   real :: us_127,us_227,us_327,us_427,us_527
    292   real :: VVa_OK, usuth0
    293   real :: ssstar
    294   real :: SblPom
    295   real :: rCd10n                        ! Square root of drag coefficient
    296   real :: DendOK                        ! Dendricity Switch
    297   real :: SaltOK                        ! Saltation  Switch
    298   real :: MeltOK                        ! Saltation  Switch (Melting Snow)
    299   real :: SnowOK                        ! Pack Top   Switch
    300   real :: SaltM1,SaltM2,SaltMo,SaltMx   ! Saltation  Parameters
    301   real :: ShearX, ShearS                ! Arg. Max Shear Stress
    302   real :: Por_BS                        ! Snow Porosity
    303   real :: Salt_us                       ! New thresh.friction velocity u*t
    304   real :: Fac_Mo,ArguSi,FacRho          ! Numerical factors for u*t
    305   real :: SaltSI(klonv,0:nsno)          ! Snow Drift Index              !
    306   real :: MIN_Mo                        ! Minimum Mobility Fresh Fallen *
    307   character(len=3) :: qsalt_param              ! Switch for saltation flux param.
    308   character(len=3) :: usth_param               ! Switch for u*t param
     286  INTEGER :: nit   ,iit
     287  REAL :: Fac                           ! Correc. factor for drift ratio
     288  REAL :: dusuth,signus
     289  REAL :: sss__F,sss__N
     290  REAL :: sss__K,sss__G
     291  REAL :: us_127,us_227,us_327,us_427,us_527
     292  REAL :: VVa_OK, usuth0
     293  REAL :: ssstar
     294  REAL :: SblPom
     295  REAL :: rCd10n                        ! Square root of drag coefficient
     296  REAL :: DendOK                        ! Dendricity Switch
     297  REAL :: SaltOK                        ! Saltation  Switch
     298  REAL :: MeltOK                        ! Saltation  Switch (Melting Snow)
     299  REAL :: SnowOK                        ! Pack Top   Switch
     300  REAL :: SaltM1,SaltM2,SaltMo,SaltMx   ! Saltation  Parameters
     301  REAL :: ShearX, ShearS                ! Arg. Max Shear Stress
     302  REAL :: Por_BS                        ! Snow Porosity
     303  REAL :: Salt_us                       ! New thresh.friction velocity u*t
     304  REAL :: Fac_Mo,ArguSi,FacRho          ! Numerical factors for u*t
     305  REAL :: SaltSI(klonv,0:nsno)          ! Snow Drift Index              !
     306  REAL :: MIN_Mo                        ! Minimum Mobility Fresh Fallen *
     307  CHARACTER(LEN=3) :: qsalt_param              ! Switch for saltation flux param.
     308  CHARACTER(LEN=3) :: usth_param               ! Switch for u*t param
    309309
    310310
     
    409409    IF (BloMod) THEN
    410410
    411     if (klonv==1) then
    412       if(isnoSV(1)>=2                   .and. &
     411    if (klonv==1) THEN
     412      IF(isnoSV(1)>=2                   .and. &
    413413            TsisSV(1,max(1,isnoSV(1)))<273.  .and. &
    414414            ro__SV(1,max(1,isnoSV(1)))<500.  .and. &
    415             eta_SV(1,max(1,isnoSV(1)))<epsi) then
     415            eta_SV(1,max(1,isnoSV(1)))<epsi) THEN
    416416  ! +                       **********
    417417                 CALL SISVAT_BSn
     
    508508  ! +--Threshold Friction Velocity
    509509  ! +  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    510       if(ro__SV(ikl,isn)>300.) then
     510      IF(ro__SV(ikl,isn)>300.) THEN
    511511         Por_BS      =  1.000       - ro__SV(ikl,isn)     /ro_Ice
    512512      else
     
    518518  ! +     Gallee et al., 2001    eq 5, p5
    519519
    520       if (usth_param == "gal") then
     520      if (usth_param == "gal") THEN
    521521        Salt_us   =   (log(2.868) - log(1 + SaltMo)) * rCd10n/0.085
    522522        Salt_us   = Salt_us * Fac_Mo
     
    526526
    527527      if (usth_param == "lis") then !Liston et al. 2007
    528         if(ro__SV(ikl,isn)>300.) then
     528        IF(ro__SV(ikl,isn)>300.) THEN
    529529          Salt_us   = 0.005*exp(0.013*ro__SV(ikl,isn))
    530530        else
     
    607607    hSalSV(ikl) = 8.436e-2  * us__SV(ikl)**SblPom
    608608
    609     if (qsalt_param == "pom") then
     609    if (qsalt_param == "pom") THEN
    610610      qSalSV(ikl) = (us__SV(ikl)**2 - usthSV(ikl)**2) *signus &
    611611            / (hSalSV(ikl) * gravit * us__SV(ikl) * 3.25)
    612612    endif
    613613
    614     if (qsalt_param == "bin") then
     614    if (qsalt_param == "bin") THEN
    615615      qSalSV(ikl) = (us__SV(ikl) * us__SV(ikl) &
    616616            -usthSV(ikl) * usthSV(ikl))*signus &
     
    662662  ! #BS       density_kotlyakov = .FALSE.  !C.Amory BS 2018
    663663  ! + ...     Fallen Snow Density, Adapted for Antarctica
    664         if (is_ok_density_kotlyakov) then
     664        if (is_ok_density_kotlyakov) THEN
    665665            tt_tmp = TaT_SV(ikl)-TfSnow
    666666            !vv_tmp = VV10SV(ikl)
     
    668668  ! + ...         [ A compromise between
    669669  ! + ...           Kotlyakov (1961) and Lenaerts (2012, JGR, Part1) ]
    670             if (tt_tmp>=-10) then
     670            if (tt_tmp>=-10) THEN
    671671              BufPro   =  max( rosMin, &
    672672                    104. *sqrt( max( vv_tmp-6.0,0.0))) ! Kotlyakov (1961)
     
    696696  !    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    697697
    698      if (BloMod) then
     698     if (BloMod) THEN
    699699     Bros_N      = frsno
    700700     ro_new      = ro__SV(ikl,max(1,isnoSV(ikl)))
     
    894894
    895895
    896   if (discret_xf.AND.klonv==1) then
    897 
    898    if(isnoSV(1)>=1.or.NLaysv(1)>=1) then
     896  if (discret_xf.AND.klonv==1) THEN
     897   IF(isnoSV(1)>=1.or.NLaysv(1)>=1) THEN
    899898  ! +          **********
    900899     CALL SISVAT_zSn
     
    10811080
    10821081
    1083   if (iflag_temp_inlandsis == 0) then
    1084 
     1082  if (iflag_temp_inlandsis == 0) THEN
    10851083   CALL SISVAT_TSo
    10861084
     
    12051203  ! Etienne: extrapolation from the two uppermost levels:
    12061204
    1207      if (isnoSV(ikl) >=2) then
     1205     if (isnoSV(ikl) >=2) THEN
    12081206       zm1=-dzsnSV(ikl,isnoSV(ikl))/2.
    12091207       zm2=-(dzsnSV(ikl,isnoSV(ikl)) + dzsnSV(ikl,isnoSV(ikl)-1)/2.)
    1210      else if (isnoSV(ikl) == 1) then
     1208     else if (isnoSV(ikl) == 1) THEN
    12111209       zm1=-dzsnSV(ikl,isnoSV(ikl))/2.
    12121210       zm2=-(dzsnSV(ikl,isnoSV(ikl))+dz_dSV(0)/2.)
     
    12361234  IF (SnoMod)                                                 THEN
    12371235
    1238   if (discret_xf .AND. klonv==1) then
    1239   if(isnoSV(1)>=1) then
     1236  if (discret_xf .AND. klonv==1) THEN
     1237  IF(isnoSV(1)>=1) THEN
    12401238  ! +          **********
    12411239  CALL SISVAT_GSn
     
    13361334      coefd = log(z03)-coefc*ta3
    13371335
    1338       if (TaT_SV(ikl) < ta1) then
     1336      if (TaT_SV(ikl) < ta1) THEN
    13391337        Z0_obs = z01
    1340       else if (TaT_SV(ikl)>=ta1 .and. TaT_SV(ikl)<ta2) then
     1338      else if (TaT_SV(ikl)>=ta1 .and. TaT_SV(ikl)<ta2) THEN
    13411339        Z0_obs = exp(coefa*TaT_SV(ikl) + coefb)
    1342       else if (TaT_SV(ikl)>=ta2 .and. TaT_SV(ikl)<ta3) then
     1340      else if (TaT_SV(ikl)>=ta2 .and. TaT_SV(ikl)<ta3) THEN
    13431341        ! if st > 0, melting induce smooth surface
    13441342        Z0_obs = exp(coefc*TaT_SV(ikl) + coefd)
     
    14721470  !XF    MAR is then too warm and not enough melt
    14731471
    1474      if(ro__SV(ikl,isnoSV(ikl))>50 &
    1475            .and.ro__SV(ikl,isnoSV(ikl))<roSdSV)then
    1476 
     1472     IF(ro__SV(ikl,isnoSV(ikl))>50 &
     1473           .and.ro__SV(ikl,isnoSV(ikl))<roSdSV)THEN
    14771474         Z0hnSV(ikl) = max(zero &
    14781475               , sign(unun,zzsnsv(ikl,isnoSV(ikl))-epsi)) &
     
    14971494
    14981495
    1499 end subroutine inlandsis
    1500 
    1501 
    1502 
    1503 
    1504 
    1505 
    1506 
    1507 
    1508 
    1509 
    1510 
     1496END SUBROUTINE inlandsis
     1497
     1498
     1499
     1500
     1501
     1502
     1503
     1504
     1505
     1506
     1507
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_bsn.f90

    r5113 r5116  
    3333
    3434
    35   integer :: ikl   ,isn
    36   real :: h_mmWE                        ! Eroded Snow Layer Min Thickness
    37   real :: dbsaux(knonv)                 ! Drift Amount   (Dummy Variable)
    38   real :: dzweqo,dzweqn,bsno_x          ! Conversion variables for erosion
    39   real :: dz_new,rho_new
    40   real :: snofOK                        ! Threshd Snow Fall
    41   real :: Fac                           ! Correction factor for erosion
    42   real :: densif                        ! Densification rate if erosion
     35  INTEGER :: ikl   ,isn
     36  REAL :: h_mmWE                        ! Eroded Snow Layer Min Thickness
     37  REAL :: dbsaux(knonv)                 ! Drift Amount   (Dummy Variable)
     38  REAL :: dzweqo,dzweqn,bsno_x          ! Conversion variables for erosion
     39  REAL :: dz_new,rho_new
     40  REAL :: snofOK                        ! Threshd Snow Fall
     41  REAL :: Fac                           ! Correction factor for erosion
     42  REAL :: densif                        ! Densification rate if erosion
    4343
    4444  ! +--DATA
     
    7373    if((dzweqo-dzweqn)>0                    .and. &
    7474          dzsnSV(ikl,isn)>0                    .and. &
    75           ro__SV(ikl,max(1,isnoSV(ikl)))<roBdSV) then
    76 
     75          ro__SV(ikl,max(1,isnoSV(ikl)))<roBdSV) THEN
    7776    !characteristic time scale for drifting snow compaction set to 24h
    7877    !linear densification rate [kg/m3/s] over 24h
     
    8483    Fac         = max(0.,min(1.,Fac))
    8584
    86     if (ro__SV(ikl,max(1,isnoSV(ikl)))>roBdSV) then
     85    if (ro__SV(ikl,max(1,isnoSV(ikl)))>roBdSV) THEN
    8786      densif=densif*Fac
    8887    endif
     
    9493    endif
    9594
    96     if(dzsnSV(ikl,isn)>0 .and.dzsnSV(ikl,isn)<0.0001)then
     95    IF(dzsnSV(ikl,isn)>0 .and.dzsnSV(ikl,isn)<0.0001)THEN
    9796    dbs_SV(ikl) = dbs_SV(ikl)+ dzsnSV(ikl,isn)*ro__SV(ikl,isn)
    9897    dbs_Er(ikl) = dbs_Er(ikl)+ dzsnSV(ikl,isn)*ro__SV(ikl,isn)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_gsn.f90

    r5105 r5116  
    184184  ! +  ------
    185185
    186   integer :: dt__SV2
     186  INTEGER :: dt__SV2
    187187
    188188
     
    191191
    192192  logical :: vector                        !
    193   integer :: ikl                           !
    194   integer :: isn   ,isnp                   !
    195   integer :: istoOK                        !
    196   real :: G1_bak,G2_bak                 ! Old Values of G1, G2
    197   real :: ro_dry(knonv,      nsno)      ! Dry Density            [g/cm3]
    198   real :: etaSno(knonv,      nsno)      ! Liquid Water Content   [g/cm2]
    199   real :: SnMass(knonv)                 ! Snow   Mass            [kg/m2]
    200   real :: dTsndz                        ! Temperature Gradient
    201   real :: sWater                        !        Water Content       [%]
    202   real :: exp1Wa                        !
    203   real :: dDENDR                        ! Dendricity Increment
    204   real :: DENDRn                        ! Normalized Dendricity
    205   real :: SPHERn                        ! Normalized Sphericity
    206   real :: Wet_OK                        ! Wet Metamorphism Switch
    207   real :: OK__DE                        !
    208   real :: OK__wd                        ! New G*, from wet Dendritic
    209   real :: G1__wd                        ! New G1, from wet Dendritic
    210   real :: G2__wd                        ! New G2, from wet Dendritic
    211   real :: OKlowT                        !
    212   real :: facVap                        !
    213   real :: OK_ldd                        !
    214   real :: G1_ldd                        !
    215   real :: G2_ldd                        !
    216   real :: DiamGx                        !
    217   real :: DiamOK                        !
    218   real :: No_Big                        !
    219   real :: dSPHER                        !
    220   real :: SPHER0                        !
    221   real :: SPHbig                        !
    222   real :: G1_lds                        !
    223   real :: OK_mdT                        !
    224   real :: OKmidT                        !
    225   real :: OKhigT                        !
    226   real :: OK_mdd                        !
    227   real :: G1_mdd                        !
    228   real :: G2_mdd                        !
    229   real :: G1_mds                        !
    230   real :: OK_hdd                        !
    231   real :: G1_hdd                        !
    232   real :: G2_hdd                        !
    233   real :: OK_hds                        !
    234   real :: G1_hds                        !
    235   real :: T1__OK,T2__OK                 !
    236   real :: T3_xOK,T3__OK,T3_nOK          !
    237   real :: ro1_OK,ro2_OK                 !
    238   real :: dT1_OK,dT2_OK,dT3xOK,dT3_OK   !
    239   real :: dT4xOK,dT4_OK,dT4nOK,AngSno   !
    240   real :: G2_hds,SphrOK,HISupd          !
    241   real :: H1a_OK,H1b_OK,H1__OK          !
    242   real :: H23aOK,H23bOK,H23_OK          !
    243   real :: H2__OK,H3__OK                 !
    244   real :: H45_OK,H4__OK,H5__OK          !
    245   real :: ViscSn,OK_Liq,OK_Ang,OKxLiq   !
    246   real :: dSnMas,dzsnew,rosnew,rosmax,smb_old,smb_new
    247   real :: zn_old,zn_new
    248 
    249   real :: epsi5                         ! Alpha ev67 single precision   
    250   real :: vdiam1                        ! Small Grains Min.Diam.[.0001m]
    251   real :: vdiam2                        ! Spher.Variat.Max Diam.    [mm]
    252   real :: vdiam3                        ! Min.Diam.|Limit Spher.    [mm]
    253   real :: vdiam4                        ! Min.Diam.|Viscosity Change
    254   real :: vsphe1                        ! Max Sphericity
    255   real :: vsphe2                        ! Low T Metamorphism  Coeff.
    256   real :: vsphe3                        ! Max.Sphericity (history=1)
    257   real :: vsphe4                        ! Min.Sphericity=>history=1
    258   real :: vtang1,vtang2,vtang3,vtang4   ! Temperature Contribution
    259   real :: vtang5,vtang6,vtang7,vtang8   !
    260   real :: vtang9,vtanga,vtangb,vtangc   !
    261   real :: vrang1,vrang2                 ! Density     Contribution
    262   real :: vgang1,vgang2,vgang3,vgang4   ! Grad(T)     Contribution
    263   real :: vgang5,vgang6,vgang7,vgang8   !
    264   real :: vgang9,vganga,vgangb,vgangc   !
    265   real :: vgran6                        ! Max.Sphericity for Settling
    266   real :: vtelv1                        ! Threshold | history = 2, 3
    267   real :: vvap1                        ! Vapor Pressure Coefficient
    268   real :: vvap2                        ! Vapor Pressure Exponent
    269   real :: vgrat1                        ! Boundary weak/mid   grad(T)
    270   real :: vgrat2                        ! Boundary mid/strong grad(T)
    271   real :: vfi                        ! PHI,         strong grad(T)
    272   real :: vvisc1,vvisc2,vvisc3,vvisc4   ! Viscosity Coefficients
    273   real :: vvisc5,vvisc6,vvisc7          ! id., wet Snow
    274   real :: rovisc                        ! Wet Snow Density  Influence
    275   real :: vdz3                        ! Maximum Layer Densification
    276   real :: OK__ws                        ! New G2
    277   real :: G1__ws                        ! New G1, from wet Spheric
    278   real :: G2__ws                        ! New G2, from wet Spheric
    279   real :: husi_0,husi_1,husi_2,husi_3   ! Constants for New G2
    280   real :: vtail1,vtail2                 ! Constants for New G2
    281   real :: frac_j                        ! Time Step            [Day]
    282 
    283   real :: vdent1                       ! Wet Snow Metamorphism
    284   integer :: nvdent1                       ! (Coefficients for
    285   integer :: nvdent2                       !           Dendricity)
     193  INTEGER :: ikl                           !
     194  INTEGER :: isn   ,isnp                   !
     195  INTEGER :: istoOK                        !
     196  REAL :: G1_bak,G2_bak                 ! Old Values of G1, G2
     197  REAL :: ro_dry(knonv,      nsno)      ! Dry Density            [g/cm3]
     198  REAL :: etaSno(knonv,      nsno)      ! Liquid Water Content   [g/cm2]
     199  REAL :: SnMass(knonv)                 ! Snow   Mass            [kg/m2]
     200  REAL :: dTsndz                        ! Temperature Gradient
     201  REAL :: sWater                        !        Water Content       [%]
     202  REAL :: exp1Wa                        !
     203  REAL :: dDENDR                        ! Dendricity Increment
     204  REAL :: DENDRn                        ! Normalized Dendricity
     205  REAL :: SPHERn                        ! Normalized Sphericity
     206  REAL :: Wet_OK                        ! Wet Metamorphism Switch
     207  REAL :: OK__DE                        !
     208  REAL :: OK__wd                        ! New G*, from wet Dendritic
     209  REAL :: G1__wd                        ! New G1, from wet Dendritic
     210  REAL :: G2__wd                        ! New G2, from wet Dendritic
     211  REAL :: OKlowT                        !
     212  REAL :: facVap                        !
     213  REAL :: OK_ldd                        !
     214  REAL :: G1_ldd                        !
     215  REAL :: G2_ldd                        !
     216  REAL :: DiamGx                        !
     217  REAL :: DiamOK                        !
     218  REAL :: No_Big                        !
     219  REAL :: dSPHER                        !
     220  REAL :: SPHER0                        !
     221  REAL :: SPHbig                        !
     222  REAL :: G1_lds                        !
     223  REAL :: OK_mdT                        !
     224  REAL :: OKmidT                        !
     225  REAL :: OKhigT                        !
     226  REAL :: OK_mdd                        !
     227  REAL :: G1_mdd                        !
     228  REAL :: G2_mdd                        !
     229  REAL :: G1_mds                        !
     230  REAL :: OK_hdd                        !
     231  REAL :: G1_hdd                        !
     232  REAL :: G2_hdd                        !
     233  REAL :: OK_hds                        !
     234  REAL :: G1_hds                        !
     235  REAL :: T1__OK,T2__OK                 !
     236  REAL :: T3_xOK,T3__OK,T3_nOK          !
     237  REAL :: ro1_OK,ro2_OK                 !
     238  REAL :: dT1_OK,dT2_OK,dT3xOK,dT3_OK   !
     239  REAL :: dT4xOK,dT4_OK,dT4nOK,AngSno   !
     240  REAL :: G2_hds,SphrOK,HISupd          !
     241  REAL :: H1a_OK,H1b_OK,H1__OK          !
     242  REAL :: H23aOK,H23bOK,H23_OK          !
     243  REAL :: H2__OK,H3__OK                 !
     244  REAL :: H45_OK,H4__OK,H5__OK          !
     245  REAL :: ViscSn,OK_Liq,OK_Ang,OKxLiq   !
     246  REAL :: dSnMas,dzsnew,rosnew,rosmax,smb_old,smb_new
     247  REAL :: zn_old,zn_new
     248
     249  REAL :: epsi5                         ! Alpha ev67 single precision
     250  REAL :: vdiam1                        ! Small Grains Min.Diam.[.0001m]
     251  REAL :: vdiam2                        ! Spher.Variat.Max Diam.    [mm]
     252  REAL :: vdiam3                        ! Min.Diam.|Limit Spher.    [mm]
     253  REAL :: vdiam4                        ! Min.Diam.|Viscosity Change
     254  REAL :: vsphe1                        ! Max Sphericity
     255  REAL :: vsphe2                        ! Low T Metamorphism  Coeff.
     256  REAL :: vsphe3                        ! Max.Sphericity (history=1)
     257  REAL :: vsphe4                        ! Min.Sphericity=>history=1
     258  REAL :: vtang1,vtang2,vtang3,vtang4   ! Temperature Contribution
     259  REAL :: vtang5,vtang6,vtang7,vtang8   !
     260  REAL :: vtang9,vtanga,vtangb,vtangc   !
     261  REAL :: vrang1,vrang2                 ! Density     Contribution
     262  REAL :: vgang1,vgang2,vgang3,vgang4   ! Grad(T)     Contribution
     263  REAL :: vgang5,vgang6,vgang7,vgang8   !
     264  REAL :: vgang9,vganga,vgangb,vgangc   !
     265  REAL :: vgran6                        ! Max.Sphericity for Settling
     266  REAL :: vtelv1                        ! Threshold | history = 2, 3
     267  REAL :: vvap1                        ! Vapor Pressure Coefficient
     268  REAL :: vvap2                        ! Vapor Pressure Exponent
     269  REAL :: vgrat1                        ! Boundary weak/mid   grad(T)
     270  REAL :: vgrat2                        ! Boundary mid/strong grad(T)
     271  REAL :: vfi                        ! PHI,         strong grad(T)
     272  REAL :: vvisc1,vvisc2,vvisc3,vvisc4   ! Viscosity Coefficients
     273  REAL :: vvisc5,vvisc6,vvisc7          ! id., wet Snow
     274  REAL :: rovisc                        ! Wet Snow Density  Influence
     275  REAL :: vdz3                        ! Maximum Layer Densification
     276  REAL :: OK__ws                        ! New G2
     277  REAL :: G1__ws                        ! New G1, from wet Spheric
     278  REAL :: G2__ws                        ! New G2, from wet Spheric
     279  REAL :: husi_0,husi_1,husi_2,husi_3   ! Constants for New G2
     280  REAL :: vtail1,vtail2                 ! Constants for New G2
     281  REAL :: frac_j                        ! Time Step            [Day]
     282
     283  REAL :: vdent1                       ! Wet Snow Metamorphism
     284  INTEGER :: nvdent1                       ! (Coefficients for
     285  INTEGER :: nvdent2                       !           Dendricity)
    286286
    287287  ! +--Snow Properties: IO
     
    679679
    680680  !XF
    681   if(G1snSV(ikl,isn)<0.1) &
     681  IF(G1snSV(ikl,isn)<0.1) &
    682682        G2_hds = G2snSV(ikl,isn) + 1.d1 *AngSno*vfi     *frac_j
    683683  !XF
     
    739739  ! +  ~~~~~~~~~~~~~~~~~~~
    740740  ! #vp     IF          (isn    .le.     isnoSV(ikl))
    741   ! #vp.    write(47,471)isn            ,isnoSV(ikl)                    ,
     741  ! #vp.    WRITE(47,471)isn            ,isnoSV(ikl)                    ,
    742742  ! #vp.                 TsisSV(ikl,isn),ro__SV(ikl,isn),eta_SV(ikl,isn),
    743743  ! #vp.                 G1_bak         ,G2_bak         ,istoSV(ikl,isn),
     
    860860  ! #wp.                             .AND.istoSV(ikl,isn).eq.     0)
    861861  ! #wp.    THEN
    862   ! #wp       write(6,*) ikl,isn,' G1,G2,hist,OK_Ang  ',
     862  ! #wp       WRITE(6,*) ikl,isn,' G1,G2,hist,OK_Ang  ',
    863863  ! #wp.          G1snSV(ikl,isn), G2snSV(ikl,isn),istoSV(ikl,isn),OK_Ang
    864864  ! #wp       stop "Grains anguleux mal d?finis"
     
    907907
    908908    isn=1
    909     if (dzsnSV(ikl,isn)>0.and.ro__SV(ikl,isn)>0) then
     909    if (dzsnSV(ikl,isn)>0.and.ro__SV(ikl,isn)>0) THEN
    910910    dzsnSV(ikl,isn) = dzsnSV(ikl,isn) +0.9999*(smb_old-smb_new) &
    911911          / ro__SV(ikl,isn)
     
    923923
    924924
    925 end subroutine sisvat_gsn
     925END SUBROUTINE sisvat_gsn
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_qsn.f90

    r5113 r5116  
    6161  use VARxSV
    6262  use VARySV
    63   use surface_data, only: is_ok_slush,opt_runoff_ac
     63  use surface_data, ONLY: is_ok_slush,opt_runoff_ac
    6464
    6565
     
    8686  ! +  ==================
    8787
    88   integer :: ikl   ,isn                    !
    89   integer :: nh                            ! Non erodible Snow: up.lay.Index
    90   integer :: LayrOK                        ! 1 (0)  if In(Above) Snow Pack
    91   integer :: k_face                        ! 1 (0)  if Crystal(no) faceted
    92   integer :: LastOK                        ! 1 ==>  1! Snow Layer
    93   integer :: NOLayr                        ! 1     Layer  Update
    94   integer :: noSnow(knonv)                 ! Nb of Layers Updater
    95   integer :: kSlush                        ! Slush Switch
    96   real :: dTSnow                        ! Temperature                  [C]
    97   real :: EExdum(knonv)                 ! Energy in Excess when no Snow
    98   real :: OKmelt                        ! 1 (0)  if        (no) Melting
    99   real :: EnMelt                        ! Energy in excess, for Melting
    100   real :: SnHLat                        ! Energy consumed   in  Melting
    101   real :: AdEnrg,B_Enrg                 ! Additional Energy from  Vapor
    102   real :: dzVap0,dzVap1                 ! Vaporized Thickness          [m]
    103   real :: dzMelt(knonv)                 ! Melted    Thickness          [m]
    104   real :: rosDry                        ! Snow volumic Mass if no Water in
    105   real :: PorVol                        ! Pore volume
    106   real :: PClose                        ! Pore Hole Close OFF Switch
    107   real :: SGDiam                        !      Snow Grain Diameter
    108   real :: SGDmax                        ! Max. Snow Grain Diameter
    109   real :: rWater                        ! Retained Water           [kg/m2]
    110   real :: drrNEW                        ! New available Water      [kg/m2]
    111   real :: rdzNEW                        ! Snow          Mass       [kg/m2]
    112   real :: rdzsno                        ! Snow          Mass       [kg/m2]
    113   real :: EnFrez                        ! Energy Release    in  Freezing
    114   real :: WaFrez                        ! Water  consumed   in  Melting
    115   real :: RapdOK                        ! 1. ==> Snow melts rapidly
    116   real :: ThinOK                        ! 1. ==> Snow Layer is thin
    117   real :: dzepsi                        ! Minim. Snow Layer Thickness (!)
    118   real :: dz_Min                        ! Minim. Snow Layer Thickness
    119   real :: z_Melt                        ! Last (thin) Layer Melting
    120   real :: rusnew                        ! Surficial Water Thickness   [mm]
    121   real :: zWater                        ! Max Slush Water Thickness   [mm]
    122   real :: zSlush                        !     Slush Water Thickness   [mm]
    123   real :: ro_new                        ! New Snow/ice  Density    [kg/m3]
    124   real :: zc,zt                         ! Non erod.Snow Thickness[mm w.e.]
    125   real :: rusnSV0(knonv)
    126   real :: Tsave
     88  INTEGER :: ikl   ,isn                    !
     89  INTEGER :: nh                            ! Non erodible Snow: up.lay.Index
     90  INTEGER :: LayrOK                        ! 1 (0)  if In(Above) Snow Pack
     91  INTEGER :: k_face                        ! 1 (0)  if Crystal(no) faceted
     92  INTEGER :: LastOK                        ! 1 ==>  1! Snow Layer
     93  INTEGER :: NOLayr                        ! 1     Layer  Update
     94  INTEGER :: noSnow(knonv)                 ! Nb of Layers Updater
     95  INTEGER :: kSlush                        ! Slush Switch
     96  REAL :: dTSnow                        ! Temperature                  [C]
     97  REAL :: EExdum(knonv)                 ! Energy in Excess when no Snow
     98  REAL :: OKmelt                        ! 1 (0)  if        (no) Melting
     99  REAL :: EnMelt                        ! Energy in excess, for Melting
     100  REAL :: SnHLat                        ! Energy consumed   in  Melting
     101  REAL :: AdEnrg,B_Enrg                 ! Additional Energy from  Vapor
     102  REAL :: dzVap0,dzVap1                 ! Vaporized Thickness          [m]
     103  REAL :: dzMelt(knonv)                 ! Melted    Thickness          [m]
     104  REAL :: rosDry                        ! Snow volumic Mass if no Water in
     105  REAL :: PorVol                        ! Pore volume
     106  REAL :: PClose                        ! Pore Hole Close OFF Switch
     107  REAL :: SGDiam                        !      Snow Grain Diameter
     108  REAL :: SGDmax                        ! Max. Snow Grain Diameter
     109  REAL :: rWater                        ! Retained Water           [kg/m2]
     110  REAL :: drrNEW                        ! New available Water      [kg/m2]
     111  REAL :: rdzNEW                        ! Snow          Mass       [kg/m2]
     112  REAL :: rdzsno                        ! Snow          Mass       [kg/m2]
     113  REAL :: EnFrez                        ! Energy Release    in  Freezing
     114  REAL :: WaFrez                        ! Water  consumed   in  Melting
     115  REAL :: RapdOK                        ! 1. ==> Snow melts rapidly
     116  REAL :: ThinOK                        ! 1. ==> Snow Layer is thin
     117  REAL :: dzepsi                        ! Minim. Snow Layer Thickness (!)
     118  REAL :: dz_Min                        ! Minim. Snow Layer Thickness
     119  REAL :: z_Melt                        ! Last (thin) Layer Melting
     120  REAL :: rusnew                        ! Surficial Water Thickness   [mm]
     121  REAL :: zWater                        ! Max Slush Water Thickness   [mm]
     122  REAL :: zSlush                        !     Slush Water Thickness   [mm]
     123  REAL :: ro_new                        ! New Snow/ice  Density    [kg/m3]
     124  REAL :: zc,zt                         ! Non erod.Snow Thickness[mm w.e.]
     125  REAL :: rusnSV0(knonv)
     126  REAL :: Tsave
    127127
    128128  ! +--OUTPUT of SISVAT Trace Statistics (see assignation in PHY_SISVAT)
    129129  ! +  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    130   integer :: isnnew,isinew,isnUpD,isnitr
     130  INTEGER :: isnnew,isinew,isnUpD,isnitr
    131131
    132132  ! OUTPUT in SISVAT at specified i,j,k,n (see assignation in PHY_SISVAT)
     
    358358
    359359  !XF
    360       if(ro__SV(ikl,isn) >= roCdSV.and.ro__SV(ikl,1)<900) &
     360      IF(ro__SV(ikl,isn) >= roCdSV.and.ro__SV(ikl,1)<900) &
    361361            PClose = min(0.50,PClose * &
    362362            (1.-(ro_ice-ro__SV(ikl,isn))/(ro_ice-roCdSV)))
     
    364364      PClose = max(0.,min(1.,PClose))
    365365
    366       if(isn==1) then
     366      IF(isn==1) THEN
    367367           PClose = 1
    368368       ispiSV(ikl)= max(ispiSV(ikl),1)
    369369      endif
    370370
    371       if(drr_SV(ikl)    >0  .and.TsisSV(ikl,isn)>273.14) then
     371      IF(drr_SV(ikl)    >0  .and.TsisSV(ikl,isn)>273.14) THEN
    372372       if((ro__SV(ikl,isn)>900.and.ro__SV(ikl,isn)<920).or. &
    373              ro__SV(ikl,isn)>950) then
     373             ro__SV(ikl,isn)>950) THEN
    374374         dzsnSV(ikl,isn) = dzsnSV(ikl,isn)*ro__SV(ikl,isn)/ro_ice
    375375         ro__SV(ikl,isn) = ro_ice
     
    384384  !    .      TsisSV(ikl,isn)  >273.14 .and.
    385385  !    .      TsisSV(ikl,isn+1)<273.15 .and.
    386   !    .      drr_SV(ikl)      >0)     then
     386  !    .      drr_SV(ikl)      >0)     THEN
    387387      !  TsisSV(ikl,isn)=273.14
    388388      !  PClose = 1
     
    492492      rusnew      = rusnSV(ikl) * SWf_SV(ikl)
    493493
    494       if(isnoSV(ikl)<=1 .OR. opt_runoff_ac) rusnew = 0.
    495       !if(ivgtSV(ikl)>=1) rusnew = 0.
     494      IF(isnoSV(ikl)<=1 .OR. opt_runoff_ac) rusnew = 0.
     495      !IF(ivgtSV(ikl)>=1) rusnew = 0.
    496496
    497497  ! #EU                        rusnew = 0.
     
    525525     ENDDO
    526526
    527      if(zt<0.005+(TaT_SV(ikl)-TfSnow)/1000..and. &
     527     IF(zt<0.005+(TaT_SV(ikl)-TfSnow)/1000..and. &
    528528           isnoSV(ikl)             >0         .and. &
    529529           TaT_SV(ikl)             >=TfSnow   .and. &
    530            istoSV(ikl,isnoSV(ikl)) >1       ) then
     530           istoSV(ikl,isnoSV(ikl)) >1       ) THEN
    531531      DO isn=1,isnoSV(ikl)
    532532       drr_SV(ikl)    = drr_SV(ikl) &
     
    562562            +zSlush                           ) & !
    563563            / max(dzsnSV(ikl,isn) , epsi           ) !
    564       if(ro_new<ro_Ice+20) then ! MAX 940kg/m3         !
     564      IF(ro_new<ro_Ice+20) then ! MAX 940kg/m3         !
    565565       rusnSV(ikl)  = rusnSV(ikl)          - zSlush    ! [mm] OR [kg/m2]
    566566       RuofSV(ikl,4)= max(0.,RuofSV(ikl,4) - zSlush/dt__SV)
     
    715715
    716716
    717 end subroutine sisvat_qsn
     717END SUBROUTINE sisvat_qsn
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_qso.f90

    r5105 r5116  
    109109  ! +  ==================
    110110
    111   integer :: isl   ,jsl   ,ist   ,ikl      !
    112   integer :: ikm   ,ikp   ,ik0   ,ik1      !
    113   integer :: ist__s,ist__w                 ! Soil/Water Body Identifier
     111  INTEGER :: isl   ,jsl   ,ist   ,ikl      !
     112  INTEGER :: ikm   ,ikp   ,ik0   ,ik1      !
     113  INTEGER :: ist__s,ist__w                 ! Soil/Water Body Identifier
    114114  ! #BP real      z0soil                        ! Soil Surface Bumps Height  [m]
    115115  ! #BP real      z_Bump                        !(Partly)Bumpy Layers Height [m]
     
    118118
    119119  ! #BP real      etBump(knonv)                 ! Bumps Layer Averaged Humidity
    120   real :: etaMid                        ! Layer Interface's Humidity
    121   real :: Dhydif                        ! Hydraulic Diffusivity   [m2/s]
    122   real :: eta__f                        ! Water Front Soil Water Content
    123   real :: Khyd_f                        ! Water Front Hydraulic Conduct.
    124   real :: Khydav                        ! Hydraulic Conductivity   [m/s]
    125   real :: WgFlow                        ! Water gravitat. Flux [kg/m2/s]
    126   real :: Wg_MAX                        ! Water MAX.grav. Flux [kg/m2/s]
    127   real :: SatRat                        ! Saturation      Flux [kg/m2/s]
    128   real :: WExces                        ! Saturat. Excess Flux [kg/m2/s]
    129   real :: SoRnOF(knonv)                 ! Soil     Run    OFF
    130   real :: Dhydtz(knonv,-nsol:0)         ! Dhydif * dt / dz           [m]
    131   real :: Elem_A,Elem_B,Elem_C          !   Diagonal Coefficients
    132   real :: Diag_A(knonv,-nsol:0)         ! A Diagonal
    133   real :: Diag_B(knonv,-nsol:0)         ! B Diagonal
    134   real :: Diag_C(knonv,-nsol:0)         ! C Diagonal
    135   real :: Term_D(knonv,-nsol:0)         !   Independant Term
    136   real :: Aux__P(knonv,-nsol:0)         ! P Auxiliary Variable
    137   real :: Aux__Q(knonv,-nsol:0)         ! Q Auxiliary Variable
    138   real :: etaaux(knonv,-nsol:-nsol+1)   ! Soil Water Content     [m3/m3]
    139   real :: FreeDr                        ! Free Drainage Fraction (actual)
    140   real :: FreeD0                        ! Free Drainage Fraction (1=Full)
    141   real :: aKdtSV3( 0:nsot, 0:nkhy)      ! Khyd=a*eta+b: a * dt
    142   real :: bKdtSV3( 0:nsot, 0:nkhy)      ! Khyd=a*eta+b: b * dt
     120  REAL :: etaMid                        ! Layer Interface's Humidity
     121  REAL :: Dhydif                        ! Hydraulic Diffusivity   [m2/s]
     122  REAL :: eta__f                        ! Water Front Soil Water Content
     123  REAL :: Khyd_f                        ! Water Front Hydraulic Conduct.
     124  REAL :: Khydav                        ! Hydraulic Conductivity   [m/s]
     125  REAL :: WgFlow                        ! Water gravitat. Flux [kg/m2/s]
     126  REAL :: Wg_MAX                        ! Water MAX.grav. Flux [kg/m2/s]
     127  REAL :: SatRat                        ! Saturation      Flux [kg/m2/s]
     128  REAL :: WExces                        ! Saturat. Excess Flux [kg/m2/s]
     129  REAL :: SoRnOF(knonv)                 ! Soil     Run    OFF
     130  REAL :: Dhydtz(knonv,-nsol:0)         ! Dhydif * dt / dz           [m]
     131  REAL :: Elem_A,Elem_B,Elem_C          !   Diagonal Coefficients
     132  REAL :: Diag_A(knonv,-nsol:0)         ! A Diagonal
     133  REAL :: Diag_B(knonv,-nsol:0)         ! B Diagonal
     134  REAL :: Diag_C(knonv,-nsol:0)         ! C Diagonal
     135  REAL :: Term_D(knonv,-nsol:0)         !   Independant Term
     136  REAL :: Aux__P(knonv,-nsol:0)         ! P Auxiliary Variable
     137  REAL :: Aux__Q(knonv,-nsol:0)         ! Q Auxiliary Variable
     138  REAL :: etaaux(knonv,-nsol:-nsol+1)   ! Soil Water Content     [m3/m3]
     139  REAL :: FreeDr                        ! Free Drainage Fraction (actual)
     140  REAL :: FreeD0                        ! Free Drainage Fraction (1=Full)
     141  REAL :: aKdtSV3( 0:nsot, 0:nkhy)      ! Khyd=a*eta+b: a * dt
     142  REAL :: bKdtSV3( 0:nsot, 0:nkhy)      ! Khyd=a*eta+b: b * dt
    143143
    144144  ! Water (Mass) Budget
     
    377377      ikp      = nkhy *  eta_SV(ikl,isl+1) / etadSV(ist)
    378378
    379       if(ikm<0.or.ik0<0.or.ikp<0)then
     379      IF(ikm<0.or.ik0<0.or.ikp<0)THEN
    380380       print *,"CRASH1 in sisvat_qso.f on pixel (i,j,n)", &
    381381             ii__SV(ikl),jj__SV(ikl),nn__SV(ikl)
     
    423423      ikp      = nkhy *  eta_SV(ikl,isl+1) / etadSV(ist)
    424424
    425       if(ik0<0.or.ikp<0)then
     425      IF(ik0<0.or.ikp<0)THEN
    426426       print *,"CRASH2 in sisvat_qso.f on pixel (i,j,n)", &
    427427             ii__SV(ikl),jj__SV(ikl),nn__SV(ikl)
     
    550550  ! +--IO, for Verification
    551551  ! +  ~~~~~~~~~~~~~~~~~~~~
    552   ! #WR     write(6,6010)
     552  ! #WR     WRITE(6,6010)
    553553  DO   isl= 0,-nsol,-1
    554554    DO ikl= 1,knonv
     
    557557      Khydsv(ikl,isl)   =(aKdtSV3(ist,ikp)  *eta_SV(ikl,isl) &
    558558            +bKdtSV3(ist,ikp)) *2.0/dt__SV
    559   ! #WR     write(6,6011) ikl,isl,eta_SV(ikl,isl)*1.e3,
     559  ! #WR     WRITE(6,6011) ikl,isl,eta_SV(ikl,isl)*1.e3,
    560560  ! #WR.                  ikp,    aKdtSV3(ist,ikp),bKdtSV3(ist,ikp),
    561561  ! #WR.                          Khydsv(ikl,isl)
     
    706706
    707707
    708 end subroutine sisvat_qso
     708END SUBROUTINE sisvat_qso
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_sno_albedo.f90

    r5113 r5116  
    6767  use VARySV
    6868  use VARtSV
    69   USE surface_data, only: iflag_albcalc,correc_alb
     69  USE surface_data, ONLY: iflag_albcalc,correc_alb
    7070
    7171  IMPLICIT NONE
     
    7373
    7474  ! + -- INPUT
    75   integer :: jjtime
     75  INTEGER :: jjtime
    7676
    7777  ! +--Internal Variables
    7878  ! +  ==================
    7979
    80   real :: coalb1(knonv)                      ! weighted Coalbedo, Vis.
    81   real :: coalb2(knonv)                      ! weighted Coalbedo, nIR 1
    82   real :: coalb3(knonv)                      ! weighted Coalbedo, nIR 2
    83   real :: coalbm                             ! weighted Coalbedo, mean
    84   real :: sExt_1(knonv)                      ! Extinction Coeff., Vis.
    85   real :: sExt_2(knonv)                      ! Extinction Coeff., nIR 1
    86   real :: sExt_3(knonv)                      ! Extinction Coeff., nIR 2
    87   real :: SnOpSV(knonv,      nsno)           ! Snow Grain optical Size
     80  REAL :: coalb1(knonv)                      ! weighted Coalbedo, Vis.
     81  REAL :: coalb2(knonv)                      ! weighted Coalbedo, nIR 1
     82  REAL :: coalb3(knonv)                      ! weighted Coalbedo, nIR 2
     83  REAL :: coalbm                             ! weighted Coalbedo, mean
     84  REAL :: sExt_1(knonv)                      ! Extinction Coeff., Vis.
     85  REAL :: sExt_2(knonv)                      ! Extinction Coeff., nIR 1
     86  REAL :: sExt_3(knonv)                      ! Extinction Coeff., nIR 2
     87  REAL :: SnOpSV(knonv,      nsno)           ! Snow Grain optical Size
    8888  ! #AG real      agesno
    8989
    90   integer :: isn   ,ikl   ,isn1, i
    91   real :: sbeta1,sbeta2,sbeta3,sbeta4,sbeta5
    92   real :: AgeMax,AlbMin,HSnoSV,HIceSV,doptmx,SignG1,Sph_OK
    93   real :: dalbed,dalbeS,dalbeW
    94   real :: bsegal,czemax,csegal,csza
    95   real :: RoFrez,DiffRo,SignRo,SnowOK,OpSqrt
    96   real :: albSn1,albIc1,a_SnI1,a_SII1
    97   real :: albSn2,albIc2,a_SnI2,a_SII2
    98   real :: albSn3,albIc3,a_SnI3,a_SII3
    99   real :: albSno,albIce,albSnI,albSII,albWIc,albmax
    100   real :: doptic,Snow_H,SIce_H,SnownH,SIcenH
    101   real :: exarg1,exarg2,exarg3,sign_0,sExt_0
    102   real :: albedo_old,albCor
    103   real :: ro_ave,dz_ave,minalb
    104   real :: l1min,l1max,l2min,l2max,l3min,l3max
    105   real :: l6min(6), l6max(6), albSn6(6), a_SII6(6)
    106   real :: lmintmp,lmaxtmp,albtmp
     90  INTEGER :: isn   ,ikl   ,isn1, i
     91  REAL :: sbeta1,sbeta2,sbeta3,sbeta4,sbeta5
     92  REAL :: AgeMax,AlbMin,HSnoSV,HIceSV,doptmx,SignG1,Sph_OK
     93  REAL :: dalbed,dalbeS,dalbeW
     94  REAL :: bsegal,czemax,csegal,csza
     95  REAL :: RoFrez,DiffRo,SignRo,SnowOK,OpSqrt
     96  REAL :: albSn1,albIc1,a_SnI1,a_SII1
     97  REAL :: albSn2,albIc2,a_SnI2,a_SII2
     98  REAL :: albSn3,albIc3,a_SnI3,a_SII3
     99  REAL :: albSno,albIce,albSnI,albSII,albWIc,albmax
     100  REAL :: doptic,Snow_H,SIce_H,SnownH,SIcenH
     101  REAL :: exarg1,exarg2,exarg3,sign_0,sExt_0
     102  REAL :: albedo_old,albCor
     103  REAL :: ro_ave,dz_ave,minalb
     104  REAL :: l1min,l1max,l2min,l2max,l3min,l3max
     105  REAL :: l6min(6), l6max(6), albSn6(6), a_SII6(6)
     106  REAL :: lmintmp,lmaxtmp,albtmp
    107107
    108108  ! +--Local   DATA
     
    464464    ! prescription for each time step with NEMO values
    465465
    466   ! #AO      if (LSmask(ikl) .eq. 0 .and. coupling_ao .eq. .TRUE.) then
    467   ! #AO       if (AOmask(ikl) .eq. 0) then
     466  ! #AO      if (LSmask(ikl) .eq. 0 .and. coupling_ao .eq. .TRUE.) THEN
     467  ! #AO       if (AOmask(ikl) .eq. 0) THEN
    468468  ! #AO       albisv(ikl) =  (1.-AOmask(ikl))* albAOsisv(ikl)
    469469  ! #AO.                    +(AOmask(ikl)*albisv(ikl))
     
    569569
    570570
    571 end subroutine snoptp
     571END SUBROUTINE snoptp
    572572
    573573
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_ts2.f90

    r5113 r5116  
    9595  ! +  ==================
    9696
    97   integer :: ig, jk, isl
    98   real :: mu
    99   real :: Tsrf(klonv)               ! surface temperature as extrapolated from soil
    100   real :: mug(klonv)                 !hj coef top layers
    101   real :: ztherm_i(klonv), zdz2(klonv, -nsol:nsno), z1s
    102   real :: pfluxgrd(klonv), pcapcal(klonv), cal(klonv)
    103   real :: beta(klonv), dif_grnd(klonv)
    104   real :: C_coef(klonv, -nsol:nsno), D_coef(klonv, -nsol:nsno)
     97  INTEGER :: ig, jk, isl
     98  REAL :: mu
     99  REAL :: Tsrf(klonv)               ! surface temperature as extrapolated from soil
     100  REAL :: mug(klonv)                 !hj coef top layers
     101  REAL :: ztherm_i(klonv), zdz2(klonv, -nsol:nsno), z1s
     102  REAL :: pfluxgrd(klonv), pcapcal(klonv), cal(klonv)
     103  REAL :: beta(klonv), dif_grnd(klonv)
     104  REAL :: C_coef(klonv, -nsol:nsno), D_coef(klonv, -nsol:nsno)
    105105
    106106  REAL, DIMENSION(klonv) :: zx_mh, zx_nh, zx_oh
     
    123123
    124124
    125   ! write(*,*)'T check'
     125  ! WRITE(*,*)'T check'
    126126
    127127  ! DO  ig = 1,knonv
     
    196196  ! IF (knonv>0) THEN
    197197  !  DO ig=1,8
    198   !    write(*,*)ig,'sisvat: Tsis ',TsisSV(ig,isnoSV(ig))
    199   !    write(*,*)'max-1            ',TsisSV(ig,isnoSV(ig)-1)
    200   !    write(*,*)'max-2            ',TsisSV(ig,isnoSV(ig)-2)
    201   !    write(*,*)'0                ',TsisSV(ig,0)
    202   !!        write(*,*)min(max(isnoSV(ig),0),1),max(1-isnoSV(ig),0)
     198  !    WRITE(*,*)ig,'sisvat: Tsis ',TsisSV(ig,isnoSV(ig))
     199  !    WRITE(*,*)'max-1            ',TsisSV(ig,isnoSV(ig)-1)
     200  !    WRITE(*,*)'max-2            ',TsisSV(ig,isnoSV(ig)-2)
     201  !    WRITE(*,*)'0                ',TsisSV(ig,0)
     202  !!        WRITE(*,*)min(max(isnoSV(ig),0),1),max(1-isnoSV(ig),0)
    203203  !  ENDDO
    204204  ! END IF
     
    216216
    217217    IF (mug(ig)  <= 0.05) THEN
    218       write(*, *)'Attention mu low', mug(ig)
     218      WRITE(*, *)'Attention mu low', mug(ig)
    219219    ENDIF
    220220    IF (mug(ig)  >= 0.98) THEN
    221       write(*, *)'Attention mu high', mug(ig)
     221      WRITE(*, *)'Attention mu high', mug(ig)
    222222    ENDIF
    223223
     
    243243    ENDDO
    244244  ENDDO
    245   ! write(*,*)ig,'Tsis',TsisSV(ig,0)
     245  ! WRITE(*,*)ig,'Tsis',TsisSV(ig,0)
    246246
    247247  ! IF (indice == is_sic) THEN
     
    329329  DO ig = 1, knonv
    330330    IF (ps__SV(ig)<1.) THEN
    331       ! write(*,*)'ig',ig,'ps',ps__SV(ig)
     331      ! WRITE(*,*)'ig',ig,'ps',ps__SV(ig)
    332332      ps__SV(ig) = max(ps__SV(ig), 1.e-8)
    333333    ENDIF
    334334    IF (p1l_SV(ig)<1.) THEN
    335       ! write(*,*)'ig',ig,'p1l',p1l_SV(ig)
     335      ! WRITE(*,*)'ig',ig,'p1l',p1l_SV(ig)
    336336      p1l_SV(ig) = max(p1l_SV(ig), 1.e-8)
    337337    ENDIF
    338338    IF (TaT_SV(ig)<180.) THEN
    339       ! write(*,*)'ig',ig,'TaT',TaT_SV(ig)
     339      ! WRITE(*,*)'ig',ig,'TaT',TaT_SV(ig)
    340340      TaT_SV(ig) = max(TaT_SV(ig), 180.)
    341341    ENDIF
    342342    IF (QaT_SV(ig)<1.e-8) THEN
    343       ! write(*,*)'ig',ig,'QaT',QaT_SV(ig)
     343      ! WRITE(*,*)'ig',ig,'QaT',QaT_SV(ig)
    344344      QaT_SV(ig) = max(QaT_SV(ig), 1.e-8)
    345345    ENDIF
    346346    IF (Tsf_SV(ig)<100.) THEN
    347       ! write(*,*)'ig',ig,'Tsf',Tsf_SV(ig)
     347      ! WRITE(*,*)'ig',ig,'Tsf',Tsf_SV(ig)
    348348      Tsf_SV(ig) = max(Tsf_SV(ig), 180.)
    349349    ENDIF
    350350    IF (Tsf_SV(ig)>500.) THEN
    351       ! write(*,*)'ig',ig,'Tsf',Tsf_SV(ig)
     351      ! WRITE(*,*)'ig',ig,'Tsf',Tsf_SV(ig)
    352352      Tsf_SV(ig) = min(Tsf_SV(ig), 400.)
    353353    ENDIF
    354354    ! IF (Tsrf(ig).LT.1.) THEN
    355     !!          write(*,*)'ig',ig,'Tsrf',Tsrf(ig)
     355    !!          WRITE(*,*)'ig',ig,'Tsrf',Tsrf(ig)
    356356    !   Tsrf(ig)=max(Tsrf(ig),TaT_SV(ig)-20.)
    357357    ! ENDIF
    358358    IF (cdH_SV(ig)<1.e-10) THEN
    359       ! IF (ig.le.3)   write(*,*)'ig',ig,'cdH',cdH_SV(ig)
     359      ! IF (ig.le.3)   WRITE(*,*)'ig',ig,'cdH',cdH_SV(ig)
    360360      cdH_SV(ig) = .5
    361361    ENDIF
     
    370370      zx_qs = r2es * FOEEW(Tsf_SV(ig), zdelta) / ps__SV(ig)
    371371      zx_qs = MIN(0.5, zx_qs)
    372       !write(*,*)'zcor',retv*zx_qs
     372      !WRITE(*,*)'zcor',retv*zx_qs
    373373      zcor = 1. / (1. - retv * zx_qs)
    374374      zx_qs = zx_qs * zcor
     
    470470  ENDDO
    471471
    472 end subroutine sisvat_ts2
     472END SUBROUTINE sisvat_ts2
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_tso.f90

    r5113 r5116  
    9494  ! +  ==================
    9595
    96   integer :: ikl   ,isl   ,jsl   ,ist      !
    97   integer :: ist__s,ist__w                 ! Soil/Water  Body Identifier
    98   integer :: islsgn                        ! Soil/Snow Surfac.Identifier
    99   real :: eps__3                        ! Arbitrary    Low Number
    100   real :: etaMid,psiMid                 ! Layer Interface's Humidity
    101   real :: mu_eta                        !     Soil thermal Conductivity
    102   real :: mu_exp                        ! arg Soil thermal Conductivity
    103   real :: mu_min                        ! Min Soil thermal Conductivity
    104   real :: mu_max                        ! Max Soil thermal Conductivity
    105   real :: mu_sno(knonv),mu_aux          !     Snow thermal Conductivity
    106   real :: mu__dz(knonv,-nsol:nsno+1)    ! mu_(eta,sno)   / dz
    107   real :: dtC_sv(knonv,-nsol:nsno)      ! dt      / C
    108   real :: IRs__D(knonv)                 ! UpwardIR Previous Iter.Contr.
    109   real :: dIRsdT(knonv)                 ! UpwardIR           T Derivat.
    110   real :: f_HSHL(knonv)                 ! Factor common to HS and HL
    111   real :: dRidTs(knonv)                 ! d(Rib)/d(Ts)
    112   real :: HS___D(knonv)                 ! Sensible Heat Flux Atm.Contr.
    113   real :: f___HL(knonv)                 !
    114   real :: HL___D(knonv)                 ! Latent   Heat Flux Atm.Contr.
     96  INTEGER :: ikl   ,isl   ,jsl   ,ist      !
     97  INTEGER :: ist__s,ist__w                 ! Soil/Water  Body Identifier
     98  INTEGER :: islsgn                        ! Soil/Snow Surfac.Identifier
     99  REAL :: eps__3                        ! Arbitrary    Low Number
     100  REAL :: etaMid,psiMid                 ! Layer Interface's Humidity
     101  REAL :: mu_eta                        !     Soil thermal Conductivity
     102  REAL :: mu_exp                        ! arg Soil thermal Conductivity
     103  REAL :: mu_min                        ! Min Soil thermal Conductivity
     104  REAL :: mu_max                        ! Max Soil thermal Conductivity
     105  REAL :: mu_sno(knonv),mu_aux          !     Snow thermal Conductivity
     106  REAL :: mu__dz(knonv,-nsol:nsno+1)    ! mu_(eta,sno)   / dz
     107  REAL :: dtC_sv(knonv,-nsol:nsno)      ! dt      / C
     108  REAL :: IRs__D(knonv)                 ! UpwardIR Previous Iter.Contr.
     109  REAL :: dIRsdT(knonv)                 ! UpwardIR           T Derivat.
     110  REAL :: f_HSHL(knonv)                 ! Factor common to HS and HL
     111  REAL :: dRidTs(knonv)                 ! d(Rib)/d(Ts)
     112  REAL :: HS___D(knonv)                 ! Sensible Heat Flux Atm.Contr.
     113  REAL :: f___HL(knonv)                 !
     114  REAL :: HL___D(knonv)                 ! Latent   Heat Flux Atm.Contr.
    115115  REAL :: TSurf0(knonv),dTSurf          ! Previous Surface Temperature
    116   real :: qsatsg(knonv) !,den_qs,arg_qs ! Soil   Saturat. Spec. Humidity
    117   real :: dqs_dT(knonv)                 ! d(qsatsg)/dTv
    118   real :: Psi(   knonv)                 ! 1st Soil Layer Water Potential
    119   real :: RHuSol(knonv)                 ! Soil Surface Relative Humidity
    120   real :: etaSol                        ! Soil Surface          Humidity
    121   real :: d__eta                        ! Soil Surface Humidity Increm.
    122   real :: Elem_A,Elem_C                 !   Diagonal Coefficients
    123   real :: Diag_A(knonv,-nsol:nsno)      ! A Diagonal
    124   real :: Diag_B(knonv,-nsol:nsno)      ! B Diagonal
    125   real :: Diag_C(knonv,-nsol:nsno)      ! C Diagonal
    126   real :: Term_D(knonv,-nsol:nsno)      !   Independant Term
    127   real :: Aux__P(knonv,-nsol:nsno)      ! P Auxiliary Variable
    128   real :: Aux__Q(knonv,-nsol:nsno)      ! Q Auxiliary Variable
    129   real :: Ts_Min,Ts_Max                 ! Temperature Limits
     116  REAL :: qsatsg(knonv) !,den_qs,arg_qs ! Soil   Saturat. Spec. Humidity
     117  REAL :: dqs_dT(knonv)                 ! d(qsatsg)/dTv
     118  REAL :: Psi(   knonv)                 ! 1st Soil Layer Water Potential
     119  REAL :: RHuSol(knonv)                 ! Soil Surface Relative Humidity
     120  REAL :: etaSol                        ! Soil Surface          Humidity
     121  REAL :: d__eta                        ! Soil Surface Humidity Increm.
     122  REAL :: Elem_A,Elem_C                 !   Diagonal Coefficients
     123  REAL :: Diag_A(knonv,-nsol:nsno)      ! A Diagonal
     124  REAL :: Diag_B(knonv,-nsol:nsno)      ! B Diagonal
     125  REAL :: Diag_C(knonv,-nsol:nsno)      ! C Diagonal
     126  REAL :: Term_D(knonv,-nsol:nsno)      !   Independant Term
     127  REAL :: Aux__P(knonv,-nsol:nsno)      ! P Auxiliary Variable
     128  REAL :: Aux__Q(knonv,-nsol:nsno)      ! Q Auxiliary Variable
     129  REAL :: Ts_Min,Ts_Max                 ! Temperature Limits
    130130  ! #e1 real      Exist0                        ! Existing Layer Switch
    131   real :: psat_wat, psat_ice, sp        ! computation of qsat
    132 
    133   integer :: nt_srf,it_srf,itEuBk          ! HL: Surface Scheme
     131  REAL :: psat_wat, psat_ice, sp        ! computation of qsat
     132
     133  INTEGER :: nt_srf,it_srf,itEuBk          ! HL: Surface Scheme
    134134  parameter(nt_srf=10)                     ! 10 before
    135   real :: agpsrf,xgpsrf,dt_srf,dt_ver   !
    136   real :: etaBAK(knonv)                 !
    137   real :: etaNEW(knonv)                 !
    138   real :: etEuBk(knonv)                 !
    139   real :: fac_dt(knonv),faceta(knonv)   !
    140   real :: PsiArg(knonv),SHuSol(knonv)   !
     135  REAL :: agpsrf,xgpsrf,dt_srf,dt_ver   !
     136  REAL :: etaBAK(knonv)                 !
     137  REAL :: etaNEW(knonv)                 !
     138  REAL :: etEuBk(knonv)                 !
     139  REAL :: fac_dt(knonv),faceta(knonv)   !
     140  REAL :: PsiArg(knonv),SHuSol(knonv)   !
    141141
    142142
     
    436436            * exp (6827.*(1.         /273.16-1./TsisSV(ikl,isl)))
    437437
    438       if(TsisSV(ikl,isl)<=273.16) then
     438      IF(TsisSV(ikl,isl)<=273.16) THEN
    439439        qsatsg(ikl) = 0.622 * psat_ice / (sp - 0.378 * psat_ice)
    440440      else
     
    466466        END DO
    467467
    468     if(ist__s==1) then ! to reduce computer time
     468    IF(ist__s==1) then ! to reduce computer time
    469469
    470470    DO it_srf=1,nt_srf                                     !
     
    615615      TsisSV(ikl,isl)   = Aux__Q(ikl,isl)  *TsisSV(ikl,isl+1) &
    616616            +TsisSV(ikl,isl)
    617       if(isl==0.and.isnoSV(ikl)==0) then
    618 
     617      IF(isl==0.and.isnoSV(ikl)==0) THEN
    619618       TsisSV(ikl,isl)  = min(TaT_SV(ikl)+30,TsisSV(ikl,isl))
    620619       TsisSV(ikl,isl)  = max(TaT_SV(ikl)-30,TsisSV(ikl,isl))
     
    673672
    674673
    675 end subroutine sisvat_tso
     674END SUBROUTINE sisvat_tso
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_weq.f90

    r5105 r5116  
    3030
    3131
    32   character(len=6) :: labWEq
    33   integer :: istart
     32  CHARACTER(LEN=6) :: labWEq
     33  INTEGER :: istart
    3434
    3535  logical :: logWEq
     
    4040  ! +  ================
    4141
    42   integer :: ikl   ,isn
    43   real :: SnoWEQ,IceWEQ
     42  INTEGER :: ikl   ,isn
     43  REAL :: SnoWEQ,IceWEQ
    4444
    4545
     
    8585
    8686  !!      IF (istart.eq.1)                                              THEN
    87   !!        write(45,45)dahost,i___SV(lwriSV(1)),j___SV(lwriSV(1)),
     87  !!        WRITE(45,45)dahost,i___SV(lwriSV(1)),j___SV(lwriSV(1)),
    8888  !!     .              n___SV(lwriSV(1))
    8989  !! 45     format(a18,10('-'),'Pt.',3i4,60('-'))
    9090  !!      END IF
    9191
    92   !!      write(45,450) labWEq,IceWEQ,iiceSV(ikl),SnoWEQ
     92  !!      WRITE(45,450) labWEq,IceWEQ,iiceSV(ikl),SnoWEQ
    9393  !!     .                    ,IceWEQ+SnoWEQ,isnoSV(ikl)
    9494  !!     .                                  ,drr_SV(ikl)*dt__SV
     
    102102
    103103
    104 end subroutine sisvat_weq
     104END SUBROUTINE sisvat_weq
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_zag.f90

    r5105 r5116  
    6363  ! +  -----
    6464
    65   integer :: isagrb(knonv)                 ! 2nd Layer History
    66   real :: dzagrb(knonv)                 ! 2nd Layer Thickness
    67   real :: T_agrb(knonv)                 ! 2nd Layer Temperature
    68   real :: roagrb(knonv)                 ! 2nd Layer Density
    69   real :: etagrb(knonv)                 ! 2nd Layer Water Content
    70   real :: G1agrb(knonv)                 ! 2nd Layer Dendricity/Spher.
    71   real :: G2agrb(knonv)                 ! 2nd Layer Sphericity/Size
    72   real :: agagrb(knonv)                 ! 2nd Layer Age
     65  INTEGER :: isagrb(knonv)                 ! 2nd Layer History
     66  REAL :: dzagrb(knonv)                 ! 2nd Layer Thickness
     67  REAL :: T_agrb(knonv)                 ! 2nd Layer Temperature
     68  REAL :: roagrb(knonv)                 ! 2nd Layer Density
     69  REAL :: etagrb(knonv)                 ! 2nd Layer Water Content
     70  REAL :: G1agrb(knonv)                 ! 2nd Layer Dendricity/Spher.
     71  REAL :: G2agrb(knonv)                 ! 2nd Layer Sphericity/Size
     72  REAL :: agagrb(knonv)                 ! 2nd Layer Age
    7373
    7474
     
    7676  ! +  ------------
    7777
    78   integer :: isagra(knonv)                 ! 1st Layer History
    79   real :: WEagra(knonv)                 ! 1st Layer Height    [mm w.e.]
    80   real :: Agreg1(knonv)                 ! 1. ===>   Agregates
    81   real :: dzagra(knonv)                 ! 1st Layer Thickness
    82   real :: T_agra(knonv)                 ! 1st Layer Temperature
    83   real :: roagra(knonv)                 ! 1st Layer Density
    84   real :: etagra(knonv)                 ! 1st Layer Water Content
    85   real :: G1agra(knonv)                 ! 1st Layer Dendricity/Spher.
    86   real :: G2agra(knonv)                 ! 1st Layer Sphericity/Size
    87   real :: agagra(knonv)                 ! 1st Layer Age
     78  INTEGER :: isagra(knonv)                 ! 1st Layer History
     79  REAL :: WEagra(knonv)                 ! 1st Layer Height    [mm w.e.]
     80  REAL :: Agreg1(knonv)                 ! 1. ===>   Agregates
     81  REAL :: dzagra(knonv)                 ! 1st Layer Thickness
     82  REAL :: T_agra(knonv)                 ! 1st Layer Temperature
     83  REAL :: roagra(knonv)                 ! 1st Layer Density
     84  REAL :: etagra(knonv)                 ! 1st Layer Water Content
     85  REAL :: G1agra(knonv)                 ! 1st Layer Dendricity/Spher.
     86  REAL :: G2agra(knonv)                 ! 1st Layer Sphericity/Size
     87  REAL :: agagra(knonv)                 ! 1st Layer Age
    8888
    8989
     
    9191  ! +  ==================
    9292
    93   integer :: ikl
    94   integer :: nh                            ! Averaged    Snow History
    95   integer :: nh__OK                        ! 1=>Conserve Snow History
    96   real :: rh                            !
    97   real :: dz                            ! Thickness
    98   real :: dzro_1                        ! Thickness X Density, Lay.1
    99   real :: dzro_2                        ! Thickness X Density, Lay.2
    100   real :: dzro                          ! Thickness X Density, Aver.
    101   real :: ro                            ! Averaged    Density
    102   real :: wn                            ! Averaged    Water Content
    103   real :: tn                            ! Averaged    Temperature
    104   real :: ag                            ! Averaged    Snow Age
    105   real :: SameOK                        ! 1. => Same Type of Grains
    106   real :: G1same                        ! Averaged G1,  same Grains
    107   real :: G2same                        ! Averaged G2,  same Grains
    108   real :: typ__1                        ! 1. => Lay1 Type: Dendritic
    109   real :: zroNEW                        ! dz X ro, if fresh Snow
    110   real :: G1_NEW                        ! G1,      if fresh Snow
    111   real :: G2_NEW                        ! G2,      if fresh Snow
    112   real :: zroOLD                        ! dz X ro, if old   Snow
    113   real :: G1_OLD                        ! G1,      if old   Snow
    114   real :: G2_OLD                        ! G2,      if old   Snow
    115   real :: SizNEW                        ! Size,    if fresh Snow
    116   real :: SphNEW                        ! Spheric.,if fresh Snow
    117   real :: SizOLD                        ! Size,    if old   Snow
    118   real :: SphOLD                        ! Spheric.,if old   Snow
    119   real :: Siz_av                        ! Averaged    Grain Size
    120   real :: Sph_av                        ! Averaged    Grain Spher.
    121   real :: Den_av                        ! Averaged    Grain Dendr.
    122   real :: DendOK                        ! 1. => Average is  Dendr.
    123   real :: G1diff                        ! Averaged G1, diff. Grains
    124   real :: G2diff                        ! Averaged G2, diff. Grains
    125   real :: G1                            ! Averaged G1
    126   real :: G2                            ! Averaged G2
     93  INTEGER :: ikl
     94  INTEGER :: nh                            ! Averaged    Snow History
     95  INTEGER :: nh__OK                        ! 1=>Conserve Snow History
     96  REAL :: rh                            !
     97  REAL :: dz                            ! Thickness
     98  REAL :: dzro_1                        ! Thickness X Density, Lay.1
     99  REAL :: dzro_2                        ! Thickness X Density, Lay.2
     100  REAL :: dzro                          ! Thickness X Density, Aver.
     101  REAL :: ro                            ! Averaged    Density
     102  REAL :: wn                            ! Averaged    Water Content
     103  REAL :: tn                            ! Averaged    Temperature
     104  REAL :: ag                            ! Averaged    Snow Age
     105  REAL :: SameOK                        ! 1. => Same Type of Grains
     106  REAL :: G1same                        ! Averaged G1,  same Grains
     107  REAL :: G2same                        ! Averaged G2,  same Grains
     108  REAL :: typ__1                        ! 1. => Lay1 Type: Dendritic
     109  REAL :: zroNEW                        ! dz X ro, if fresh Snow
     110  REAL :: G1_NEW                        ! G1,      if fresh Snow
     111  REAL :: G2_NEW                        ! G2,      if fresh Snow
     112  REAL :: zroOLD                        ! dz X ro, if old   Snow
     113  REAL :: G1_OLD                        ! G1,      if old   Snow
     114  REAL :: G2_OLD                        ! G2,      if old   Snow
     115  REAL :: SizNEW                        ! Size,    if fresh Snow
     116  REAL :: SphNEW                        ! Spheric.,if fresh Snow
     117  REAL :: SizOLD                        ! Size,    if old   Snow
     118  REAL :: SphOLD                        ! Spheric.,if old   Snow
     119  REAL :: Siz_av                        ! Averaged    Grain Size
     120  REAL :: Sph_av                        ! Averaged    Grain Spher.
     121  REAL :: Den_av                        ! Averaged    Grain Dendr.
     122  REAL :: DendOK                        ! 1. => Average is  Dendr.
     123  REAL :: G1diff                        ! Averaged G1, diff. Grains
     124  REAL :: G2diff                        ! Averaged G2, diff. Grains
     125  REAL :: G1                            ! Averaged G1
     126  REAL :: G2                            ! Averaged G2
    127127
    128128
     
    236236
    237237
    238 end subroutine sisvat_zag
     238END SUBROUTINE sisvat_zag
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_zcr.f90

    r5105 r5116  
    4949  ! +  ==================
    5050  ! +
    51   integer :: ikl   ,isn   ,is0   ,is1
    52   integer :: isno_1                        ! Switch:  ! Snow Layer over Ice
    53   real :: Dtyp_0,Dtyp_1                 ! Snow Grains Difference Measure
    54   real :: DenSph                        ! 1. when contiguous spheric
     51  INTEGER :: ikl   ,isn   ,is0   ,is1
     52  INTEGER :: isno_1                        ! Switch:  ! Snow Layer over Ice
     53  REAL :: Dtyp_0,Dtyp_1                 ! Snow Grains Difference Measure
     54  REAL :: DenSph                        ! 1. when contiguous spheric
    5555  ! +                                           !     and dendritic  Grains
    56   real :: DendOK                        ! 1. when dendritic  Grains
    57   real :: dTypMx                        ! Grain Type Differ.
    58   real :: dTypSp                        ! Sphericity Weight
    59   real :: dTypRo                        ! Density    Weight
    60   real :: dTypDi                        ! Grain Diam.Weight
    61   real :: dTypHi                        ! History    Weight
     56  REAL :: DendOK                        ! 1. when dendritic  Grains
     57  REAL :: dTypMx                        ! Grain Type Differ.
     58  REAL :: dTypSp                        ! Sphericity Weight
     59  REAL :: dTypRo                        ! Density    Weight
     60  REAL :: dTypDi                        ! Grain Diam.Weight
     61  REAL :: dTypHi                        ! History    Weight
    6262
    6363
     
    173173  ! +
    174174
    175 end subroutine sisvat_zcr
     175END SUBROUTINE sisvat_zcr
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_zsn.f90

    r5113 r5116  
    5252  use VARxSV
    5353  use VARySV
    54   use surface_data, only: ok_zsn_ii
     54  use surface_data, ONLY: ok_zsn_ii
    5555
    5656  IMPLICIT NONE
     
    6060  ! +  ==================
    6161
    62   integer :: ikl   ,isn   ,i               !
    63 
    64 
    65 
    66 
    67 
    68 
    69   integer :: NLay_s(knonv)                 ! Split Snow Layer         Switch
    70   integer :: isagr1(knonv)                 ! 1st     Layer History
    71   integer :: isagr2(knonv)                 ! 2nd     Layer History
    72   integer :: LstLay                        ! 0 ====> isnoSV = 1
    73   integer :: isno_n                        ! Snow Normal.Profile
    74   integer :: iice_n                        ! Ice  Normal.Profile
    75   integer :: iiceOK                        ! Ice         Switch
    76   integer :: icemix                        ! 0 ====> Agregated Snow+Ice=Snow
     62  INTEGER :: ikl   ,isn   ,i               !
     63
     64
     65
     66
     67
     68
     69  INTEGER :: NLay_s(knonv)                 ! Split Snow Layer         Switch
     70  INTEGER :: isagr1(knonv)                 ! 1st     Layer History
     71  INTEGER :: isagr2(knonv)                 ! 2nd     Layer History
     72  INTEGER :: LstLay                        ! 0 ====> isnoSV = 1
     73  INTEGER :: isno_n                        ! Snow Normal.Profile
     74  INTEGER :: iice_n                        ! Ice  Normal.Profile
     75  INTEGER :: iiceOK                        ! Ice         Switch
     76  INTEGER :: icemix                        ! 0 ====> Agregated Snow+Ice=Snow
    7777  ! +                                           ! 1                          Ice
    78   integer :: isn1  (knonv)                 ! 1st layer to stagger
    79   real :: staggr                        !              stagger  Switch
    80 
    81   real :: WEagre(knonv)                 ! Snow Water Equivalent Thickness
    82   real :: dzthin(knonv)                 ! Thickness of the thinest layer
    83   real :: OKthin                        ! Swich ON  a  new thinest layer
    84   real :: dz_dif                        ! difference from ideal discret.
    85   real :: thickL                        ! Thick Layer          Indicator
    86   real :: OK_ICE                        ! Swich ON   uppermost Ice Layer
    87 
    88   real :: Agrege(knonv)                 ! 1. when Agregation constrained
    89   real :: dzepsi                        ! Min Single Snw Layer Thickness
    90   real :: dzxmin                        ! Min Acceptable Layer Thickness
    91   real :: dz_min                        ! Min            Layer Thickness
    92   real :: dz_max                        ! Max            Layer Thickness
    93   real :: dzagr1(knonv)                 ! 1st     Layer Thickness
    94   real :: dzagr2(knonv)                 ! 2nd     Layer Thickness
    95   real :: T_agr1(knonv)                 ! 1st     Layer Temperature
    96   real :: T_agr2(knonv)                 ! 2nd     Layer Temperature
    97   real :: roagr1(knonv)                 ! 1st     Layer Density
    98   real :: roagr2(knonv)                 ! 2nd     Layer Density
    99   real :: etagr1(knonv)                 ! 1st     Layer Water Content
    100   real :: etagr2(knonv)                 ! 2nd     Layer Water Content
    101   real :: G1agr1(knonv)                 ! 1st     Layer Dendricity/Spher.
    102   real :: G1agr2(knonv)                 ! 2nd     Layer Dendricity/Spher.
    103   real :: G2agr1(knonv)                 ! 1st     Layer Sphericity/Size
    104   real :: G2agr2(knonv)                 ! 2nd     Layer Sphericity/Size
    105   real :: agagr1(knonv)                 ! 1st     Layer Age
    106   real :: agagr2(knonv)                 ! 2nd     Layer Age
     78  INTEGER :: isn1  (knonv)                 ! 1st layer to stagger
     79  REAL :: staggr                        !              stagger  Switch
     80
     81  REAL :: WEagre(knonv)                 ! Snow Water Equivalent Thickness
     82  REAL :: dzthin(knonv)                 ! Thickness of the thinest layer
     83  REAL :: OKthin                        ! Swich ON  a  new thinest layer
     84  REAL :: dz_dif                        ! difference from ideal discret.
     85  REAL :: thickL                        ! Thick Layer          Indicator
     86  REAL :: OK_ICE                        ! Swich ON   uppermost Ice Layer
     87
     88  REAL :: Agrege(knonv)                 ! 1. when Agregation constrained
     89  REAL :: dzepsi                        ! Min Single Snw Layer Thickness
     90  REAL :: dzxmin                        ! Min Acceptable Layer Thickness
     91  REAL :: dz_min                        ! Min            Layer Thickness
     92  REAL :: dz_max                        ! Max            Layer Thickness
     93  REAL :: dzagr1(knonv)                 ! 1st     Layer Thickness
     94  REAL :: dzagr2(knonv)                 ! 2nd     Layer Thickness
     95  REAL :: T_agr1(knonv)                 ! 1st     Layer Temperature
     96  REAL :: T_agr2(knonv)                 ! 2nd     Layer Temperature
     97  REAL :: roagr1(knonv)                 ! 1st     Layer Density
     98  REAL :: roagr2(knonv)                 ! 2nd     Layer Density
     99  REAL :: etagr1(knonv)                 ! 1st     Layer Water Content
     100  REAL :: etagr2(knonv)                 ! 2nd     Layer Water Content
     101  REAL :: G1agr1(knonv)                 ! 1st     Layer Dendricity/Spher.
     102  REAL :: G1agr2(knonv)                 ! 2nd     Layer Dendricity/Spher.
     103  REAL :: G2agr1(knonv)                 ! 1st     Layer Sphericity/Size
     104  REAL :: G2agr2(knonv)                 ! 2nd     Layer Sphericity/Size
     105  REAL :: agagr1(knonv)                 ! 1st     Layer Age
     106  REAL :: agagr2(knonv)                 ! 2nd     Layer Age
    107107
    108108
     
    130130
    131131    DO ikl=1,knonv
    132       if(isnoSV(ikl)<=2)             dz_min=max(0.0050,dz_min)
     132      IF(isnoSV(ikl)<=2)             dz_min=max(0.0050,dz_min)
    133133
    134134                                      dzepsi=0.0015
    135       if(ro__SV(ikl,isnoSV(ikl))>920) dzepsi=0.0020
     135      IF(ro__SV(ikl,isnoSV(ikl))>920) dzepsi=0.0020
    136136
    137137      dzthin(ikl) = 0.                              ! Arbitrary unrealistic
     
    240240    DO ikl=1,knonv
    241241      isn         =    i_thin(ikl)
    242       if(LIndsv(ikl)>0) isn=min(nsno-1,isn) ! cXF
     242      IF(LIndsv(ikl)>0) isn=min(nsno-1,isn) ! cXF
    243243      isagr1(ikl) =    istoSV(ikl,isn)
    244244      isagr2(ikl) =    istoSV(ikl,isn+LIndsv(ikl))
     
    410410
    411411    isn=max(1,isnoSV(ikl)-3)
    412     if(dzsnSV(ikl,isn)>0.30) then   ! surface layer > 30cm
     412    IF(dzsnSV(ikl,isn)>0.30) then   ! surface layer > 30cm
    413413     i_thin(ikl) = isn              ! XF 04/07/2019
    414414     dzthin(ikl) = dzsnSV(ikl,isn)
     
    416416
    417417    isn=max(1,isnoSV(ikl)-2)
    418     if(dzsnSV(ikl,isn)>0.10) then   ! surface layer > 10cm
     418    IF(dzsnSV(ikl,isn)>0.10) then   ! surface layer > 10cm
    419419     i_thin(ikl) = isn              ! XF 04/07/2019
    420420     dzthin(ikl) = dzsnSV(ikl,isn)
     
    422422
    423423    isn=max(1,isnoSV(ikl)-1)
    424     if(dzsnSV(ikl,isn)>0.05) then   ! surface layer > 5cm
     424    IF(dzsnSV(ikl,isn)>0.05) then   ! surface layer > 5cm
    425425     i_thin(ikl) = isn              ! XF 04/07/2019
    426426     dzthin(ikl) = dzsnSV(ikl,isn)
     
    428428
    429429    isn=max(1,isnoSV(ikl))
    430     if(dzsnSV(ikl,isn)>0.02) then   ! surface layer > 2cm
     430    IF(dzsnSV(ikl,isn)>0.02) then   ! surface layer > 2cm
    431431     i_thin(ikl) = isn              ! XF 04/07/2019
    432432     dzthin(ikl) = dzsnSV(ikl,isn)
     
    572572    DO ikl=1,knonv
    573573      isn         =    i_thin(ikl)
    574       if(LIndsv(ikl)>0) isn=min(isn, nsno-1) !cXF
     574      IF(LIndsv(ikl)>0) isn=min(isn, nsno-1) !cXF
    575575      isagr1(ikl) =    istoSV(ikl,isn)
    576576      isagr2(ikl) =    istoSV(ikl,isn+LIndsv(ikl))
     
    598598  ! + minimum uppermost layer thickness to guarantee a correct reproduction of the snow
    599599  ! + atmosphere coupling
    600     if(dzsnSV(ikl,max(1,isnoSV(ikl)-0))>0.02 .or. & ! surface layers> 2-5-10
     600    IF(dzsnSV(ikl,max(1,isnoSV(ikl)-0))>0.02 .or. & ! surface layers> 2-5-10
    601601          dzsnSV(ikl,max(1,isnoSV(ikl)-1))>0.05 .or. & ! XF 04/07/2019
    602602          dzsnSV(ikl,max(1,isnoSV(ikl)-2))>0.10 .or. &
    603           dzsnSV(ikl,max(1,isnoSV(ikl)-3))>0.30 )then
     603          dzsnSV(ikl,max(1,isnoSV(ikl)-3))>0.30 )THEN
    604604      Agrege(ikl) = min(1, &
    605605            max(0, &
     
    739739
    740740
    741 end subroutine sisvat_zsn
     741END SUBROUTINE sisvat_zsn
  • LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/surf_inlandsis_mod.F90

    r5113 r5116  
    165165        real, dimension(klon) :: mean_dens
    166166        ! lat_scale : temperature lapse rate against latitude [K degree-1]
    167         real :: lat_scale
     167        REAL :: lat_scale
    168168        ! sh_scale : temperature lapse rate against altitude [K km-1]
    169         real :: sh_scale
     169        REAL :: sh_scale
    170170        ! variables for density profile
    171171        ! E0, E1 : exponent
    172         real :: E0, E1
     172        REAL :: E0, E1
    173173        ! depth at which 550 kg m-3 is reached [m]
    174         real :: z550
     174        REAL :: z550
    175175        ! depths of snow layers
    176         real :: depth, snow_depth, distup
     176        REAL :: depth, snow_depth, distup
    177177        ! number of initial snow layers
    178         integer :: nb_snow_layer
     178        INTEGER :: nb_snow_layer
    179179        ! For density calc.
    180         real :: alpha0, alpha1, ln_smb
     180        REAL :: alpha0, alpha1, ln_smb
    181181        ! theoritical densities [kg m-3]
    182         real :: rho0, rho1, rho1_550
     182        REAL :: rho0, rho1, rho1_550
    183183        ! constants for density profile
    184184        ! C0, C1 : constant, 0.07 for z <= 550 kg m-3
     
    228228            klonv = klon
    229229            knonv = knon
    230                 write(*, *) 'ikl, lon and lat in INLANDSIS'
     230                WRITE(*, *) 'ikl, lon and lat in INLANDSIS'
    231231
    232232            DO ikl = 1, knon
    233233                i=ikl2i(ikl)
    234                 write(*, *) 'ikl=', ikl, 'rlon=', rlon(i), 'rlat=', rlat(i)
     234                WRITE(*, *) 'ikl=', ikl, 'rlon=', rlon(i), 'rlat=', rlat(i)
    235235            END DO
    236236
     
    260260            ! +--Soil layer thickness . Compute soil discretization (as for LMDZ)
    261261            ! +  ----------------------------------------------------------------
    262             !        write(*,'(/a)') 'Start SISVAT init: soil discretization ', nsoilmx
     262            !        WRITE(*,'(/a)') 'Start SISVAT init: soil discretization ', nsoilmx
    263263            CALL get_soil_levels(dz1, dz2, lambda)
    264264
     
    368368                ! with a moist-adiabatic lapse rate of 5 °C km-1 everywhere except for Antarctica,
    369369                ! for Antarctica, a dry-adiabatic lapse rate of 9.8 °C km-1 is assumed.
    370                 if (lati > 60.) then
     370                if (lati > 60.) THEN
    371371                    ! CA todo : add longitude bounds
    372372                    ! Greenland mean temperature : function of altitude and latitude
     
    379379                    ! surface density: Fausto et al. 2018, https://doi.org/10.3389/feart.2018.00051
    380380                    mean_dens(ikl) = 315.
    381                 else if (lati < -60.) then
     381                else if (lati < -60.) THEN
    382382                    ! Antarctica mean temperature : function of altitude and latitude
    383383                    ! for altitudes 0. to 500. m, lat_scale varies from 1.3 to 0.6 °C °lat-1
     
    399399                else
    400400
    401                 !    write(*, *) 'Attention: temperature initialization is only defined for Greenland and Antarctica'
     401                !    WRITE(*, *) 'Attention: temperature initialization is only defined for Greenland and Antarctica'
    402402
    403403                     mean_dens(ikl) =350.
     
    463463                    rho0 = exp(E0 * depth) / (rho_ice / mean_dens(ikl) - 1 + exp(E0 * depth)) * rho_ice
    464464                    rho1 = exp(E1 * depth) / (rho_ice / mean_dens(ikl) - 1 + exp(E1 * depth)) * rho_ice
    465                     if (depth <= z550) then
     465                    if (depth <= z550) THEN
    466466                        ro__SV(ikl, isl) = exp(E0 * depth) / (rho_ice / mean_dens(ikl) - 1 + exp(E0 * depth)) * rho_ice
    467467                    else
     
    499499                open(unit = un_outfor, status = 'replace', file = fn_outfor)
    500500                ikl = gp_outfor     ! index sur la grille land ice
    501                 write(un_outfor, *) fn_outfor, ikl, dt__SV, rlon(ikl2i(ikl)), rlat(ikl2i(ikl))
    502                 write(un_outfor, *) 'nsnow - albedo - z0m - z0h , dz [m,30], temp [K,41], rho [kg/m3,41], eta [kg/kg,41] &
     501                WRITE(un_outfor, *) fn_outfor, ikl, dt__SV, rlon(ikl2i(ikl)), rlat(ikl2i(ikl))
     502                WRITE(un_outfor, *) 'nsnow - albedo - z0m - z0h , dz [m,30], temp [K,41], rho [kg/m3,41], eta [kg/kg,41] &
    503503   G1 [-,30], G2 [-,30], agesnow [d,30], history [-,30], DOP [m,30]'
    504504            END IF
     
    553553            ! => Upper bound for eroded snow mass
    554554            !        uss_SV(ikl) = SLussl(i,j,n) ! u*qs* (only for Tv in sisvatesbl.f)
    555             ! #BS  if(dsn_SV(ikl)>eps12.and.erprev(i,j,n).gt.eps9) then
     555            ! #BS  IF(dsn_SV(ikl)>eps12.and.erprev(i,j,n).gt.eps9) THEN
    556556            ! #BS    dsnbSV(ikl) =1.0-min(qsHY(i,j,kB)     !BS neglib. at kb ~100 magl)
    557557            ! #BS.                        /max(qshy(i,j,mz),eps9),unun)
     
    564564            !      will be used for characterizing the Buffer Layer
    565565            !      (see update of  Bros_N, G1same, G2same, zroOLD, zroNEW)
    566             ! #BS  if(n==1) qbs_HY(i,j) = dsnbSV(ikl)
     566            ! #BS  IF(n==1) qbs_HY(i,j) = dsnbSV(ikl)
    567567            qsnoSV(ikl) = snow_cont_air(ikl)
    568568
     
    642642                    toicSV(ikl) = toicSV(ikl) - sn_add
    643643                ELSE
    644                     write(*, *) 'Attention, bare ice... point ', ikl
     644                    WRITE(*, *) 'Attention, bare ice... point ', ikl
    645645                    isnoSV(ikl) = 1
    646646                    istoSV(ikl, 1) = 0
     
    713713            IF (ok_outfor) THEN
    714714             ikl= gp_outfor
    715             write(un_outfor, *) '+++++++++++', rlon(ikl2i(ikl)), rlat(ikl2i(ikl)),alt(ikl),'+++++++++++'
    716             write(un_outfor, *) isnoSV(ikl), alb_SV(ikl), Z0m_SV(ikl), Z0h_SV(ikl),HSs_sv(ikl),HLs_sv(ikl),alb1(ikl),alb2(ikl)
    717             write(un_outfor, *) dzsnSV(ikl, :)
    718             write(un_outfor, *) TsisSV(ikl, :)
    719             write(un_outfor, *) ro__SV(ikl, :)
    720             write(un_outfor, *) eta_SV(ikl, :)
    721             write(un_outfor, *) G1snSV(ikl, :)
    722             write(un_outfor, *) G2snSV(ikl, :)
    723             write(un_outfor, *) agsnSV(ikl, :)
    724             write(un_outfor, *) istoSV(ikl, :)
    725             write(un_outfor, *) DOPsnSV(ikl, :)
     715            WRITE(un_outfor, *) '+++++++++++', rlon(ikl2i(ikl)), rlat(ikl2i(ikl)),alt(ikl),'+++++++++++'
     716            WRITE(un_outfor, *) isnoSV(ikl), alb_SV(ikl), Z0m_SV(ikl), Z0h_SV(ikl),HSs_sv(ikl),HLs_sv(ikl),alb1(ikl),alb2(ikl)
     717            WRITE(un_outfor, *) dzsnSV(ikl, :)
     718            WRITE(un_outfor, *) TsisSV(ikl, :)
     719            WRITE(un_outfor, *) ro__SV(ikl, :)
     720            WRITE(un_outfor, *) eta_SV(ikl, :)
     721            WRITE(un_outfor, *) G1snSV(ikl, :)
     722            WRITE(un_outfor, *) G2snSV(ikl, :)
     723            WRITE(un_outfor, *) agsnSV(ikl, :)
     724            WRITE(un_outfor, *) istoSV(ikl, :)
     725            WRITE(un_outfor, *) DOPsnSV(ikl, :)
    726726        ENDIF
    727727
     
    771771        fz(rk) = fz1 * (dalph_soil**rk - 1.) / (dalph_soil - 1.)
    772772
    773         !    write(*,*)'Start soil level computation'
     773        !    WRITE(*,*)'Start soil level computation'
    774774        !-----------------------------------------------------------------------
    775775        ! Calculation of some constants
     
    11901190            ENDIF
    11911191        ENDDO
    1192         write(*, *)'Read ', fichnom, ' finished!!'
     1192        WRITE(*, *)'Read ', fichnom, ' finished!!'
    11931193
    11941194        !*********************************************************************************
     
    12161216
    12171217                END DO
    1218                 write(*, *)'Copy histo', ikl
     1218                WRITE(*, *)'Copy histo', ikl
    12191219
    12201220                DO  isn = 1, isnoSV(ikl) !nsno
    12211221                    snopts = snopts + 1
    12221222                    IF (isto(i, isn) > 10.) THEN          !hj check
    1223                         write(*, *)'Irregular isto', ikl, i, isn, isto(i, isn)
     1223                        WRITE(*, *)'Irregular isto', ikl, i, isn, isto(i, isn)
    12241224                        isto(i, isn) = 1.
    12251225                    ENDIF
     
    12451245                        errro = errro + 1
    12461246                    ENDIF
    1247                     write(*, *)ikl, i, isn, Tsis(i, isn), G1sn(i, isn)
     1247                    WRITE(*, *)ikl, i, isn, Tsis(i, isn), G1sn(i, isn)
    12481248                    G1snSV(ikl, isn) = G1sn(i, isn)          ! [-]        [-]
    12491249                    G2snSV(ikl, isn) = G2sn(i, isn)          ! [-] [0.0001 m]
Note: See TracChangeset for help on using the changeset viewer.