Changeset 899


Ignore:
Timestamp:
06/13/19 16:45:41 (5 years ago)
Author:
adurocher
Message:

trunk : Fixed GCC warnings

Fixed iso c bindings
fixed warnings with -Wall -Wno-aliasing -Wno-unused -Wno-unused-dummy-argument -Wno-maybe-uninitialized -Wno-tabs warnings
Removed all unused variables (-Wunused-variable)
vector%dot_product is now dot_product_3d to avoid compilation warning "dot_product shadows intrinsic" with GCC

Location:
codes/icosagcm/trunk
Files:
54 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/base/earth_const.f90

    r669 r899  
    3636  USE getin_mod 
    3737  IMPLICIT NONE 
    38   REAL(rstd) :: X=1 
    3938   
    4039    CALL getin("radius",radius) 
  • codes/icosagcm/trunk/src/base/profiling.f90

    r667 r899  
    4141  SUBROUTINE enter_profile(id) 
    4242    INTEGER, INTENT(IN) :: id 
    43     REAL :: my_chrono 
    4443    !$OMP MASTER 
    4544    depth = depth+1 
  • codes/icosagcm/trunk/src/dcmip/dcmip2016_baroclinic_wave.f90

    r548 r899  
    4040! 
    4141!======================================================================= 
    42  
    4342  IMPLICIT NONE 
    44  
     43   
    4544!======================================================================= 
    4645!    Physical constants 
     
    9998  SUBROUTINE baroclinic_wave_test(deep,moist,pertt,X,lon,lat,p,z,zcoords,u,v,t,thetav,phis,ps,rho,q) & 
    10099    BIND(c, name = "baroclinic_wave_test") 
    101   
     100    use iso_c_binding 
    102101    IMPLICIT NONE 
    103102 
     
    105104!     input/output params parameters at given location 
    106105!----------------------------------------------------------------------- 
    107     INTEGER, INTENT(IN)  :: & 
     106    INTEGER(KIND=C_INT32_T), INTENT(IN)  :: & 
    108107                deep,       & ! Deep (1) or Shallow (0) test case 
    109108                moist,      & ! Moist (1) or Dry (0) test case 
    110109                pertt         ! Perturbation type 
    111110 
    112     REAL(8), INTENT(IN)  :: & 
     111    REAL(KIND=C_DOUBLE), INTENT(IN)  :: & 
    113112                lon,        & ! Longitude (radians) 
    114113                lat,        & ! Latitude (radians) 
    115114                X             ! Earth scaling parameter 
    116115 
    117     REAL(8), INTENT(INOUT) :: & 
     116    REAL(KIND=C_DOUBLE), INTENT(INOUT) :: & 
    118117                p,            & ! Pressure (Pa) 
    119118                z               ! Altitude (m) 
    120119 
    121     INTEGER, INTENT(IN) :: zcoords     ! 1 if z coordinates are specified 
     120    INTEGER(KIND=C_INT32_T), INTENT(IN) :: zcoords     ! 1 if z coordinates are specified 
    122121                                       ! 0 if p coordinates are specified 
    123122 
    124     REAL(8), INTENT(OUT) :: & 
     123    REAL(KIND=C_DOUBLE), INTENT(OUT) :: & 
    125124                u,          & ! Zonal wind (m s^-1) 
    126125                v,          & ! Meridional wind (m s^-1) 
     
    138137    REAL(8) :: T0, constH, constC, scaledZ, inttau2, rratio 
    139138    REAL(8) :: inttermU, bigU, rcoslat, omegarcoslat 
    140     REAL(8) :: eta, qratio, qnum, qden 
     139    REAL(8) :: eta 
    141140 
    142141    !------------------------------------------------ 
  • codes/icosagcm/trunk/src/dcmip/dcmip2016_cyclone.f90

    r548 r899  
    9595  SUBROUTINE tropical_cyclone_test(lon,lat,p,z,zcoords,u,v,t,thetav,phis,ps,rho,q) & 
    9696    BIND(c, name = "tropical_cyclone_test") 
    97  
     97    use iso_c_binding 
    9898    IMPLICIT NONE 
    9999 
     
    102102    !------------------------------------------------ 
    103103 
    104     REAL(8), INTENT(IN) ::     & 
     104    REAL(KIND=C_DOUBLE), INTENT(IN) ::     & 
    105105              lon,             &     ! Longitude (radians) 
    106106              lat                    ! Latitude (radians) 
    107107 
    108     REAL(8), INTENT(INOUT) ::  & 
     108    REAL(KIND=C_DOUBLE), INTENT(INOUT) ::  & 
    109109              p,               &     ! Pressure (Pa) 
    110110              z                      ! Height (m) 
    111111 
    112     INTEGER, INTENT(IN) :: zcoords     ! 1 if z coordinates are specified 
     112    INTEGER(KIND=C_INT32_T), INTENT(IN) :: zcoords     ! 1 if z coordinates are specified 
    113113                                     ! 0 if p coordinates are specified 
    114114 
    115     REAL(8), INTENT(OUT) ::    & 
     115    REAL(KIND=C_DOUBLE), INTENT(OUT) ::    & 
    116116              u,               &     ! Zonal wind (m s^-1) 
    117117              v,               &     ! Meridional wind (m s^-1) 
  • codes/icosagcm/trunk/src/dcmip/dcmip2016_supercell.f90

    r548 r899  
    148148 
    149149    ! Variables for calculation of equatorial profile 
    150     REAL(8) :: exnereqs, p, T, qvs, qv 
    151  
    152     ! Error metric 
    153     REAL(8) :: err 
     150    REAL(8) :: exnereqs, p, T, qvs 
    154151 
    155152    ! Loop indices 
     
    349346  SUBROUTINE supercell_test(lon,lat,p,z,zcoords,u,v,t,thetav,ps,rho,q,pert) & 
    350347    BIND(c, name = "supercell_test") 
    351   
     348    use iso_c_binding 
    352349    IMPLICIT NONE 
    353350 
     
    355352    !   Input / output parameters 
    356353    !------------------------------------------------ 
    357     REAL(8), INTENT(IN)  :: & 
     354    REAL(KIND=c_double), INTENT(IN)  :: & 
    358355                lon,        & ! Longitude (radians) 
    359356                lat           ! Latitude (radians) 
    360357 
    361     REAL(8), INTENT(INOUT) :: & 
     358    REAL(KIND=c_double), INTENT(INOUT) :: & 
    362359                p,            & ! Pressure (Pa) 
    363360                z               ! Altitude (m) 
    364361 
    365     INTEGER, INTENT(IN) :: zcoords     ! 1 if z coordinates are specified 
     362    INTEGER(KIND=c_int32_t), INTENT(IN) :: zcoords     ! 1 if z coordinates are specified 
    366363                                       ! 0 if p coordinates are specified 
    367364 
    368     REAL(8), INTENT(OUT) :: & 
     365    REAL(KIND=c_double), INTENT(OUT) :: & 
    369366                u,          & ! Zonal wind (m s^-1) 
    370367                v,          & ! Meridional wind (m s^-1) 
     
    375372                q             ! water vapor mixing ratio (kg/kg) 
    376373 
    377     INTEGER, INTENT(IN) :: pert  ! 1 if perturbation should be included 
     374    INTEGER(KIND=c_int32_t), INTENT(IN) :: pert  ! 1 if perturbation should be included 
    378375                                 ! 0 if no perturbation should be included 
    379376 
  • codes/icosagcm/trunk/src/dcmip/dcmip_initial_conditions_test_1_2_3_v5.f90

    r548 r899  
    140140      real(rstd) :: ptop                                                        ! Model top in p 
    141141      real(rstd) :: sin_tmp, cos_tmp, sin_tmp2, cos_tmp2                        ! Calculate great circle distances 
    142       real(rstd) :: d1, d2, r, r2, d3, d4                                       ! For tracer calculations  
     142      real(rstd) :: d1, d2, r, r2                                       ! For tracer calculations  
    143143      real(rstd) :: s, bs                                                       ! Shape function, and parameter 
    144144      real(rstd) :: lonp                                                        ! Translational longitude, depends on time 
  • codes/icosagcm/trunk/src/dcmip/guided_ncar_mod.f90

    r548 r899  
    3838    REAL(rstd), INTENT(IN):: tt 
    3939    TYPE(t_field),POINTER :: f_ps(:) 
    40     TYPE(t_field),POINTER :: f_phis(:) 
    4140    TYPE(t_field),POINTER :: f_theta_rhodz(:) 
    4241    TYPE(t_field),POINTER :: f_u(:)   
     
    6362    REAL(rstd),INTENT(IN)  :: tt ! current time  
    6463    REAL(rstd),INTENT(OUT) :: ue(iim*3*jjm,llm) 
    65     REAL(rstd) :: lon, lat 
    6664    REAL(rstd) :: nx(3),n_norm,Velocity(3,llm) 
    67     REAL(rstd) :: rr1,rr2,bb,cc,aa,hmx 
    68     REAL(rstd) :: v1(3),v2(3),ny(3) 
    6965    INTEGER :: i,j,n,l 
    7066    REAL(rstd) :: pitbytau,kk, pr, zr, u0, u1, v0 
  • codes/icosagcm/trunk/src/dcmip/physics_dcmip.f90

    r548 r899  
    55  INTEGER,SAVE :: testcase 
    66!$OMP THREADPRIVATE(testcase) 
    7  
    8   TYPE(t_field),POINTER :: f_out_i(:) 
    9   REAL(rstd),POINTER :: out_i(:,:) 
    107 
    118  TYPE(t_field),POINTER  :: f_precl(:) 
  • codes/icosagcm/trunk/src/dcmip/physics_dcmip2016.f90

    r548 r899  
    55  INTEGER,SAVE :: testcase 
    66!$OMP THREADPRIVATE(testcase) 
    7  
    8   TYPE(t_field),SAVE,POINTER :: f_out_i(:) 
    9   REAL(rstd),SAVE,POINTER :: out_i(:,:) 
    107 
    118  TYPE(t_field),SAVE,POINTER  :: f_precl(:) 
  • codes/icosagcm/trunk/src/diagnostics/check_conserve.f90

    r649 r899  
    1717       AAM_mass_source(3), AAM_vel_source(3) ! read/written only IF is_master 
    1818  REAL(rstd),SAVE :: AAM_vel_plus_source(3), AAM_vel_minus_source(3) 
    19   REAL(rstd),SAVE :: mtot0,ztot0,etot0,angtot0,stot0,rmsvtot0 
    20   !$OMP THREADPRIVATE(check_type, mtot0,ztot0,etot0,angtot0,stot0,rmsvtot0) 
     19  REAL(rstd),SAVE :: mtot0,ztot0,etot0,angtot0,stot0 
     20  !$OMP THREADPRIVATE(check_type, mtot0,ztot0,etot0,angtot0,stot0) 
    2121   
    2222  PUBLIC :: init_check_conserve, check_conserve_detailed, check_conserve 
     
    6666 
    6767    REAL(rstd),POINTER :: p(:,:),rhodz(:,:)  
    68     INTEGER :: ind,ierr 
     68    INTEGER :: ind 
    6969    REAL(rstd) :: mtot, angtot, rmsdpdt 
    7070    REAL(rstd) :: etot, stot, ang_mass, ang_vel, ang_velp, ang_velm, rmsvtot, ztot 
     
    171171 
    172172    REAL(rstd),POINTER :: p(:,:),rhodz(:,:)  
    173     INTEGER::ind,ierr 
    174     REAL(rstd) :: mtot, ztot, rmsdpdt, etot,stot,rmsv, ang_mass, ang_vel, ang_velp, ang_velm 
     173    INTEGER::ind 
     174    REAL(rstd) :: etot,stot,rmsv, ang_mass, ang_vel, ang_velp, ang_velm 
    175175     
    176176    IF(check_type == check_detailed) THEN 
     
    246246    INTEGER :: ind,i,j,ij   
    247247    REAL :: mloc, rmsloc 
    248     REAL :: mloc_mpi, rmsloc_mpi 
    249248 
    250249    mloc=0.0; rmsloc=0.0 
     
    378377    REAL(rstd), POINTER :: rhodz(:,:)  
    379378    INTEGER :: ind 
    380     REAL(rstd) :: z,z_mpi 
     379    REAL(rstd) :: z 
    381380     
    382381    z=0 
     
    400399    REAL(rstd)::qv1,qv2  
    401400    REAL(rstd)::hv1,hv2   
    402     INTEGER :: i,j,ij,l,ij2 
     401    INTEGER :: i,j,ij,l 
    403402 
    404403    hv1 = 0.0 ; hv2 = 0.0  
  • codes/icosagcm/trunk/src/diagnostics/geopotential_mod.f90

    r548 r899  
    1313    TYPE(t_field), POINTER :: f_ps(:), f_phis(:), f_theta_rhodz(:), &  ! IN                                        
    1414         f_p(:), f_theta(:), f_phi(:)               ! OUT                                                          
    15     REAL(rstd),POINTER :: pk(:,:), p(:,:), theta(:,:,:), theta_rhodz(:,:,:), & 
     15    REAL(rstd),POINTER :: p(:,:), theta(:,:,:), theta_rhodz(:,:,:), & 
    1616         phi(:,:), phis(:), ps(:) 
    1717    INTEGER :: ind 
  • codes/icosagcm/trunk/src/diagnostics/kinetic.f90

    r548 r899  
    134134    REAL(rstd),INTENT(OUT):: Ki(iim*jjm,llm) 
    135135    REAL(rstd) :: Kv(2*iim*jjm,llm) 
    136     INTEGER :: ij,l, u_up, u_down 
     136    INTEGER :: ij,l 
    137137     
    138138    CALL compute_kv(ue,Kv) 
  • codes/icosagcm/trunk/src/diagnostics/observable.f90

    r668 r899  
    230230    INTEGER :: ij,l 
    231231    REAL(rstd) :: F_el(3*iim*jjm,llm+1) 
    232     REAL(rstd) :: uu_right, uu_lup, uu_ldown, W_el, DePhil 
     232    REAL(rstd) :: W_el, DePhil 
    233233    ! NB : u and uh are not in DEC form, they are normal components     
    234234    ! => we must divide by de 
  • codes/icosagcm/trunk/src/dissip/dissip_gcm.f90

    r890 r899  
    8484  CHARACTER(len=255)    :: rayleigh_friction_key 
    8585  REAL(rstd)            :: mintau 
    86   INTEGER               :: seed_size 
    87   INTEGER,ALLOCATABLE   :: seed(:) 
    8886   
    8987  ! New variables added for dissipation vertical profile (SF, 19/09/18) 
     
    592590      SUBROUTINE relax(shift_t, shift_u) 
    593591        USE dcmip_initial_conditions_test_1_2_3 
    594         REAL(rstd) :: z, ulon,ulat, lon,lat, & ! input to test2_schaer_mountain 
     592        REAL(rstd) :: z, ulon,ulat, & ! input to test2_schaer_mountain 
    595593             p,hyam,hybm,w,t,phis,ps,rho,q, &   ! unused input/output to test2_schaer_mountain 
    596594             fz, u3d(3), uref 
  • codes/icosagcm/trunk/src/dissip/guided_mod.f90

    r548 r899  
    3535    REAL(rstd), INTENT(IN):: tt 
    3636    TYPE(t_field),POINTER :: f_ps(:) 
    37     TYPE(t_field),POINTER :: f_phis(:) 
    3837    TYPE(t_field),POINTER :: f_theta_rhodz(:) 
    3938    TYPE(t_field),POINTER :: f_u(:)   
  • codes/icosagcm/trunk/src/dynamics/caldyn.f90

    r580 r899  
    33  PRIVATE 
    44  SAVE 
    5   CHARACTER(LEN=255),SAVE :: caldyn_type 
     5  CHARACTER(LEN=255) :: caldyn_type 
    66!$OMP THREADPRIVATE(caldyn_type) 
    77  
  • codes/icosagcm/trunk/src/dynamics/caldyn_adv.f90

    r548 r899  
    118118 
    119119    INTEGER :: i,j,ij,l     
    120     LOGICAL,SAVE :: first=.TRUE. 
    121120 
    122121    ALLOCATE(rhodz(iim*jjm,llm)) 
  • codes/icosagcm/trunk/src/dynamics/caldyn_gcm.F90

    r599 r899  
    144144    REAL(rstd),POINTER  :: wwuu(:,:) 
    145145 
    146     INTEGER :: ind,i,j,ij,l 
     146    INTEGER :: ind,ij 
    147147 
    148148    IF (is_omp_first_level) THEN 
  • codes/icosagcm/trunk/src/dynamics/caldyn_kernels.f90

    r548 r899  
    1515    REAL(rstd) :: ulon(iim*3*jjm) 
    1616    REAL(rstd) :: ulat(iim*3*jjm) 
    17     REAL(rstd) :: lon,lat 
    1817    INTEGER :: ij 
    1918    DO ij=ij_begin_ext,ij_end_ext 
     
    4443    REAL(rstd),INTENT(OUT) :: qv(iim*2*jjm,llm) 
    4544 
    46     INTEGER :: i,j,ij,l 
     45    INTEGER :: ij,l 
    4746    REAL(rstd) :: etav,hv, m 
    4847    CALL trace_start("compute_pvort")   
     
    130129    REAL(rstd),INTENT(OUT) :: du(iim*3*jjm,llm) 
    131130 
    132     REAL(rstd) :: cor_NT(iim*jjm,llm)  ! NT coriolis force u.(du/dPhi) 
    133     REAL(rstd) :: urel(3*iim*jjm,llm)  ! relative velocity 
     131    !REAL(rstd) :: cor_NT(iim*jjm,llm)  ! NT coriolis force u.(du/dPhi) 
     132    !REAL(rstd) :: urel(3*iim*jjm,llm)  ! relative velocity 
    134133    REAL(rstd) :: Ftheta(3*iim*jjm,llm) ! theta flux 
    135134    REAL(rstd) :: berni(iim*jjm,llm)  ! Bernoulli function 
    136135    REAL(rstd) :: uu_right, uu_lup, uu_ldown 
    137136 
    138     INTEGER :: i,j,ij,l 
    139     REAL(rstd) :: ww,uu 
     137    INTEGER :: ij,l 
     138    REAL(rstd) :: uu 
    140139 
    141140    CALL trace_start("compute_caldyn_horiz") 
  • codes/icosagcm/trunk/src/dynamics/caldyn_kernels_base.F90

    r604 r899  
    1010  INTEGER, PARAMETER,PUBLIC :: energy=1, enstrophy=2 
    1111  TYPE(t_field),POINTER,PUBLIC :: f_out_u(:), f_qu(:), f_qv(:) 
    12   REAL(rstd),SAVE,POINTER :: out_u(:,:), p(:,:), qu(:,:) 
    13   !$OMP THREADPRIVATE(out_u, p, qu) 
    1412 
    1513  ! temporary shared variables for caldyn 
     
    3533    REAL(rstd),INTENT(INOUT) :: geopot(iim*jjm,llm+1) ! geopotential 
    3634 
    37     INTEGER :: i,j,ij,l 
     35    INTEGER :: ij,l 
    3836    REAL(rstd) :: Rd, p_ik, exner_ik, temp_ik, qv, chi, Rmix, gv 
    3937    INTEGER    :: ij_omp_begin_ext, ij_omp_end_ext 
     
    182180 
    183181    ! temporary variable     
    184     INTEGER :: i,j,ij,l,iq 
    185     REAL(rstd) :: p_ik, exner_ik 
     182    INTEGER ::ij,l,iq 
    186183    INTEGER    :: ij_omp_begin, ij_omp_end 
    187184 
  • codes/icosagcm/trunk/src/dynamics/caldyn_kernels_hevi.F90

    r604 r899  
    117117    REAL(rstd) :: C_ik(iim*jjm,llm)      ! Thomas algorithm 
    118118    REAL(rstd) :: D_il(iim*jjm,llm+1)    ! Thomas algorithm 
    119     REAL(rstd) :: gamma, rho_ij, X_ij, Y_ij 
    120     REAL(rstd) :: wil, tau2_g, g2, gm2, ml_g2, c2_mik 
     119    REAL(rstd) :: gamma, rho_ij, X_ij 
     120    REAL(rstd) :: tau2_g, g2, gm2, ml_g2, c2_mik 
    121121 
    122122    INTEGER    :: iter, ij, l, ij_omp_begin_ext, ij_omp_end_ext 
     
    133133    tau2_g=tau*tau/g 
    134134    g2=g*g 
    135     gm2 = g**-2 
     135    gm2 = g**(-2) 
    136136    gamma = 1./(1.-kappa) 
    137137     
     
    256256          PRINT *, '[hevi_solver] C,D', iter, MAXVAL(ABS(C_ik)),MAXVAL(ABS(D_il)) 
    257257          DO l=1,llm+1 
    258              WRITE(*,'(A,I2.1,I3.2,E9.2)'), '[hevi_solver] x', iter,l, MAXVAL(ABS(x_il(:,l))) 
     258             WRITE(*,'(A,I2.1,I3.2,E9.2)') '[hevi_solver] x', iter,l, MAXVAL(ABS(x_il(:,l))) 
    259259          END DO 
    260260       END IF 
     
    282282    REAL(rstd) :: berni(iim*jjm,llm)         ! (W/m_il)^2 
    283283    REAL(rstd) :: berni1(iim*jjm)         ! (W/m_il)^2 
    284     REAL(rstd) :: gamma, rho_ij, T_ij, X_ij, Y_ij, vreff, Rd, Cvd 
     284    REAL(rstd) :: gamma, rho_ij, T_ij, X_ij, vreff, Rd, Cvd 
    285285    INTEGER    :: ij, l 
    286286 
     
    401401    REAL(rstd) :: berniv(iim*jjm,llm)  ! moist Bernoulli function 
    402402 
    403     INTEGER :: i,j,ij,l 
     403    INTEGER :: ij,l 
    404404    REAL(rstd) :: Rd, qv, temp, chi, nu, due, due_right, due_lup, due_ldown 
    405405 
     
    525525    REAL(rstd) :: Ftheta(3*iim*jjm,llm)  ! potential temperature flux 
    526526    REAL(rstd) :: uu_right, uu_lup, uu_ldown, du_trisk, divF 
    527     INTEGER :: ij,iq,l,kdown 
     527    INTEGER :: ij,iq,l 
    528528 
    529529    CALL trace_start("compute_caldyn_Coriolis") 
  • codes/icosagcm/trunk/src/icosa_init.f90

    r891 r899  
    8585    IMPLICIT NONE 
    8686    TYPE(t_field),POINTER,SAVE :: sum_ne(:) 
    87     TYPE(t_field),POINTER,SAVE :: sum_ne_glo(:) 
    8887    REAL(rstd),POINTER :: pt_sum_ne(:) 
    89     INTEGER :: ind,i,j,k,n 
    90     REAL(rstd) :: vect(3,6) 
    91     REAL(rstd) :: centr(3),dist     
     88    INTEGER :: ind,i,j,k,n  
    9289    REAL(rstd) :: tot_sum=0 
    9390 
  • codes/icosagcm/trunk/src/initial/etat0.f90

    r581 r899  
    6666 
    6767  SUBROUTINE etat0(f_ps,f_mass,f_phis,f_theta_rhodz,f_u, f_geopot,f_w, f_q) 
    68     USE mpipara, ONLY : is_mpi_root 
    6968    USE disvert_mod 
    7069    ! Generic interface 
     
    9695     
    9796    REAL(rstd),POINTER :: ps(:), mass(:,:) 
    98     LOGICAL :: autoinit_mass, autoinit_geopot, collocated 
    99     INTEGER :: ind,i,j,ij,l 
     97    LOGICAL :: autoinit_mass, collocated 
     98    INTEGER :: ind 
    10099 
    101100    ! most etat0 routines set ps and not mass 
     
    248247 
    249248    REAL(rstd) :: p(iim*jjm,llm+1) 
    250     REAL(rstd) :: cppd,Rd, mass, p_ij, q_ij,r_ij, chi,nu, entropy, theta 
     249    REAL(rstd) :: cppd,Rd, mass, p_ij, chi,nu, entropy, theta 
    251250    INTEGER :: i,j,ij,l 
    252251 
     
    323322    REAL(rstd) :: q_e(3*iim*jjm,llm,nqtot) 
    324323 
    325     INTEGER :: l,i,j,ij 
     324    INTEGER :: l,ij 
    326325    REAL :: p_ik, v_ik, mass_ik 
    327326    LOGICAL :: autoinit_mass, autoinit_NH 
  • codes/icosagcm/trunk/src/initial/etat0_academic.f90

    r548 r899  
    1919    TYPE(t_field),POINTER,SAVE :: f_Ki(:) 
    2020    TYPE(t_field),POINTER,SAVE :: f_temp(:) 
    21    
    22     REAL(rstd),POINTER :: Ki(:,:) 
    23     REAL(rstd),POINTER :: temp(:) 
    24     INTEGER :: ind 
    2521         
    2622    CALL allocate_field(f_ps,field_t,type_real) 
     
    9288  REAL(rstd) :: ddsin 
    9389  REAL(rstd) :: thetarappel 
    94   REAL(rstd) :: lon,lat 
     90  REAL(rstd) :: lat 
    9591  REAL(rstd) :: p(iim*jjm,llm+1) 
    96   REAL(rstd) :: alpha(iim*jjm,llm),beta(iim*jjm,llm) 
    97   REAL(rstd) :: delta 
    98   REAL(rstd) :: pks(iim*jjm),pk(iim*jjm,llm) 
    9992  REAL(rstd) :: phi(iim*jjm,llm) 
    10093  REAL(rstd) :: x   
  • codes/icosagcm/trunk/src/initial/etat0_dcmip1.f90

    r548 r899  
    1515!$OMP THREADPRIVATE(lon0) 
    1616  REAL(rstd), SAVE  :: lat0=0.0 
    17 !$OMP THREADPRIVATE(lat0) 
    18   REAL(rstd), SAVE  :: alpha=0.0 
    19 !$OMP THREADPRIVATE(alpha) 
     17  !$OMP THREADPRIVATE(lat0) 
    2018  REAL(rstd), SAVE  :: R0  
    2119!$OMP THREADPRIVATE(R0) 
    22   REAL(rstd), SAVE  :: lat1=0. 
    23 !$OMP THREADPRIVATE(lat1) 
    24   REAL(rstd), SAVE  :: lat2=0. 
    25 !$OMP THREADPRIVATE(lat2) 
    26   REAL(rstd), SAVE  :: lon1=pi/6 
    27 !$OMP THREADPRIVATE(lon1) 
    28   REAL(rstd), SAVE  :: lon2=-pi/6 
    29 !$OMP THREADPRIVATE(lon2) 
    3020  REAL(rstd), SAVE  :: latc1=0. 
    3121!$OMP THREADPRIVATE(latc1) 
     
    113103  REAL(rstd) :: pr 
    114104  !  REAL(rstd) :: lon, lat 
    115   INTEGER :: n,l 
     105  INTEGER :: l 
    116106   
    117107  DO l=1, llm+1 
     
    158148    SUBROUTINE cosine_bell_1(hx) 
    159149    REAL(rstd) :: hx(ngrid,llm) 
    160     REAL(rstd) :: rr1,rr2   
     150    REAL(rstd) :: rr1  
    161151    INTEGER :: n,l 
    162152    DO l=ll_begin,ll_end  
     
    241231      REAL(rstd)::hx(ngrid,llm)  
    242232      REAL(rstd),PARAMETER:: zz1=2000.,zz2=5000.,zz0=0.5*(zz1+zz2) 
    243       INTEGER :: n,l 
     233      INTEGER :: l 
    244234       
    245235      DO l=ll_begin,ll_end 
  • codes/icosagcm/trunk/src/initial/etat0_dcmip2.f90

    r548 r899  
    6060    REAL(rstd), INTENT(IN) :: hyam, hybm, lon, lat 
    6161    REAL(rstd), INTENT(OUT) :: psj,phisj,tempj,ulonj,ulatj 
    62     REAL :: dummy 
    63     dummy=0. 
     62    REAL :: dummy_p, dummy_z, dummy_w, dummy_rho, dummy_q 
     63    dummy_p=0;dummy_z=0;dummy_w=0;dummy_rho=0;dummy_q=0 
    6464    SELECT CASE (testcase) 
    6565    CASE(mountain) 
    66        CALL test2_steady_state_mountain(lon,lat,dummy,dummy,0,.TRUE.,hyam,hybm, & 
    67             ulonj,ulatj,dummy,tempj,phisj,psj,dummy,dummy) 
     66       CALL test2_steady_state_mountain(lon,lat,dummy_p,dummy_z,0,.TRUE.,hyam,hybm, & 
     67            ulonj,ulatj,dummy_w,tempj,phisj,psj,dummy_rho,dummy_q) 
    6868    CASE(schaer_noshear) 
    69        CALL test2_schaer_mountain(lon,lat,dummy,dummy,0,.TRUE.,hyam,hybm,0,& 
    70             ulonj,ulatj,dummy,tempj,phisj,psj,dummy,dummy) 
     69       CALL test2_schaer_mountain(lon,lat,dummy_p,dummy_z,0,.TRUE.,hyam,hybm,0,& 
     70            ulonj,ulatj,dummy_w,tempj,phisj,psj,dummy_rho,dummy_q) 
    7171    CASE(schaer_shear) 
    72        CALL test2_schaer_mountain(lon,lat,dummy,dummy,0,.TRUE.,hyam,hybm,1, & 
    73             ulonj,ulatj,dummy,tempj,phisj,psj,dummy,dummy) 
     72       CALL test2_schaer_mountain(lon,lat,dummy_p,dummy_z,0,.TRUE.,hyam,hybm,1, & 
     73            ulonj,ulatj,dummy_w,tempj,phisj,psj,dummy_rho,dummy_q) 
    7474    END SELECT 
    7575  END SUBROUTINE comp_all 
  • codes/icosagcm/trunk/src/initial/etat0_dcmip2016_baroclinic_wave.f90

    r548 r899  
    22  USE icosa 
    33  IMPLICIT NONE 
    4   PRIVATE 
    5   
    6   INTEGER,SAVE :: testcase 
    7   !$OMP THREADPRIVATE(testcase)   
     4  PRIVATE  
    85   
    96  INTEGER :: perturbation 
     
    1815    USE tracer_mod 
    1916    IMPLICIT NONE 
    20     LOGICAL :: is_moist 
    2117    CHARACTER(LEN=255) :: str_perturbation 
    2218     
  • codes/icosagcm/trunk/src/initial/etat0_dcmip3.f90

    r548 r899  
    2222    REAL(rstd), INTENT(OUT) :: q(ngrid,llm,nqtot) 
    2323    REAL(rstd),PARAMETER :: Peq=1e5        ! Reference surface pressure at the equator (hPa) 
    24     REAL(rstd) :: dummy, pp, zz 
     24    REAL(rstd) :: dummy_z, dummy_u, dummy_v, dummy_w, dummy_t, dummy_phis, dummy_ps, dummy_rho, dummy_q 
     25    REAL(rstd) :: pp, zz 
    2526    INTEGER :: l,ij 
     27    dummy_z=0;dummy_u=0;dummy_v=0;dummy_w=0;dummy_t=0;dummy_phis=0;dummy_ps=0;dummy_rho=0;dummy_q=0; 
    2628    pp=peq 
    2729    DO ij=1,ngrid 
    28        CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,dummy,0, & 
    29             dummy,dummy,dummy,dummy,phis(ij),ps(ij),dummy,dummy) 
     30       CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,dummy_z,0, & 
     31            dummy_u,dummy_v,dummy_w,dummy_t,phis(ij),ps(ij),dummy_rho,dummy_q) 
    3032    END DO 
    3133    DO l=ll_begin,ll_endp1 
     
    3335          pp = ap(l) + bp(l)*ps(ij) ! half-layer pressure 
    3436          CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,zz,0, & 
    35                dummy,dummy,dummy,dummy,dummy,dummy,dummy,dummy) 
     37               dummy_u,dummy_v,dummy_w,dummy_t,dummy_phis,dummy_ps,dummy_rho,dummy_q) 
    3638          geopot(ij,l) = g*zz ! initialize geopotential for NH 
    3739       END DO 
     
    4042       DO ij=1,ngrid 
    4143          pp = .5*(ap(l)+ap(l+1)) + .5*(bp(l)+bp(l+1))*ps(ij) ! full-layer pressure 
    42           CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,dummy,0, & 
    43                ulon(ij,l),ulat(ij,l),dummy,Temp(ij,l),dummy,dummy,dummy,dummy) 
     44          CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,dummy_z,0, & 
     45               ulon(ij,l),ulat(ij,l),dummy_w,Temp(ij,l),dummy_phis,dummy_ps,dummy_rho,dummy_q) 
    4446       END DO 
    4547       q(:,l,:)=0. 
  • codes/icosagcm/trunk/src/initial/etat0_dcmip4.f90

    r548 r899  
    5252    INTEGER :: l,ij 
    5353    REAL(rstd) :: etal, etavl, etas, etavs, sinlat, coslat, & 
    54          Y, Tave, T, phis_ave, vort, r2, utot, & 
     54         Y, Tave, T, phis_ave, vort, utot, & 
    5555         dthetaodeta_ave, dthetaodeta, dthetaodlat, duodeta, K, r 
    5656     
  • codes/icosagcm/trunk/src/initial/etat0_heldsz.f90

    r607 r899  
    88  TYPE(t_field),POINTER :: f_theta(:) 
    99 
    10   REAL(rstd),ALLOCATABLE,SAVE :: knewt_t(:),kfrict(:) 
     10  REAL(rstd),ALLOCATABLE :: knewt_t(:),kfrict(:) 
    1111!$OMP THREADPRIVATE(knewt_t,kfrict) 
    12   LOGICAL, SAVE :: done=.FALSE. 
     12  LOGICAL :: done=.FALSE. 
    1313!$OMP THREADPRIVATE(done) 
    1414 
    15   REAL(rstd),SAVE :: p0,teta0,ttp,delt_y,delt_z,eps 
     15  REAL(rstd) :: p0,teta0,ttp,delt_y,delt_z,eps 
    1616!$OMP THREADPRIVATE(p0,teta0,ttp,delt_y,delt_z,eps) 
    1717 
    18   REAL(rstd),SAVE :: knewt_g, k_f,k_c_a,k_c_s 
     18  REAL(rstd) :: knewt_g, k_f,k_c_a,k_c_s 
    1919!$OMP THREADPRIVATE(knewt_g, k_f,k_c_a,k_c_s) 
    2020 
     
    3131    TYPE(t_field),POINTER :: f_q(:) 
    3232    TYPE(t_field),POINTER :: f_Ki(:) 
    33  
    34     REAL(rstd),POINTER :: Ki(:,:) 
    35     INTEGER :: ind 
    3633 
    3734    CALL allocate_field(f_ps,field_t,type_real) 
     
    104101  SUBROUTINE init_Teq 
    105102    USE disvert_mod, ONLY : ap,bp 
    106     REAL(rstd),POINTER :: clat(:)  
    107103    REAL(rstd),POINTER :: theta_eq(:,:)  
    108104    REAL(rstd) :: zsig 
     
    165161    REAL(rstd),INTENT(OUT) :: theta_eq(iim*jjm,llm)  
    166162 
    167     REAL(rstd) :: r, zsig, ddsin, tetastrat, tetajl 
     163    REAL(rstd) :: zsig, ddsin, tetastrat, tetajl 
    168164    INTEGER :: i,j,l,ij 
    169165 
     
    213209    REAL(rstd),POINTER :: theta_eq(:,:) 
    214210    REAL(rstd),POINTER :: theta(:,:) 
    215     REAL(rstd),POINTER :: clat(:) 
    216211    INTEGER::ind 
    217212 
  • codes/icosagcm/trunk/src/initial/etat0_venus.f90

    r548 r899  
    102102    REAL(rstd),POINTER :: phis(:) 
    103103    REAL(rstd),POINTER :: u(:,:) 
    104     REAL(rstd),POINTER :: q(:,:,:) 
    105     REAL(rstd) :: lat(iim*jjm)        ! latitude                     
    106     REAL(rstd) :: pplay(iim*jjm, llm) ! pressure at full layers 
     104    REAL(rstd),POINTER :: q(:,:,:)                   
    107105    INTEGER :: ind 
    108106 
     
    143141     
    144142    real(rstd) ::  lon,lat, pplay, ztemp,zdt,fact 
    145     logical, save ::  firstcall 
    146143    integer :: i,j,ij, l,ll 
    147144     
  • codes/icosagcm/trunk/src/kernels/compute_NH_geopot.k90

    r580 r899  
    107107         PRINT *, '[hevi_solver] C,D', iter, MAXVAL(ABS(C_ik)),MAXVAL(ABS(D_il)) 
    108108         DO l=1,llm+1 
    109             WRITE(*,'(A,I2.1,I3.2,E9.2)'), '[hevi_solver] x_il', iter,l, MAXVAL(ABS(x_il(l,:))) 
     109            WRITE(*,'(A,I2.1,I3.2,E9.2)') '[hevi_solver] x_il', iter,l, MAXVAL(ABS(x_il(l,:))) 
    110110         END DO 
    111111         DO l=1,llm+1 
    112             WRITE(*,'(A,I2.1,I3.2,E9.2)'), '[hevi_solver] R_il', iter,l, MAXVAL(ABS(R_il(l,:))) 
     112            WRITE(*,'(A,I2.1,I3.2,E9.2)') '[hevi_solver] R_il', iter,l, MAXVAL(ABS(R_il(l,:))) 
    113113         END DO 
    114114      END IF 
  • codes/icosagcm/trunk/src/output/netcdf_mod.F90

    r803 r899  
    8181        integer,                         intent(out) :: varid 
    8282        integer                                      :: nf90_def_var 
     83        nf90_def_var = 0 
    8384    end function nf90_def_var 
    8485     
     
    8990        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    9091        integer                                      :: nf90_put_var_int0 
     92        nf90_put_var_int0 = 0 
    9193    end function nf90_put_var_int0 
    9294 
     
    9698        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    9799        integer                                      :: nf90_put_var_int1 
     100        nf90_put_var_int1 = 0 
    98101    end function nf90_put_var_int1 
    99102 
     
    103106        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    104107        integer                                      :: nf90_put_var_int2 
     108        nf90_put_var_int2 = 0 
    105109    end function nf90_put_var_int2 
    106110 
     
    110114        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    111115        integer                                      :: nf90_put_var_int3 
     116        nf90_put_var_int3 = 0 
    112117    end function nf90_put_var_int3 
    113118     
     
    116121        real,                              intent( in) :: values 
    117122        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    118         integer                                      :: nf90_put_var_real0    
     123        integer                                      :: nf90_put_var_real0 
     124        nf90_put_var_real0 = 0 
    119125   end function nf90_put_var_real0 
    120126 
     
    123129        real,                              intent( in) :: values(:) 
    124130        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    125         integer                                      :: nf90_put_var_real1    
     131        integer                                      :: nf90_put_var_real1 
     132        nf90_put_var_real1 = 0 
    126133   end function nf90_put_var_real1 
    127134 
     
    130137        real,                              intent( in) :: values(:,:) 
    131138        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    132         integer                                      :: nf90_put_var_real2    
     139        integer                                      :: nf90_put_var_real2 
     140        nf90_put_var_real2 = 0 
    133141   end function nf90_put_var_real2 
    134142 
     
    137145        real,                              intent( in) :: values(:,:,:) 
    138146        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    139         integer                                      :: nf90_put_var_real3    
     147        integer                                      :: nf90_put_var_real3 
     148        nf90_put_var_real3 = 0 
    140149   end function nf90_put_var_real3 
    141150  
     
    146155        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    147156        integer                                      :: nf90_get_var_int0 
     157        nf90_get_var_int0 = 0 
    148158    end function nf90_get_var_int0 
    149159 
     
    153163        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    154164        integer                                      :: nf90_get_var_int1 
     165        nf90_get_var_int1 = 0 
    155166    end function nf90_get_var_int1 
    156167 
     
    160171        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    161172        integer                                      :: nf90_get_var_int2 
     173        nf90_get_var_int2 = 0 
    162174    end function nf90_get_var_int2 
    163175 
     
    167179        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    168180        integer                                      :: nf90_get_var_int3 
     181        nf90_get_var_int3 = 0 
    169182    end function nf90_get_var_int3 
    170183     
     
    173186        real,                              intent( out) :: values 
    174187        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    175         integer                                      :: nf90_get_var_real0    
     188        integer                                      :: nf90_get_var_real0 
     189        nf90_get_var_real0 = 0 
    176190   end function nf90_get_var_real0 
    177191 
     
    180194        real,                              intent( out) :: values(:) 
    181195        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    182         integer                                      :: nf90_get_var_real1    
     196        integer                                      :: nf90_get_var_real1 
     197        nf90_get_var_real1 = 0 
    183198   end function nf90_get_var_real1 
    184199 
     
    187202        real,                              intent( out) :: values(:,:) 
    188203        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    189         integer                                      :: nf90_get_var_real2    
     204        integer                                      :: nf90_get_var_real2 
     205        nf90_get_var_real2 = 0 
    190206   end function nf90_get_var_real2 
    191207 
     
    194210        real,                              intent( out) :: values(:,:,:) 
    195211        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
    196         integer                                      :: nf90_get_var_real3    
     212        integer                                      :: nf90_get_var_real3 
     213        nf90_get_var_real3 = 0 
    197214   end function nf90_get_var_real3 
    198215   
  • codes/icosagcm/trunk/src/output/output_field.f90

    r667 r899  
    77  PRIVATE 
    88 
    9   LOGICAL,SAVE :: xios_output  
     9  LOGICAL :: xios_output  
    1010!$OMP THREADPRIVATE(xios_output)      
    11   LOGICAL,SAVE :: enable_io     
     11  LOGICAL :: enable_io     
    1212!$OMP THREADPRIVATE(enable_io)      
    1313 
  • codes/icosagcm/trunk/src/output/restart.f90

    r893 r899  
    6060    
    6161  TYPE(t_domain),POINTER :: d 
    62   TYPE(t_field),POINTER :: field_glo(:) 
    6362  TYPE(t_field),POINTER :: field(:) 
    6463   
     
    421420  INTEGER             :: fieldId(20) 
    422421    
    423   TYPE(t_domain),POINTER :: d 
    424   TYPE(t_field),POINTER :: field_glo(:) 
    425422  TYPE(t_field),POINTER :: field(:) 
    426423   
    427424  CHARACTER(LEN=255) :: start_file_name 
    428425  INTEGER,PARAMETER  :: nvert=6 
    429   INTEGER    ::  ncid, cellId, levId, edgeId,  vertid, lonId, latId, bounds_lonId, bounds_latId 
    430   INTEGER    :: ind,ind_glo,i,j,k,nf 
     426  INTEGER    ::  ncid 
     427  INTEGER    :: nf 
    431428  INTEGER    :: status 
    432   REAL(rstd),ALLOCATABLE :: lon(:),lat(:),bounds_lon(:,:),bounds_lat(:,:) 
    433429  REAL(rstd) :: it_real 
    434430   
     
    464460!      CALL xios_recv_field("it_start",it_real) 
    465461      CALL xios_read_var("it_start",it_real) 
    466       it=it_real 
     462      it=INT(it_real) 
    467463    ELSE 
    468464 
  • codes/icosagcm/trunk/src/output/write_field.f90

    r548 r899  
    350350      REAL(r8),ALLOCATABLE :: field_val2d(:) 
    351351      REAL(r8),ALLOCATABLE :: field_val3d(:,:) 
    352       REAL(r8),ALLOCATABLE :: field_val4d(:,:,:) 
    353352      LOGICAL, INTENT(IN) :: once 
    354353      TYPE(t_domain),POINTER :: d 
    355354      INTEGER :: Index 
    356355      INTEGER :: ind,i,j,k,n,ncell,q 
    357       INTEGER :: iie,jje,iin,jjn 
    358356      INTEGER :: status 
    359357      CHARACTER(len=255) :: name 
    360       CHARACTER(len=255) :: str_ind 
    361358      INTEGER :: ind_b,ind_e 
    362359      INTEGER :: halo_size 
     
    394391        Index=GetFieldIndex(name) 
    395392      else 
    396         FieldIndex(Index)=FieldIndex(Index)+1. 
     393        FieldIndex(Index)=FieldIndex(Index)+1 
    397394      endif 
    398395       
     
    629626      REAL(r8),ALLOCATABLE :: field_val2d(:) 
    630627      REAL(r8),ALLOCATABLE :: field_val3d(:,:) 
    631       REAL(r8),ALLOCATABLE :: field_val4d(:,:,:) 
    632628      TYPE(t_domain),POINTER :: d 
    633629      INTEGER :: Index 
    634630      INTEGER :: ind,i,j,l,k,n,ncell,q 
    635       INTEGER :: iie,jje,iin,jjn 
    636631      INTEGER :: status 
    637632      CHARACTER(len=255) :: name 
    638       CHARACTER(len=255) :: str_ind 
    639633      INTEGER :: ind_b,ind_e 
    640634      INTEGER :: halo_size 
     
    664658        Index=GetFieldIndex(name) 
    665659      else 
    666         FieldIndex(Index)=FieldIndex(Index)+1. 
     660        FieldIndex(Index)=FieldIndex(Index)+1 
    667661      endif 
    668662       
     
    11651159      TYPE(t_domain),POINTER :: d 
    11661160      INTEGER :: nvertId,ncid,lonId,latId,bounds_lonId,bounds_latId,timeId,ncellId 
    1167       INTEGER :: dim3id,dim4id 
     1161      INTEGER :: dim3id 
    11681162      INTEGER :: status 
    11691163      INTEGER :: ind,i,j,k,n,q 
    1170       INTEGER :: iie,jje,iin,jjn 
    11711164      INTEGER :: ind_b,ind_e 
    11721165      INTEGER :: halo_size 
     
    11741167      INTEGER :: nij 
    11751168      CHARACTER(LEN=255) :: name 
    1176       INTEGER :: l,level_size, levId, dimlevId 
     1169      INTEGER :: l,level_size, levId 
    11771170             
    11781171      name=TRIM(ADJUSTL(name_in)) 
     
    14771470      TYPE(t_domain),POINTER :: d 
    14781471      INTEGER :: nvertId,ncid,lonId,latId,bounds_lonId,bounds_latId,timeId,ncellId 
    1479       INTEGER :: dim3id,dim4id 
     1472      INTEGER :: dim3id 
    14801473      INTEGER :: status 
    14811474      INTEGER :: ind,i,j,k,n,q 
    1482       INTEGER :: iie,jje,iin,jjn 
    14831475      INTEGER :: ind_b,ind_e 
    14841476      INTEGER :: halo_size 
     
    17831775   USE netcdf_mod 
    17841776   IMPLICIT NONE 
    1785      INTEGER :: i,k,status 
     1777     INTEGER :: i,status 
    17861778!$OMP MASTER      
    17871779     DO i=1,NbField 
     
    18051797    int2str='' 
    18061798    do while (flag) 
    1807       int2str=CHAR(MOD(i,10)+48)//int2str 
     1799      int2str=CHAR(MOD(i,10)+48)//trim(int2str) 
    18081800      i=i/10 
    18091801      if (i==0) flag=.false. 
  • codes/icosagcm/trunk/src/output/xios_mod.F90

    r888 r899  
    99  LOGICAL,SAVE :: using_xios 
    1010 
     11#ifdef CPP_USING_XIOS 
     12   
    1113  INTEGER,SAVE :: ncell_i 
    1214!$OMP THREADPRIVATE(ncell_i) 
     
    1719 
    1820  PRIVATE ncell_i,ncell_v,ncell_e 
    19  
    20 #ifdef CPP_USING_XIOS 
    2121   
    2222CONTAINS 
  • codes/icosagcm/trunk/src/parallel/domain.f90

    r881 r899  
    8383  USE ioipsl 
    8484  IMPLICIT NONE 
    85   INTEGER :: ind,nf,ni,nj,i,j 
     85  INTEGER :: ind,nf,ni,nj 
    8686  INTEGER :: quotient, rest 
    8787  INTEGER :: halo_i,halo_j 
     
    176176  SUBROUTINE copy_domain(d1,d2) 
    177177  IMPLICIT NONE 
    178   INTEGER :: face 
    179178  TYPE(t_domain),TARGET,INTENT(IN) :: d1 
    180179  TYPE(t_domain), INTENT(OUT) :: d2 
     
    543542     
    544543     
    545     block_j=sqrt(nsplit_i*nsplit_j*nb_face*1./mpi_size) 
     544    block_j=INT(sqrt(nsplit_i*nsplit_j*nb_face*1./mpi_size)) 
    546545    exit=.FALSE. 
    547546    jb=1 
     
    625624          DO i=1,nsplit_i 
    626625            ind_glo=ind_glo+1 
    627             WRITE(*,"(' ',i4.4  ,' |')",ADVANCE='NO'),domglo_rank(ind_glo)            
     626            WRITE(*,"(' ',i4.4  ,' |')",ADVANCE='NO') domglo_rank(ind_glo)            
    628627          END DO 
    629628          PRINT *,'' 
  • codes/icosagcm/trunk/src/parallel/transfert_mpi.f90

    r711 r899  
    100100  IMPLICIT NONE 
    101101  INTEGER :: ind,i,j 
    102   LOGICAL ::ok 
    103102 
    104103    CALL register_id('MPI', id_mpi) 
     
    484483 
    485484    INTEGER :: rank,i,j,pos 
    486     INTEGER :: size_,ind_glo,ind_loc, ind_src 
     485    INTEGER :: size_,ind_glo,ind_loc 
    487486    INTEGER :: isend, irecv, ireq, nreq, nsend, nrecv 
    488487    INTEGER, ALLOCATABLE :: mpi_req(:) 
     
    932931    CHARACTER(LEN=*), INTENT(IN),OPTIONAL :: name 
    933932 
    934     TYPE(ARRAY),POINTER :: recv,send  
    935933    TYPE(t_request),POINTER :: req 
    936934    INTEGER :: irecv,isend 
    937     INTEGER :: ireq,nreq, nreq_send 
     935    INTEGER :: ireq,nreq 
    938936    INTEGER :: ind 
    939937    INTEGER :: dim3,dim4 
    940     INTEGER :: i,j 
    941938    INTEGER,SAVE :: message_number=0 
    942939!    TYPE(t_reorder),POINTER :: reorder(:) 
     
    10611058    TYPE(t_message) :: message 
    10621059 
    1063     TYPE(t_request),POINTER :: req 
    1064     INTEGER :: irecv,isend 
    1065     INTEGER :: ireq,nreq 
    1066     INTEGER :: ind 
     1060    INTEGER :: ireq 
    10671061 
    10681062!$OMP BARRIER 
     
    11451139    TYPE(ARRAY),POINTER :: recv,send  
    11461140    TYPE(t_request),POINTER :: req 
    1147     INTEGER, ALLOCATABLE :: mpi_req(:) 
    1148     INTEGER, ALLOCATABLE :: status(:,:) 
    11491141    INTEGER :: irecv,isend 
    1150     INTEGER :: ireq,nreq 
    1151     INTEGER :: ind,i,n,l,m 
     1142    INTEGER :: ireq 
     1143    INTEGER :: ind,n 
    11521144    INTEGER :: dim3,dim4,d3,d4 
    11531145    INTEGER,POINTER :: src_value(:) 
    1154     INTEGER,POINTER :: sign(:) 
    11551146    INTEGER :: offset,msize,rank 
    11561147    INTEGER :: lbegin, lend 
     
    15541545    INTEGER,POINTER :: value(:)  
    15551546    INTEGER,POINTER :: sgn(:)  
    1556     TYPE(ARRAY),POINTER :: recv,send  
     1547    TYPE(ARRAY),POINTER :: recv  
    15571548    TYPE(t_request),POINTER :: req 
    1558     INTEGER, ALLOCATABLE :: mpi_req(:) 
    1559     INTEGER, ALLOCATABLE :: status(:,:) 
    1560     INTEGER :: irecv,isend 
     1549    INTEGER :: irecv 
    15611550    INTEGER :: ireq,nreq 
    1562     INTEGER :: ind,n,l,m,i 
     1551    INTEGER :: ind,n 
    15631552    INTEGER :: dim3,dim4,d3,d4,lbegin,lend 
    15641553    INTEGER :: offset 
     
    17411730    TYPE(t_request),POINTER :: req 
    17421731    INTEGER :: n 
    1743     REAL(rstd) :: var1,var2 
    17441732     
    17451733    DO ind=1,ndomain 
  • codes/icosagcm/trunk/src/physics/physics.f90

    r871 r899  
    1111 
    1212  INTEGER :: phys_type 
    13   TYPE(t_field),POINTER,SAVE :: f_extra_physics_2D(:), f_extra_physics_3D(:) 
    1413  TYPE(t_field),POINTER,SAVE :: f_dulon(:), f_dulat(:) 
    1514  TYPE(t_field),POINTER,SAVE :: f_ulon(:), f_ulat(:) 
     
    162161    TYPE(t_field),POINTER :: f_wflux(:) 
    163162    TYPE(t_field),POINTER :: f_q(:) 
    164      
     163 
    165164    LOGICAL,SAVE :: first=.TRUE. 
    166 !$OMP THREADPRIVATE(first) 
    167      
    168     LOGICAL:: firstcall,lastcall 
    169     INTEGER :: ind 
    170     TYPE(t_physics_inout) :: args 
    171  
     165    !$OMP THREADPRIVATE(first) 
    172166    IF (first) THEN 
    173167      CALL init_message(f_theta_rhodz, req_i0, req_theta0) 
     
    176170      first=.FALSE. 
    177171    ENDIF 
    178  
    179  
     172     
    180173    IF (phys_external) THEN 
    181174     
  • codes/icosagcm/trunk/src/physics/physics_interface.f90

    r548 r899  
    195195    USE icosa 
    196196    IMPLICIT NONE 
    197     INTEGER :: ind, offset 
     197    INTEGER :: ind 
    198198    DO ind=1,ndomain 
    199199       IF (.NOT. assigned_domain(ind)) CYCLE 
  • codes/icosagcm/trunk/src/sphere/geometry.f90

    r882 r899  
    185185    IMPLICIT NONE 
    186186    REAL(rstd) :: x1(3),x2(3) 
    187     REAL(rstd) :: vect(3,6) 
    188     REAL(rstd) :: centr(3) 
    189187    INTEGER :: ind,i,j,n,k 
    190188    TYPE(t_message),SAVE :: message0, message1 
     
    433431    REAL(rstd) :: vect(3,6) 
    434432    REAL(rstd) :: centr(3) 
    435     REAL(rstd) :: vet(3),vep(3), vertex(3) 
     433    REAL(rstd) :: vet(3),vep(3) 
    436434    INTEGER :: ind,i,j,k,n 
    437435    TYPE(t_domain),POINTER :: d 
     
    440438    REAL(rstd) :: lon,lat 
    441439    INTEGER :: ii_glo,jj_glo 
    442     REAL(rstd) :: S 
    443440           
    444441       
  • codes/icosagcm/trunk/src/sphere/metric.f90

    r711 r899  
    117117    REAL(rstd) :: rot=0. 
    118118    INTEGER :: nf,i,j 
    119     REAL(rstd),DIMENSION(3) :: p1,p2,p3 
     119    REAL(rstd),DIMENSION(3) :: p1 
    120120    REAL(rstd) :: d1,d2,d3 
    121121   
     
    180180    REAL(rstd) :: rot=0. 
    181181    INTEGER :: nf,i,j 
    182     REAL(rstd),DIMENSION(3) :: p1,p2,p3 
    183     REAL(rstd) :: d1,d2,d3 
    184182   
    185183   len_edge=acos(cos(Pi/5)*cos(2*Pi/5)/(sin(Pi/5)*sin(2*Pi/5))) 
     
    467465    INTEGER :: ind,ind2 
    468466    INTEGER :: nf,nf2,nfm1,nfp1 
    469     INTEGER :: i,j,k 
    470     INTEGER :: delta 
     467    INTEGER :: i,j 
    471468     
    472469    ind=0 
     
    836833  SUBROUTINE set_cell_vertex 
    837834  IMPLICIT NONE 
    838     INTEGER :: i,j,k,k2 
     835    INTEGER :: k,k2 
    839836    INTEGER :: ind,ind1,ind2 
    840837    INTEGER :: ng1,ng2 
  • codes/icosagcm/trunk/src/sphere/spherical_geom.f90

    r548 r899  
    2828  REAL(rstd),INTENT(OUT) :: lat 
    2929   
    30   REAL(rstd) :: coslat 
    3130  REAL(rstd) :: xyzn(3) 
    3231   
     
    136135  REAL(rstd) :: d 
    137136  REAL(rstd) :: M(3,3) 
    138   REAL(rstd) :: alpha(3,3) 
    139   INTEGER    :: IPIV(3) 
    140   INTEGER    :: info 
    141137  REAL(rstd) :: xa,xb,xc 
    142138  REAL(rstd) :: ya,yb,yc 
    143139  REAL(rstd) :: za,zb,zc 
    144   REAL(rstd) :: alpha_A,alpha_B,alpha_C 
    145   REAL(rstd) :: x,y,z 
    146   REAL(rstd) :: a1,a2,a3 
    147   REAL(rstd) :: b1,b2,b3 
    148140   
    149141   
  • codes/icosagcm/trunk/src/sphere/vector.f90

    r811 r899  
    1313  END FUNCTION Norm 
    1414   
    15   FUNCTION dot_product(V1,V2) 
     15  FUNCTION dot_product_3d(V1,V2) result(dot_product) 
    1616  IMPLICIT NONE 
    1717    REAL(rstd)       :: dot_product 
     
    2121    dot_product=V1(1)*V2(1)+V1(2)*V2(2)+V1(3)*V2(3) 
    2222     
    23    END FUNCTION dot_product 
     23   END FUNCTION dot_product_3d 
    2424    
    2525   FUNCTION cross_product(Va,Vb) 
  • codes/icosagcm/trunk/src/time/euler_scheme.f90

    r548 r899  
    3636    REAL(rstd),POINTER :: hflux(:,:),wflux(:,:),hfluxt(:,:),wfluxt(:,:) 
    3737    INTEGER :: ind 
    38     INTEGER :: i,j,ij,l 
     38    INTEGER :: ij,l 
    3939    CALL trace_start("Euler_scheme")   
    4040 
     
    9595    REAL(rstd), INTENT(IN) :: tau 
    9696    LOGICAL, INTENT(INOUT) :: fluxt_zero 
    97     INTEGER :: l,i,j,ij 
     97    INTEGER :: l,ij 
    9898 
    9999    IF(fluxt_zero) THEN 
  • codes/icosagcm/trunk/src/time/explicit_scheme.f90

    r548 r899  
    2222!    USE caldyn_gcm_mod, ONLY : req_ps, req_mass 
    2323 
    24     REAL(rstd),POINTER :: q(:,:,:) 
    25     REAL(rstd),POINTER :: phis(:), ps(:) ,psm1(:), psm2(:), dps(:) 
     24    REAL(rstd),POINTER :: ps(:) ,psm1(:), psm2(:), dps(:) 
    2625    REAL(rstd),POINTER :: u(:,:) , um1(:,:), um2(:,:), du(:,:) 
    27     REAL(rstd),POINTER :: rhodz(:,:), mass(:,:), massm1(:,:), massm2(:,:), dmass(:,:) 
     26    REAL(rstd),POINTER :: mass(:,:), massm1(:,:), dmass(:,:) 
    2827    REAL(rstd),POINTER :: theta_rhodz(:,:,:) , theta_rhodzm1(:,:,:), theta_rhodzm2(:,:,:), dtheta_rhodz(:,:,:) 
    2928    REAL(rstd),POINTER :: hflux(:,:),wflux(:,:),hfluxt(:,:),wfluxt(:,:) 
     
    6463      REAL(rstd), INTENT(IN) :: coef(:) 
    6564      REAL(rstd) :: tau 
    66       INTEGER :: i,j,ij,l 
     65      INTEGER :: ij,l 
    6766 
    6867      CALL trace_start("RK_scheme")   
  • codes/icosagcm/trunk/src/time/time.f90

    r706 r899  
    5454    run_length=dt*itaumax 
    5555    CALL getin('run_length',run_length) 
    56     itaumax=run_length/dt 
     56    itaumax=INT(run_length/dt) 
    5757     
    5858    time_style='dcmip' 
  • codes/icosagcm/trunk/src/time/timeloop_gcm.f90

    r895 r899  
    194194 
    195195    REAL(rstd) :: adv_over_out ! ratio itau_adv/itau_out 
    196     INTEGER :: ind, it,i,j,l,n,  stage 
     196    INTEGER :: ind, it,l 
    197197    LOGICAL :: fluxt_zero(ndomain) ! set to .TRUE. to start accumulating mass fluxes in time 
    198198    LOGICAL, PARAMETER :: check_rhodz=.FALSE. 
     
    401401       elapsed = (stop_clock-start_clock)*1./rate_clock 
    402402       per_step = elapsed/(it-itau0) 
    403        throughput = dt/per_step 
     403       throughput = INT(dt/per_step) 
    404404       total = per_step*itaumax 
    405405       WRITE(*,'(A,I5,A,F6.2,A,I6)') 'Time spent (s):',INT(elapsed), & 
  • codes/icosagcm/trunk/src/transport/advect.F90

    r896 r899  
    5959    REAL(rstd),INTENT(OUT) :: gradq3d(iim*jjm,llm,3) 
    6060    REAL(rstd) :: maxq,minq,minq_c,maxq_c  
    61     REAL(rstd) :: alphamx,alphami,alpha ,maggrd 
    62     REAL(rstd) :: leng1,leng2 
     61    REAL(rstd) :: alphamx,alphami,alpha,maggrd 
    6362    REAL(rstd) :: arr(2*iim*jjm) 
    6463    REAL(rstd) :: ar(iim*jjm) 
    6564    REAL(rstd) :: gradtri(2*iim*jjm,llm,3)  
    66     INTEGER :: ij,k,ind,l 
     65    INTEGER :: ij,k,l 
    6766    REAL(rstd) :: detx,dety,detz,det 
    6867    REAL(rstd) :: A(3,3), a11,a12,a13,a21,a22,a23,a31,a32,a33 
     
    243242!DIR$ SIMD 
    244243      DO ij=ij_begin,ij_end 
    245 !             maggrd =  dot_product(gradq3d(ij,l,:),gradq3d(ij,l,:)) 
     244!             maggrd =  dot_product_3d(gradq3d(ij,l,:),gradq3d(ij,l,:)) 
    246245             maggrd = gradq3d(ij,l,1)*gradq3d(ij,l,1) + gradq3d(ij,l,2)*gradq3d(ij,l,2) + gradq3d(ij,l,3)*gradq3d(ij,l,3)  
    247246             maggrd = sqrt(maggrd)  
     
    275274    REAL(rstd), INTENT(OUT)    :: dq1,dq2,dq3,det 
    276275    REAL(rstd)    :: dq(3) 
    277      
    278     REAL(rstd)  ::detx,dety,detz 
    279     INTEGER    :: info 
    280     INTEGER    :: IPIV(3) 
    281276 
    282277    REAL(rstd) :: A(3,3) 
    283     REAL(rstd) :: B(3) 
    284278     
    285279    ! TODO : replace A by A1,A2,A3 
     
    345339    REAL(rstd),INTENT(IN)    :: tau 
    346340 
    347     REAL(rstd) :: v_e(3), up_e, qe, ed(3)     
     341    REAL(rstd) :: v_e(3), up_e    
    348342    INTEGER :: ij,l 
    349343 
     
    422416    REAL(rstd), INTENT(INOUT) :: qfluxt(3*iim*jjm,MERGE(llm,1,diagflux_on)) ! time-integrated tracer flux 
    423417 
    424     REAL(rstd) :: dq,dmass,qe,ed(3), newmass 
     418    REAL(rstd) :: dq,dmass,qe, newmass 
    425419    REAL(rstd) :: qflux(3*iim*jjm,llm) 
    426     INTEGER :: ij,k,l 
     420    INTEGER :: ij,l 
    427421 
    428422    CALL trace_start("compute_advect_horiz") 
  • codes/icosagcm/trunk/src/transport/advect_tracer.f90

    r599 r899  
    242242 
    243243    REAL(rstd) :: dzqmax, newmass, sigw, qq, w 
    244     INTEGER :: i,ij,l,j,ijb,ije 
     244    INTEGER :: ij,l,ijb,ije 
    245245 
    246246    CALL trace_start("vlz") 
  • codes/icosagcm/trunk/src/vertical/disvert_strato.f90

    r606 r899  
    7575  SUBROUTINE init_disvert_strato_custom 
    7676    REAL(rstd) :: vert_scale,vert_dzmin,vert_dzlow,vert_z0low,vert_dzmid,vert_z0mid,vert_h_mid,vert_dzhig,vert_z0hig,vert_h_hig 
    77     REAL(rstd) :: z, snorm, dsig(llm), sig(llm+1), sig0(llm+1), zz(llm+1) 
     77    REAL(rstd) :: z, sig(llm+1), sig0(llm+1), zz(llm+1) 
    7878    INTEGER :: l 
    7979    ALLOCATE(ap(llm+1)) 
     
    181181      ! Local variables: 
    182182      INTEGER      :: it, ns, maxit 
    183       REAL(rstd)   :: c1, c2, x1, x2, x3, x4, f1, f2, f3, f4, s, xx, distrib 
     183      REAL(rstd)   :: c1, c2, f1 
    184184      !------------------------------------------------------------------------------- 
    185185      ns=SIZE(sig); maxit=100 
  • codes/icosagcm/trunk/tools/ioipsl/calendar.f90

    r11 r899  
    363363        ss = INT(dd)*one_day+dd-INT(dd) 
    364364        itau = itau+NINT(ss/dt) 
    365         tmp_str = tmp_str(y_pos+1:LEN_TRIM(tmp_str)) 
     365        tmp_str = trim(tmp_str(y_pos+1:)) 
    366366      ELSE IF (m_pos > 0) THEN 
    367367        WRITE(fmt,'("(I",I10.10,")")') m_pos-1 
     
    371371        ss = INT(dd)*one_day+dd-INT(dd) 
    372372        itau = itau+NINT(ss/dt) 
    373         tmp_str = tmp_str(m_pos+1:LEN_TRIM(tmp_str)) 
     373        tmp_str = trim(tmp_str(m_pos+1:)) 
    374374      ELSE IF (d_pos > 0) THEN 
    375375        WRITE(fmt,'("(I",I10.10,")")') d_pos-1 
    376376        READ(tmp_str(1:d_pos-1),fmt) read_time 
    377377        itau = itau+NINT(read_time*one_day/dt) 
    378         tmp_str = tmp_str(d_pos+1:LEN_TRIM(tmp_str)) 
     378        tmp_str = trim(tmp_str(d_pos+1:)) 
    379379      ELSE IF (h_pos > 0) THEN 
    380380        WRITE(fmt,'("(I",I10.10,")")') h_pos-1 
     
    386386        READ(tmp_str(1:s_pos-1),fmt) read_time 
    387387        itau = itau+NINT(read_time/dt) 
    388         tmp_str = tmp_str(s_pos+1:LEN_TRIM(tmp_str)) 
     388        tmp_str = trim(tmp_str(s_pos+1:)) 
    389389      ENDIF 
    390390!- 
     
    460460 &   ' Please call ioconf_startdate before itau2ymds.') 
    461461  ENDIF 
    462   julian_day = start_day 
     462  julian_day = INT(start_day) 
    463463  julian_sec = start_sec+REAL(itau)*deltat 
    464464  CALL ju2ymds_internal (julian_day,julian_sec,year,month,day,sec) 
     
    558558      date_last_act = itau2date (last_action,date0,dt) 
    559559      CALL ju2ymds (date_last_act,year,month,day,sec) 
    560       monthp1 = month-freq 
     560      monthp1 = INT(month-freq) 
    561561      yearp = year 
    562562!- 
     
    575575!---- then we will take it as it is better. 
    576576!- 
    577       monthp1 = month+ABS(freq) 
     577      monthp1 = INT(month+ABS(freq)) 
    578578      yearp=year 
    579579      IF (monthp1 >= 13) THEN 
  • codes/icosagcm/trunk/tools/ioipsl/getincom.f90

    r11 r899  
    659659  INTEGER :: k_typ,nb_to_ret,it,pos,len_str,status_cnt,io_err 
    660660  CHARACTER(LEN=n_d_fmt)  :: cnt 
    661   CHARACTER(LEN=80) :: str_READ,str_READ_lower 
     661  CHARACTER(LEN=100) :: str_READ,str_READ_lower 
    662662  CHARACTER(LEN=9)  :: c_vtyp 
    663663  LOGICAL,DIMENSION(:),ALLOCATABLE :: found 
     
    14161416!- 
    14171417  TYPE(t_key),ALLOCATABLE,DIMENSION(:) :: tmp_key_tab 
    1418   CHARACTER(LEN=100),ALLOCATABLE :: tmp_str(:) 
    14191418!- 
    14201419  INTEGER :: ier 
Note: See TracChangeset for help on using the changeset viewer.