Ignore:
Timestamp:
Jul 2, 2015, 6:07:34 PM (10 years ago)
Author:
ymipsl
Message:

minor correction on LMDZ5

YM

Location:
dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/phyaqua_mod.F90

    r3831 r3842  
    3030    USE nrtype, ONLY: pi
    3131    USE ioipsl
     32    USE mod_phys_lmdz_para, ONLY: is_master
     33    USE mod_phys_lmdz_transfert_para, ONLY: bcast
    3234    IMPLICIT NONE
    3335
     
    7880
    7981    INTEGER, SAVE :: read_climoz = 0 ! read ozone climatology
    80 
    81     ! intermediate variables to use getin (need to be "save" to be shared by
    82     ! all threads)
    83     INTEGER, SAVE :: nbapp_rad_omp
    84     REAL, SAVE :: co2_ppm_omp, solaire_omp
    85     LOGICAL, SAVE :: alb_ocean_omp
    86     REAL, SAVE :: rugos_omp
     82!$OMP THREADPRIVATE(read_climoz)
     83
    8784    ! -------------------------------------------------------------------------
    8885    ! declaration pour l'appel a phyredem
     
    145142    day_end = day_ini + ndays
    146143
    147     !$OMP MASTER
    148     nbapp_rad_omp = 24
    149     CALL getin('nbapp_rad', nbapp_rad_omp)
    150     !$OMP END MASTER
    151     !$OMP BARRIER
    152     nbapp_rad = nbapp_rad_omp
     144    nbapp_rad = 24
     145    IF (is_master) CALL getin('nbapp_rad', nbapp_rad)
     146    CALL bcast(nbapp_rad)
    153147
    154148    ! ---------------------------------------------------------------------
     
    157151    ! Initialisations des constantes
    158152    ! Ajouter les manquants dans planete.def... (albedo etc)
    159     !$OMP MASTER
    160     co2_ppm_omp = 348.
    161     CALL getin('co2_ppm', co2_ppm_omp)
    162     solaire_omp = 1365.
    163     CALL getin('solaire', solaire_omp)
     153    co2_ppm = 348.
     154    IF (is_master) CALL getin('co2_ppm', co2_ppm)
     155    CALL bcast(co2_ppm)
     156   
     157    solaire = 1365.
     158    IF (is_master) CALL getin('solaire', solaire)
     159    CALL bcast(solaire)
     160
    164161    ! CALL getin('albedo',albedo) ! albedo is set below, depending on
    165162    ! type_aqua
    166     alb_ocean_omp = .TRUE.
    167     CALL getin('alb_ocean', alb_ocean_omp)
    168     !$OMP END MASTER
    169     !$OMP BARRIER
    170     co2_ppm = co2_ppm_omp
     163    alb_ocean = .TRUE.
     164    IF (is_master) CALL getin('alb_ocean', alb_ocean)
     165    CALL bcast(alb_ocean)
     166
    171167    WRITE (*, *) 'iniaqua: co2_ppm=', co2_ppm
    172     solaire = solaire_omp
    173168    WRITE (*, *) 'iniaqua: solaire=', solaire
    174     alb_ocean = alb_ocean_omp
    175169    WRITE (*, *) 'iniaqua: alb_ocean=', alb_ocean
    176170
     
    208202    END IF
    209203
    210     !$OMP MASTER
    211     rugos_omp = rugos
    212     CALL getin('rugos', rugos_omp)
    213     !$OMP END MASTER
    214     !$OMP BARRIER
    215     rugos = rugos_omp
     204    if (is_master) CALL getin('rugos', rugos)
     205    CALL bcast(rugos)
     206
    216207    WRITE (*, *) 'iniaqua: rugos=', rugos
    217208    zmasq(:) = pctsrf(:, is_ter)
     
    467458      phy_ice, phy_fter, phy_foce, phy_flic, phy_fsic)
    468459
    469     USE mod_phys_lmdz_para, ONLY: is_mpi_root, is_omp_root
     460    USE mod_phys_lmdz_para, ONLY: is_master
    470461    USE mod_grid_phy_lmdz, ONLY: klon_glo
    471462    USE mod_phys_lmdz_transfert_para, ONLY: gather
     
    499490    INTEGER id_fter, id_foce, id_fsic, id_flic
    500491
    501     IF (is_mpi_root .AND. is_omp_root) THEN
     492    IF (is_master) THEN
    502493
    503494      PRINT *, 'writelim: Ecriture du fichier limit'
     
    604595      END DO
    605596
    606     END IF ! of if (is_mpi_root.and.is_omp_root)
     597    END IF ! of if (is_master)
    607598
    608599    ! write the fields, after having collected them on master
    609600
    610601    CALL gather(phy_nat, phy_glo)
    611     IF (is_mpi_root .AND. is_omp_root) THEN
     602    IF (is_master) THEN
    612603#ifdef NC_DOUBLE
    613604      ierr = nf_put_var_double(nid, id_nat, phy_glo)
     
    622613
    623614    CALL gather(phy_sst, phy_glo)
    624     IF (is_mpi_root .AND. is_omp_root) THEN
     615    IF (is_master) THEN
    625616#ifdef NC_DOUBLE
    626617      ierr = nf_put_var_double(nid, id_sst, phy_glo)
     
    635626
    636627    CALL gather(phy_bil, phy_glo)
    637     IF (is_mpi_root .AND. is_omp_root) THEN
     628    IF (is_master) THEN
    638629#ifdef NC_DOUBLE
    639630      ierr = nf_put_var_double(nid, id_bils, phy_glo)
     
    648639
    649640    CALL gather(phy_alb, phy_glo)
    650     IF (is_mpi_root .AND. is_omp_root) THEN
     641    IF (is_master) THEN
    651642#ifdef NC_DOUBLE
    652643      ierr = nf_put_var_double(nid, id_alb, phy_glo)
     
    661652
    662653    CALL gather(phy_rug, phy_glo)
    663     IF (is_mpi_root .AND. is_omp_root) THEN
     654    IF (is_master) THEN
    664655#ifdef NC_DOUBLE
    665656      ierr = nf_put_var_double(nid, id_rug, phy_glo)
     
    674665
    675666    CALL gather(phy_fter, phy_glo)
    676     IF (is_mpi_root .AND. is_omp_root) THEN
     667    IF (is_master) THEN
    677668#ifdef NC_DOUBLE
    678669      ierr = nf_put_var_double(nid, id_fter, phy_glo)
     
    687678
    688679    CALL gather(phy_foce, phy_glo)
    689     IF (is_mpi_root .AND. is_omp_root) THEN
     680    IF (is_master) THEN
    690681#ifdef NC_DOUBLE
    691682      ierr = nf_put_var_double(nid, id_foce, phy_glo)
     
    700691
    701692    CALL gather(phy_fsic, phy_glo)
    702     IF (is_mpi_root .AND. is_omp_root) THEN
     693    IF (is_master) THEN
    703694#ifdef NC_DOUBLE
    704695      ierr = nf_put_var_double(nid, id_fsic, phy_glo)
     
    713704
    714705    CALL gather(phy_flic, phy_glo)
    715     IF (is_mpi_root .AND. is_omp_root) THEN
     706    IF (is_master) THEN
    716707#ifdef NC_DOUBLE
    717708      ierr = nf_put_var_double(nid, id_flic, phy_glo)
     
    726717
    727718    ! close file:
    728     IF (is_mpi_root .AND. is_omp_root) THEN
     719    IF (is_master) THEN
    729720      ierr = nf_close(nid)
    730721    END IF
  • dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/physiq.F90

    r3831 r3842  
    874874  !                      mise a jour du module phys_cal_mod
    875875  !
     876  mydebug=.FALSE.
    876877  CALL set_timestep(pdtphys_)
    877878
  • dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/time_phylmdz_mod.f90

    r3835 r3842  
    5151   
    5252    day_step = NINT(rday/pdtphys)
    53     day_end  = day_ini + ndays
     53    day_end  = day_ini + ndays-1
    5454 
    5555    raz_date = 0
Note: See TracChangeset for help on using the changeset viewer.