Changeset 3609


Ignore:
Timestamp:
Feb 5, 2025, 2:55:26 PM (6 days ago)
Author:
jbclement
Message:

PEM:

  • Simplification of "read_data_PCM_mod.F90" to treat the cases with/without slope.
  • Few bug corrections related to 1D.

JBC

Location:
trunk/LMDZ.COMMON/libf/evolution
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/changelog.txt

    r3608 r3609  
    569569== 03/02/2025 == JBC
    570570Rescaling the pressure deviation to avoid disproportionate oscillations in case of huge average pressure drop.
     571
     572== 05/02/2025 == JBC
     573- Simplification of "read_data_PCM_mod.F90" to treat the cases with/without slope.
     574- Few bug corrections related to 1D.
  • trunk/LMDZ.COMMON/libf/evolution/pem.F90

    r3608 r3609  
    8484    use mod_phys_lmdz_para, only: is_parallel, is_sequential, is_mpi_root, is_omp_root, is_master
    8585    use planete_h,          only: aphelie, periheli, year_day, peri_day, obliquit, iniorbit
    86     use comcstfi_h,         only: mugaz
     86    use comcstfi_h,         only: mugaz, r
    8787    use surfini_mod,        only: surfini
    88     use comconst_mod,       only: pi, rad, g, r, cpp, kappa
     88    use comconst_mod,       only: pi, rad, g, cpp, kappa
    8989#else
    9090    use tracer_h,           only: noms, igcm_h2o_ice, igcm_co2 ! Tracer names
     
    406406
    407407    write(*,*) '> Reading "start1D.txt" and "startfi.nc"'
    408     call init_testphys1d('start1D.txt','startfi.nc',therestart1D,therestartfi,ngrid,nlayer,610.,nq,q,      &
    409                          time_0,pdyn,ucov,vcov,teta,ndt,ptif,pks,dtphys,zqsat,dq,dqdyn,day0,day,gru,grv,w, &
     408    call init_testphys1d('start1D.txt','startfi.nc',therestart1D,therestartfi,ngrid,nlayer,610.,nq,q,         &
     409                         time_0,pdyn(1),ucov,vcov,teta,ndt,ptif,pks,dtphys,zqsat,dq,dqdyn,day0,day,gru,grv,w, &
    410410                         play,plev,latitude,longitude,cell_area,atm_wat_profile,atm_wat_tau)
    411411    nsplit_phys = 1
     
    857857! II_d.3 Update soil temperature
    858858        write(*,*)"> Updating soil temperature profile"
    859         allocate(tsoil_avg_old(ngrid,nsoilmx_PEM))
    860859        do islope = 1,nslope
    861860            tsoil_avg_old = tsoil_PEM(:,:,islope)
     
    866865                do ig = 1,ngrid
    867866                    do isoil = 1,nsoilmx_PEM
    868             ! Update of soil temperature timeseries which is needed to compute the water soil density timeseries
    869             tsoil_PEM_timeseries(ig,isoil,islope,t) = tsoil_PEM_timeseries(ig,isoil,islope,t)*tsoil_PEM(ig,isoil,islope)/tsoil_avg_old(ig,isoil)
    870             ! Update of watersoil density
     867                        ! Update of soil temperature timeseries which is needed to compute the water soil density timeseries
     868                        tsoil_PEM_timeseries(ig,isoil,islope,t) = tsoil_PEM_timeseries(ig,isoil,islope,t)*tsoil_PEM(ig,isoil,islope)/tsoil_avg_old(ig,isoil)
     869                        ! Update of watersoil density
    871870                        watersoil_density_PEM_timeseries(ig,isoil,islope,t) = exp(beta_clap_h2o/tsoil_PEM_timeseries(ig,isoil,islope,t) + alpha_clap_h2o)/tsoil_PEM_timeseries(ig,isoil,islope,t)*mmol(igcm_h2o_vap)/(mugaz*r)
    872871                        if (isnan(tsoil_PEM(ig,isoil,islope))) call abort_pem("PEM - Update Tsoil","NaN detected in tsoil_PEM",1)
  • trunk/LMDZ.COMMON/libf/evolution/read_data_PCM_mod.F90

    r3603 r3609  
    5252real, dimension(ngrid,nsoilmx,nslope,timelen), intent(out) :: watersoil_density_timeseries ! Water density timeseries in the soil layer [kg/m^3]
    5353! Local variables
    54 integer                                                             :: i, j, l, islope ! Loop variables
    55 real                                                                :: A, B            ! Intermediate variables to compute the mean molar mass of the layer
    56 character(2)                                                        :: num             ! For reading sloped variables
    57 
     54integer                               :: i, j, l, islope                       ! Loop variables
     55real                                  :: A, B                                  ! Intermediate variables to compute the mean molar mass of the layer
     56character(:), allocatable             :: num                                   ! For reading sloped variables
    5857real, dimension(:,:),     allocatable :: var2_read                             ! Variables for reading (2 dimensions)
    5958real, dimension(:,:,:),   allocatable :: var3_read_1, var3_read_2, var3_read_3 ! Variables for reading (3 dimensions)
     
    6968allocate(var2_read(iim_input + 1,jjm_input + 1),var3_read_1(iim_input + 1,jjm_input + 1,timelen),var3_read_2(iim_input + 1,jjm_input + 1,timelen))
    7069
    71 if (nslope == 1) then ! There is no slope
     70if (nslope == 1) then ! No slope
     71    allocate(character(0) :: num)
     72else ! We use slopes
     73    allocate(character(8) :: num)
     74endif
     75
     76do islope = 1,nslope
     77    if (nslope /= 1) then
     78        write(num,'(i2.2)') islope
     79        num = '_slope'//num
     80    endif
     81
    7282    ! CO2 ice
    7383    !--------
    74     call get_var3("co2ice",var3_read_1)
     84    call get_var3("co2ice"//num,var3_read_1)
    7585    where (var3_read_1 < 0.) var3_read_1 = 0.
    76     write(*,*) "Data for co2_ice downloaded."
     86    write(*,*) "Data for co2_ice"//num//" downloaded."
    7787#ifndef CPP_STD
    78     call get_var3("perennial_co2ice",var3_read_2)
    79     write(*,*) "Data for perennial_co2ice downloaded."
     88    call get_var3("perennial_co2ice"//num,var3_read_2)
     89    write(*,*) "Data for perennial_co2ice"//num//" downloaded."
    8090#endif
    8191
     
    8393    var2_read = minval(var3_read_1 + var3_read_2,3)
    8494#ifndef CPP_1D
    85     call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_co2_ice(:,1,1))
    86 #else
    87     min_co2_ice(1,1,1) = var2_read(1,1)
    88 #endif
    89     write(*,*) "Min of co2_ice computed."
     95    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_co2_ice(:,islope,1))
     96#else
     97    min_co2_ice(1,islope,1) = var2_read(1,1)
     98#endif
     99    write(*,*) "Min of co2_ice"//num//" computed."
    90100
    91101    ! H2O ice
    92102    !--------
    93     call get_var3("h2o_ice_s",var3_read_1)
     103    call get_var3("h2o_ice_s"//num,var3_read_1)
    94104    where (var3_read_1 < 0.) var3_read_1 = 0.
    95     write(*,*) "Data for h2o_ice_s downloaded."
     105    write(*,*) "Data for h2o_ice_s"//num//" downloaded."
    96106#ifndef CPP_STD
    97     call get_var3("watercap",var3_read_2)
    98     write(*,*) "Data for watercap downloaded."
     107    call get_var3("watercap"//num,var3_read_2)
     108    write(*,*) "Data for watercap"//num//" downloaded."
    99109#endif
    100110
     
    102112    var2_read = minval(var3_read_1 + var3_read_2,3)
    103113#ifndef CPP_1D
    104     call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_h2o_ice(:,1,1))
    105 #else
    106     min_h2o_ice(1,1,1) = var2_read(1,1)
    107 #endif
    108     write(*,*) "Min of h2o_ice computed."
     114    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_h2o_ice(:,islope,1))
     115#else
     116    min_h2o_ice(1,islope,1) = var2_read(1,1)
     117#endif
     118    write(*,*) "Min of h2o_ice"//num//" computed."
    109119
    110120    ! Tsurf
    111121    !------
    112     call get_var3("tsurf",var3_read_1)
    113     write(*,*) "Data for tsurf downloaded."
     122    call get_var3("tsurf"//num,var3_read_1)
     123    write(*,*) "Data for tsurf"//num//" downloaded."
    114124
    115125    ! Compute average over the year for each point
    116126    var2_read = sum(var3_read_1,3)/timelen
    117127#ifndef CPP_1D
    118     call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,tsurf_avg_yr1(:,1))
    119 #else
    120     tsurf_avg_yr1(1,1) = var2_read(1,1)
    121 #endif
    122     write(*,*) "Average of tsurf computed."
    123 else ! We use slopes
    124     do islope = 1,nslope
    125         write(num,'(i2.2)') islope
    126 
    127         ! CO2 ice
    128         !--------
    129         call get_var3("co2ice_slope"//num,var3_read_1)
    130         where (var3_read_1 < 0.) var3_read_1 = 0.
    131         write(*,*) "Data for co2_ice_slope"//num//" downloaded."
    132 #ifndef CPP_STD
    133         call get_var3("perennial_co2ice_slope"//num,var3_read_2)
    134         write(*,*) "Data for perennial_co2ice_slope"//num//" downloaded."
    135 #endif
    136 
    137         ! Compute the minimum over the year for each point
    138         var2_read = minval(var3_read_1 + var3_read_2,3)
    139 #ifndef CPP_1D
    140         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_co2_ice(:,islope,1))
    141 #else
    142         min_co2_ice(1,islope,1) = var2_read(1,1)
    143 #endif
    144         write(*,*) "Min of co2_ice computed for slope "//num//"."
    145 
    146         ! H2O ice
    147         !--------
    148         call get_var3("h2o_ice_s_slope"//num,var3_read_1)
    149         where (var3_read_1 < 0.) var3_read_1 = 0.
    150         write(*,*) "Data for h2o_ice_s_slope"//num//" downloaded."
    151 #ifndef CPP_STD
    152         call get_var3("watercap_slope"//num,var3_read_2)
    153         write(*,*) "Data for watercap_slope"//num//" downloaded."
    154 #endif
    155 
    156         ! Compute the minimum over the year for each point
    157         var2_read = minval(var3_read_1 + var3_read_2,3)
    158 #ifndef CPP_1D
    159         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_h2o_ice(:,islope,1))
    160 #else
    161         min_h2o_ice(1,islope,1) = var2_read(1,1)
    162 #endif
    163         write(*,*) "Min of h2o_ice computed for slope "//num//"."
    164 
    165         ! Tsurf
    166         !------
    167         call get_var3("tsurf_slope"//num,var3_read_1)
    168         write(*,*) "Data for tsurf_slope"//num//" downloaded."
    169 
    170         ! Compute average over the year for each point
    171         var2_read = sum(var3_read_1,3)/timelen
    172 #ifndef CPP_1D
    173         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,tsurf_avg_yr1(:,islope))
    174 #else
    175         tsurf_avg_yr1(1,islope) = var2_read(1,1)
    176 #endif
    177         write(*,*) "Average of tsurf computed for slope "//num//"."
    178     enddo
    179 endif
     128    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,tsurf_avg_yr1(:,islope))
     129#else
     130    tsurf_avg_yr1(1,islope) = var2_read(1,1)
     131#endif
     132    write(*,*) "Average of tsurf"//num//" computed."
     133enddo
    180134
    181135! Close the NetCDF file
     
    202156    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,ps_avg)
    203157#else
    204     ps_timeseries(1,:) = var3_read_1(1,:)
     158    ps_timeseries(1,:) = var3_read_1(1,1,:)
    205159    ps_avg(1) = var2_read(1,1)
    206160#endif
     
    240194write(*,*) "Data for H2O vmr downloaded."
    241195
    242 if (nslope == 1) then ! There is no slope
     196do islope = 1,nslope
     197    if (nslope /= 1) then
     198        write(num,'(i2.2)') islope
     199        num = '_slope'//num
     200    endif
     201
    243202    ! CO2 ice
    244203    !--------
    245     call get_var3("co2ice",var3_read_1)
     204    call get_var3("co2ice"//num,var3_read_1)
    246205    where (var3_read_1 < 0.) var3_read_1 = 0.
    247     write(*,*) "Data for co2_ice downloaded."
     206    write(*,*) "Data for co2_ice"//num//" downloaded."
    248207#ifndef CPP_STD
    249     call get_var3("perennial_co2ice",var3_read_2)
    250     write(*,*) "Data for perennial_co2ice downloaded."
     208    call get_var3("perennial_co2ice"//num,var3_read_2)
     209    write(*,*) "Data for perennial_co2ice"//num//" downloaded."
    251210#endif
    252211
     
    254213    var2_read = minval(var3_read_1 + var3_read_2,3)
    255214#ifndef CPP_1D
    256     call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_co2_ice(:,1,1))
    257 #else
    258     min_co2_ice(1,1,1) = var2_read(1,1)
    259 #endif
    260     write(*,*) "Min of co2_ice computed."
     215    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_co2_ice(:,islope,2))
     216#else
     217    min_co2_ice(1,islope,2) = var2_read(1,1)
     218#endif
     219    write(*,*) "Min of co2_ice"//num//" computed."
    261220
    262221    ! H2O ice
    263222    !--------
    264     call get_var3("h2o_ice_s",var3_read_1)
     223    call get_var3("h2o_ice_s"//num,var3_read_1)
    265224    where (var3_read_1 < 0.) var3_read_1 = 0.
    266     write(*,*) "Data for h2o_ice_s downloaded."
     225    write(*,*) "Data for h2o_ice_s"//num//" downloaded."
    267226#ifndef CPP_STD
    268     call get_var3("watercap",var3_read_2)
    269     write(*,*) "Data for watercap downloaded."
     227    call get_var3("watercap"//num,var3_read_2)
     228    write(*,*) "Data for watercap"//num//" downloaded."
    270229#endif
    271230
     
    273232    var2_read = minval(var3_read_1 + var3_read_2,3)
    274233#ifndef CPP_1D
    275     call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_h2o_ice(:,1,1))
    276 #else
    277     min_h2o_ice(1,1,1) = var2_read(1,1)
    278 #endif
    279     write(*,*) "Min of h2o_ice computed."
     234    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_h2o_ice(:,islope,2))
     235#else
     236    min_h2o_ice(1,islope,2) = var2_read(1,1)
     237#endif
     238    write(*,*) "Min of h2o_ice"//num//" computed."
    280239
    281240    ! Tsurf
    282241    !------
    283     call get_var3("tsurf",var3_read_1)
    284     write(*,*) "Data for tsurf downloaded."
     242    call get_var3("tsurf"//num,var3_read_1)
     243       write(*,*) "Data for tsurf"//num//" downloaded."
    285244
    286245    ! Compute average over the year for each point
    287246    var2_read = sum(var3_read_1,3)/timelen
    288247#ifndef CPP_1D
    289     call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,tsurf_avg_yr1(:,1))
    290 #else
    291     tsurf_avg_yr1(1,1) = var2_read(1,1)
    292 #endif
    293     write(*,*) "Average of tsurf computed."
     248    call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,tsurf_avg(:,islope))
     249#else
     250    tsurf_avg(1,islope) = var2_read(1,1)
     251#endif
     252    write(*,*) "Average of tsurf"//num//" computed."
    294253
    295254    if (soil_pem) then
    296255        ! Tsoil
    297256        !------
    298         call get_var4("soiltemp",var4_read)
    299         write(*,*) "Data for soiltemp downloaded."
     257        call get_var4("soiltemp"//num,var4_read)
     258        write(*,*) "Data for soiltemp"//num//" downloaded."
    300259
    301260        ! Compute average over the year for each point
     
    303262#ifndef CPP_1D
    304263        do l = 1,nsoilmx
    305             call gr_dyn_fi(timelen,iim_input + 1,jjm_input + 1,ngrid,var4_read(:,:,l,:),tsoil_timeseries(:,l,1,:))
     264            call gr_dyn_fi(timelen,iim_input + 1,jjm_input + 1,ngrid,var4_read(:,:,l,:),tsoil_timeseries(:,l,islope,:))
    306265        enddo
    307         call gr_dyn_fi(nsoilmx,iim_input + 1,jjm_input + 1,ngrid,var3_read_3,tsoil_avg(:,:,1))
    308 #else
    309         tsoil_timeseries(1,:,1,:) = var4_read(1,1,:,:)
    310         tsoil_avg(1,:,1) = var3_read_3(1,:,1)
    311 #endif
    312         write(*,*) "Average of tsoil computed."
     266        call gr_dyn_fi(nsoilmx,iim_input + 1,jjm_input + 1,ngrid,var3_read_3,tsoil_avg(:,:,islope))
     267#else
     268        tsoil_timeseries(1,:,islope,:) = var4_read(1,1,:,:)
     269        tsoil_avg(1,:,islope) = var3_read_3(1,1,:)
     270#endif
     271        write(*,*) "Average of tsoil"//num//" computed."
    313272
    314273        ! Soil water density
    315274        !-------------------
    316         call get_var4("waterdensity_soil",var4_read)
     275        call get_var4("waterdensity_soil"//num,var4_read)
    317276#ifndef CPP_1D
    318277        do l = 1,nsoilmx
    319             call gr_dyn_fi(timelen,iim_input + 1,jjm_input + 1,ngrid,var4_read(:,:,l,:),watersoil_density_timeseries(:,l,1,:))
     278            call gr_dyn_fi(timelen,iim_input + 1,jjm_input + 1,ngrid,var4_read(:,:,l,:),watersoil_density_timeseries(:,l,islope,:))
    320279        enddo
    321280#else
    322         watersoil_density_timeseries(1,:,1,:) = var4_read(1,1,:,:)
    323 #endif
    324         write(*,*) "Data for waterdensity_soil downloaded."
     281        watersoil_density_timeseries(1,:,islope,:) = var4_read(1,1,:,:)
     282#endif
     283        write(*,*) "Data for waterdensity_soil"//num//" downloaded."
    325284
    326285        ! Surface water density
    327286        !----------------------
    328         call get_var3("waterdensity_surface",var3_read_1)
    329         write(*,*) "Data for waterdensity_surface downloaded."
     287        call get_var3("waterdensity_surface"//num,var3_read_1)
     288        write(*,*) "Data for waterdensity_surface"//num//" downloaded."
    330289
    331290        ! Compute average over the year for each point
    332291        var2_read = sum(var3_read_1,3)/timelen
    333292#ifndef CPP_1D
    334         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,watersurf_density_avg(:,1))
    335 #else
    336         watersurf_density_avg(1,1) = var2_read(1,1)
    337 #endif
    338         write(*,*) "Average of waterdensity_surface computed."
     293        call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,watersurf_density_avg(:,islope))
     294#else
     295        watersurf_density_avg(1,islope) = var2_read(1,1)
     296#endif
     297        write(*,*) "Average of waterdensity_surface"//num//" computed."
    339298    endif
    340 else ! We use slopes
    341     do islope = 1,nslope
    342         write(num,'(i2.2)') islope
    343 
    344         ! CO2 ice
    345         !--------
    346         call get_var3("co2ice_slope"//num,var3_read_1)
    347         where (var3_read_1 < 0.) var3_read_1 = 0.
    348         write(*,*) "Data for co2_ice_slope"//num//" downloaded."
    349 #ifndef CPP_STD
    350         call get_var3("perennial_co2ice_slope"//num,var3_read_2)
    351         write(*,*) "Data for perennial_co2ice_slope"//num//" downloaded."
    352 #endif
    353 
    354         ! Compute the minimum over the year for each point
    355         var2_read = minval(var3_read_1 + var3_read_2,3)
    356 #ifndef CPP_1D
    357         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_co2_ice(:,islope,2))
    358 #else
    359         min_co2_ice(1,islope,2) = var2_read(1,1)
    360 #endif
    361         write(*,*) "Min of co2_ice computed for slope "//num//"."
    362 
    363         ! H2O ice
    364         !--------
    365         call get_var3("h2o_ice_s_slope"//num,var3_read_1)
    366         where (var3_read_1 < 0.) var3_read_1 = 0.
    367         write(*,*) "Data for h2o_ice_s_slope"//num//" downloaded."
    368 #ifndef CPP_STD
    369         call get_var3("watercap_slope"//num,var3_read_2)
    370         write(*,*) "Data for watercap_slope"//num//" downloaded."
    371 #endif
    372 
    373         ! Compute the minimum over the year for each point
    374         var2_read = minval(var3_read_1 + var3_read_2,3)
    375 #ifndef CPP_1D
    376         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,min_h2o_ice(:,islope,2))
    377 #else
    378         min_h2o_ice(1,islope,2) = var2_read(1,1)
    379 #endif
    380         write(*,*) "Min of h2o_ice computed for slope "//num//"."
    381 
    382         ! Tsurf
    383         !------
    384         call get_var3("tsurf_slope"//num,var3_read_1)
    385         write(*,*) "Data for tsurf_slope"//num//" downloaded."
    386 
    387         ! Compute average over the year for each point
    388         var2_read = sum(var3_read_1,3)/timelen
    389 #ifndef CPP_1D
    390         call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,tsurf_avg(:,islope))
    391 #else
    392         tsurf_avg(1,islope) = var2_read(1,1)
    393 #endif
    394         write(*,*) "Average of tsurf computed for slope "//num//"."
    395 
    396         if (soil_pem) then
    397             ! Tsoil
    398             !------
    399             call get_var4("soiltemp_slope"//num,var4_read)
    400             write(*,*) "Data for soiltemp_slope"//num//" downloaded."
    401 
    402             ! Compute average over the year for each point
    403             var3_read_3 = sum(var4_read,4)/timelen
    404 #ifndef CPP_1D
    405             do l = 1,nsoilmx
    406                 call gr_dyn_fi(timelen,iim_input + 1,jjm_input + 1,ngrid,var4_read(:,:,l,:),tsoil_timeseries(:,l,islope,:))
    407             enddo
    408             call gr_dyn_fi(nsoilmx,iim_input + 1,jjm_input + 1,ngrid,var3_read_3,tsoil_avg(:,:,islope))
    409 #else
    410             tsoil_timeseries(1,:,islope,:) = var4_read(1,1,:,:)
    411             tsoil_avg(1,:,islope) = var3_read_3(1,:,1)
    412 #endif
    413             write(*,*) "Average of tsoil computed for slope "//num//"."
    414 
    415             ! Soil water density
    416             !-------------------
    417             call get_var4("waterdensity_soil_slope"//num,var4_read)
    418 #ifndef CPP_1D
    419             do l = 1,nsoilmx
    420                 call gr_dyn_fi(timelen,iim_input + 1,jjm_input + 1,ngrid,var4_read(:,:,l,:),watersoil_density_timeseries(:,l,islope,:))
    421             enddo
    422 #else
    423             watersoil_density_timeseries(1,:,islope,:) = var4_read(1,1,:,:)
    424 #endif
    425             write(*,*) "Data for waterdensity_soil_slope"//num//" downloaded."
    426 
    427             ! Surface water density
    428             !----------------------
    429             call get_var3("waterdensity_surface"//num,var3_read_1)
    430             write(*,*) "Data for waterdensity_surface"//num//" downloaded."
    431 
    432             ! Compute average over the year for each point
    433             var2_read = sum(var3_read_1,3)/timelen
    434 #ifndef CPP_1D
    435             call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,var2_read,watersurf_density_avg(:,islope))
    436 #else
    437             watersurf_density_avg(1,islope) = var2_read(1,1)
    438 #endif
    439             write(*,*) "Average of waterdensity_surface computed for slope "//num//"."
    440         endif
    441     enddo
    442 endif
    443 deallocate(var2_read,var3_read_1,var3_read_2,var3_read_3,var4_read)
     299enddo
     300deallocate(var2_read,var3_read_1,var3_read_2,var3_read_3,var4_read,num)
    444301
    445302! Close the NetCDF file
Note: See TracChangeset for help on using the changeset viewer.