Ignore:
Timestamp:
01/22/16 17:09:54 (8 years ago)
Author:
dubos
Message:

More NH terms - tested with DCMIP3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/caldyn_hevi.f90

    r366 r369  
    110110       pk = f_pk(ind) 
    111111       geopot = f_geopot(ind) 
     112       du=f_du_fast(ind) 
    112113       IF(hydrostatic) THEN 
     114          du(:,:)=0. 
    113115          CALL compute_geopot(ps,mass,theta, pk,geopot) 
    114116       ELSE 
     
    116118          dW = f_dW_fast(ind) 
    117119          dPhi = f_dPhi_fast(ind) 
    118           CALL compute_caldyn_solver(tau,mass,theta,pk,geopot,W,dPhi,dW) ! computes d(Phi,W)_fast and updates Phi,W 
     120          CALL compute_caldyn_solver(tau,mass,theta,pk,geopot,W,dPhi,dW,du) ! computes d(Phi,W)_fast and updates Phi,W 
    119121       END IF 
    120122       u=f_u(ind) 
    121        du=f_du_fast(ind) 
    122123       CALL compute_caldyn_fast(tau,u,mass,theta,pk,geopot,du) ! computes du_fast and updates du 
    123124    ENDDO 
     
    138139     
    139140    CALL send_message(f_qu,req_qu) ! COM03 
    140      
     141    CALL wait_message(req_qu) ! COM03 
     142        
    141143    DO ind=1,ndomain 
    142144       IF (.NOT. assigned_domain(ind)) CYCLE 
     
    151153       dtheta_rhodz=f_dtheta_rhodz(ind) 
    152154       du=f_du_slow(ind) 
    153        CALL compute_caldyn_slow(u,mass,qu,theta, hflux,convm,dtheta_rhodz,du) ! COM03 
     155       IF(hydrostatic) THEN 
     156          CALL compute_caldyn_slow_hydro(u,mass,hflux,du) 
     157       ELSE 
     158          W = f_W(ind) 
     159          dW = f_dW_slow(ind) 
     160          geopot = f_geopot(ind) 
     161          dPhi = f_dPhi_slow(ind) 
     162          CALL compute_caldyn_slow_NH(u,mass,geopot,W, hflux,du,dPhi,dW) 
     163       END IF 
     164       CALL compute_caldyn_Coriolis(hflux,theta,qu, convm,dtheta_rhodz,du) 
    154165       IF(caldyn_eta==eta_mass) THEN 
    155166          wflux=f_wflux(ind) 
    156167          wwuu=f_wwuu(ind) 
    157168          dps=f_dps(ind) 
    158           CALL compute_caldyn_vert(u,theta,mass,convm, wflux,wwuu, dps, dtheta_rhodz, du) 
     169          IF(hydrostatic) THEN 
     170             CALL compute_caldyn_vert(u,theta,mass,convm, wflux,wwuu, dps, dtheta_rhodz, du) 
     171          ELSE 
     172             PRINT *, 'NH dynamics limited to Lagrangian vertical coordinate so far !'  
     173             STOP 
     174          END IF 
    159175       END IF 
    160176    ENDDO 
Note: See TracChangeset for help on using the changeset viewer.