Novembre 2022 POUR LA REPRODUCTIBILITE MPI AGRIF + PISCES: EVITER dans un premier temps BIO_HADV_WENO5 Tourner sans NOLAND au début car partie plus récente. ou ACTIVER pour gain de temps! ================================================================================================== pistes: ================================================================================================== 1/ Tests différents découpages mpi sur croco, agrif, pisces et agrif pisces. Sur Sénégal? Sauf si VHR suffit pour faire planter. Mais quel nombre max de procs? Et voir si plante différemment ou toujours au même endroit! test 1x4 au lieu de 2x2 ou sans ligand même plantage!!! ================================================================================================== Plantage sur p4zche... ================================================================================================== On voit dans output.run.txt que tout est OK pour la grille mère mais plante au début de la bio pour la grille fille... Avec ddt on voit bien que les valeurs sont bonnes pour p_alkcb sur le premier passage grille mère. Le NaN apparait au passage grille fille!! Valeurs OK pour le début de la boucle pour la grille fille. le NaN apparait sur la premiere valeur pour jk=31 (ji=jj=1) print dans p4zche.F90 ligne 484 : CHRIS ji= 1 jj= 1 jk=31 K= 2 jptal=2 jpdic=1 trbtal= NaN trbdic= NaN rhop=0.102500E+04 borat=0.429428E-03 p_alkcb= NaN CHRIS ji= 1 jj= 1 jk=32 K= 1 jptal=2 jpdic=1 trbtal= NaN trbdic= NaN rhop=0.102500E+04 borat=0.429237E-03 p_alkcb= NaN DO jk = KRANGE DO jj = JRANGE DO ji = IRANGE p_alkcb = trb(ji,jj,K,jptal) * 1000. / (rhop(ji,jj,K) + rtrn) p_dictot = trb(ji,jj,K,jpdic) * 1000. / (rhop(ji,jj,K) + rtrn) p_bortot = borat(ji,jj,jk) ! if (jk.ge.31) then if ((ji.eq.1).AND.(jj.eq.1)) then WRITE(numout,'(A, I3, A, I3, A, I2, A, I2,& & A , I1, A, I1, A, E12.6, A, E12.6, & & A, E12.6, A, E12.6, A, E12.6)') & & 'CHRIS ji=',ji, ' jj=', jj, ' jk=', jk, ' K=', K, & & ' jptal=', jptal, ' jpdic=', jpdic, & & ' trbtal=', trb(ji,jj,K,jptal), & & ' trbdic=', trb(ji,jj,K,jpdic),& & ' rhop=', rhop(ji,jj,K), ' borat=', borat(ji,jj,jk), ' p_alkcb=', p_alkcb endif IF (p_alkcb <= 0.) THEN p_hini(ji,jj,jk) = 1.e-3 ELSEIF (p_alkcb >= (2.*p_dictot + p_bortot)) THEN p_hini(ji,jj,jk) = 1.e-10 ELSE Sur IRENE , plantage explicite: /ccc/work/cont005/gen1140/hourdinc/croco/BENGUELA_VHR/exp/bvhr_CapeTown_01/compile/croco_scratch_IRENE_DDT/p4zche_.f90: [ __p4zche_MOD_sub_loop_ahini_for_at() ] ... 1263 & ' rhop=', (rho0+rho1(ji,jj,N+1-jk)), ' borat=', borat(ji,jj,jk), ' p_alkcb=', p_alkcb 1264 endif 1265 IF (p_alkcb <= 0.) THEN ==> 1266 p_hini(ji,jj,jk) = 1.e-3 1267 ELSEIF (p_alkcb >= (2.*p_dictot + p_bortot)) THEN 1268 p_hini(ji,jj,jk) = 1.e-10 1269 ELSE p_alkcb = NaN parceque ... trb(ji,jj,K,jptal) => t(ji,jj,N+1-jk,nnew,itemp+ntrc_salt+jptal) = NaN et trb(ji,jj,K,jpdic) => t(ji,jj,N+1-jk,nnew,itemp+ntrc_salt+jptal) = NaN jpdic = 1 !: dissolved inoganic carbon concentration jptal = 2 !: total alkalinity pour chacun des 4 procs, DDT renvoie : pour ji=1, jj=1 et jk=1 : dimensions de t(ji,jj,N+1-jk,nnew,itemp+ntrc_salt+jptal) et ji=1, jj=1 et jk=1 : dimensions de t(ji,jj,N+1-jk,nnew,itemp+ntrc_salt+jpdic) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! grille mère : IRENE : -1:87 -1:87 DATARMOR : -2:88 -2:88 grille fille : IRENE : -1:89 -1:123 DATARMOR : -2:90 -2:124 pour test conditionnel dans DDT : grille mère : (jk.ge.30).and.(ji.ge.84).and.(jj.ge.85) grille fille : (jk.ge.30).and.(ji.ge.87).and.(jj.ge.120) Mais le test conditionnel ne fonctionne pas dans la boucle incriminée!! En revanche fonctionne bien plus haut dans la routine p4z_che. remarque : Rho1 à zéro sur IRENE avec ddt pour la grille fille: t(ji,jj,N+1-jk=1 ,nnew=1,itemp+ntrc_salt+jptal=3) : 4212 x -NaN (jpdic=1 1er Niveau) t(ji,jj,N+1-jk=1 ,nnew=1,itemp+ntrc_salt+jptal=4) : 4212 x -NaN (jptal=2 1er Niveau) t(ji,jj,N+1-jk=2 ,nnew=1,itemp+ntrc_salt+jptal=3) : 1865 x -NaN (jpdic=1 2eme Niveau) t(ji,jj,N+1-jk=2 ,nnew=1,itemp+ntrc_salt+jptal=4) : 1865 x -NaN (jptal=2 2eme Niveau) tout le reste des traceurs : ji, jk, niveau 1:32, nnew=1 et traceur 1:27 AUCUN NaN !!! pour la grille mère: AUNCUN NaN JUSQU'AU PLANTAGE dans p4zche sur p_alkcb, LES 27 TRACEURS NE COMPORTENT PAS DE NAN, SAUF sur les 2 premiers niveaux pour les traceurs jpdic et jpcal ================================== à l'exécution sur DATARMOR et sur IRENE (pas sur agrif + pisces parce qu'il plannte avant dans p4zche) : toute une série de lignes de warnings sur les routines de la lib AGRIF. Exactement les même warning pour simu agrif que pour agrif+pisces At line 411 of file AGRIF_FILES/modmpp.F90 Fortran runtime warning: An array temporary was created At line 520 of file AGRIF_FILES/modmpp.F90 Fortran runtime warning: An array temporary was created At line 1131 of file AGRIF_FILES/modinterp.F90 Fortran runtime warning: An array temporary was created for argument 'parenttab' of procedure 'agrif_interpbase' At line 1132 of file AGRIF_FILES/modinterp.F90 Fortran runtime warning: An array temporary was created for argument 'childtab' of procedure 'agrif_interpbase' malgré la correction du warning : is upper than 2400. You must change the dimension of carray0 in the file AGRIF/AGRIF_FILES/modtypes.F90 line 161. Replace 2400 with 4500. les warnings persistent.