Changeset 31


Ignore:
Timestamp:
12/17/15 17:53:06 (8 years ago)
Author:
dumas
Message:

merge branche iLoveclim avec trunk r29

Location:
branches/iLoveclim/SOURCES
Files:
6 deleted
12 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/iLoveclim/SOURCES/GrIce2sea_files/climat_GrIce2sea_years_mod.f90

    r22 r31  
    8787  namelist/clim_smb_T_gen/smb_file,coef_smb_unit,temp_annual_file 
    8888 
    89 ! dmr moved up since namelist declaration should be in the header 
    90  
    91   namelist/clim_snap/nb_snap,time_depart_snaps,ecart_snap,file_smb_snap,massb_time 
    92  
    9389428 format(A) 
    9490  rewind(num_param)                     ! pour revenir au debut du fichier param_list.dat 
     
    149145!lecture namelist  
    150146 
     147  namelist/clim_snap/nb_snap,time_depart_snaps,ecart_snap,file_smb_snap,massb_time 
    151148 
    152149  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat 
  • branches/iLoveclim/SOURCES/Hemin15_files/module_choix-hemin15.f90

    r25 r31  
    7777use deformation_mod_2lois   ! module concernant les lois de deformation 
    7878 
    79 !--------------Module propritete thermique de la glace 
    80 ! use prop_therm_ice_heino 
    81  
    8279! eau basale 
    8380use eau_basale 
  • branches/iLoveclim/SOURCES/Makefile

    r26 r31  
    1010 
    1111# Choice for compiler (ifort = 1, gfortran = 0) 
    12 ifort ?= 0 
     12ifort ?= 1 
    1313 
    1414# Choice for librairies (mkl_c = 1 = MKL,  = 0 = BLAS) 
  • branches/iLoveclim/SOURCES/Makefile.grisli-gfortran.inc

    r26 r31  
    4343mod_clim_tof = climat_forcage_mois_mod.o climat-forcage-insolation_mod_oneway.o \ 
    4444        climat-forcage-insolation_mod.o climat_GrIce2sea_years_mod.o \ 
     45        climat-perturb_mod-0.4.o \ 
    4546        ablation_mod.o no_ablation_mod.o  
    4647 
     
    210211        track_greeneem_mod.o  
    211212 
     213Liste_Ant40 = output_anta40_mod-0.4.o \ 
     214        lect-anteis_mod.o \ 
     215        bmelt-ant-regions_mod.o \ 
     216        fake-routines-ant_mod.o module_choix-antar40-0.4.o \ 
     217        track_ant40_mod.o 
     218 
    212219Liste_eura40 = output_eurasie40_mod-0.1.o \ 
    213220        lect-eurasie_mod.o lakes-prescribed_mod-0.1.o \ 
     
    269276Dim_hemin15 = paradim-hemin15_mod.o geography-hemin15_mod.o 
    270277 
     278Dim_Ant40 = paradim-ant40_mod.o geography-ant40_mod.o 
     279 
    271280Dim_eura40 = paradim-euras40_mod.o geography-euras40_mod.o 
    272281 
     
    282291 
    283292Dim_gsearise05 = paradim-gsearise05_mod.o geography-gsearise05_mod.o 
    284  
    285293 
    286294# Liste_BLAS = band.o reduc.o \ 
     
    289297#       BLAS/strsm.o BLAS/xerbla.o 
    290298 
    291 Liste_BLAS = band.o reduc.o \ 
     299Liste_BLAS = LAPACK/band.o LAPACK/reduc.o \ 
    292300        BLAS/isamax.o BLAS/lsame.o BLAS/scopy.o \ 
    293301        BLAS/slamch.o BLAS/slabad.o BLAS/slange.o \ 
     
    604612        $(F_NETCDF) climat-forcage-insolation_mod.f90 
    605613 
     614climat-perturb_mod-0.4.o : climat-perturb_mod-0.4.f90 
     615        $(F_NETCDF) climat-perturb_mod-0.4.f90 
     616 
    606617ablation_mod.o : ablation_mod.f90 
    607618        $(FT) ablation_mod.f90 
     
    648659        $(FT) accum_month_lapsecouche.f90 
    649660 
    650 climat-perturb_mod-0.4.o : climat-perturb_mod-0.4.f90 
    651         $(FT) climat-perturb_mod-0.4.f90 
    652  
    653661climat-perturb-mois_mod.o : climat-perturb-mois_mod.f90 
    654662        $(FT) climat-perturb-mois_mod.f90 
     
    817825        $(FT) Antarctique_general_files/output_anta_mod-0.4.f90 
    818826 
     827output_anta40_mod-0.4.o : Ant40_files/output_anta40_mod-0.4.f90 
     828        $(FT) Ant40_files/output_anta40_mod-0.4.f90 
     829 
    819830output_global_mod.o :output_global_mod.f90 
    820831        $(FT) output_global_mod.f90  
     
    10231034        $(FT) lastoutput-0.2.f 
    10241035 
    1025 lect-eis.o : lect-eis.F 
    1026         $(FT) lect-eis.F 
     1036lect-eis.o : lect-eis.f90 
     1037        $(FT) lect-eis.f90 
    10271038 
    10281039lect_datfile.o : lect_datfile.f90 
     
    10351046        $(FT) limit_file.f90 
    10361047 
    1037 lineartemp-0.2.o : lineartemp-0.2.F#module3d.mod 
    1038         $(FT) lineartemp-0.2.F 
     1048lineartemp-0.2.o : lineartemp-0.2.f90 
     1049        $(FT) lineartemp-0.2.f90 
    10391050 
    10401051litho-0.3.o : litho-0.3.f90#module3d.mod iso_declar.mod 
     
    13401351        $(FT) New-remplimat/graph-sgbsv.f90 
    13411352 
    1342 # Routines venant de bibliotheques exterieures 
    1343 reduc.o : reduc.f#module3d.mod 
    1344         $(FT) $(F_90) reduc.f 
    1345  
    1346 # band vient de Lapack 
    1347 band.o: band.f 
    1348         $(FT) $(F_90) band.f 
     1353# LAPACK 
     1354reduc.o : LAPACK/reduc.f 
     1355        $(FT) $(F_90) LAPACK/reduc.f 
     1356 
     1357band.o: LAPACK/band.f 
     1358        $(FT) $(F_90) LAPACK/band.f 
    13491359 
    13501360#BLAS 
     
    16781688        $(routine_elliptiques) $(NCDF_LIB)  $(MKL_LIB) 
    16791689 
     1690Ant-40 : $(Dim_Ant40) $(mod_dim_communs) \ 
     1691        $(toy_recul)  \ 
     1692        $(mod_communs) \ 
     1693        $(mod_clim_tof) \ 
     1694        $(mod_no_tracers) \ 
     1695        $(mod_ell) $(Liste_Ant40) \ 
     1696        $(diagnoshelf) \ 
     1697        $(Liste_Netcdf) \ 
     1698        $(routines_communes) steps_time_loop.o \ 
     1699        $(routine_elliptiques) \ 
     1700        $(Liste_BLAS) 
     1701 
     1702        $(LK) -o  ../bin/Ant-40 \ 
     1703        $(Dim_Ant40) $(mod_dim_communs) \ 
     1704        $(toy_recul)  \ 
     1705        $(mod_communs) \ 
     1706        $(mod_clim_tof) \ 
     1707        $(mod_no_tracers) \ 
     1708        $(mod_ell) $(Liste_Ant40) \ 
     1709        $(diagnoshelf) \ 
     1710        $(Liste_Netcdf) \ 
     1711        $(routines_communes) steps_time_loop.o \ 
     1712        $(routine_elliptiques) $(NCDF_LIB)  $(MKL_LIB) $(Liste_BLAS) 
     1713 
    16801714 
    16811715 
  • branches/iLoveclim/SOURCES/Makefile.grisli.inc

    r27 r31  
    297297#       BLAS/strsm.o BLAS/xerbla.o 
    298298ifeq ($(mkl_c), 0) 
    299 Liste_BLAS = band.o reduc.o \ 
     299Liste_BLAS = LAPACK/band.o LAPACK/reduc.o \ 
    300300        BLAS/isamax.o BLAS/lsame.o BLAS/scopy.o \ 
    301301        BLAS/slamch.o BLAS/slabad.o BLAS/slange.o \ 
     
    10341034        $(FT) lastoutput-0.2.f 
    10351035 
    1036 lect-eis.o : lect-eis.F 
    1037         $(FT) lect-eis.F 
     1036lect-eis.o : lect-eis.f90 
     1037        $(FT) lect-eis.f90 
    10381038 
    10391039lect_datfile.o : lect_datfile.f90 
     
    10461046        $(FT) limit_file.f90 
    10471047 
    1048 lineartemp-0.2.o : lineartemp-0.2.F#module3d.mod 
    1049         $(FT) lineartemp-0.2.F 
     1048lineartemp-0.2.o : lineartemp-0.2.f90 
     1049        $(FT) lineartemp-0.2.f90 
    10501050 
    10511051litho-0.3.o : litho-0.3.f90#module3d.mod iso_declar.mod 
     
    13511351        $(FT) New-remplimat/graph-sgbsv.f90 
    13521352 
    1353 # Routines venant de bibliotheques exterieures 
    1354 reduc.o : reduc.f#module3d.mod 
    1355         $(FT) $(F_90) reduc.f 
    1356  
    1357 # band vient de Lapack 
    1358 band.o: band.f 
    1359         $(FT) $(F_90) band.f 
     1353# LAPACK 
     1354reduc.o : LAPACK/reduc.f 
     1355        $(FT) $(F_90) LAPACK/reduc.f 
     1356 
     1357band.o: LAPACK/band.f 
     1358        $(FT) $(F_90) LAPACK/band.f 
    13601359 
    13611360ifeq ($(mkl_c), 0) 
  • branches/iLoveclim/SOURCES/Netcdf-routines/sortie_netcdf_GRISLI_mod.0.2-hassine.f90

    r23 r31  
    114114  integer,dimension(:),allocatable :: num_ncdf_file          !< compteur des fichiers netcdf par class   
    115115 
    116   real*8, dimension(:,:), pointer   :: tab           !< tableau 2d real ecrit dans le fichier 
    117   real*8, dimension(:,:,:), pointer :: tab1          !< tableau 3d real 
    118   real*8, dimension(:,:,:), pointer :: tab1T         !< tableau 3d real pour la temperature 
     116  real*8, dimension(:,:), pointer   :: tab => null()         !< tableau 2d real ecrit dans le fichier 
     117  real*8, dimension(:,:,:), pointer :: tab1 => null()        !< tableau 3d real 
     118  real*8, dimension(:,:,:), pointer :: tab1T => null()       !< tableau 3d real pour la temperature 
    119119 
    120120 
     
    653653    real (kind=kind(0.d0)) ::  timetmp                   !< variable intermediaire 
    654654    character(len=20) :: nametmp                         !< nom intermediaire 
    655     real*8,pointer,dimension(:) :: liste_time => null()  !< liste des snapshot des variables ecrites en netcdf  
    656     real*8,pointer,dimension(:) :: x,y,x1,y1,z,nzzm     
    657     real*8,pointer,dimension(:,:):: lat,lon  
     655    real*8,pointer,dimension(:) :: liste_time => null()  !< liste des snapshot des variables ecrites en netcdf 
     656    real*8,pointer,dimension(:) :: x,y,x1,y1,z,nzzm    
     657    real*8,pointer,dimension(:,:):: lat,lon => null() 
    658658    integer :: i,j,l,k,p 
    659659    logical :: fait  
     
    674674       nametmp = 'f_' 
    675675    endif 
    676  
    677     allocate(tab(nx,ny),tab1(nx,ny,nz),tab1T(nx,ny,nz+nzm)) 
     676     
     677    if (.not.associated(tab)) allocate(tab(nx,ny)) 
     678    if (.not.associated(tab1)) allocate(tab1(nx,ny,nz)) 
     679    if (.not.associated(tab1T)) allocate(tab1T(nx,ny,nz+nzm)) 
    678680 
    679681    if (.not.associated(liste_time)) then 
  • branches/iLoveclim/SOURCES/Temperature-routines/icetemp_declar_mod.f90

    r25 r31  
    5555  ! ___________________________ 
    5656  Real,allocatable,Dimension(:,:):: Tbmer    !< Temperature De La Mer A La Base De L'Ice Shelf   
    57 !  Real,allocatable,Dimension(:,:) :: Alpha   !< Pente Locale Sur Noeud Majeur                     
    58 !  Real,allocatable,Dimension(:,:) :: Ubar    !< Vitesse Sur Noeud Majeur                        
    5957  Real,allocatable,Dimension(:,:) :: Chalglissx,Chalglissy !< Chaleur De Glissement              
    6058  Integer,allocatable,Dimension(:,:) :: Iadvec_w,Iadvec_e,Iadvec_s,Iadvec_n    
  • branches/iLoveclim/SOURCES/Temperature-routines/icetemp_mod.f90

    r25 r31  
    8585       !Tab Nx,Ny 
    8686       Allocate(Tbmer(Nx,Ny),&    
    87 !            Alpha(Nx,Ny),&                    
    88 !            Ubar(Nx,Ny),&                     
    8987            Chalglissx(Nx,Ny),& 
    9088            Chalglissy(Nx,Ny),& 
     
    118116    Rr=0.               
    119117    Hh=0.               
    120     Tdot=0  
     118    Tdot=0 
    121119    Chal2_x=0. 
    122120    Chal2_y=0. 
     
    298296 
    299297    Deallocate (Aa,Bb,Cc,Rr,Hh,Tdot,Abis,Bbis,Cbis,Rbis,Hbis,Ee,Tbmer,            &  
    300                 Chalglissx,Chalglissy,Iadvec_w,Iadvec_e,                          & !Alpha,Ubar 
     298                Chalglissx,Chalglissy,Iadvec_w,Iadvec_e,                          &  
    301299                Iadvec_s,Iadvec_n,Chal2_x,Chal2_y,Chal2_z,Chal2_xy,Chaldef_maj,   & 
    302300                Advecx,Advecy,Advec,Chalx,Chaly,Ffx,Ffy,T3d_new)         
  • branches/iLoveclim/SOURCES/ablation_mod.f90

    r17 r31  
    3131  real, parameter :: PYG=2*PI_L/NYEAR            ! ct for PDD calculation (PYG remplace PY qui existe dans CLIMBER  
    3232  REAL, dimension(nx,ny) :: PDDCT                ! ct for PDD calculation  
    33   REAL, dimension(nx,ny) :: PDDCT2               ! ct for PDD calculation  
     33  REAL, dimension(nx,ny) :: PDDCT2               ! ct for PDD calculation 
     34  integer :: methode_abl=0                       ! selection methode pdd (0) ou van den Berg 2008 (1) 
    3435 
    3536contains 
     
    8384 
    8485 
    85   USE module3d_phy,only:Tjuly,Tann,Tmois,acc,pdd,TS,Tshelf,precip,BM,S,dice,cl 
     86  USE module3d_phy,only:Tjuly,Tann,Tmois,acc,pdd,TS,Tshelf,precip,BM,Abl,S,dice,cl 
    8687 
    8788  IMPLICIT NONE 
     
    128129      ENDWHERE 
    129130 
    130    ELSEIF (pdd_type.EQ.2) THEN ! pdd Tarasov 
     131  ELSEIF (pdd_type.EQ.2) THEN ! pdd Tarasov 
    131132 
    132133      where (TJULY(:,:).gt.10.) 
    133          Cice_2D(:,:) = 8.3*1e-3 
    134          Csnow_2D(:,:) = 4.3*1e-3 
     134        Cice_2D(:,:) = 8.3*1e-3 
     135        Csnow_2D(:,:) = 4.3*1e-3 
    135136      endwhere 
    136137      where(TJULY(:,:).gt.-1..and.TJULY(:,:).lt.10.) 
    137          Cice_2D(:,:) = 1e-3*(8.3+0.0067*(10.-TJULY(:,:))**3) 
    138          Csnow_2D(:,:) = 1e-3*(2.8+0.15*TJULY(:,:)) 
     138        Cice_2D(:,:) = 1e-3*(8.3+0.0067*(10.-TJULY(:,:))**3) 
     139        Csnow_2D(:,:) = 1e-3*(2.8+0.15*TJULY(:,:)) 
    139140      endwhere 
    140141      where(TJULY(:,:).le.-1.) 
    141          Cice_2D(:,:) = 17.22*1e-3 
    142          Csnow_2D(:,:) = 2.65*1e-3 
     142        Cice_2D(:,:) = 17.22*1e-3 
     143        Csnow_2D(:,:) = 2.65*1e-3 
    143144      endwhere 
    144145 
    145146      sigma_ice_2D(:,:)=sigma_ice 
    146    ENDIF 
     147  ENDIF 
    147148 
    148149 
     
    187188 
    188189!     calcul du Bilan de masse 
    189   IF (pdd_type.EQ.1) THEN 
    190       PDS(:,:)=ACC(:,:)/Csnow_2D(:,:) 
    191       SIMAX(:,:)=ACC(:,:)*CSI_2D(:,:) 
    192       PDSI(:,:)=SIMAX(:,:)/Cice_2D(:,:) 
     190  IF (methode_abl.EQ.0) THEN 
     191     IF (pdd_type.EQ.1) THEN 
     192        PDS(:,:)=ACC(:,:)/Csnow_2D(:,:) 
     193        SIMAX(:,:)=ACC(:,:)*CSI_2D(:,:) 
     194        PDSI(:,:)=SIMAX(:,:)/Cice_2D(:,:) 
    193195! avec regel de 60% puis fonte (2 premiers where) : 
    194196!      WHERE (PDD(:,:).LE.CSI_2D*PDS(:,:)) 
     
    200202!          SIF(:,:)=SIMAX(:,:) 
    201203!      endwhere 
    202       WHERE (PDD(:,:).LE.PDS(:,:))  ! test avec regel de 60% progressif 
    203           BM(:,:)=ACC(:,:)-PDD(:,:)*Csnow_2D*(1-CSI_2D(:,:)) 
    204           SIF(:,:)=PDD(:,:)*Csnow_2D(:,:)*(1-CSI_2D(:,:)) 
    205       endwhere 
    206       WHERE ((PDS(:,:).LT.PDD(:,:)).AND.(PDD(:,:).LE.PDS(:,:)+PDSI(:,:))) 
    207           BM(:,:)=SIMAX(:,:)-(PDD(:,:)-PDS(:,:))*Cice_2D 
    208           SIF(:,:)=SIMAX(:,:) 
    209       endwhere 
    210       WHERE (PDS(:,:)+PDSI(:,:).LE.PDD(:,:)) 
    211           BM(:,:)=(PDS(:,:)+PDSI(:,:)-PDD(:,:))*Cice_2D 
    212           SIF(:,:)=SIMAX(:,:) 
    213       endwhere 
    214  ELSEIF (PDD_type.EQ.2) THEN  ! PDD Tarasov 
     204        WHERE (PDD(:,:).LE.PDS(:,:))  ! test avec regel de 60% progressif 
     205           BM(:,:)=ACC(:,:)-PDD(:,:)*Csnow_2D*(1-CSI_2D(:,:)) 
     206           SIF(:,:)=PDD(:,:)*Csnow_2D(:,:)*(1-CSI_2D(:,:)) 
     207        endwhere 
     208        WHERE ((PDS(:,:).LT.PDD(:,:)).AND.(PDD(:,:).LE.PDS(:,:)+PDSI(:,:))) 
     209           BM(:,:)=SIMAX(:,:)-(PDD(:,:)-PDS(:,:))*Cice_2D 
     210           SIF(:,:)=SIMAX(:,:) 
     211        endwhere 
     212        WHERE (PDS(:,:)+PDSI(:,:).LE.PDD(:,:)) 
     213           BM(:,:)=(PDS(:,:)+PDSI(:,:)-PDD(:,:))*Cice_2D 
     214           SIF(:,:)=SIMAX(:,:) 
     215        endwhere 
     216     ELSEIF (PDD_type.EQ.2) THEN  ! PDD Tarasov 
    215217        PDS(:,:)=ACC(:,:)/Csnow_2D(:,:) 
    216218        pr_ice_eq(:,:) = amax1(0.,((PRECIP(:,:)/DICE)-ACC(:,:)))  ! precipe liquide (ice equivalent) 
     
    231233 
    232234!        where(snowmelt(:,:).lt.ACC(:,:)) 
    233            refr2(:,:) = 2.2*(ACC(:,:)-snowmelt(:,:))-(cpsurf(:,:)/CL)*amin1(TANN(:,:),0.) 
    234            refreezed_ice(:,:) = amin1(pr_ice_eq(:,:)+snowmelt(:,:),refr2(:,:)) 
     235        refr2(:,:) = 2.2*(ACC(:,:)-snowmelt(:,:))-(cpsurf(:,:)/CL)*amin1(TANN(:,:),0.) 
     236        refreezed_ice(:,:) = amin1(pr_ice_eq(:,:)+snowmelt(:,:),refr2(:,:)) 
    235237!        elsewhere 
    236238!           refr2(:,:) = -(cpsurf(:,:)/CL)*amin1(TANN(:,:),0.) 
     
    252254        endwhere 
    253255 
    254  ELSE ! pdd standard reeh 
     256     ELSE ! pdd standard reeh 
    255257!       (* Positive degrees required to melt the snow layer *) 
    256258        PDS(:,:)=ACC(:,:)/Csnow_2D(:,:) 
     
    260262        PDSI(:,:)=SIMAX(:,:)/Cice_2D(:,:) 
    261263! avec regel de 60% puis fonte (2 premiers where) : 
    262       WHERE (PDD(:,:).LE.CSI_2D*PDS(:,:)) 
    263           BM(:,:)=ACC(:,:) 
    264           SIF(:,:)=PDD(:,:)*Csnow_2D(:,:) 
    265       endwhere 
    266       WHERE ((CSI_2D*PDS(:,:).LT.PDD(:,:)).AND.(PDD(:,:).LE.PDS(:,:))) 
    267           BM(:,:)=ACC(:,:)+SIMAX(:,:)-PDD(:,:)*Csnow_2D 
    268           SIF(:,:)=SIMAX(:,:) 
    269       endwhere 
     264        WHERE (PDD(:,:).LE.CSI_2D*PDS(:,:)) 
     265           BM(:,:)=ACC(:,:) 
     266           SIF(:,:)=PDD(:,:)*Csnow_2D(:,:) 
     267        endwhere 
     268        WHERE ((CSI_2D*PDS(:,:).LT.PDD(:,:)).AND.(PDD(:,:).LE.PDS(:,:))) 
     269           BM(:,:)=ACC(:,:)+SIMAX(:,:)-PDD(:,:)*Csnow_2D 
     270           SIF(:,:)=SIMAX(:,:) 
     271        endwhere 
    270272!       WHERE (PDD(:,:).LE.PDS(:,:))                  ! test avec regel de 60% progressif| 
    271273!           BM(:,:)=ACC(:,:)-PDD(:,:)*Csnow_2D*(1-CSI_2D)   ! remplace les 2 premiers where    | 
    272274!           SIF(:,:)=PDD(:,:)*Csnow_2D(:,:)*(1-CSI_2D(:,:)) !----------------------------------| 
    273275!      endwhere 
    274       WHERE ((PDS(:,:).LT.PDD(:,:)).AND.(PDD(:,:).LE.PDS(:,:)+PDSI(:,:))) 
    275           BM(:,:)=SIMAX(:,:)-(PDD(:,:)-PDS(:,:))*Cice_2D 
    276           SIF(:,:)=SIMAX(:,:) 
    277       endwhere 
    278       WHERE (PDS(:,:)+PDSI(:,:).LE.PDD(:,:)) 
    279           BM(:,:)=(PDS(:,:)+PDSI(:,:)-PDD(:,:))*Cice_2D 
    280           SIF(:,:)=SIMAX(:,:) 
    281       endwhere 
    282  
     276        WHERE ((PDS(:,:).LT.PDD(:,:)).AND.(PDD(:,:).LE.PDS(:,:)+PDSI(:,:))) 
     277           BM(:,:)=SIMAX(:,:)-(PDD(:,:)-PDS(:,:))*Cice_2D 
     278           SIF(:,:)=SIMAX(:,:) 
     279        endwhere 
     280        WHERE (PDS(:,:)+PDSI(:,:).LE.PDD(:,:)) 
     281           BM(:,:)=(PDS(:,:)+PDSI(:,:)-PDD(:,:))*Cice_2D 
     282           SIF(:,:)=SIMAX(:,:) 
     283        endwhere 
     284     ENDIF 
     285  ELSEIF ( methode_abl.EQ.1 ) THEN ! Insolation Temperature Melt equation, van den Berg, 2008 
     286     SIMAX(:,:)=ACC(:,:)*CSI 
     287     SIF(:,:)=SIMAX(:,:) 
     288  ELSE 
     289     print*,'ablation.f90 : pb methode calcul BM' 
     290     print*,'ATTENTION methode_abl > 1 NON COMPATIBLE AVEC iLOVECLIM'  
     291     stop 
    283292  ENDIF 
    284293 
    285294! calcul de la temperature de surface (utilisee dans icetemp) : 
    286    TS(:,:)=(TANN(:,:)+26.6*SIF(:,:)) 
    287    TS(:,:)=min(0.0,TS(:,:)) 
    288    tshelf(:,:)=TS(:,:) 
    289  
    290 !!$!     (*** ablation ***) 
    291 !!$  DO i=1,nx 
    292 !!$    DO j=1,ny 
    293 !!$!       (* positive degrees required to melt the snow layer *) 
    294 !!$      pds=acc(i,j)/csnow  
    295 !!$!       (* maximum amount of super. ice that can be formed *) 
    296 !!$      simax=acc(i,j)*csi 
    297 !!$!       (* pos. degrees required to melt the superimposed ice *) 
    298 !!$      pdsi=simax/cice 
    299 !!$      IF (pdd(i,j).LE.csi*pds) THEN 
    300 !!$          sif=pdd(i,j)*csnow 
    301 !!$      ELSE  
    302 !!$          sif=simax  
    303 !!$      ENDIF 
    304 !!$ 
    305 !!$!       surface temperature 
    306 !!$      ts(i,j)=(tann(i,j)+26.6*sif) 
    307 !!$      ts(i,j)=MIN(0.0,ts(i,j)) 
    308 !!$      tshelf(i,j)=ts(i,j) 
    309 !!$ 
    310 !!$!       mass balance 
    311 !!$      IF (pdd(i,j).LE.csi*pds)  bm(i,j)=acc(i,j) ! toute la fonte est recuperee en regel 
    312 !!$      IF ((csi*pds.LT.pdd(i,j)).AND.(pdd(i,j).LE.pds)) & ! fonte de la neige uniquement 
    313 !!$         bm(i,j)=acc(i,j)+simax-pdd(i,j)*csnow  
    314 !!$      IF ((pds.LT.pdd(i,j)).AND.(pdd(i,j).LE.pds+pdsi)) & ! fonte toute neige et une partie glace regel 
    315 !!$         bm(i,j)=simax-(pdd(i,j)-pds)*cice  
    316 !!$      IF (pds+pdsi.LE.pdd(i,j)) bm(i,j)=(pds+pdsi-pdd(i,j))*cice !fonte de tt neige tt regel + glace annees precedentes 
    317  
    318            
    319 !940   format('%%%% ',a,'   time=',f8.0,' %%%%') 
     295  TS(:,:)=(TANN(:,:)+26.6*SIF(:,:)) 
     296  TS(:,:)=min(0.0,TS(:,:)) 
     297  tshelf(:,:)=TS(:,:) 
     298  Abl(:,:)=BM(:,:)-Acc(:,:) 
     299 
    320300END SUBROUTINE ABLATION 
    321301 
  • branches/iLoveclim/SOURCES/initial-0.3.f90

    r24 r31  
    7171  endif 
    7272 
    73 call sortie_ncdf_cat 
     73!cdc call sortie_ncdf_cat 
    7474 
    7575  ! calcul de Hmx et Hmy -> shift=-1, dim=1 -> H(i-1,j) 
  • branches/iLoveclim/SOURCES/spinup_mod.f90

    r22 r31  
    209209             coef_defmx(i,j) = 1. 
    210210             Uxbar(i,j)      = Vcol_x(i,j) 
    211              flgzmx(i,j)     = transfer(Vcol_x(i,j),flgzmx(i,j)) 
     211! dmr below is a cast from a real*4 to logical*4 
     212! dmr cannot be implicit in gfortran 
     213! dmr              flgzmx(i,j)     = Vcol_x(i,j) 
     214             flgzmx(i,j)     = (nint(Vcol_x(i,j)).ne.0) 
    212215             uxdef(i,j)      = 0. 
    213216             Ubx(i,j)        = Vcol_x(i,j) 
     
    250253             coef_defmy(i,j) = 1. 
    251254             Uybar(i,j)      = Vcol_y(i,j) 
    252              flgzmy(i,j)     = transfer(Vcol_y(i,j),flgzmy(i,j)) 
     255! dmr below is a cast from a real*4 to logical*4 
     256! dmr cannot be implicit in gfortran 
     257! dmr             flgzmy(i,j)     = Vcol_y(i,j) 
     258             flgzmy(i,j)     = (nint(Vcol_y(i,j)).ne.0) 
     259 
    253260             uydef(i,j)      = 0. 
    254261             Uby(i,j)        = Vcol_y(i,j) 
  • branches/iLoveclim/SOURCES/util_recovery.f90

    r10 r31  
    4747    read(num_file,*)       !saut de la ligne "-------" 
    4848    read(num_file,*) i 
    49     allocate(tab_time(i)) 
     49    if (.not. allocated(tab_time)) then ! aurel dec15 
     50       allocate(tab_time(i)) 
     51    end if 
    5052    do j=1,i  
    5153       read(num_file,*)   tab_time(j) 
Note: See TracChangeset for help on using the changeset viewer.