Changeset 3842 for dynamico_lmdz
- Timestamp:
- Jul 2, 2015, 6:07:34 PM (10 years ago)
- 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 30 30 USE nrtype, ONLY: pi 31 31 USE ioipsl 32 USE mod_phys_lmdz_para, ONLY: is_master 33 USE mod_phys_lmdz_transfert_para, ONLY: bcast 32 34 IMPLICIT NONE 33 35 … … 78 80 79 81 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 87 84 ! ------------------------------------------------------------------------- 88 85 ! declaration pour l'appel a phyredem … … 145 142 day_end = day_ini + ndays 146 143 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) 153 147 154 148 ! --------------------------------------------------------------------- … … 157 151 ! Initialisations des constantes 158 152 ! 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 164 161 ! CALL getin('albedo',albedo) ! albedo is set below, depending on 165 162 ! 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 171 167 WRITE (*, *) 'iniaqua: co2_ppm=', co2_ppm 172 solaire = solaire_omp173 168 WRITE (*, *) 'iniaqua: solaire=', solaire 174 alb_ocean = alb_ocean_omp175 169 WRITE (*, *) 'iniaqua: alb_ocean=', alb_ocean 176 170 … … 208 202 END IF 209 203 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 216 207 WRITE (*, *) 'iniaqua: rugos=', rugos 217 208 zmasq(:) = pctsrf(:, is_ter) … … 467 458 phy_ice, phy_fter, phy_foce, phy_flic, phy_fsic) 468 459 469 USE mod_phys_lmdz_para, ONLY: is_m pi_root, is_omp_root460 USE mod_phys_lmdz_para, ONLY: is_master 470 461 USE mod_grid_phy_lmdz, ONLY: klon_glo 471 462 USE mod_phys_lmdz_transfert_para, ONLY: gather … … 499 490 INTEGER id_fter, id_foce, id_fsic, id_flic 500 491 501 IF (is_m pi_root .AND. is_omp_root) THEN492 IF (is_master) THEN 502 493 503 494 PRINT *, 'writelim: Ecriture du fichier limit' … … 604 595 END DO 605 596 606 END IF ! of if (is_m pi_root.and.is_omp_root)597 END IF ! of if (is_master) 607 598 608 599 ! write the fields, after having collected them on master 609 600 610 601 CALL gather(phy_nat, phy_glo) 611 IF (is_m pi_root .AND. is_omp_root) THEN602 IF (is_master) THEN 612 603 #ifdef NC_DOUBLE 613 604 ierr = nf_put_var_double(nid, id_nat, phy_glo) … … 622 613 623 614 CALL gather(phy_sst, phy_glo) 624 IF (is_m pi_root .AND. is_omp_root) THEN615 IF (is_master) THEN 625 616 #ifdef NC_DOUBLE 626 617 ierr = nf_put_var_double(nid, id_sst, phy_glo) … … 635 626 636 627 CALL gather(phy_bil, phy_glo) 637 IF (is_m pi_root .AND. is_omp_root) THEN628 IF (is_master) THEN 638 629 #ifdef NC_DOUBLE 639 630 ierr = nf_put_var_double(nid, id_bils, phy_glo) … … 648 639 649 640 CALL gather(phy_alb, phy_glo) 650 IF (is_m pi_root .AND. is_omp_root) THEN641 IF (is_master) THEN 651 642 #ifdef NC_DOUBLE 652 643 ierr = nf_put_var_double(nid, id_alb, phy_glo) … … 661 652 662 653 CALL gather(phy_rug, phy_glo) 663 IF (is_m pi_root .AND. is_omp_root) THEN654 IF (is_master) THEN 664 655 #ifdef NC_DOUBLE 665 656 ierr = nf_put_var_double(nid, id_rug, phy_glo) … … 674 665 675 666 CALL gather(phy_fter, phy_glo) 676 IF (is_m pi_root .AND. is_omp_root) THEN667 IF (is_master) THEN 677 668 #ifdef NC_DOUBLE 678 669 ierr = nf_put_var_double(nid, id_fter, phy_glo) … … 687 678 688 679 CALL gather(phy_foce, phy_glo) 689 IF (is_m pi_root .AND. is_omp_root) THEN680 IF (is_master) THEN 690 681 #ifdef NC_DOUBLE 691 682 ierr = nf_put_var_double(nid, id_foce, phy_glo) … … 700 691 701 692 CALL gather(phy_fsic, phy_glo) 702 IF (is_m pi_root .AND. is_omp_root) THEN693 IF (is_master) THEN 703 694 #ifdef NC_DOUBLE 704 695 ierr = nf_put_var_double(nid, id_fsic, phy_glo) … … 713 704 714 705 CALL gather(phy_flic, phy_glo) 715 IF (is_m pi_root .AND. is_omp_root) THEN706 IF (is_master) THEN 716 707 #ifdef NC_DOUBLE 717 708 ierr = nf_put_var_double(nid, id_flic, phy_glo) … … 726 717 727 718 ! close file: 728 IF (is_m pi_root .AND. is_omp_root) THEN719 IF (is_master) THEN 729 720 ierr = nf_close(nid) 730 721 END IF -
dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/physiq.F90
r3831 r3842 874 874 ! mise a jour du module phys_cal_mod 875 875 ! 876 mydebug=.FALSE. 876 877 CALL set_timestep(pdtphys_) 877 878 -
dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/time_phylmdz_mod.f90
r3835 r3842 51 51 52 52 day_step = NINT(rday/pdtphys) 53 day_end = day_ini + ndays 53 day_end = day_ini + ndays-1 54 54 55 55 raz_date = 0
Note: See TracChangeset
for help on using the changeset viewer.