91 |
WRITE(fn,'(A,A10)') 'pickup.',suff |
WRITE(fn,'(A,A10)') 'pickup.',suff |
92 |
|
|
93 |
C Going to really do some IO. Make everyone except master thread wait. |
C Going to really do some IO. Make everyone except master thread wait. |
94 |
_BARRIER |
C this is done within IO routines => no longer needed |
95 |
|
c _BARRIER |
96 |
|
|
97 |
IF (pickup_read_mdsio) THEN |
IF (pickup_read_mdsio) THEN |
98 |
|
|
240 |
IF ( use3Dsolver ) THEN |
IF ( use3Dsolver ) THEN |
241 |
WRITE(fn,'(A,A10)') 'pickup_nh.',suff |
WRITE(fn,'(A,A10)') 'pickup_nh.',suff |
242 |
CALL READ_REC_3D_RL( fn, fp, Nr, phi_nh, 1, myIter,myThid ) |
CALL READ_REC_3D_RL( fn, fp, Nr, phi_nh, 1, myIter,myThid ) |
243 |
|
#ifdef ALLOW_ADAMSBASHFORTH_3 |
244 |
|
CALL READ_REC_3D_RL( fn, fp, Nr, gwNm(1-Olx,1-Oly,1,1,1,1), |
245 |
|
& 2, myIter,myThid ) |
246 |
|
CALL READ_REC_3D_RL( fn, fp, Nr, gwNm(1-Olx,1-Oly,1,1,1,2), |
247 |
|
& 2, myIter,myThid ) |
248 |
|
#else /* ALLOW_ADAMSBASHFORTH_3 */ |
249 |
CALL READ_REC_3D_RL( fn, fp, Nr, gwNm1, 2, myIter,myThid ) |
CALL READ_REC_3D_RL( fn, fp, Nr, gwNm1, 2, myIter,myThid ) |
250 |
|
#endif /* ALLOW_ADAMSBASHFORTH_3 */ |
251 |
ENDIF |
ENDIF |
252 |
#endif |
#endif /* ALLOW_NONHYDROSTATIC */ |
253 |
ELSE |
ELSE |
254 |
C--- New way to read model fields: |
C--- New way to read model fields: |
255 |
nj = 0 |
nj = 0 |
266 |
#ifdef ALLOW_ADAMSBASHFORTH_3 |
#ifdef ALLOW_ADAMSBASHFORTH_3 |
267 |
m1 = 1 + MOD(myIter+1,2) |
m1 = 1 + MOD(myIter+1,2) |
268 |
m2 = 1 + MOD( myIter ,2) |
m2 = 1 + MOD( myIter ,2) |
269 |
|
IF ( momStepping ) THEN |
270 |
C-- U velocity: |
C-- U velocity: |
271 |
IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN |
IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN |
272 |
CALL READ_MFLDS_3D_RL( 'GuNm1 ',guNm(1-Olx,1-Oly,1,1,1,m1), |
CALL READ_MFLDS_3D_RL( 'GuNm1 ',guNm(1-Olx,1-Oly,1,1,1,m1), |
285 |
CALL READ_MFLDS_3D_RL( 'GvNm2 ',gvNm(1-Olx,1-Oly,1,1,1,m2), |
CALL READ_MFLDS_3D_RL( 'GvNm2 ',gvNm(1-Olx,1-Oly,1,1,1,m2), |
286 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
287 |
ENDIF |
ENDIF |
288 |
|
ENDIF |
289 |
C-- Temperature: |
C-- Temperature: |
290 |
IF ( AdamsBashforthGt ) THEN |
IF ( AdamsBashforthGt ) THEN |
291 |
IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN |
IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN |
326 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
327 |
ENDIF |
ENDIF |
328 |
ENDIF |
ENDIF |
329 |
|
#ifdef ALLOW_NONHYDROSTATIC |
330 |
|
IF ( nonHydrostatic ) THEN |
331 |
|
C-- W velocity: |
332 |
|
IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN |
333 |
|
CALL READ_MFLDS_3D_RL( 'GwNm1 ',gwNm(1-Olx,1-Oly,1,1,1,m1), |
334 |
|
& nj, fp, Nr, myIter, myThid ) |
335 |
|
ENDIF |
336 |
|
IF ( beta_AB.NE.0. ) THEN |
337 |
|
CALL READ_MFLDS_3D_RL( 'GwNm2 ',gwNm(1-Olx,1-Oly,1,1,1,m2), |
338 |
|
& nj, fp, Nr, myIter, myThid ) |
339 |
|
ENDIF |
340 |
|
ENDIF |
341 |
|
#endif /* ALLOW_NONHYDROSTATIC */ |
342 |
#else /* ALLOW_ADAMSBASHFORTH_3 */ |
#else /* ALLOW_ADAMSBASHFORTH_3 */ |
343 |
|
IF ( momStepping ) THEN |
344 |
C-- U velocity: |
C-- U velocity: |
345 |
CALL READ_MFLDS_3D_RL( 'GuNm1 ', guNm1, |
CALL READ_MFLDS_3D_RL( 'GuNm1 ', guNm1, |
346 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
347 |
C-- V velocity: |
C-- V velocity: |
348 |
CALL READ_MFLDS_3D_RL( 'GvNm1 ', gvNm1, |
CALL READ_MFLDS_3D_RL( 'GvNm1 ', gvNm1, |
349 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
350 |
|
ENDIF |
351 |
C-- Temperature |
C-- Temperature |
352 |
IF ( AdamsBashforthGt ) THEN |
IF ( AdamsBashforthGt ) THEN |
353 |
CALL READ_MFLDS_3D_RL( 'GtNm1 ', gtNm1, |
CALL READ_MFLDS_3D_RL( 'GtNm1 ', gtNm1, |
358 |
CALL READ_MFLDS_3D_RL( 'GsNm1 ', gsNm1, |
CALL READ_MFLDS_3D_RL( 'GsNm1 ', gsNm1, |
359 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
360 |
ENDIF |
ENDIF |
361 |
|
#ifdef ALLOW_NONHYDROSTATIC |
362 |
|
IF ( nonHydrostatic ) THEN |
363 |
|
CALL READ_MFLDS_3D_RL( 'GwNm1 ', gwNm1, |
364 |
|
& nj, fp, Nr, myIter, myThid ) |
365 |
|
ENDIF |
366 |
|
#endif /* ALLOW_NONHYDROSTATIC */ |
367 |
#endif /* ALLOW_ADAMSBASHFORTH_3 */ |
#endif /* ALLOW_ADAMSBASHFORTH_3 */ |
368 |
|
|
369 |
C- read Full Pressure for EOS in pressure: |
C- read Full Pressure for EOS in pressure: |
376 |
CALL READ_MFLDS_3D_RL( 'Phi_NHyd', phi_nh, |
CALL READ_MFLDS_3D_RL( 'Phi_NHyd', phi_nh, |
377 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
378 |
ENDIF |
ENDIF |
379 |
IF ( nonHydrostatic ) THEN |
#endif /* ALLOW_NONHYDROSTATIC */ |
380 |
CALL READ_MFLDS_3D_RL( 'GwNm1 ', gwNm1, |
#ifdef ALLOW_ADDFLUID |
381 |
|
C- read mass source/sink of fluid |
382 |
|
IF ( selectAddFluid.GE.1 ) THEN |
383 |
|
CALL READ_MFLDS_3D_RL( 'AddMass ', addMass, |
384 |
& nj, fp, Nr, myIter, myThid ) |
& nj, fp, Nr, myIter, myThid ) |
385 |
ENDIF |
ENDIF |
386 |
#endif |
#endif /* ALLOW_ADDFLUID */ |
387 |
|
|
388 |
C--- read 2-D fields, starting with Eta: |
C--- read 2-D fields, starting with Eta: |
389 |
nj = nj*Nr |
nj = nj*Nr |
390 |
CALL READ_MFLDS_3D_RL( 'EtaN ', etaN, |
CALL READ_MFLDS_3D_RL( 'EtaN ', etaN, |
391 |
& nj, fp, 1 , myIter, myThid ) |
& nj, fp, 1 , myIter, myThid ) |
392 |
|
#ifdef ALLOW_NONHYDROSTATIC |
393 |
|
IF ( selectNHfreeSurf.GE.1 ) THEN |
394 |
|
CALL READ_MFLDS_3D_RL( 'dPhiNH ', dPhiNH, |
395 |
|
& nj, fp, 1 , myIter, myThid ) |
396 |
|
ENDIF |
397 |
|
#endif /* ALLOW_NONHYDROSTATIC */ |
398 |
#ifdef EXACT_CONSERV |
#ifdef EXACT_CONSERV |
399 |
IF ( exactConserv ) THEN |
IF ( exactConserv ) THEN |
400 |
CALL READ_MFLDS_3D_RL( 'dEtaHdt ', dEtaHdt, |
CALL READ_MFLDS_3D_RL( 'dEtaHdt ', dEtaHdt, |
404 |
CALL READ_MFLDS_3D_RL( 'EtaH ', etaH, |
CALL READ_MFLDS_3D_RL( 'EtaH ', etaH, |
405 |
& nj, fp, 1 , myIter, myThid ) |
& nj, fp, 1 , myIter, myThid ) |
406 |
ENDIF |
ENDIF |
407 |
#endif |
#endif /* EXACT_CONSERV */ |
408 |
C-- end: new way to read pickup file |
C-- end: new way to read pickup file |
409 |
ENDIF |
ENDIF |
410 |
|
|
461 |
IF (use3Dsolver) THEN |
IF (use3Dsolver) THEN |
462 |
CALL MNC_CW_RL_R('D',fn,0,0,'phi_nh', phi_nh, myThid) |
CALL MNC_CW_RL_R('D',fn,0,0,'phi_nh', phi_nh, myThid) |
463 |
c CALL MNC_CW_RL_R('D',fn,0,0,'gW', gW, myThid) |
c CALL MNC_CW_RL_R('D',fn,0,0,'gW', gW, myThid) |
464 |
|
#ifndef ALLOW_ADAMSBASHFORTH_3 |
465 |
CALL MNC_CW_RL_R('D',fn,0,0,'gWnm1', gwNm1, myThid) |
CALL MNC_CW_RL_R('D',fn,0,0,'gWnm1', gwNm1, myThid) |
466 |
|
#endif |
467 |
ENDIF |
ENDIF |
468 |
#endif |
#endif |
469 |
IF ( useDynP_inEos_Zc ) THEN |
IF ( useDynP_inEos_Zc ) THEN |
472 |
ENDIF |
ENDIF |
473 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
474 |
|
|
|
_BARRIER |
|
|
|
|
475 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
476 |
|
|
477 |
C Fill in edge regions |
C Fill in edge regions |
481 |
#ifdef ALLOW_ADAMSBASHFORTH_3 |
#ifdef ALLOW_ADAMSBASHFORTH_3 |
482 |
CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,1), |
CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,1), |
483 |
& gvNm(1-Olx,1-Oly,1,1,1,1),.TRUE.,Nr,myThid ) |
& gvNm(1-Olx,1-Oly,1,1,1,1),.TRUE.,Nr,myThid ) |
|
CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid ) |
|
|
CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid ) |
|
484 |
CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,2), |
CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,2), |
485 |
& gvNm(1-Olx,1-Oly,1,1,1,2),.TRUE.,Nr,myThid ) |
& gvNm(1-Olx,1-Oly,1,1,1,2),.TRUE.,Nr,myThid ) |
486 |
|
CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid ) |
487 |
CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid ) |
CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid ) |
488 |
|
CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid ) |
489 |
CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid ) |
CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid ) |
490 |
#else /* ALLOW_ADAMSBASHFORTH_3 */ |
#else /* ALLOW_ADAMSBASHFORTH_3 */ |
491 |
CALL EXCH_UV_3D_RL( guNm1, gvNm1, .TRUE., Nr, myThid ) |
CALL EXCH_UV_3D_RL( guNm1, gvNm1, .TRUE., Nr, myThid ) |
504 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
505 |
IF ( use3Dsolver ) THEN |
IF ( use3Dsolver ) THEN |
506 |
CALL EXCH_3D_RL( phi_nh, Nr, myThid ) |
CALL EXCH_3D_RL( phi_nh, Nr, myThid ) |
507 |
|
ENDIF |
508 |
|
IF ( nonHydrostatic ) THEN |
509 |
|
#ifdef ALLOW_ADAMSBASHFORTH_3 |
510 |
|
CALL EXCH_3D_RL( gwNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid ) |
511 |
|
CALL EXCH_3D_RL( gwNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid ) |
512 |
|
#else /* ALLOW_ADAMSBASHFORTH_3 */ |
513 |
CALL EXCH_3D_RL( gwNm1, Nr, myThid ) |
CALL EXCH_3D_RL( gwNm1, Nr, myThid ) |
514 |
|
#endif /* ALLOW_ADAMSBASHFORTH_3 */ |
515 |
ENDIF |
ENDIF |
516 |
#endif |
IF ( selectNHfreeSurf.GE.1 ) THEN |
517 |
|
CALL EXCH_XY_RL( dPhiNH, myThid ) |
518 |
|
ENDIF |
519 |
|
#endif /* ALLOW_NONHYDROSTATIC */ |
520 |
|
|
521 |
RETURN |
RETURN |
522 |
END |
END |