Ignore:
Timestamp:
Feb 24, 2026, 9:59:11 AM (11 days ago)
Author:
emillour
Message:

Generic PCM:
OpenMP bug fix in "rad_correlatedk_stellar_spectrum", all intermediate computations
should be done by all OpenMp? threads.
While at it did some cleanup:

  • added some OMP threadprivate statements in radcommon_h.F90 (not alwyas necessary, but best practice is that all saved variables be threadprivate)
  • turned rad_blackbody.F into a module and modernized routines.
  • use clearer stategy (wrt OpenMP) in "rad_correlatedk_init_thermal.F90" and "rad_correlatedk_init_stellar.F90": have the master read in file and data and then broadcast to all cores.

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phygeneric/radcommon_h.F90

    r4077 r4081  
    6363!
    6464
    65       REAL*8 BWNI(L_NSPECTI+1), WNOI(L_NSPECTI), DWNI(L_NSPECTI), WAVEI(L_NSPECTI) !BWNI read by master in rad_correlatedk_init_thermal
    66       REAL*8 BWNV(L_NSPECTV+1), WNOV(L_NSPECTV), DWNV(L_NSPECTV), WAVEV(L_NSPECTV) !BWNV read by master in rad_correlatedk_init_stellar
     65      REAL*8 BWNI(L_NSPECTI+1) !BWNI read by master in rad_correlatedk_init_thermal
     66!$OMP THREADPRIVATE(BWNI)
     67      REAL*8 WNOI(L_NSPECTI), DWNI(L_NSPECTI), WAVEI(L_NSPECTI)
     68!$OMP THREADPRIVATE(WNOI,DWNI,WAVEI)
     69      REAL*8 BWNV(L_NSPECTV+1) !BWNV read by master in rad_correlatedk_init_stellar
     70!$OMP THREADPRIVATE(BWNV)
     71      REAL*8 WNOV(L_NSPECTV), DWNV(L_NSPECTV), WAVEV(L_NSPECTV)
    6772      REAL*8 STELLARF(L_NSPECTV)
    68 !$OMP THREADPRIVATE(WNOI,DWNI,WAVEI,&
    69         !$OMP WNOV,DWNV,WAVEV,&
    70         !$OMP STELLARF)
     73!$OMP THREADPRIVATE(WNOV,DWNV,WAVEV,STELLARF)
    7174
    7275      REAL*8 blami(L_NSPECTI+1)
Note: See TracChangeset for help on using the changeset viewer.