Opened 5 years ago
Closed 5 years ago
#37 closed defect (fixed)
getin_p does not work with MESOSCALE GENERIC
Reported by: | aslmd | Owned by: | aslmd |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | GENERIC GCM | Version: | |
Keywords: | Cc: |
Description
Maxence: "inifis_mod.F est appellé dans phys/iniphysiq_mod.F mais il y a un soucis avec ioipsl, pour que ca marche j'ai remplacé geint_p par getin dans toute la physique et le callphys est lu."
Ehouarn: "getin_p n'est qu'une surcouche qui fait appel à getin et partage le résultat sur tous les procs. Donc c'est probablement que le partage d'information entre procs n'est pas correctement en place dans le couplage avec WRF.
C'est peut-être simplement une initialization des communications MPI qui manque...
Avec DYNAMICO/LMDZ ces initialisations sont faites via l'enchaînement des appels:
dynphy_lonlat/phy***/iniphysiq_mod.F90: CALL inigeomphy() => dynphy_lonlat/inigeomphy_mod.F90: CALL init_physics_distribution() ==> phy_common/physics_distribution_mod.F90: CALL init_phys_lmdz_para()
C'est ce init_phys_lmdz_para() qui met en place l'environnement MPI (et OpenMP) ; peut-être qu'il manque juste cet appel dans l'interface
WRF/phy***
?
En fait des paramètres (tous intent(in) ) de init_phys_lmdz_para(nbp,nbp_lon,nbp_lat,communicator) les trois premiers ne t'intéressent pas particulièrement (vu qu'il n'y a pas de sorties ou besoin de connaitre la structure des tuiles MPI dans la physique), il n'y a que le communicateur qu'il faut correctement initialiser, idéalement en transmettant celui de WRF.
A moins qu'ils aient fait un truc très particulier dans WRF, je parierai que le communicateur est simplement "MPI_COMM_WORLD" (variable de la librairie MPI consacrée).
le getin_p est "bien" écrit. Il repose par contre sur le fait que l'environnement MPI/OpenMP a bien été mis en place. "
Change History (2)
comment:1 Changed 5 years ago by
comment:2 Changed 5 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
This has been fixed by r2267